Threat Modeling
Threat Modeling
Witamy w kompleksowym przewodniku HackTricks na temat modelowania zagrożeń! Rozpocznij eksplorację tego krytycznego aspektu cyberbezpieczeństwa, gdzie identyfikujemy, rozumiemy i opracowujemy strategie przeciwko potencjalnym lukom w systemie. Ten wątek służy jako przewodnik krok po kroku, wypełniony przykładami z rzeczywistego świata, pomocnym oprogramowaniem i łatwymi do zrozumienia wyjaśnieniami. Idealny zarówno dla nowicjuszy, jak i doświadczonych praktyków, którzy chcą wzmocnić swoje obrony w zakresie cyberbezpieczeństwa.
Commonly Used Scenarios
Rozwój oprogramowania: Jako część Bezpiecznego Cyklu Życia Rozwoju Oprogramowania (SSDLC), modelowanie zagrożeń pomaga w identyfikacji potencjalnych źródeł luk w wczesnych etapach rozwoju.
Testy penetracyjne: Standard Wykonania Testów Penetracyjnych (PTES) wymaga modelowania zagrożeń w celu zrozumienia luk w systemie przed przeprowadzeniem testu.
Threat Model in a Nutshell
Model zagrożeń jest zazwyczaj przedstawiany jako diagram, obraz lub inna forma wizualnej ilustracji, która przedstawia planowaną architekturę lub istniejącą budowę aplikacji. Przypomina diagram przepływu danych, ale kluczowa różnica polega na jego projektowaniu zorientowanym na bezpieczeństwo.
Modele zagrożeń często zawierają elementy oznaczone na czerwono, symbolizujące potencjalne luki, ryzyka lub bariery. Aby uprościć proces identyfikacji ryzyka, stosuje się triadę CIA (Poufność, Integralność, Dostępność), która stanowi podstawę wielu metodologii modelowania zagrożeń, z STRIDE jako jedną z najczęstszych. Jednak wybrana metodologia może się różnić w zależności od konkretnego kontekstu i wymagań.
The CIA Triad
Triada CIA to powszechnie uznawany model w dziedzinie bezpieczeństwa informacji, oznaczający Poufność, Integralność i Dostępność. Te trzy filary stanowią fundament, na którym opiera się wiele środków i polityk bezpieczeństwa, w tym metodologii modelowania zagrożeń.
Poufność: Zapewnienie, że dane lub system nie są dostępne dla nieautoryzowanych osób. To centralny aspekt bezpieczeństwa, wymagający odpowiednich kontroli dostępu, szyfrowania i innych środków zapobiegających naruszeniom danych.
Integralność: Dokładność, spójność i wiarygodność danych w całym ich cyklu życia. Ta zasada zapewnia, że dane nie są zmieniane ani manipulowane przez nieautoryzowane strony. Często obejmuje sumy kontrolne, haszowanie i inne metody weryfikacji danych.
Dostępność: Zapewnia, że dane i usługi są dostępne dla autoryzowanych użytkowników w razie potrzeby. Często obejmuje redundancję, odporność na błędy i konfiguracje wysokiej dostępności, aby systemy działały nawet w obliczu zakłóceń.
Threat Modeling Methodlogies
STRIDE: Opracowane przez Microsoft, STRIDE to akronim od Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege. Każda kategoria reprezentuje typ zagrożenia, a ta metodologia jest powszechnie stosowana w fazie projektowania programu lub systemu w celu identyfikacji potencjalnych zagrożeń.
DREAD: To kolejna metodologia od Microsoftu używana do oceny ryzyka zidentyfikowanych zagrożeń. DREAD oznacza Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability. Każdy z tych czynników jest oceniany, a wynik jest używany do priorytetyzacji zidentyfikowanych zagrożeń.
PASTA (Process for Attack Simulation and Threat Analysis): To siedmiostopniowa, zorientowana na ryzyko metodologia. Obejmuje definiowanie i identyfikowanie celów bezpieczeństwa, tworzenie zakresu technicznego, dekompozycję aplikacji, analizę zagrożeń, analizę luk oraz ocenę ryzyka/triage.
Trike: To metodologia oparta na ryzyku, która koncentruje się na obronie aktywów. Zaczyna się od perspektywy zarządzania ryzykiem i analizuje zagrożenia oraz luki w tym kontekście.
VAST (Visual, Agile, and Simple Threat modeling): To podejście ma na celu bycie bardziej dostępnym i integruje się w środowiskach rozwoju Agile. Łączy elementy z innych metodologii i koncentruje się na wizualnych reprezentacjach zagrożeń.
OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Opracowane przez Centrum Koordynacji CERT, to ramy są skierowane na ocenę ryzyka organizacyjnego, a nie konkretnych systemów lub oprogramowania.
Tools
Istnieje kilka narzędzi i rozwiązań programowych, które mogą pomóc w tworzeniu i zarządzaniu modelami zagrożeń. Oto kilka, które warto rozważyć.
Zaawansowany, wieloplatformowy i wielofunkcyjny interfejs graficzny web spider/crawler dla profesjonalistów w dziedzinie cyberbezpieczeństwa. Spider Suite może być używany do mapowania i analizy powierzchni ataku.
Usage
Wybierz URL i przeszukaj
Zobacz wykres
Projekt open-source od OWASP, Threat Dragon to zarówno aplikacja webowa, jak i desktopowa, która obejmuje diagramowanie systemu oraz silnik reguł do automatycznego generowania zagrożeń/łagodzeń.
Usage
Utwórz nowy projekt
Czasami może to wyglądać tak:
Uruchom nowy projekt
Zapisz nowy projekt
Stwórz swój model
Możesz użyć narzędzi takich jak SpiderSuite Crawler, aby zainspirować się, podstawowy model może wyglądać mniej więcej tak
Tylko trochę wyjaśnienia na temat podmiotów:
Proces (Podmiot sam w sobie, taki jak serwer WWW lub funkcjonalność webowa)
Aktor (Osoba, taka jak odwiedzający stronę, użytkownik lub administrator)
Linia przepływu danych (Wskaźnik interakcji)
Granica zaufania (Różne segmenty sieci lub zakresy.)
Magazyn (Miejsca, w których przechowywane są dane, takie jak bazy danych)
Utwórz zagrożenie (Krok 1)
Najpierw musisz wybrać warstwę, do której chcesz dodać zagrożenie
Teraz możesz stworzyć zagrożenie
Pamiętaj, że istnieje różnica między zagrożeniami aktorów a zagrożeniami procesów. Jeśli dodasz zagrożenie do aktora, będziesz mógł wybrać tylko "Spoofing" i "Repudiation". Jednak w naszym przykładzie dodajemy zagrożenie do podmiotu procesu, więc zobaczymy to w oknie tworzenia zagrożenia:
Gotowe
Teraz twój ukończony model powinien wyglądać mniej więcej tak. I tak tworzy się prosty model zagrożeń z OWASP Threat Dragon.
To darmowe narzędzie od Microsoftu, które pomaga w znajdowaniu zagrożeń w fazie projektowania projektów oprogramowania. Wykorzystuje metodologię STRIDE i jest szczególnie odpowiednie dla tych, którzy rozwijają na stosie Microsoftu.
Last updated