heygrc
Szyfrowanie ePHI w kodzie zgodnie z HIPAA

ePHI, które powinny być szyfrowane w stanie spoczynku.

164.312(a)(2)(iv) (szyfrowanie i deszyfrowanie) to specyfikacja adresowalna Regulaminu Bezpieczeństwa HIPAA dotycząca szyfrowania elektronicznych chronionych informacji zdrowotnych (ePHI). Adresowalna oznacza, że należy ją wdrożyć tam, gdzie jest to rozsądne i odpowiednie, lub udokumentować, dlaczego nie, i wprowadzić równoważne zabezpieczenie. W praktyce, dla większości systemów przechowujących ePHI, oznacza to szyfrowanie w stanie spoczynku, a decyzja ta zależy od tego, jak magazyny są konfigurowane w kodzie.

How it shows up in a diff

The shapes the same control failure takes.

Szyfrowanie w stanie spoczynku słabnie, gdy magazyn ePHI jest dostarczany lub modyfikowany bez niego. Powtarzające się wzorce:

  • Nowy magazyn ePHI nie jest szyfrowany

    Baza danych, bucket lub wolumin, który będzie przechowywał ePHI, jest konfigurowany bez szyfrowania w stanie spoczynku i bez udokumentowanego alternatywnego zabezpieczenia.

  • Konfiguracja szyfrowania została usunięta

    Konfiguracja szyfrowania po stronie serwera lub klucza na magazynie ePHI została usunięta podczas czyszczenia, zakładając, że domyślne ustawienia są wystarczające.

  • ePHI trafia w niechronione miejsce

    ePHI zaczyna być zapisywane w pamięci podręcznej, logach, pliku tymczasowym lub eksporcie, który nie jest szyfrowany, rozprzestrzeniając je w niechronionym magazynie.

  • Kopia zapasowa lub eksport nie jest szyfrowany

    Kopia zapasowa lub eksport danych ePHI jest tworzony bez szyfrowania, więc kopia pozostaje niechroniona poza głównym magazynem.

  • Zarządzanie kluczami sprawia, że szyfrowanie jest nieskuteczne

    Szyfrowanie jest nominalnie włączone, ale klucz jest niewłaściwie obsługiwany (zahardkodowany, udostępniany zbyt szeroko), więc ochrona, którą powinno zapewniać, nie jest skuteczna.

Worked example

Szyfrowanie w stanie spoczynku wyłączone na bazie danych pacjentów.

Baza danych PostgreSQL przechowuje dane pacjentów. Aby uprościć przywracanie z nieszyfrowanego snapshotu, zmiana ustawia instancję na storage_encrypted = false. Przywracanie staje się łatwiejsze, a dane pacjentów są teraz przechowywane w stanie nieszyfrowanym (instancja RDS nie jest domyślnie szyfrowana).

infra/database.tf+1 -1
resource "aws_db_instance" "patient_records" {  engine = "postgres"-  storage_encrypted = true+  storage_encrypted = false}
heygrcHIPAA 164.312(a)(2)(iv)

Wyłącza to szyfrowanie w stanie spoczynku na bazie danych przechowującej dane pacjentów (ePHI). 164.312(a)(2)(iv) to specyfikacja adresowalna dotycząca szyfrowania ePHI, więc wyłączenie go bez udokumentowanego równoważnego zabezpieczenia pozostawia ePHI nieszyfrowane w stanie spoczynku. Zachowaj storage_encrypted = true lub udokumentuj, dlaczego zastosowano równoważne środki.

What an auditor does with this

Szyfrowanie ePHI jest sprawdzane na poziomie magazynu i decyzji.

Przegląd HIPAA sprawdza, jak ePHI jest chronione w stanie spoczynku: czy magazyny są szyfrowane, a ponieważ specyfikacja jest adresowalna, czy decyzja o nieszyfrowaniu została oceniona i udokumentowana z równoważnym zabezpieczeniem. Zmiana, która wyłączyła szyfrowanie lub utworzyła magazyn ePHI bez niego, to luka, która jest widoczna w diffie konfiguracji infrastruktury lub magazynu.

What this is, and is not

Przegląd, a nie program HIPAA.

heygrc sygnalizuje zmiany, które dotyczą technicznych zabezpieczeń HIPAA, i podaje odniesienie do CFR, aby poprawka została wprowadzona w pull request. Nie przeprowadza analizy ryzyka ani nie dokumentuje decyzji dotyczących specyfikacji adresowalnych. Wychwytuje moment, w którym magazyn ePHI traci lub nigdy nie miał szyfrowania w stanie spoczynku, na poziomie diffu.