Jak skutecznie wdrożyć proces modelowania zagrożeń?

Czym jest modelowanie zagrożeń i jak zaprojektować proces, który można zastosować do szerokiego zakresu infrastruktur i modeli biznesowych.

Author: Paweł Drzewiecki
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).

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).

Rysunek 1: Software Development Life Cycle (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.

Rysunek 3: ATT&CK MITRE – Aktorzy zagrożeń

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

Rysunek 4: Diagram przepływu danych – aplikacja bankowości internetowej

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.

Rysunek 5: Narzędzie Microsoft Threat Modelling w działaniu

 

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).

Rysunek 6: STRIDE

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.

This week top knowledge
Ta witryna jest zarejestrowana pod adresem wpml.org jako witryna rozwojowa. Przełącz się na klucz witryny produkcyjnej na remove this banner.