Przewodnik audytu dla AWS PCI DSS Quick Start

30 kwietnia 2021

aws pci dss quick start

Przewodnik audytu dla AWS PCI DSS Quick Start to wpis dedykowany wszystkim tym, którzy wspierali ocenę Payment Card Industry Data Security Standard (PCI DSS) jako Qualified Security Assessor (QSA) lub jako zespół techniczny, prawdopodobnie spędzając dużo czasu na zbieraniu i analizowaniu dowodów dot. wymagań PCI DSS. W tym poście opiszemy, jak wykorzystać automatyzację, aby zmniejszyć trud ręcznego i powtarzalnego zbierania dowodów. Pomoże Ci to bardziej skoncentrować się na architekturze zgodności, a nie na gromadzeniu dowodów.

 

Organizacje zajmujące się przetwarzaniem kart płatniczych - w tym podmioty przetwarzające, agenci rozliczeniowi, wydawcy i dostawcy usług - są zobowiązani do przestrzegania PCI DSS. Zgodność jest potwierdzana corocznie poprzez audyt. Jego celem jest ocena zasad bezpieczeństwa, procedur i konfiguracji zasobów organizacji w odniesieniu do odpowiednich mechanizmów kontrolnych PCI DSS.

Assessment PCI DSS opiera się na stanie systemu w danym momencie, a osoba oceniająca jest zobowiązana do zebrania konkretnych dowodów dla każdego wymagania, zgodnie z procedurą testową. Gromadzenie dowodów jest jednym ze żmudnych aspektów ocen PCI DSS - zarówno dla zespołu zbierającego dowody, jak i oceniającego je - z następujących powodów:

  • Zespół techniczny musi opisać, w jaki sposób wdrożone środki bezpieczeństwa spełniają wymagania i przedstawić dowody potwierdzające. Osoba oceniająca musi wykonać określoną procedurę testową.
  • Zespół zbierający dowody musi spędzić dużo czasu na robieniu zrzutów ekranu lub eksportowaniu danych związanych z konfiguracjami systemu. Jest to bardziej czasochłonne ze względu na wymóg, aby osoby oceniające obserwowały wystarczająco dużą próbę systemów objętych zakresem, aby potwierdzić, że testowane kontrole są jednolite we wszystkich systemach.
  • Oceniający musi przejrzeć każdy dowód, co znowu jest ręcznym, powtarzalnym procesem. Zadanie osoby oceniającej dodatkowo komplikuje fakt, że zrzutów ekranu nie można znormalizować, dlatego osoba oceniająca musi dokładnie je przejrzeć, aby upewnić się, że nic nie zostanie pominięte.

Dodatkowe wyzwania pojawiają się, gdy oceniane środowisko jest hostowane na platformie chmurowej.

  • Elastyczność infrastruktury chmurowej zwielokrotnia skalę oceny oraz związany z nią czas i złożoność. Ponieważ usługi Amazon Web Services (AWS) są udostępniane za pośrednictwem interfejsów API, a zespoły operacyjne wykorzystują infrastrukturę jako kod, można szybko udostępnić wiele instancji identycznej infrastruktury, zmieniając elementy kodu. Uniwersalna populacja systemów objętych zakresem jest zatem dynamiczna, co utrudnia proces doboru próbki. Jako osoba oceniająca musisz zweryfikować, czy dobór próbki odzwierciedla ogólne środowisko. Czasami bardziej praktyczne jest oszacowanie podstawowej konfiguracji, która rządzi elastycznością infrastruktury, niż ocena każdej instancji. Na przykład, jeśli oceniasz wystąpienia Amazon Elastic Compute Cloud (Amazon EC2) skonfigurowane w grupie Amazon EC2 Auto Scaling, lepiej byłoby ocenić podstawowy obraz Amazon Machine Image (AMI) używany do tworzenia instancji EC2 i związanego z nim zarządzania zmianą zamiast oceniać każdą instancję EC2.
  • Ponieważ ocena opiera się na stanie systemu w danym momencie, nie odzwierciedla efemerycznego charakteru konfiguracji infrastruktury chmury. Jako osoba oceniająca musisz zrozumieć, że mogą się zdarzyć sytuacje, w których zasób nie będzie miał wymaganych zabezpieczeń. Może to jednak nie oznaczać niezgodności. Mogą istnieć responsywne lub automatyczne kontrolki korygujące, które są oparte na zdarzeniach i uruchamiane po określonym zdarzeniu, takim jak utworzenie lub aktualizacja zasobu. Na przykład bucket Amazon Simple Storage Service (Amazon S3) może zostać utworzony w postaci niezaszyfrowanej, a funkcja odpowiadająca AWS Lambda wykrywa utworzenie bucketu i że jest on nieszyfrowany, a następnie dodaje szyfrowanie do konfiguracji bucketu. Tak więc, jeśli skrypt gromadzenia dowodów jest uruchamiany między utworzeniem bucketu Amazon S3 a uruchomieniem funkcji odpowiadającej Lambda, skrypt zgłosi niezgodność, co nie jest całkowicie poprawne. W takim scenariuszu ponowne uruchomienie skryptów gromadzenia danych pokazałoby ten sam bucket do zaszyfrowania, a więc zgodny. Jako osoba oceniająca musisz wziąć pod uwagę możliwość kontroli bezpieczeństwa opartej na zdarzeniach.
  • Ręczna ocena dowodów nie jest zgodna z modelem DevOps and CI/CD używanym do zarządzania infrastrukturą chmurową. Egzekwowanie kontroli bezpieczeństwa jest w większości zautomatyzowane, podobnie jak provisioning i deprovisioning infrastruktury. Jak wspomniano wcześniej, większość organizacji używa infrastruktury jako kodu i CI/CD do budowania oraz wdrażania. Dlatego ręczne sprawdzanie każdej konfiguracji zasobów nie wnosi dużej wartości. Jeśli organizacja wykorzystała infrastrukturę jako kod, możliwe, że zespół dostarczający dowody i oceniający nie będą mieli w ogóle dostępu do konsoli.

Zobaczmy, jak można wykorzystać automatyzację, aby usprawnić ten proces. Ponieważ oceniana infrastruktura jest zarządzana za pomocą kodu - infrastructure as code - najlepiej jest odpowiednio dostosować ocenę zgodności - compliance as code. AWS zarządza płaszczyzną sterowania z wysokim stopniem automatyzacji, co prowadzi do spójnego doświadczenia użytkownika. Ta spójność z kolei pozwala klientom polegać na wynikach testów zebranych za pomocą ich własnej automatyzacji. Spójność zapewnia zwiększony wgląd w aktywność użytkowników i zasobów, ponieważ akcje AWS Management Console i wywołania usług API są rejestrowane przez AWS CloudTrail i przechowywane jako logi zdarzeń. Logi te zapewniają spójny zestaw danych o tym, kto i kiedy zrobił co na platformie. Zapewnia to dwie korzyści:

  • Pomaga zespołowi technicznemu zaoszczędzić czas i wysiłek podczas zbierania dowodów. Zwykle jest to czas, który zespół musi zabrać ze swojej podstawowej pracy. Dobrze pasuje również do tego, jak są przyzwyczajeni do zarządzania swoim środowiskiem.
  • Oceniającemu pomaga to, ponieważ ułatwia analizę dowodów, co sprawia, że praktyczne jest użycie znacznie większego zestawu próbek do weryfikacji spójności środowiska. Dzięki temu cały proces jest mniej podatny na błędy, dzięki zmniejszeniu liczby błędów ludzkich. Osoba oceniająca może poświęcić więcej czasu na skupienie się na ogólnym modelu zarządzania, takim jak przegląd kontroli bezpieczeństwa w pipeline’ie CI/CD, co może zapobiec wdrażaniu źle skonfigurowanych zasobów.

Użycie AWS CLI do automatyzacji

Czas na demonstrację, w jaki sposób - jako członek zespołu technicznego - można osiągnąć automatyzację za pomocą poleceń AWS Command Line Interface (AWS CLI) w celu zebrania dowodów na określone wymagania PCI DSS. Do tego potrzebna jest infrastruktura i powiązane zasoby AWS, aby można było uruchamiać polecenia AWS CLI w odniesieniu do tych zasobów. W tym poście używamy infrastruktury AWS PCI DSS Quick Start jako przykładowej infrastruktury. Celem korzystania z Quick Start jest uzyskanie różnorodnych zasobów AWS, a także praca w środowisku zgodnym z odpowiednimi wymaganiami PCI DSS. Quick Start może działać na jednym koncie AWS, więc najpierw pokażemy, jak uruchamiać polecenia AWS CLI, zakładając, że wszystkie zasoby znajdują się na jednym koncie, a następnie, jak można uruchamiać te polecenia dla zasobów hostowanych na oddzielnych kontach AWS.

Wymagania wstępne

  1. Wdróż AWS PCI DSS Quick Start. Postępuj zgodnie z instrukcjami deployment guide, aby wdrożyć infrastrukturę PCI DSS Quick Start. To jest Twoje przykładowe środowisko.
  2. Wdróż rolę zabezpieczeń ReadOnlyAccess AWS Identity and Access Management (IAM) na koncie, aby uzyskać dostęp do zasobów AWS. Rola IAM korzysta z zarządzanych zasad AWS Zasada ta zapewnia dostęp read-only do wszystkich usług i zasobów AWS. Możesz również alternatywnie użyć niestandardowych zasad zarządzanych przez klienta i rozszerzyć je na usługi i akcje, których potrzebujesz.
  3. Zainstaluj AWS CLI. AWS CLI jest dostępny w dwóch wersjach. Aby zapoznać się z przykładami w tym poście, zainstaluj AWS CLI w wersji 2.
  4. Skonfiguruj AWS CLI, aby uzyskać dostęp do środowiska AWS za pośrednictwem roli read-only. Postępuj zgodnie z instrukcjami korzystania z roli IAM w AWS CLI. Możesz również zapewnić asesorowi tymczasowy dostęp do swojego środowiska AWS, aby umożliwić mu niezależne gromadzenie dowodów i weryfikację wymagań. Możesz ograniczyć dostęp osoby oceniającej, używając roli IAM z ograniczeniami czasowymi lub źródłowym adresem IP.

Kroki budowania poleceń AWS CLI

Przyjrzyjmy się podzbiorowi wymagań PCI DSS, aby zobaczyć, jak można użyć poleceń AWS CLI do zebrania dowodów na te wymagania. Zaczynamy od jednego wymagania PCI DSS i sprawdzamy, jak utworzyć dokładne polecenie AWS CLI na podstawie procedury testowej. Co do reszty, podajemy przykładowe kontrolki, abyś mógł zobaczyć przepływ:

  • PCI DSS v3.2.1 wymóg 1.1.4 –  Wymaga firewalli przy każdym połączeniu internetowym oraz między dowolnymi sieciami a siecią wewnętrzną.
  • Opis implementacji AWS - W AWS segmentację osiąga się za pomocą grup bezpieczeństwa w Amazon Virtual Private Cloud (Amazon VPC). Grupy bezpieczeństwa są dołączone do elastycznego interfejsu sieciowego instancji EC2 i reprezentują zaporę w każdym punkcie połączenia sieciowego. W architekturze PCI DSS Quick Start podsieci publiczne symulują tradycyjną sieć typu DMZ.
  • Procedura testowania PCI DSS - przejrzyj konfigurację sieci, aby sprawdzić, czy firewall jest zainstalowany w każdym połączeniu internetowym oraz między dowolnymi sieciami DMZ a siecią wewnętrzną, zgodnie z udokumentowanymi standardami konfiguracji i diagramami sieci.
  • Opis dowodów - W referencyjnej implementacji PCI DSS QuickStart „sieci” są reprezentowane przez podsieć Amazon VPC, a „firewalle” odpowiadają grupom zabezpieczeń. W związku z tym lista grup zabezpieczeń, reguły w grupach zabezpieczeń i konfiguracja podsieci można uznać za dowód identyfikujący granice segmentacji. Następnie zaczniemy budować zapytania w celu zebrania tych informacji.

Możesz użyć describe-security-groups, które opisuje określoną grupę bezpieczeństwa lub wszystkie grupy bezpieczeństwa na koncie AWS. Dokumentacja AWS dla tego polecenia zawiera opcje dla wielu parametrów wejściowych, dzięki czemu można zbudować polecenie w celu wyszukania określonej grupy bezpieczeństwa.

describe-security-groups[--filters ]

[--group-ids ]

[--group-names ]

[--dry-run | --no-dry-run]

[--cli-input-json | --cli-input-yaml]

[--starting-token ]

[--page-size ]

[--max-items ]

[--generate-cli-skeleton ]

[--cli-auto-prompt ]

Przejrzenie wszystkich grup bezpieczeństwa

Na razie uruchom polecenie bez żadnych parametrów wejściowych, aby można było przejrzeć wszystkie grupy bezpieczeństwa:

aws ec2 describe-security-groups --output json

W poprzednim poleceniu wyraźnie określasz, że dane wyjściowe mają być sformatowane w formacie JSON, aby można je było wyeksportować do pliku w celu późniejszego przejrzenia, zachowania i/lub przetworzenia. Inne dopuszczalne formaty eksportu to YAML, YAML stream, tekst i tabela. Jeśli nie określisz formatu wyjściowego, domyślnym formatem będzie JSON . W pozostałej części  postu, zamierzamy wyraźnie określić format wyjściowy tylko wtedy, gdy potrzebujemy danych wyjściowych w formacie innym niż JSON.

Określenie pól do zwrócenia

Dane wyjściowe poprzedniego polecenia zawierają wszystkie szczegóły konfiguracji wszystkich grup bezpieczeństwa na określonym koncie AWS i regionie AWS, w którym wykonałeś polecenie. Jeśli chcesz zobaczyć tylko określone szczegóły, możesz dodać parametr --query, (jak pokazano w poniższym poleceniu),  aby wyświetlić tylko określone pola. Na przykład, jeśli chcesz, aby dane wyjściowe zawierały tylko nazwy i identyfikatory grup bezpieczeństwa, zaktualizuj polecenie w następujący sposób:

aws ec2 describe-security-groups --query "SecurityGroups[*].{Name:GroupName,ID:GroupId}"

Przykładowe dane wyjściowe describe-security-groups

Poniżej przedstawiono dane wyjściowe poprzedniego polecenia CLI uruchomionego na PCI Quick Start. 

[

{

"Name": "Compliance-PCI-ManagementVpcTemplate-1OEU0UTNZQGJL-rSecurityGroupVpcNat-1EZMK95HCA31N",

"ID": "sg-02007b846ef47c4de"

},

{

"Name": "Compliance-PCI-ApplicationTemplate-1T8BJ35G1WMLK-rSecurityGroupAppInstance-12I54OAKCJUYZ",

"ID": "sg-025c33917a73505e5"

},

{

"Name": "Compliance-PCI-ApplicationTemplate-1T8BJ35G1WMLK-rSecurityGroupWeb-16DMMPQX2EMC8",

"ID": "sg-030534d6dc5ec5c44"

},

{

"Name": "Compliance-PCI-ProductionVpcTemplate-4ZPJEBD041NA-rSecurityGroupSSHFromProd-G08GLE3WBB9E",

"ID": "sg-030af0754eaf1461b"

},

{

"Name": "Compliance-PCI-ApplicationTemplate-1T8BJ35G1WMLK-rSecurityGroupWebInstance-6Z6RPYK3CVI0",

"ID": "sg-03d08b47099c0bc25"

},

{

"Name": "Compliance-PCI-ApplicationTemplate-1T8BJ35G1WMLK-rSecurityGroupApp-15L7J8MP4JRMQ",

"ID": "sg-054563171d6a5e3e0"

},

{

"Name": "RDS SecurityGroup",

"ID": "sg-06b56cdd8e030a8cd"

},

{

"Name": "Compliance-PCI-ManagementVpcTemplate-1OEU0UTNZQGJL-rSecurityGroupSSHFromMgmt-17XKKVB0TOWEH",

"ID": "sg-078567fe7006c0878"

},

{

"Name": "Compliance-PCI-ProductionVpcTemplate-4ZPJEBD041NA-rSecurityGroupMgmtBastion-1AB1R9YWTZL38",

"ID": "sg-099c1044562e623db"

},

{

"Name": "Compliance-PCI-ProductionVpcTemplate-4ZPJEBD041NA-rSecurityGroupVpcNat-VR63GTH85MQV",

"ID": "sg-0a3dd80f226787d0d"

},

{

"Name": "Compliance-PCI-ManagementVpcTemplate-1OEU0UTNZQGJL-rSecurityGroupBastion-8QSYS07WZP2P",

"ID": "sg-0a7c561d4bffb1c2b"

},

{

"Name": "Compliance-PCI-ApplicationTemplate-1T8BJ35G1WMLK-rSecurityGroupRDS-1T559TABMR55J",

"ID": "sg-0a844344df4dbf9b4"

}

]

Filtrowanie grup bezpieczeństwa za pomocą tagu

Może zaistnieć sytuacja, w której wszystkie Twoje zasoby na danym koncie AWS nie będą objęte oceną PCI DSS. Możesz użyć tagu, aby oznaczyć zasób, którego dotyczy Twoja ocena. Na przykład możesz dodać znacznik o nazwie PCI do grupy bezpieczeństwa i ustawić wartość znacznika na True, aby oznaczyć grupę. W tym miejscu można dodać parametr –filter do polecenia describe-security-groups, aby uzyskać szczegółowe informacje tylko o grupach bezpieczeństwa, które mają ten znacznik.

aws ec2 describe-security-groups --filters Name=tag:PCI,Values=True

Teraz, gdy mamy już wszystkie szczegóły grup bezpieczeństwa, następny krok zgodnie z procedurą testowania wymagań PCI DSS 1.1.4, musisz zebrać szczegóły podsieci Amazon VPC. W tym celu możesz użyć polecenia describe-subnets AWS CLI, które opisuje jedną lub więcej podsieci na koncie AWS. Dostępne w tym celu opcje parametrów wejściowych to:

describe-subnets

[--filters ]

[--subnet-ids ]

[--dry-run | --no-dry-run]

[--cli-input-json | --cli-input-yaml]

[--starting-token ]

[--page-size ]

[--max-items ]

[--generate-cli-skeleton ]

[--cli-auto-prompt ]

Przeglądanie wszystkich podsieci

Użyj następującego polecenia z describe-subnets, aby uzyskać listę wszystkich podsieci z informacjami, takimi jak strefa dostępności, przestrzeń adresowa IP i identyfikator VPC, w którym znajduje się każda podsieć, oraz informację, czy podsieć jest publiczna. Jak wyjaśniono w poprzednich krokach tworzenia zapytań grup bezpieczeństwa, do filtrowania danych wyjściowych można użyć parametru --query. Aby poprawić czytelność, wyświetlamy dane wyjściowe w formacie tabelarycznym.

aws ec2 describe-subnets --query 'Subnets[*].{VPCID:VpcId,AvailabilityZone:AvailabilityZone,CIDR:CidrBlock,PublicSubnet:MapPublicIpOnLaunch}' —output table

Poniżej przedstawiono dane wyjściowe polecenia w formacie tabelarycznym:

| DescribeSubnets |

+------------------+------------------+---------------+--------------------------+

| AvailabilityZone | CIDR | PublicSubnet | VPCID |

+------------------+------------------+---------------+--------------------------+

| us-east-2b | 10.0.12.0/24 | False | vpc-0794eb767622ebf4c |

| us-east-2a | 10.100.96.0/21 | False | vpc-0acd134bfc919d9b6 |

| us-east-2c | 172.31.32.0/20 | True | vpc-d6cf66bd |

| us-east-2a | 10.0.1.0/24 | False | vpc-0794eb767622ebf4c |

| us-east-2a | 10.10.20.0/24 | False | vpc-07ec5a6781fba5e80 |

| us-east-2b | 10.100.20.0/24 | False | vpc-0acd134bfc919d9b6 |

| us-east-2a | 10.0.11.0/24 | False | vpc-0794eb767622ebf4c |

| us-east-2a | 172.31.0.0/20 | True | vpc-d6cf66bd |

| us-east-2b | 10.0.2.0/24 | False | vpc-0794eb767622ebf4c |

| us-east-2b | 10.10.2.0/24 | False | vpc-07ec5a6781fba5e80 |

| us-east-2b | 10.100.208.0/21 | False | vpc-0acd134bfc919d9b6 |

| us-east-2b | 10.10.30.0/24 | False | vpc-07ec5a6781fba5e80 |

| us-east-2b | 10.100.112.0/21 | False | vpc-0acd134bfc919d9b6 |

| us-east-2a | 10.100.192.0/21 | False | vpc-0acd134bfc919d9b6 |

| us-east-2a | 10.100.10.0/24 | False | vpc-0acd134bfc919d9b6 |

| us-east-2b | 172.31.16.0/20 | True | vpc-d6cf66bd |

| us-east-2a | 10.10.1.0/24 | False | vpc-07ec5a6781fba5e80 |

+------------------+------------------+---------------+--------------------------+

Masz teraz wszystkie niezbędne skrypty do zebrania odpowiednich informacji w celu uzyskania dowodów spełnienia wymagań PCI DSS 1.1.4, zgodnie z procedurą testową. Przyjrzyjmy się teraz innym wymaganiom PCI DSS, abyś zaznajomił się z procesem tworzenia zapytań.

Inne wymagania PCI DSS i polecenia AWS CLI

W tej sekcji omówimy inne wymagania dotyczące PCI DSS 3.2.1, a także odpowiadające im polecenia AWS CLI.

Wymóg 1.1.5

Opis grup, ról i obowiązków związanych z zarządzaniem komponentami sieci.

Procedura testowa

Przeprowadź rozmowę z personelem odpowiedzialnym za zarządzanie komponentami sieci, aby potwierdzić, że role i obowiązki są przypisane zgodnie z dokumentacją.

Opis dowodów

Lista zasobów IAM, takich jak użytkownicy, role, grupy i dołączone do nich zasady, określają uprawnienia na poziomie szczegółowym. Audytorzy mogą przeglądać reguły IAM i - dzięki automatyzacji AWS - identyfikować dostęp. AWS IAM szuka również sprzecznych reguł.

Polecenie AWS CLI v2

Użytkownicy uprawnień IAM i szczegóły dotyczące zasad dotyczących użytkowników

aws iam list-users --query 'Users[*].{UserName:UserName,CreateDate:CreateDate}' --output text

aws iam list-user-policies --user-name

aws iam get-user-policy --user-name --policy-name

Grupy uprawnień IAM i szczegóły zasad

aws iam list-groups --query 'Groups[*].{GroupName:GroupName,CreateDate:CreateDate}' --output text

aws iam list-group-policies --group-name

aws iam get-group-policy --group-name --policy-name

 

 

Role uprawnień IAM i szczegóły dotyczące zasad

aws iam list-roles --query 'Roles[*].{RoleName:RoleName,CreateDate:CreateDate}' --output text

aws iam list-role-policies --role-name

aws iam get-role-policy --role-name --policy-name

Wymóg 1.2.2

Zabezpieczenie i synchronizacja plików konfiguracyjnych routera.

Procedura testowa

Sprawdź pliki konfiguracyjne routera, aby upewnić się, że są zabezpieczone przed nieautoryzowanym dostępem.

Opis dowodów

Szablon AWS CloudFormation dla tej architektury jest przechowywany w buckecie S3. Szablon można pobrać za pomocą AWS CLI i porównać z bieżącą tabelą tras, aby sprawdzić, czy są zgodne. Możesz również użyć wykrywania dryfu w szablonie AWS CloudFormation, aby zidentyfikować, czy nastąpiły jakieś nieoczekiwane zmiany.

Polecenie AWS CLI v2

aws ec2 describe-route-tables --output table

aws cloudformation get-template --stack-name --output text

aws detect-stack-drift—stack-name

Wymóg 1.3.6

Umieść komponenty systemu, które przechowują dane posiadaczy kart - takie jak baza danych - w wewnętrznej strefie sieci, oddzielonej od sieci DMZ i innych niezaufanych sieci.

Procedura testowa

Sprawdź konfiguracje zapory i routera, aby zweryfikować, czy składniki systemu, takie jak dane posiadaczy kart, znajdują się w wewnętrznej strefie sieciowej, oddzielonej od sieci DMZ i innych niezaufanych sieci.

Opis dowodów

Wpisy i metadane tabeli tras z instancji EC2 i instancji bazy danych Amazon Relational Database Service (Amazon RDS) identyfikują położenie sieciowe serwerów aplikacji i bazy danych.

Polecenie AWS CLI v2

 

aws ec2 describe-route-tables --output table

aws rds describe-db-instances --query 'DBInstances[*].{DBName:DBName,VpcId:DBSubnetGroup.VpcId,Subnets:DBSubnetGroup.Subnets}'

aws ec2 describe-instances --query 'Reservations[*].{PrivateIP:Instances[0].PrivateIpAddress, VpcId:Instances[0].VpcId,InstanceId:Instances[0].InstanceId, SubnetId:Instances[0].SubnetId}' --output table

aws cloudformation get-template --stack-name —output text

Wymóg 2.2.3

Zaimplementuj dodatkowe funkcje bezpieczeństwa dla wszystkich wymaganych usług, protokołów lub daemonów, które są uważane za niezabezpieczone.

Procedura testowa

Sprawdź ustawienia konfiguracji, aby sprawdzić, czy funkcje zabezpieczeń są udokumentowane i zaimplementowane dla wszystkich niezabezpieczonych usług, daemonów lub protokołów.

Opis dowodów

Reguły grupy bezpieczeństwa pokażą port 443 jako port przychodzący dla load balancerów. Konfiguracja load balancer pokaże użycie zasad TLS. Polityka bucketu S3 pokaże również użycie połączeń TLS.

Polecenie AWS CLI v2

aws ec2 describe-security-groups --query 'SecurityGroups[*].{VpcId:VpcId,SecurityGroupName:GroupName,IngressRule:IpPermissions,EgressRules:IpPermissionsEgress}'

aws elb describe-load-balancers --load-balancer-name --query "LoadBalancerDescriptions[*].{ActivePolicy:ListenerDescriptions}" --output table

aws s3api get-bucket-policy --bucket

Wymóg 2.4

Utrzymuj spis komponentów systemu, które są objęte zakresem PCI DSS.

Procedura testowa

Zbadaj spis systemu, aby upewnić się, że jest utrzymywana lista komponentów sprzętu i oprogramowania oraz zawiera opis funkcji lub zastosowania każdego z nich.

Opis dowodów

Zasoby, które zostały utworzone za pomocą szablonu PCI Quick Start, można pobrać z AWS CLI w celu przeprowadzenia inwentaryzacji komponentów środowiska danych posiadacza karty (CDE).

Polecenie AWS CLI v2

 

aws cloudformation describe-stack-resources --stack-name --query 'StackResources[*].{StackName:StackName,ResourceType:ResourceType,ResourceStatus:ResourceStatus}' —output table

Wymóg 8.2.3

Hasła muszą spełniać następujące warunki:

  • Wymagają długości co najmniej siedmiu znaków.
  • Zawierają zarówno znaki numeryczne, jak i alfabetyczne.

Alternatywnie hasła i frazy muszą mieć złożoność oraz siłę co najmniej równą parametrom określonym powyżej.

Procedura testowa

Aby zobaczyć przykładowe komponenty systemu, sprawdź ustawienia konfiguracji systemu, aby upewnić się, że parametry hasła użytkownika są ustawione tak, aby wymagały co najmniej następującej siły i złożoności:

  • Wymagają długości co najmniej siedmiu znaków.
  • Zawierają zarówno znaki numeryczne, jak i alfabetyczne.

Opis dowodów

Politykę haseł do konta AWS można pobrać z AWS CLI.

Polecenie AWS CLI v2

aws iam get-account-password-policy

Wymóg 8.5

Nie używaj grupowych, współdzielonych ani ogólnych identyfikatorów, haseł ani innych metod uwierzytelniania w następujący sposób:

  • Ogólne ID użytkowników są wyłączane lub usuwane.
  • Nie istnieją wspólne identyfikatory użytkowników służące do administrowania systemem i innych krytycznych funkcji.
  • Wspólne i ogólne identyfikatory użytkowników nie są używane do administrowania żadnymi komponentami systemu.

Procedura testowa

Aby zobaczyć przykładowe składniki systemu, przejrzyj listy identyfikatorów użytkowników, aby sprawdzić, czy:

  • Ogólne identyfikatory użytkowników są wyłączane lub usuwane.
  • Nie istnieją wspólne identyfikatory użytkowników do czynności administracyjnych systemu i innych krytycznych funkcji.
  • Wspólne i ogólne identyfikatory użytkowników nie są używane do administrowania żadnymi komponentami systemu.

Opis dowodów

Grupy IAM i role używane zamiast ogólnego użytkownika root AWS. Powiadomienie o aktywności konta root jest wysyłane za pośrednictwem Amazon Simple Notification Service (Amazon SNS).  Quick Start wykorzystuje alarm Amazon CloudWatch jako kontrolę przeciwko używaniu ogólnego konta root. Przeglądając historię alarmów, można sprawdzić, czy konto root jest regularnie używane.

Polecenie AWS CLI v2

aws cloudwatch describe-alarms

Wymóg 10.1

Wdrażaj ścieżki audytu, aby połączyć cały dostęp do komponentów systemu z każdym indywidualnym użytkownikiem.

Procedura testowa

Zweryfikuj poprzez obserwację i wywiady z administratorem systemu, że:

  • Ścieżki audytu są włączone i aktywne dla komponentów systemu.
  • Dostęp do komponentów systemu jest powiązany z indywidualnymi użytkownikami.

Opis dowodów

AWS CLI może służyć do pobierania szczegółów logów CloudTrail, które są włączane przez szablon Quick Start i skonfigurowane do przechwytywania informacji o wywołaniach interfejsu API dla wszystkich regionów i usług globalnych, takich jak IAM.

Polecenie AWS CLI v2

aws cloudtrail describe-trails --query 'trailList[*].{IncludeGlobalServiceEvents:IncludeGlobalServiceEvents,Name:Name,LogFileValidationEnabled:LogFileValidationEnabled,IsMultiRegionTrail:IsMultiRegionTrail,IsMultiRegionTrail:IsMultiRegionTrail}' —output table

Wymóg 10.7

Procedura testowa

Sprawdź zasady i procedury bezpieczeństwa, aby upewnić się, że definiują następujące elementy:

  • Zasady przechowywania logów inspekcji.
  • Procedury przechowywania logów audytów przez co najmniej rok, dodatkowo przez minimum trzy miesiące są natychmiast dostępne online.

Opis dowodów

Bucket S3 przechowujący wszystkie logi w centralnej lokalizacji można skonfigurować za pomocą polityk cyklu życia, aby przenosić logi do różnych jednostek pamięci zgodnie z polityką przechowywania danych zdefiniowaną przez organizację. AWS CLI może służyć do pobierania polityk cyklu życia bucketów S3, które przechowują centralne logi.

Polecenie AWS CLI v2

aws s3api get-bucket-lifecycle-configuration —bucket

Automatyzacja - następne kroki

Gdy już umiesz używać skryptów do programowej interakcji z usługami AWS, możesz zaprojektować bardziej złożone scenariusze automatyzacji, korzystając z AWS software development toolkit (SDK). AWS SDK umożliwiają dostęp do usług AWS i zarządzanie nimi za pomocą preferowanego języka programowania lub platformy. Możesz uniknąć ręcznego uruchamiania zadań gromadzenia dowodów poprzez AWS CLI, używając zestawów SDK do tworzenia skryptów automatyzacji w celu połączenia wielu zadań gromadzenia dowodów razem. Możesz wstawić logikę oceny do skryptu automatyzacji - na przykład raportowanie tylko grup bezpieczeństwa, które mają otwarty port 22 i są dołączone do instancji znajdujących się w publicznej podsieci. Skrypty te można uruchamiać na różne sposoby, na przykład za pomocą funkcji Lambda lub aplikacji kontenerowych. Aplikacje te można następnie skonfigurować tak, aby były uruchamiane okresowo lub w odpowiedzi na określone zdarzenia - takie jak zmiany konfiguracji - w celu zebrania odpowiednich dowodów.

Uwagi dodatkowe

Porozmawiajmy o kilku dodatkowych kwestiach do rozważenia, jeśli wychodzisz poza zakres AWS PCI DSS Quick Start do środowiska płatności w skali przedsiębiorstwa. Typowe środowisko PCI DSS jest rozproszone na więcej niż jednym koncie AWS. AWS zaleca hosting komponentów systemu CDE, które bezpośrednio obsługują informacje na jednym koncie AWS; oraz, aby systemy, które mają łączność sieciową z lub zarządzają stanem bezpieczeństwa systemów CDE, na oddzielnym koncie AWS. Implementacja dobrych praktyk w środowisku AWS zawiera więcej informacji na temat zaleceń dotyczących architektury wielu kont AWS.

Audyt PCI DSS to punkt w czasie. Jednak środowisko chmurowe jest z natury płynne. Może się zmieniać z powodu jawnych lub niejawnych zmian, takich jak automatyczne skalowanie zasobów lub korygujące kontrole bezpieczeństwa. Musisz upewnić się, że niektóre krytyczne zasoby nie zmienią się w sposób, który może negatywnie wpłynąć na gromadzenie dowodów. Rola IAM używana do zbierania dowodów opartych na skryptach musi być zabezpieczona przed niechcianymi zmianami. Możesz użyć kontroli prewencyjnych, takich jak zasady kontroli usług IAM (SCP), aby zapobiec nieautoryzowanym zmianom roli i zasad, szczególnie odmawiając dostępu do zapisu w tych zasobach nieautoryzowanym rolom IAM. Jako asesor możesz chcieć sprawdzić, czy istnieją mechanizmy kontrolne chroniące rolę IAM używaną do zbierania dowodów w formie skryptów. Ponadto musisz upewnić się, że rola IAM ma odpowiednie uprawnienia do zasobów, z których gromadzi dowody, w przeciwnym razie skrypty nie powiodą się. Należy pamiętać, że nawet przy odpowiednich uprawnieniach roli IAM skrypt może zakończyć się niepowodzeniem, jeśli istnieją inne zasady uprawnień, które jawnie odmawiają dostępu do zasobu. Mogą to być polityki SCP zastosowane do jednostki organizacyjnej lub polityki zasobów dołączone do określonych zasobów. Dokumentacja AWS zawiera informacje, które pomogą Ci lepiej zrozumieć logikę oceny zasad AWS IAM. Należy monitorować odpowiednie role i zasady, aby mieć pewność, że zmiany uprawnień nie wpłyną negatywnie na automatyzację gromadzenia dowodów. Możesz użyć AWS Config do odpowiednich ról i polityk, a następnie zbudować podział lub responsywne zachowanie w przypadku wykrycia niewłaściwych zmian.

W ramach procesu gromadzenia dowodów omówiliśmy, jak gromadzić informacje związane z procedurami testowania wymagań PCI DSS wyszczególnionych powyżej. Równie ważne jest wykazanie, że proces gromadzenia dowodów, który nakreśliliśmy, obejmuje wszystkie zasoby objęte zakresem. Warunkiem wstępnym jest poprawna identyfikacja i bieżąca inwentaryzacja zasobów PCI DSS objętych audytem. Tradycyjnie trzeba utrzymywać statyczną listę in-scope i ręcznie ją aktualizować, gdy zmienia się środowisko. Jest to bardzo podatne na błędy, ponieważ polega na ręcznym sprawdzaniu, czy statyczna lista zasobów jest zgodna z wdrożonym środowiskiem. Potwierdza to dodatkowo raport bezpieczeństwa płatności Verizon 2020. Raport pokazuje, że spośród wszystkich kontroli w DSS, kontrola 2.4 - utrzymywanie spisu komponentów systemu, które są objęte zakresem PCI DSS - doświadczyła największego wzrostu niezgodności. Podskoczyła z 5,6 procent w 2018 roku do 24,0 procent w 2019 roku.

Automatyzację można wykorzystać w celu zmniejszenia prawdopodobieństwa wystąpienia błędu i utrzymania dokładnego spisu zasobów w zakresie, które mogą być reprezentacją wdrożonego CDE niemal w czasie rzeczywistym. Do projektowania automatyzacji można używać tagów zasobów i grup zasobów AWS. Możesz mieć tag specyficzny dla PCI DSS dla wszystkich zasobów, który działa jako identyfikator. Tagi to słowa lub frazy, które działają jak metadane, których możesz użyć do identyfikacji i organizacji zasobów AWS. Możesz użyć grup zasobów do grupowania zasobów na podstawie tagów lub określonych stosów CloudFormation, które były początkowo używane do tworzenia zasobów. Pod warunkiem, że wdrażasz wszystkie swoje zasoby za pomocą kombinacji stosów CloudFormation, możesz wymusić tagowanie podczas tworzenia. Aby dowiedzieć się więcej na temat tagów i strategii tagowania, zapoznaj się z dokumentacją AWS tutaj.

 

Przewodnik audytu dla AWS PCI DSS Quick Start. Podsumowanie 

Audyty i oceny są integralną częścią zapewniania, że organizacje stosują się do dobrych praktyk w zakresie bezpieczeństwa w celu ochrony infrastruktury IT, co z kolei chroni dane biznesowe lub dane klientów. Działania te polegają na przechwytywaniu i przetwarzaniu dowodów w celu sprawdzenia efektywności cyklu życia kontroli bezpieczeństwa.

W tym poście zobaczyłeś, jak możesz wykorzystać automatyzację, aby proces zbierania dowodów był łatwiejszy i mniej czasochłonny. Automatyzacja może być tak prosta, jak używanie AWS CLI do wykonywania poszczególnych zadań. Gdy poczujesz się bardziej komfortowo, możesz tworzyć złożone skrypty za pomocą AWS SDK, zaimplementowanych za pośrednictwem funkcji Lambda. Funkcje te można uruchamiać w razie potrzeby, w zaplanowanych odstępach czasu lub w przypadku zmian w konfiguracji zasobów. Solidna automatyzacja pozwala zespołowi technicznemu, wspierającemu audyt, skupić się na codziennych czynnościach związanych z wspieraniem i zabezpieczaniem środowiska, zamiast spędzać większość czasu na pomaganiu w zbieraniu informacji do dowodów. Możesz dodatkowo wykorzystać automatyzację poprzez użycie tagów zasobów w celu utrzymania dokładnej listy urządzeń objętych zakresem.

Pozytywnym efektem ubocznym automatyzacji jest to, że nie musisz już stresować się wieloma ocenami i audytami, które być może będziesz musiał obsługiwać. Jeśli jesteś asesorem i/lub audytorem, możesz zachęcić osoby oceniające do wykorzystania automatyzacji do gromadzenia dowodów. Pomoże to w ułatwieniu procesu oceny, umożliwiając po pierwsze skupienie się bardziej na walidacji zasobów, której nie można zautomatyzować. Po drugie, możesz użyć szerszego zestawu próbek, aby zweryfikować zgodność z konkretnym wymogiem DSS. Daje to pewność, że badana próbka jest dokładną reprezentacją całego systemu objętego audytem. Po trzecie, automatyzacja pomaga w przedstawianiu informacji dowodowych w spójnym i standardowym formacie, ułatwiając komunikację między wszystkimi podmiotami. Jako osoba oceniająca możesz uniknąć bezproduktywnego spędzania czasu na ocenie dowodów przedstawionych w wielu formatach i skupić się na wydobywaniu właściwych informacji z danych.

Jeśli potrzebujesz pomocy w konfiguracji programu zgodności PCI w AWS lub chcesz uzyskać inne wsparcie w zakresie architektury lub wdrażania w AWS, skontaktuj się z nami!

 

źródło: AWS

PYTANIA? SKONTAKTUJ SIĘ Z NAMI

Zobacz również:

Współdzielona odpowiedzialność w chmurze AWS

Narzędzi wspomagajace proces i strategię migracji do chmury AWS

 

 

Case Studies
Referencje

Firma Hostersi pozwoliła nam osadzić ogólne zagadnienia programu Well Architected Framework w kontekście naszej firmy. Oszczędziło nam to wiele czasu i pozwoliło znaleźć lepiej dopasowane rozwiązania do specyfiki naszego biznesu. WAF był świetnym katalizatorem do wprowadzenie szeregu zmian w obszarze niezawodności, szybkości i bezpieczeństwa edrone. 

Piotr Stachowicz
CTO
W skrócie o nas
Specjalizujemy się w dostarczaniu rozwiązań IT w obszarach projektowania infrastruktury serwerowej, wdrażania chmury obliczeniowej, opieki administracyjnej i bezpieczeństwa danych.