heygrc
PCI DSS Wymaganie 8 w kodzie

Wiedzieć, kto to, i to udowodnić.

Wymaganie 8 dotyczy identyfikacji użytkowników i uwierzytelniania dostępu: każdy użytkownik ma unikalny identyfikator, dostęp jest uwierzytelniany, a uwierzytelnianie wieloskładnikowe jest wymagane do dostępu do środowiska przetwarzania danych posiadaczy kart. Chodzi o to, aby można było powiązać działanie z konkretną osobą i aby same skradzione hasło nie wystarczało do uzyskania dostępu. Większość tych kwestii jest ustalana w kodzie i konfiguracji autoryzacji.

How it shows up in a diff

The shapes the same control failure takes.

Wymaganie 8 słabnie, gdy zmiana ułatwia uzyskanie dostępu lub utrudnia określenie, kto go uzyskał. Powtarzające się wzorce:

  • MFA jest usuwane lub staje się opcjonalne

    Sprawdzanie uwierzytelniania wieloskładnikowego przy dostępie do środowiska przetwarzania danych posiadaczy kart jest usuwane lub ukrywane za flagą, więc same hasło znów wystarcza.

  • Pojawia się współdzielone lub ogólne konto

    Wprowadzane jest współdzielone logowanie lub ogólne konto serwisowe, gdzie wymagana jest identyfikacja indywidualna, więc działania nie mogą być już powiązane z konkretną osobą.

  • Silne uwierzytelnianie jest osłabiane

    Ścieżka, która wymagała uwierzytelniania wieloskładnikowego lub silnego, jest zmieniana tak, aby akceptowała tylko hasło lub słabszy czynnik.

  • Krok uwierzytelniania jest pomijany

    Ścieżka kodu (wewnętrzna trasa, automatyzacja, skrót debugowania) dociera do wrażliwej funkcjonalności bez przechodzenia przez uwierzytelnianie.

  • Pozostawione są domyślne lub statyczne dane uwierzytelniające

    Domyślne, zakodowane na sztywno lub nigdy nie rotowane dane uwierzytelniające pozostają na miejscu, co w praktyce stanowi nieuwierzytelnione drzwi.

Worked example

MFA usunięte z dostępu administratora.

Krok uwierzytelniania wieloskładnikowego spowalnia administratorów, więc zmiana usuwa sprawdzanie drugiego czynnika przy logowaniu administratora, które dociera do systemów przetwarzających dane posiadaczy kart. Logowania stają się szybsze, a teraz same hasło pozwala administratorowi dostać się do środowiska przetwarzania danych posiadaczy kart.

auth/admin.ts+0 -1
async function adminLogin(user, password, otp) {  if (!verifyPassword(user, password)) return deny()-  if (!verifyOtp(user, otp)) return deny()  return grantAdmin(user)}
heygrcPCI DSS Req 8

Usunięcie sprawdzania drugiego czynnika oznacza, że dostęp administratora do środowiska przetwarzania danych posiadaczy kart wymaga teraz tylko hasła, podczas gdy Wymaganie 8 oczekuje ochrony za pomocą uwierzytelniania wieloskładnikowego. Zachowaj ten czynnik; jeśli jest zbyt wolny, popraw doświadczenie drugiego czynnika zamiast go usuwać.

What an auditor does with this

Uwierzytelnianie jest sprawdzane na ścieżkach dostępu, które mają znaczenie.

Audyt PCI sprawdza, jak identyfikowany i uwierzytelniany jest dostęp, zwłaszcza do środowiska przetwarzania danych posiadaczy kart: unikalne identyfikatory, uwierzytelnianie wieloskładnikowe tam, gdzie jest wymagane, brak współdzielonych kont, brak domyślnych danych uwierzytelniających. Zmiana, która usunęła sprawdzanie MFA, dodała współdzielone konto lub pomijała uwierzytelnianie, to konkretna luka za tym, i jest widoczna w diffie kodu lub polityki autoryzacji.

What this is, and is not

Przegląd, a nie dostawca tożsamości.

heygrc sygnalizuje zmiany, które dotyczą Wymagania 8, i cytuje to wymaganie, aby naprawa nastąpiła w pull request. Nie uruchamia uwierzytelniania ani nie zarządza tożsamościami. Wychwytuje moment, w którym zmiana osłabia sposób uwierzytelniania dostępu, na poziomie diffu.