modelowanie zagrożeń
| Po angielsku | threat modeling |
|---|---|
| Którą formą pisać | po polsku Polska nazwa przyjęła się w tekstach i w wyszukiwarce — używaj jej samodzielnie. |
| Inne formy | model zagrożeń · threat modeling |
| Kategoria | SOC, wywiad o zagrożeniach i reagowanie |
Modelowanie zagrożeń to systematyczne ustalanie, co w systemie chronimy, kto i jak może to zaatakować oraz jakie zabezpieczenia ograniczą skutki. OWASP opisuje je jako pracę nad identyfikacją, komunikowaniem i zrozumieniem zagrożeń oraz środków zaradczych w kontekście ochrony czegoś wartościowego [1]. Manifest modelowania zagrożeń definiuje je jako analizę reprezentacji systemu, która ma uwypuklić problemy dotyczące bezpieczeństwa i prywatności [3]. Wynikiem procesu jest model zagrożeń: dokument, diagram albo lista, do której wraca się przy każdej zmianie systemu.
Jak działa
Rdzeniem metody są cztery pytania sformułowane w manifeście [3]:
- Nad czym pracujemy?
- Co może pójść źle?
- Co z tym zrobimy?
- Czy zrobiliśmy to wystarczająco dobrze?
Pytania tworzą cykl pokazany na schemacie poniżej. OWASP zaleca aktualizację modelu po wydaniu nowych funkcji, po incydentach bezpieczeństwa i po zmianach architektury albo infrastruktury [1].
Pierwsze pytanie zwykle kończy się diagramem przepływu danych. Ściąga OWASP wymienia jego elementy: granice zaufania, przepływy danych, magazyny danych, procesy i podmioty zewnętrzne [2]. Granica zaufania oddziela strefy o różnym poziomie bezpieczeństwa, na przykład przeglądarkę od serwera. Zagrożenia skupiają się tam, gdzie dane przekraczają taką granicę.
Według OWASP typowy model zawiera opis modelowanego obiektu, założenia do późniejszej weryfikacji, potencjalne zagrożenia, działania zaradcze dla każdego z nich oraz sposób sprawdzenia modelu i skuteczności działań [1].
Metody
Najbardziej znaną metodą jest STRIDE, stosowana przez Microsoft w cyklu Security Development Lifecycle [4]. Nazwa to skrót od sześciu kategorii zagrożeń. Każda narusza inną własność bezpieczeństwa [2].
| Kategoria STRIDE | Naruszana własność | Przykład |
|---|---|---|
| Spoofing | uwierzytelnienie [2] | użycie cudzego loginu i hasła [4] |
| Tampering | integralność [2] | nieuprawniona zmiana danych w bazie [4] |
| Repudiation | rozliczalność [2] | wyparcie się operacji bez śladu w logach [4] |
| Information disclosure | poufność [2] | odczyt pliku bez uprawnień [4] |
| Denial of service | dostępność [2] | czasowe unieruchomienie serwera [4] |
| Elevation of privilege | autoryzacja [2] | zwykły użytkownik zyskuje uprawnienia uprzywilejowane [4] |
Kategorie odpowiadają pojęciom ze słownika: spoofing, ujawnienie informacji, atak odmowy usługi i eskalacja uprawnień. OWASP wymienia też inne podejścia: łańcuchy ataku, takie jak Cyber Kill Chain, oraz drzewa ataków [1].
Po zidentyfikowaniu zagrożeń wybiera się odpowiedź. Ściąga OWASP podaje cztery strategie: ograniczenie prawdopodobieństwa, eliminację funkcji, przeniesienie odpowiedzialności na stronę trzecią i akceptację ryzyka [2]. To łączy modelowanie z procesem szacowania ryzyka; to, co pozostaje po zabezpieczeniach, jest ryzykiem szczątkowym.
Do rysowania diagramów służą narzędzia. OWASP Threat Dragon jest darmową aplikacją open source, działającą jako program na komputer albo jako aplikacja webowa [5]. Obsługuje metody STRIDE, LINDDUN, CIA, DIE i PLOT4ai oraz silnik reguł, który podpowiada zagrożenia i środki zaradcze [5]. Microsoft udostępnia własne Threat Modeling Tool, projektowane z myślą o osobach, które nie są specjalistami bezpieczeństwa [4].
W WordPressie
Dla strony WordPress model zagrożeń nie musi być rozbudowany. Wystarczy uczciwie odpowiedzieć na cztery pytania.
Nad czym pracujemy. Rdzeń, motyw, wtyczki, baza danych, serwer, konta użytkowników, integracje zewnętrzne. Poradnik utwardzania WordPressa wskazuje cztery obszary podatności: komputer użytkownika, sam WordPress, serwer WWW i połączenia sieciowe [7]. Granice zaufania przebiegają między przeglądarką odwiedzającego a serwerem, między panelem a publiczną częścią strony oraz między stroną a dostawcami wtyczek.
Co może pójść źle. Każda wtyczka poszerza powierzchnię ataku; zob. podatność we wtyczce. Aktualizacja z przejętego źródła to atak na łańcuch dostaw. Wyciek hasła administratora oznacza pełną kontrolę nad witryną. Dokumentacja programistyczna WordPressa zaleca zasady „nigdy nie ufaj danym od użytkownika” i „niczego nie zakładaj” [6], co w modelu przekłada się na traktowanie każdego wejścia jako potencjalnego źródła zagrożenia.
Co z tym zrobimy. Poradnik utwardzania podaje konkretne środki: drugie hasło po stronie serwera dla /wp-admin/, ograniczenie uprawnień użytkownika bazy danych do operacji SELECT, INSERT, UPDATE i DELETE oraz regularne kopie całej instalacji w zaufanym miejscu [7]. Każdy środek powinien odpowiadać konkretnemu zagrożeniu z listy.
Czy wystarczy. Sprawdzianem jest test penetracyjny albo przegląd po incydencie. Poradnik przypomina, że bezpieczeństwo to redukcja ryzyka, a nie jego eliminacja [7].
Znaczenie
Modelowanie zagrożeń przesuwa bezpieczeństwo na początek pracy. Ściąga OWASP zaleca prowadzenie go wcześnie w cyklu wytwarzania, na przykład w fazie projektowania, i kontynuowanie w miarę rozwoju systemu [2]. Microsoft podkreśla, że problemy wykryte wcześnie są stosunkowo łatwe i tanie do usunięcia [4]. W ochronie danych osobowych tę samą ideę wyraża uwzględnianie ochrony danych w fazie projektowania.
Model porządkuje też rozmowę. Zamiast listy przypadkowych zabezpieczeń powstaje mapa: które zagrożenie adresuje które zabezpieczenie i czego świadomie nie zabezpieczamy. Wyniki można przenieść do rejestru ryzyk.
Dobre praktyki
- Zaczynać od prostego diagramu i czterech pytań, a nie od narzędzia [3].
- Zapisywać założenia, by można je było później sprawdzić albo podważyć [1].
- Wracać do modelu po każdej większej zmianie i po incydencie [1].
- Dla każdego zagrożenia wybrać jedną z czterech odpowiedzi i zapisać, kto za nią odpowiada [2].
- Korzystać z list typowych słabości, takich jak OWASP Top 10, jako podpowiedzi przy pytaniu „co może pójść źle”.
Przypisy
7- [1] Threat Modeling · OWASP
- [2] Threat Modeling Cheat Sheet · OWASP Cheat Sheet Series
- [3] Threat Modeling Manifesto · Threat Modeling Manifesto Working Group
- [4] Threats — Microsoft Threat Modeling Tool · Microsoft Learn
- [5] OWASP Threat Dragon · OWASP
- [6] Security — Common APIs Handbook · WordPress.org
- [7] Hardening WordPress — Advanced Administration Handbook · WordPress.org