Budowanie zaufania poprzez kontrolę dostępu
Większość aplikacji uważa, że są bezpieczne, ponieważ posiadają stronę logowania.
Logowanie to dopiero pierwszy krok. Gdy użytkownik wejdzie do systemu, musisz odpowiedzieć na jedno pytanie: Co ten użytkownik może robić?
Wiele osób myli uwierzytelnianie z autoryzacją.
• Uwierzytelnianie pyta: Kim jesteś? • Autoryzacja pyta: Na co masz pozwolenie?
Użytkownik może pomyślnie się zalogować. Nie oznacza to jednak, że powinien widzieć każdy rekord lub edytować każdy profil.
Użyj kontroli dostępu opartej na rolach (RBAC), aby zasady były jasne.
RBAC działa poprzez sprawdzanie roli użytkownika względem listy dozwolonych ról. Jeśli nie stosujesz kontroli dostępu, narażasz się na takie ryzyka jak:
- Nadmiernie ujawnione pulpity nawigacyjne
- Zbyt wiele uprawnień wewnętrznych
- Przypadkowe wycieki danych
- Niewystarczające ścieżki audytu
- Utrata zaufania
Stosuj zasadę najmniejszych uprawnień (principle of least privilege). Nadawaj użytkownikom tylko taki dostęp, który jest im niezbędny do wykonywania pracy.
• Personel wsparcia nie powinien widzieć wszystkich rekordów klientów. • Inżynierowie nie powinni domyślnie mieć dostępu do środowiska produkcyjnego. • Dane HR muszą pozostać odizolowane. • Role administratora muszą być rzadkie i podlegające audytowi.
Czasami same role nie wystarczają. Potrzebujesz uprawnień opartych na akcjach. Użytkownik może mieć prawo do podglądu rekordu, ale nie do jego usunięcia. Daje to granularną kontrolę.
Powinieneś również segregować dane według stopnia wrażliwości: • Dane publiczne: Imię i zdjęcie. • Dane prywatne: E-mail i numer telefonu. • Dane wrażliwe: Wynagrodzenie lub numery identyfikacyjne.
Traktuj te kategorie w różny sposób w swoim kodzie. Dzięki temu zarządzanie bezpieczeństwem staje się łatwiejsze.
Zaufanie wymaga również rozliczalności. Za każdym razem, gdy ktoś dotyka wrażliwych danych, system musi utworzyć ścieżkę audytu. Wrażliwe działania muszą pozostawiać ślad.
Zanim wypuścisz swoją aplikację, sprawdź te punkty:
- Czy procesy logowania i sesji są bezpieczne?
- Czy uprawnienia opierają się na rolach i akcjach?
- Czy dane wrażliwe są odizolowane?
- Czy domyślne ustawienia są restrykcyjne?
- Czy logujesz cały dostęp?
- Czy potrafisz wyjaśnić uprawnienia swoim użytkownikom?
Uwierzytelnianie wpuszcza użytkowników. Autoryzacja sprawia, że Twój system jest godny zaufania. Zaufanie to funkcja produktu.
