Spis treści
Czym jest modelowanie zagrożeń?
Modelowanie zagrożeń to spojrzenie na aplikację i jej otoczenie przez pryzmat bezpieczeństwa. Proces ten ma na celu poprawę bezpieczeństwa poprzez identyfikację zagrożeń, a następnie określenie środków zaradczych w celu zapobieżenia tym zagrożeniom lub złagodzenia ich skutków dla systemu lub aplikacji. Zagrożenie to potencjalne lub rzeczywiste niepożądane zdarzenie, które może mieć charakter złośliwy (np. atak DoS) lub przypadkowy (awaria urządzenia magazynującego dane).
Modelowanie zagrożeń to zaplanowana aktywność polegająca na identyfikacji i ocenie zagrożeń oraz podatności w aplikacji. Oczywiście jest ono także częścią procesu cyklu życia tworzenia oprogramowania (SDLC).

Modelowanie zagrożeń może być stosowane do szerokiej gamy obiektów, w tym oprogramowania, aplikacji, systemów, sieci, systemów rozproszonych, urządzeń Internetu Rzeczy (IoT) oraz procesów biznesowych.
Model zagrożeń zawiera:
Opis elementu, który ma być modelowany
Założenia, które mogą być testowane lub kwestionowane w miarę zmieniającego się krajobrazu zagrożeń
Potencjalne zagrożenia dla systemu lub aplikacji
Działania, które można podjąć w celu ograniczenia każdego zagrożenia
Metodę weryfikacji modelu i skuteczności podjętych działań
Aktualizowanie modeli zagrożeń jest zalecane po takich zdarzeniach jak:
Wydanie nowej funkcjonalności
Obsługa incydentu bezpieczeństwa
Zmiany architektoniczne lub infrastrukturalne
W procesie modelowania zagrożeń wyróżnia się trzy kluczowe elementy:
Przepływy danych (określenie, jak dane przepływają przez system, aby zidentyfikować miejsca potencjalnego ataku)
Potencjalne zagrożenia (określenie jak największej liczby zagrożeń dla systemu)
Kontrole bezpieczeństwa (określenie mechanizmów, które można wdrożyć w celu zmniejszenia prawdopodobieństwa lub skutków zagrożenia)
Proces modelowania zagrożeń
Istotnym pojęciem w projektowaniu modelowania zagrożeń jest granica zaufania (trust boundary). Granica zaufania to punkt, w którym dane zmieniają poziom zaufania w diagramie przepływu danych. Zwykle jest to miejsce, w którym dane są przesyłane między dwoma procesami. Aby zidentyfikować zagrożenia, należy zidentyfikować aktorów zagrożeń charakterystycznych dla sektora, w którym działamy. W celu rozpoznania tych grup można wykorzystać bazę wiedzy MITRE.

Dodatkowo, w ocenie ryzyka i identyfikacji zagrożeń przydatne są:
OWASP TOP 10
OWASP ASVS
ENISA Threats Taxonomy
CIS Controls
CWE/SANS TOP 25 Most Dangerous Software Errors

Narzędzia wspierające proces modelowania zagrożeń
Istnieje wiele darmowych i płatnych narzędzi wspierających proces modelowania zagrożeń. Rysunek 5 pokazuje jedno z takich narzędzi w działaniu. W tym narzędziu, po wymodelowaniu obiektów i określeniu granic zaufania, należy kliknąć przycisk analizy. Po jego uruchomieniu aplikacja wyświetla listę wykrytych zagrożeń dla stworzonego modelu.
Po kliknięciu funkcji analizy, zagrożenia dla modelowanych obiektów zostają wyświetlone, należy je następnie przeanalizować, ustalić ich priorytety i opisać sposoby ich ograniczenia. Oczywiście, jeśli system automatycznie nie wykryje niektórych znanych nam zagrożeń, należy dodać je ręcznie.

Wiele dostępnych na rynku narzędzi do modelowania zagrożeń identyfikuje zagrożenia dla każdego węzła przy użyciu metodologii STRIDE, co oznacza, że każdy węzeł jest analizowany pod kątem zagrożeń takich jak: podszywanie się (spoofing), manipulacja (tampering), zaprzeczenie (repudiation), ujawnienie informacji (information disclosure), odmowa usługi (denial of service) oraz podniesienie uprawnień (elevation of privilege).

Podsumowanie
Prawidłowo przeprowadzone modelowanie zagrożeń zapewnia przejrzysty wgląd w projekt i uzasadnia działania w zakresie bezpieczeństwa. Proces ten pozwala podejmować racjonalne decyzje dotyczące bezpieczeństwa poprzez przedstawienie wszystkich niezbędnych informacji. Ponadto, ocena potencjalnych zagrożeń na etapie projektowania pozwala zaoszczędzić zasoby.
Dlatego jeśli do tej pory patrzyłeś na ten proces pobłażliwie, mam nadzieję, że po przeczytaniu tego artykułu zrozumiałeś jego istotę i znaczenie.