Wykrywanie luk w zabezpieczeniach klastra regulowanego przez usługę AKS dla standardu PCI-DSS 3.2.1 (część 5 z 9)

Azure Kubernetes Service (AKS)
Azure Application Gateway
Microsoft Defender for Cloud

W tym artykule opisano zagadnienia dotyczące klastra usługi Azure Kubernetes Service (AKS), który jest skonfigurowany zgodnie z standardem Payment Card Industry Data Security Standard (PCI-DSS 3.2.1).

Ten artykuł jest częścią serii. Przeczytaj wprowadzenie.

Podobnie jak w przypadku każdego rozwiązania w chmurze obciążenie PCI podlega zagrożeniom sieci, tożsamości i danych. Typowe przykłady źródeł korzystających z luk w zabezpieczeniach obciążeń i systemu to wirusy lub aktualizacje oprogramowania, które generują niepożądane wyniki. Wczesne wykrywanie zagrożeń i reagowanie za pomocą środków zaradczych w odpowiednim czasie. Twórz alerty krytyczne dla działań obciążeń i rozszerzaj te alerty na podstawowe procesy systemowe. Narzędzia do monitorowania integralności plików lub oprogramowania antywirusowego (FIM) muszą być zawsze uruchomione. Mieć odpowiedzialny plan reagowania i zespół, który bada alerty i podejmuje działania.

Ważne

Wskazówki i towarzyszące implementacje bazują na architekturze punktu odniesienia usługi AKS. Ta architektura oparta na topologii piasty i szprych. Sieć wirtualna piasty zawiera zaporę do kontrolowania ruchu wychodzącego, ruchu bramy z sieci lokalnych i trzeciej sieci na potrzeby konserwacji. Sieć wirtualna będące szprychą zawiera klaster AKS, który zapewnia środowisko danych karty (CDE) i hostuje obciążenie PCI DSS.

Logo usługi GitHubGitHub: Klaster bazowy usługi Azure Kubernetes Service (AKS) dla obciążeń regulowanych demonstruje regulowaną infrastrukturę. Implementacja ilustruje konfigurację narzędzi zabezpieczeń w różnych fazach cyklu projektowania i architektury. Obejmuje to przykłady własnych agentów zabezpieczeń w klastrze i narzędzi zabezpieczeń udostępnianych przez platformę Azure, na przykład Microsoft Defender dla Chmury.

Obsługa programu do zarządzania lukami w zabezpieczeniach

Wymaganie 5 — ochrona wszystkich systemów przed złośliwym oprogramowaniem i regularne aktualizowanie oprogramowania antywirusowego lub programów

Obsługa funkcji usługi AKS

Usługa AKS nie zachowuje się jak tradycyjny host aplikacji. Maszyny wirtualne węzłów w klastrze usługi AKS mają ograniczoną ekspozycję i są zaprojektowane tak, aby nie miały bezpośredniego dostępu. Ponieważ maszyny wirtualne węzłów nie są równoważne z tradycyjnymi maszynami wirtualnymi, nie można używać typowych narzędzi maszyn wirtualnych. Dlatego zalecenia w tej sekcji są stosowane za pomocą natywnych konstrukcji kubernetes. Zastosowanie tych wymagań bezpośrednio na poziomie maszyny wirtualnej może spowodować brak obsługi klastra.

Konieczne będzie wdrożenie wybranego oprogramowania chroniącego przed złośliwym kodem w zestawach DaemonSet, które będzie uruchamiane w zasobniku na każdym węźle.

Twoje obowiązki

Upewnij się, że oprogramowanie jest wyspecjalizowane w rozwiązaniu Kubernetes i kontenerach. Istnieje kilka opcji oprogramowania innych firm. Popularne opcje to Prisma Cloud i Aquasec. Istnieją również opcje typu open source, takie jak Falco. Twoim zadaniem jest upewnienie się, że istnieją procesy, aby upewnić się, że oprogramowanie innej firmy jest aktualne. Ponadto monitorowanie i zgłaszanie alertów dotyczących rozwiązań jest Twoim zadaniem.

Wymaganie Odpowiedzialność
Wymaganie 5.1 Wdróż oprogramowanie antywirusowe we wszystkich systemach, na które często ma wpływ złośliwe oprogramowanie (szczególnie komputery osobiste i serwery).
Wymaganie 5.2 Upewnij się, że wszystkie mechanizmy antywirusowe są utrzymywane w następujący sposób:
Wymaganie 5.3 Upewnij się, że mechanizmy antywirusowe są aktywnie uruchomione i nie mogą być wyłączone lub zmienione przez użytkowników, chyba że w szczególności autoryzowane przez zarządzanie na podstawie przypadków przez ograniczony czas.
Wymaganie 5.4 Upewnij się, że zasady zabezpieczeń i procedury operacyjne ochrony systemów przed złośliwym oprogramowaniem są udokumentowane, używane i znane wszystkim stronom, których dotyczy problem.

Wymaganie 6 — opracowywanie i utrzymywanie bezpiecznych systemów i aplikacji

Obsługa funkcji usługi AKS

Podobnie jak w przypadku innych usług platformy Azure usługa AKS jest zgodna z procesami microsoft SDL (Security Development Lifecycle) na potrzeby zabezpieczeń w fazach procesu programowania. Różne składniki są skanowane, począwszy od wczesnych etapów opracowywania i luk w zabezpieczeniach, są jak najszybciej omówione.

Obrazy usługi AKS są zgodne z podejściem SLA FedRAMP, które wymaga poprawek luk w zabezpieczeniach obrazów w ciągu 30 dni. Aby wymusić to wymaganie, wszystkie obrazy są czyszczące za pośrednictwem potoku DevSecOps.

Co tydzień usługa AKS udostępnia nowe obrazy dla pul węzłów. Twoim zadaniem jest zastosowanie ich w celu zapewnienia poprawek i aktualizacji węzłów roboczych usługi Virtual Machine Scale Sets. Aby uzyskać więcej informacji, zobacz Uaktualnianie obrazu węzła usługi Azure Kubernetes Service (AKS).

W przypadku płaszczyzny sterowania usługi AKS usługa AKS instaluje lub uaktualnia poprawki zabezpieczeń. Są aktualizowane co 24 godziny.

Płaszczyzna sterowania usługi AKS i węzły procesu roboczego są wzmacniane względem usługi Center for Internet Security (CIS). W szczególności usługi AKS CIS, Ubuntu CIS i CiS systemu Windows.

Usługa AKS jest zintegrowana z usługą Azure Container Registry (ACR). Usługa ACR z funkcjami ciągłego skanowania w Microsoft Defender dla Chmury umożliwia identyfikowanie narażonych obrazów i aplikacji na różnych poziomach ryzyka. Aby uzyskać informacje na temat skanowania obrazów i kontroli ryzyka, zobacz Microsoft Defender for Containers.

Twoje obowiązki

Wymaganie Odpowiedzialność
Wymaganie 6.1 Ustanów proces identyfikowania luk w zabezpieczeniach przy użyciu zaufanych źródeł zewnętrznych na potrzeby informacji o lukach w zabezpieczeniach i przypisz klasyfikację ryzyka (na przykład "wysoką", "średnią" lub "niską") do nowo odnalezionych luk w zabezpieczeniach.
Wymaganie 6.2 Upewnij się, że wszystkie składniki systemowe i oprogramowanie są chronione przed znanymi lukami w zabezpieczeniach, instalując odpowiednie poprawki zabezpieczeń dostarczone przez dostawcę. Zainstaluj krytyczne poprawki zabezpieczeń w ciągu jednego miesiąca od wydania.
Wymaganie 6.3 Bezpieczne opracowywanie aplikacji wewnętrznych i zewnętrznych (w tym dostępu administracyjnego opartego na sieci Web do aplikacji).
Wymaganie 6.4 Postępuj zgodnie z procesami i procedurami kontroli zmian dla wszystkich zmian w składnikach systemu.
Wymaganie 6.5 Rozwiązywanie typowych luk w programowaniu w procesach tworzenia oprogramowania.
Wymaganie 6.6 W przypadku publicznych aplikacji internetowych należy w sposób ciągły rozwiązywać nowe zagrożenia i luki w zabezpieczeniach oraz zapewnić ochronę tych aplikacji przed znanymi atakami.
Wymaganie 6.7 Upewnij się, że zasady zabezpieczeń i procedury operacyjne służące do tworzenia i utrzymywania bezpiecznych systemów i aplikacji są udokumentowane, używane i znane wszystkim stronom, których dotyczy problem.

Wymaganie 5.1

Wdróż oprogramowanie antywirusowe we wszystkich systemach, na które ma wpływ złośliwe oprogramowanie, w szczególności komputery osobiste i serwery.

Twoje obowiązki

Twoim zadaniem jest ochrona obciążenia, infrastruktury i potoków wdrażania przez wybranie odpowiedniego oprogramowania chroniącego przed złośliwym kodem.

Ponieważ dostęp do maszyn wirtualnych węzłów usługi AKS jest ograniczony, należy chronić system w warstwach, które mogą wprowadzać złośliwe oprogramowanie na maszynach wirtualnych węzłów. Uwzględnij wykrywanie i zapobieganie w węzłach klastra, obrazach kontenerów i interakcjach środowiska uruchomieniowego z serwerem interfejsu API Kubernetes. Oprócz klastra chroń te składniki, które wchodzą w interakcję z klastrem i mogą mieć zainstalowane oprogramowanie antywirusowe w tradycyjny sposób:

  • Pola skokowe
  • Kompilowanie agentów

Dopasuj działania skanowania do cyklu projektowania zabezpieczeń (SDL). Po zakończeniu procesu SDL upewnia się, że skanowanie różnych składników architektury rozpoczyna się we wczesnych etapach programowania i luk w zabezpieczeniach jest jak najszybsze.

Wymaganie 5.1.1

Upewnij się, że programy antywirusowe są w stanie wykrywać, usuwać i chronić przed wszystkimi znanymi typami złośliwego oprogramowania.

Twoje obowiązki

Dowiedz się więcej na temat zestawu funkcji każdej oferty oprogramowania i głębokości skanowania, które może wykonać. Oprogramowanie powinno blokować typowe zagrożenia i monitorować nowe zagrożenia. Upewnij się, że oprogramowanie jest regularnie aktualizowane, testowane i zastępowane, jeśli nie jest możliwe. Rozważ oprogramowanie opracowane przez zaufanych dostawców.

  • Narzędzia do monitorowania, które wykrywają luki w zabezpieczeniach klastra.

    W usłudze AKS nie można uruchamiać tradycyjnych rozwiązań maszyn wirtualnych opartych na agentach bezpośrednio na maszynach wirtualnych węzłów. Należy wdrożyć oprogramowanie chroniące przed złośliwym kodem w zestawach DaemonSet, które będzie uruchamiane w zasobniku na każdym węźle.

    Wybierz oprogramowanie wyspecjalizowane w rozwiązaniu Kubernetes i kontenerach. Istnieje kilka opcji oprogramowania innych firm. Popularne opcje to Prisma Cloud i Aquasec. Istnieją również opcje typu open source, takie jak Falco.

    Po wdrożeniu są one uruchamiane jako agenci w klastrze, który skanuje wszystkie pule węzłów użytkownika i systemu. Mimo że usługa AKS używa pul węzłów systemowych dla plików binarnych systemu środowiska uruchomieniowego, bazowe zasoby obliczeniowe są nadal Twoim zadaniem.

    Celem uruchomienia agenta jest wykrywanie nietypowych działań klastra. Czy na przykład aplikacja próbuje wywołać serwer interfejsu API? Niektóre rozwiązania generują dziennik wywołań interfejsu API między zasobnikami, generują raporty i generują alerty. Upewnij się, że przeglądasz te dzienniki i podejmujesz niezbędne działania.

    Zainstaluj agentów zabezpieczeń natychmiast po uruchomieniu klastra, aby zminimalizować niemonitorowane luki między wdrożeniem zasobów klastra i usługi AKS.

    Agenci zabezpieczeń działają z wysokimi uprawnieniami i skanują wszystko, co działa w klastrze, a nie tylko obciążenie. Nie mogą stać się źródłem eksfiltracji danych. Ponadto ataki łańcuchów dostaw są typowe dla kontenerów. Używaj strategii ochrony w głębi systemu i upewnij się, że oprogramowanie i wszystkie zależności są zaufane.

    Uruchom również oprogramowanie antywirusowe na zasobach zewnętrznych, które uczestniczą w operacjach klastra. Niektóre przykłady obejmują pola przesiadkowe, agentów kompilacji i obrazy kontenerów, które współdziałają z klastrem.

    Podczas skanowania agenta nie należy blokować ani zakłócać krytycznych operacji klastra, takich jak blokowanie plików. Nieprawidłowa konfiguracja może powodować problemy ze stabilnością i może spowodować, że klaster nie jest w stanie obsłużyć.

    Ważne

    Implementacja referencyjna udostępnia wdrożenie zastępcze DaemonSet do uruchamiania agenta ochrony przed złośliwym kodem. Agent zostanie uruchomiony na każdej maszynie wirtualnej węzła w klastrze. W tym wdrożeniu należy wybrać oprogramowanie chroniące przed złośliwym kodem.

  • Utrzymywanie bezpieczeństwa kontenerów. Uruchom narzędzia do skanowania kontenerów w potoku, aby wykrywać zagrożenia, które mogą przechodzić przez obrazy kontenerów, takie jak skanowanie luk w zabezpieczeniach ciągłej integracji/ciągłego wdrażania w usłudze Microsoft Defender for Containers. Opcje innych firm obejmują Trivy i Clair. Podczas tworzenia obrazów zawsze dążysz do bezstrojowych obrazów. Te obrazy zawierają tylko podstawowe pliki binarne w podstawowym obrazie systemu Linux i zmniejszają obszar powierzchni podczas ataków. Użyj rozwiązania do ciągłego skanowania, takiego jak ocena luk w zabezpieczeniach w usłudze Microsoft Defender for Containers , w celu ciągłego skanowania obrazów już magazynowanych w repozytoriach.

Wymaganie 5.1.2

W przypadku systemów, które nie są często objęte złośliwym oprogramowaniem, należy przeprowadzić okresowe oceny w celu zidentyfikowania i oceny ewoluujących zagrożeń związanych ze złośliwym oprogramowaniem, aby potwierdzić, czy oprogramowanie antywirusowe nadal nie jest wymagane.

Twoje obowiązki

Typowe luki w zabezpieczeniach mogą mieć wpływ na składniki spoza klastra. Śledź luki w zabezpieczeniach, obserwując CVE i inne alerty zabezpieczeń z platformy Azure. Sprawdź aktualizacje platformy Azure pod kątem nowych funkcji, które mogą wykrywać luki w zabezpieczeniach i uruchamiać rozwiązania antywirusowe w usługach hostowanych na platformie Azure.

Na przykład magazyn obiektów blob powinien mieć osłonę reputacji złośliwego oprogramowania w celu wykrywania podejrzanych przekazań. Nowa funkcja, Microsoft Defender for Storage, obejmuje kontrolę reputacji złośliwego oprogramowania. Należy również rozważyć, czy rozwiązanie antywirusowe jest wymagane dla takiej usługi.

Wymaganie 5.2

Upewnij się, że wszystkie mechanizmy antywirusowe są utrzymywane w następujący sposób:

  • Są przechowywane na bieżąco,
  • Wykonywanie okresowych skanów
  • Generuj dzienniki inspekcji, które są zachowywane zgodnie z wymaganiami PCI DSS 10.7.

Twoje obowiązki

  • Upewnij się, że klaster jest chroniony przed nowymi atakami przy użyciu najnowszej wersji oprogramowania antywirusowego. Istnieją dwa typy aktualizacji, które należy wziąć pod uwagę:
    • Oprogramowanie antywirusowe musi nadążać za najnowszymi aktualizacjami funkcji. Jednym ze sposobów jest zaplanowanie aktualizacji w ramach aktualizacji platformy.
    • Aktualizacje analizy zabezpieczeń muszą być stosowane natychmiast po ich udostępnieniu w celu wykrywania i identyfikowania najnowszych zagrożeń. Wybierz opcję aktualizacji automatycznych.
  • Sprawdź, czy skanowanie luk w zabezpieczeniach jest uruchomione zgodnie z harmonogramem.
  • Zachowaj dzienniki generowane w wyniku skanowania wskazującego składniki w dobrej kondycji i złej kondycji. Zalecany okres przechowywania jest podany w wymaganiach 10.7, czyli roku.
  • Należy przeprowadzić proces klasyfikowania i korygowania wykrytych problemów.

Aby uzyskać informacje o sposobie stosowania aktualizacji programu antywirusowego Microsoft Defender, zobacz Zarządzanie aktualizacjami programu antywirusowego Microsoft Defender i stosowanie punktów odniesienia.

Wymaganie 5.3

Funkcje antywirusowe powinny być aktywnie uruchomione i nie mogą być wyłączone ani modyfikowane przez użytkowników. Z wyjątkiem sytuacji, gdy jest autoryzowana przez zarządzanie na podstawie przypadków przez ograniczony czas.

Twoje obowiązki

Odpowiadasz za konfigurowanie monitorowania i zgłaszania alertów agenta zabezpieczeń. Twórz alerty krytyczne nie tylko dla obciążenia, ale także podstawowych procesów systemowych. Agent musi być zawsze uruchomiony. Odpowiadanie na alerty zgłaszane przez oprogramowanie chroniące przed złośliwym kodem.

  • Zachowaj dziennik aktywności skanowania. Upewnij się, że proces skanowania nie rejestruje żadnych danych karty zeskrobanych z dysku lub pamięci.
  • Ustaw alerty dla działań, które mogą spowodować nieoczekiwane wygaśnięcie zgodności. Alerty nie powinny być wyłączane przypadkowo.
  • Ogranicz uprawnienia do modyfikowania wdrożenia agenta (i innych krytycznych narzędzi zabezpieczeń). Zachowaj te uprawnienia oddzielnie od uprawnień wdrożenia obciążenia.
  • Nie wdrażaj obciążeń, jeśli agenci zabezpieczeń nie działają zgodnie z oczekiwaniami.

Wymaganie 5.4

Sprawdź, czy zasady zabezpieczeń i procedury operacyjne ochrony systemów przed złośliwym oprogramowaniem są udokumentowane, używane i przekazywane wszystkim stronom, których dotyczy problem.

Twoje obowiązki

Ważne jest, aby zachować szczegółową dokumentację dotyczącą procesu i zasad, szczególnie szczegółowe informacje o rozwiązaniu antywirusowym używanym do ochrony systemu. Dołącz informacje, takie jak miejsce przechowywania aktualizacji analizy zabezpieczeń w cyklu produktu, częstotliwość skanowania i informacje o możliwościach skanowania w czasie rzeczywistym.

Zasady przechowywania do przechowywania dzienników. W celach związanych ze zgodnością może być konieczne przechowywanie długoterminowe.

Zachowaj dokumentację dotyczącą standardowych procedur operacyjnych do oceny i korygowania problemów. Osoby, które działają w regulowanych środowiskach, muszą być wykształcone, poinformowane i motywowane do wspierania gwarancji bezpieczeństwa. Jest to ważne dla osób, które są częścią procesu zatwierdzania z perspektywy zasad.

Wymaganie 6.1

Ustanów proces identyfikowania luk w zabezpieczeniach, używania zaufanych źródeł zewnętrznych na potrzeby informacji o lukach w zabezpieczeniach i przypisywania klasyfikacji ryzyka (na przykład wysokiej, średniej lub niskiej) do nowo wykrytych luk w zabezpieczeniach.

Twoje obowiązki

Mają procesy sprawdzające wykryte luki w zabezpieczeniach i odpowiednio sklasyfikowane. Microsoft Defender dla Chmury pokazuje zalecenia i alerty, typ zasobu na podstawie i jego ważność, środowisko. Większość alertów ma taktykę MITRE ATT&CK®, która może pomóc zrozumieć intencję łańcucha zabić. Upewnij się, że masz plan korygowania, aby zbadać i rozwiązać problem.

W usłudze AKS można używać usługi Azure Container Registry w połączeniu z ciągłym skanowaniem w celu identyfikowania narażonych obrazów i aplikacji na różnych poziomach ryzyka. Wyniki można wyświetlić w Microsoft Defender dla Chmury.

Aby uzyskać więcej informacji, zobacz Container Registry.

Wymaganie 6.2

Upewnij się, że wszystkie składniki systemowe i oprogramowanie są chronione przed znanymi lukami w zabezpieczeniach, instalując odpowiednie poprawki zabezpieczeń dostarczone przez dostawcę. Zainstaluj krytyczne poprawki zabezpieczeń w ciągu jednego miesiąca od wydania.

Twoje obowiązki

  • Aby zapobiec atakom łańcucha dostaw od dostawców innych firm, upewnij się, że wszystkie zależności są zaufane. Ważne jest, aby wybrać dostawcę, który jest zaufany i zaufany.

  • Co tydzień usługa AKS udostępnia nowe obrazy dla pul węzłów. Te obrazy nie są stosowane automatycznie. Zastosuj je tak szybko, jak są dostępne. Możesz zaktualizować ręcznie lub automatycznie za pomocą aktualizacji obrazu węzła. Aby uzyskać więcej informacji, zobacz Uaktualnianie obrazu węzła usługi Azure Kubernetes Service (AKS)

    W przypadku płaszczyzny sterowania usługi AKS usługa AKS instaluje lub uaktualnia poprawki zabezpieczeń.

  • Co 24 godziny węzły usługi AKS automatycznie pobierają i instalują poszczególne poprawki systemu operacyjnego i zabezpieczeń. Zapora nie może blokować tego ruchu, jeśli chcesz otrzymywać te aktualizacje.

    Rozważ włączenie funkcji raportowania na agencie zabezpieczeń, aby uzyskać informacje o zastosowanych aktualizacjach. Niektóre aktualizacje zabezpieczeń wymagają ponownego uruchomienia. Pamiętaj, aby przejrzeć alerty i podjąć działania, aby zapewnić minimalny lub zerowy przestój aplikacji z tymi ponownymi uruchomieniami. Opcja open source do wykonania ponownych uruchomień w kontrolowany sposób to Kured (demon ponownego uruchamiania Kubernetes).

  • Rozszerzanie procesu stosowania poprawek na zasoby poza aprowizowaniem klastra, takie jak pola przesiadkowe i agenci kompilacji.

  • Bądź na bieżąco z obsługiwanymi wersjami usługi AKS. Jeśli projekt korzysta z wersji, która osiągnęła koniec życia, przeprowadź uaktualnienie do bieżącej wersji. Aby uzyskać więcej informacji, zobacz Obsługiwane wersje usługi AKS.

Wymaganie 6.3

Bezpieczne opracowywanie aplikacji wewnętrznych i zewnętrznych (w tym dostępu administracyjnego opartego na sieci Web do aplikacji) w następujący sposób:

  • Zgodnie z normą PCI DSS (na przykład bezpieczne uwierzytelnianie i rejestrowanie)
  • Na podstawie standardów branżowych i/lub najlepszych rozwiązań.
  • Włączenie zabezpieczeń informacji w całym cyklu życia tworzenia oprogramowania, które ma zastosowanie do wszystkich programów opracowanych wewnętrznie, w tym na zamówienie lub niestandardowego oprogramowania opracowanego przez inną firmę.

Twoje obowiązki

Integrowanie i określanie priorytetów opcji zabezpieczeń w ramach cyklu życia i operacji obciążenia.

Kilka struktur branżowych mapuje się na cykl życia, taki jak struktura NIST . Funkcje NIST — identyfikowanie, ochrona, wykrywanie, reagowanie i odzyskiwanie — zapewniają strategie kontroli prewencyjnej w każdej fazie.

Program Microsoft SDL (Security Development Lifecycle) udostępnia najlepsze rozwiązania, narzędzia i procesy zabezpieczeń w fazach procesu programowania. Praktyki dotyczące języka SDL firmy Microsoft są przestrzegane dla wszystkich usług platformy Azure, w tym usługi AKS. Przestrzegamy również struktury Operational Security Assurance (OSA) na potrzeby obsługi usług w chmurze. Upewnij się, że masz podobny proces. Te rozwiązania są publikowane, aby ułatwić zabezpieczanie aplikacji.

Wymaganie 6.3.1

Usuń konta aplikacji deweloperskich, testowych i/lub niestandardowych, identyfikatorów użytkowników i haseł, zanim aplikacje staną się aktywne lub zostaną wydane klientom.

Twoje obowiązki

W ramach tworzenia klastra domyślnie jest tworzonych wielu lokalnych użytkowników platformy Kubernetes. Nie można przeprowadzić inspekcji tych użytkowników, ponieważ nie reprezentują unikatowej tożsamości. Niektóre z nich mają wysokie uprawnienia. Wyłącz tych użytkowników przy użyciu funkcji Wyłącz konta lokalne usługi AKS.

Aby zapoznać się z innymi zagadnieniami, zapoznaj się ze wskazówkami w oficjalnym standardzie PCI-DSS 3.2.1.

Wymaganie 6.3.2

Przejrzyj kod niestandardowy przed wydaniem do środowiska produkcyjnego lub klientów, aby zidentyfikować potencjalną lukę w zabezpieczeniach kodowania (przy użyciu procesów ręcznych lub zautomatyzowanych), aby uwzględnić następujące elementy:

  • Zmiany kodu są przeglądane przez osoby inne niż autor kodu źródłowego, a osoby znające się na temat technik przeglądu kodu i bezpiecznych praktyk kodowania.
  • Przeglądy kodu zapewniają, że kod jest opracowywany zgodnie z bezpiecznymi wytycznymi dotyczącymi kodowania
  • Odpowiednie poprawki są implementowane przed wydaniem.
  • Wyniki przeglądu kodu są przeglądane i zatwierdzane przez zarządzanie przed wydaniem.
Twoje obowiązki

Wszystkie oprogramowanie zainstalowane w klastrze pochodzi z rejestru kontenerów. Podobnie jak w kodzie aplikacji, procesy i osoby przejrzystują obrazy platformy Azure i innych firm (DockerFile i OCI). Ponadto:

  • Rozpocznij skanowanie obrazów kontenerów z początkowych etapów tworzenia klastra. Utwórz proces skanowania jako część potoków ciągłej integracji/ciągłego wdrażania.

    Upewnij się, że potoki wdrażania są bramowane w taki sposób, aby oba obrazy uruchamiania klastra i obciążenie przeszły przez bramę przeglądu i/lub kwarantanny. Zachowaj historię o tym, jak i jakie procesy były używane przed ich pociągnięciem do klastra.

  • Zmniejsz rozmiar obrazu. Zazwyczaj obrazy zawierają więcej plików binarnych niż wymagane. Zmniejszenie rozmiaru obrazu nie tylko ma korzyści z wydajności, ale także ogranicza powierzchnię ataków. Na przykład użycie dystrybucji zminimalizuje podstawowe obrazy systemu Linux.

  • Użyj narzędzi do analizy statycznej, które weryfikują integralność pliku Dockerfile i manifestów. Opcje innych firm obejmują Dockle i Trivy.

  • Używaj tylko podpisanych obrazów.

  • Omówienie (i akceptowanie) obrazu podstawowego dostarczonego przez platformę Azure oraz sposobu, w jaki jest on zgodny z testami porównawczymi CIS. Aby uzyskać więcej informacji, zobacz Centrum testów porównawczych zabezpieczeń internetowych (CIS).

Usługa Azure Container Registry z ciągłym skanowaniem w Microsoft Defender dla Chmury pomoże zidentyfikować obrazy podatne na zagrożenia i różne zagrożenia, które może stanowić dla obciążenia. Aby uzyskać więcej informacji na temat skanowania obrazów i kontroli ryzyka, zobacz Zabezpieczenia kontenera.

Wymaganie 6.4

Postępuj zgodnie z procesami i procedurami kontroli zmian dla wszystkich zmian w składnikach systemu.

Twoje obowiązki

Pamiętaj, aby udokumentować procesy kontroli zmian i zaprojektować potoki wdrażania zgodnie z tymi procesami. Uwzględnij inne procesy do wykrywania sytuacji, w których procesy i rzeczywiste potoki nie są wyrównane.

Wymaganie 6.4.1, 6.4.2

  • Oddzielaj środowiska programistyczne/testowe od środowisk produkcyjnych i wymuszaj separację z mechanizmami kontroli dostępu.
  • Rozdzielenie obowiązków między środowiskami deweloperskimi/testowymi i produkcyjnymi.
Twoje obowiązki

Obsługa oddzielnych środowisk produkcyjnych i przedprodukcyjnej oraz ról działających w tych środowiskach.

  • Nie używaj klastra produkcyjnego do celów programistycznych/testowych. Na przykład nie instaluj mostka na platformie Kubernetes w klastrach produkcyjnych. Używaj dedykowanych klastrów dla obciążeń nieprodukcyjnych.

  • Upewnij się, że środowiska produkcyjne nie zezwalają na dostęp sieciowy do środowisk przedprodukcyjnych i odwrotnie.

  • Nie używaj ponownie tożsamości systemowych w środowiskach przedprodukcyjnych i produkcyjnych.

    Użyj grup Entra firmy Microsoft dla grup, takich jak administratorzy klastra lub podmioty zabezpieczeń potoku. Nie używaj uogólnionych ani wspólnych grup jako kontroli dostępu. Nie należy ponownie używać tych grup między klastrami przedprodukcyjnymi i produkcyjnymi. Jednym ze sposobów jest użycie nazwy klastra (lub innego nieprzezroczystego identyfikatora) w nazwie grupy, aby być jawne dla członkostwa.

    Należy odpowiednio używać ról kontroli dostępu opartej na rolach (RBAC) platformy Azure między środowiskami. Zazwyczaj więcej ról i praw jest przypisywanych w środowiskach przedprodukcyjnych.

    Tożsamości tylko w środowisku przedprodukcyjnym (przyznane potokom lub zespołom inżynierów oprogramowania) nie powinny mieć dostępu do środowiska produkcyjnego. Z drugiej strony, wszystkie tożsamości tylko w środowisku produkcyjnym (takie jak potoki) nie powinny mieć dostępu w klastrach przedprodukcyjnych.

    Nie używaj tej samej tożsamości zarządzanej przez użytkownika dla żadnego zasobu w środowisku przedprodukcyjnym i produkcyjnym. To zalecenie dotyczy wszystkich zasobów, które obsługują tożsamość zarządzaną przez użytkownika, a nie tylko zasób wdrożony w klastrze. Z reguły zasoby platformy Azure, które wymagają tożsamości, powinny mieć własną odrębną tożsamość zamiast udostępniać je innym zasobom.

  • Użyj dostępu just in time (JIT), aby uzyskać dostęp o wysokim poziomie uprawnień, w tym w klastrach przedprodukcyjnych, jeśli to możliwe. Użyj zasad dostępu warunkowego zarówno w klastrach przedprodukcyjnym, jak i produkcyjnym.

Wymaganie 6.4.3

Dane produkcyjne (aktywne sieci PAN) nie są używane do testowania ani programowania.

Twoje obowiązki

Upewnij się, że dane CHD nie przepływają do środowiska deweloperskiego/testowego. Zawierają jasną dokumentację, która zawiera procedurę przenoszenia danych z środowiska produkcyjnego do tworzenia i testowania. Usunięcie rzeczywistych danych musi zostać uwzględnione w tej procedurze i zatwierdzone przez strony odpowiedzialności.

Wymaganie 6.4.4

Usunięcie danych testowych i kont ze składników systemowych, zanim system stanie się aktywny /przechodzi do środowiska produkcyjnego.

Twoje obowiązki

Usuń domyślne dane konfiguracji, przykładowe dane i dobrze znane dane testowe w systemie przed wdrożeniem w środowisku produkcyjnym. Do celów testowych nie używaj danych posiadaczy kart.

Wymaganie 6.4.5

Procedury kontroli zmian implementacji poprawek zabezpieczeń i modyfikacji oprogramowania muszą obejmować następujące elementy:

  • Dokumentacja wpływu 6.4.5.1.
  • 6.4.5.2 Udokumentowane zatwierdzenie zmian przez autoryzowane strony.
  • 6.4.5.3 Testowanie funkcjonalności w celu sprawdzenia, czy zmiana nie ma negatywnego wpływu na bezpieczeństwo systemu.
  • 6.4.5.4 Procedury wycofywania.
Twoje obowiązki

Te wskazówki wskazują na powyższe wymagania:

  • Dokumentowanie zmian infrastruktury, które są oczekiwane w wyniku poprawek zabezpieczeń i modyfikacji oprogramowania. Ten proces jest łatwiejszy dzięki podejściu infrastruktury jako kodu (IaC). Na przykład przy użyciu szablonu usługi Azure Resource Manager (szablonu usługi ARM) do wdrożenia można wyświetlić podgląd zmian za pomocą operacji analizy co-jeżeli. Aby uzyskać więcej informacji, zobacz Wdrażanie szablonu usługi ARM operacji analizy co-jeżeli dla zmiany infrastruktury.

  • Zaimplementuj bramy w potokach wdrażania, które weryfikują zatwierdzenie zmian w przypadku regularnych wdrożeń. Udokumentowanie uzasadnienia wdrożeń awaryjnych, w których mogły zostać pominięte bramy.

    Zdefiniuj poziomy i głębokość zmian. Upewnij się, że zespół zgadza się na definicję znaczących zmian, w przeciwieństwie do drobnych zmian. Jeśli jest to praktyczne, zautomatyzuj odnajdywanie niektórych z tych zmian. Recenzenci obciążenia, infrastruktury i potoku muszą mieć jasne zrozumienie poziomów i weryfikowanie pod kątem tych kryteriów.

  • Przetestuj dostępność zabezpieczeń. Upewnij się, że transakcje syntetyczne testują obawy dotyczące zabezpieczeń (zarówno zezwalaj, jak i odmowy). Upewnij się również, że te testy syntetyczne są uruchomione w środowiskach przedprodukcyjnych.

  • W przypadku, gdy poprawka zabezpieczeń ma nieoczekiwane wyniki, należy wykonać proces wycofywania. Typową strategią jest wdrożenie wcześniejszego stanu przy użyciu wdrożeń niebieskich zielonych. W przypadku obciążeń, w tym baz danych, masz strategię, która działa dla określonej topologii i jest ograniczona do jednostek wdrożenia.

Wymaganie 6.5

Rozwiąż typowe luki w zabezpieczeniach kodowania w procesach tworzenia oprogramowania w następujący sposób:

  • Szkolenie deweloperów co najmniej rocznie w aktualnych bezpiecznych technikach kodowania, w tym o sposobach unikania typowych luk w programowaniu.
  • Twórz aplikacje na podstawie bezpiecznych wytycznych dotyczących kodowania.

Twoje obowiązki

Ważne jest, aby zespoły aplikacji i zespoły operacyjne kształciły, informowały i motywowały do wspierania działań skanowania obciążeń i infrastruktury. Oto kilka zasobów:

Wymaganie 6.6

W przypadku publicznych aplikacji internetowych należy w sposób ciągły rozwiązywać nowe zagrożenia i luki w zabezpieczeniach. Upewnij się, że te aplikacje są chronione przed znanymi atakami za pomocą jednej z następujących metod:

  • Przejrzyj publiczne aplikacje internetowe przy użyciu ręcznych lub zautomatyzowanych narzędzi do oceny zabezpieczeń lub metod oceny luk w zabezpieczeniach aplikacji. Wykonaj ocenę luk w zabezpieczeniach co najmniej rocznie i po wszelkich zmianach.

    Uwaga

    Ta ocena nie jest taka sama jak skanowanie luk w zabezpieczeniach wykonywane w ramach wymagania 11.2.

  • Zainstaluj zautomatyzowane rozwiązanie, które wykrywa i zapobiega atakom internetowym. Na przykład zapora aplikacji internetowej. Wdróż przed publicznymi aplikacjami internetowymi i aktywnie oceniaj cały ruch.

Twoje obowiązki

Sprawdzanie w celu wykrywania ruchu pochodzącego z publicznego Internetu przy użyciu zapory aplikacji internetowej (WAF). W tej architekturze aplikacja systemu Azure Gateway sprawdza cały ruch przychodzący przy użyciu zintegrowanej zapory aplikacji internetowej. Zapora aplikacji internetowej jest oparta na podstawowym zestawie reguł (CRS) z projektu Open Web Application Security Project (OWASP). Jeśli kontrole techniczne nie zostały wprowadzone, mają mechanizmy kontroli wyrównujących. Jednym ze sposobów jest ręczna inspekcja kodu.

Upewnij się, że używasz najnowszych wersji zestawu reguł i zastosuj reguły, które są istotne dla obciążenia. Reguły powinny być uruchamiane w trybie zapobiegania . To wymaganie można wymusić, dodając wystąpienie usługi Azure Policy, które sprawdza, czy zapora aplikacji internetowej jest włączona i działa w tym trybie.

Zachowaj dzienniki generowane przez zaporę aplikacji internetowej usługi Application Gateway, aby uzyskać szczegółowe informacje o wykrytych zagrożeniach. Dostosuj reguły zgodnie z potrzebami.

Przeprowadź testy penetracyjne skoncentrowane na kodzie aplikacji. W ten sposób praktycy, którzy nie są częścią zespołu aplikacji, znajdą luki w zabezpieczeniach (takie jak wstrzyknięcie kodu SQL i przechodzenie do katalogu), zbierając informacje, analizując luki w zabezpieczeniach i raportując. W tym ćwiczeniu praktycy mogą potrzebować dostępu do poufnych danych. Aby upewnić się, że intencja nie jest niewłaściwa, postępuj zgodnie ze wskazówkami podanymi w artykule Reguły testowania penetracyjnego zakontraktowania.

Wymaganie 6.7

Upewnij się, że zasady zabezpieczeń i procedury operacyjne służące do tworzenia i utrzymywania bezpiecznych systemów i aplikacji są udokumentowane, używane i znane wszystkim stronom, których dotyczy problem.

Twoje obowiązki

Ważne jest, aby zachować szczegółową dokumentację procesów i zasad. Zespoły powinny być przeszkolone w celu nadania priorytetów wyborom zabezpieczeń w ramach cyklu życia i operacji obciążenia.

Biblioteka Microsoft SDL zapewnia najlepsze rozwiązania, narzędzia i procesy dotyczące zabezpieczeń w fazach procesu programowania. Praktyki dotyczące języka SDL firmy Microsoft są przestrzegane ściśle wewnętrznie w sposobie tworzenia oprogramowania w firmie Microsoft. Przestrzegamy również struktury Operational Security Assurance (OSA) na potrzeby obsługi usług w chmurze. Te rozwiązania są publikowane, aby ułatwić zabezpieczanie aplikacji.

Zachowaj szczegółową dokumentację dotyczącą testów penetracyjnych opisujących zakres testów, procesów klasyfikacji i strategii korygowania wykrytych problemów. Jeśli wystąpi zdarzenie, uwzględnij ocenę wymagania 6 w ramach analizy głównej przyczyny. Jeśli zostaną wykryte luki (na przykład zostanie wykryte naruszenie reguły OWASP), zamknij te luki.

W dokumentacji zapoznaj się z jasnymi wytycznymi dotyczącymi oczekiwanego stanu ochrony zapory aplikacji internetowej.

Osoby, które obsługują regulowane środowiska, muszą być wykształcone, poinformowane i motywowane do wspierania gwarancji bezpieczeństwa. Ważne jest, aby osoby, które są częścią procesu zatwierdzania z perspektywy zasad.

Następne kroki

Ogranicz dostęp do danych posiadaczy kart przez firmę, aby wiedzieć. Identyfikowanie i uwierzytelnianie dostępu do składników systemowych. Ogranicz fizyczny dostęp do danych posiadaczy kart.