Článek:

Úvod do modelování hrozeb

18.10.2022

Marek Kovalčík |

Vtomto článku bych vám rád představil modelování hrozeb, což je metoda odhalování hrozeb a potenciálních rizik různých informačních a komunikačních systémů. Její největší přínos je vtom, že ji lze aplikovat i na zatím neexistující systémy. To znamená, že zvažujeme-li implementaci nového systému, nebo změnu stávajícího, lze potenciální problémy řešit ještě dříve, než mají možnost nastat. Je nutno říci, že se jedná o vysokoúrovňovou metodu, která může opomíjet mnoho technických detailů konkrétních komponent. Nicméně ji lze využít i pro mnohem detailnější modelování, než jaké bude demonstrováno vtomto článku. 

Velmi důležitým pojmem, který si musíme ujasnit, je model. Model je abstrakcí reality a jeho podstata je v zanedbávání detailů pro zachování jednoduchosti. Zároveň však musí reflektovat důležité aspekty skutečnosti. Podívejme se na následující příklad, kdy běžný uživatel otevírá ze své domácí sítě svou oblíbenou webovou stránku.  

 

V tomto modelu lze vidět dvě entity (uživatele a webovou aplikaci), které komunikují skrze protokol HTTPS a jsou odděleny červenou hranicí. Levá strana modeluje domácí síť uživatele a pravá veřejný internet. Už víme, že model je abstrakcí reality. V tomto konkrétním příkladu jsou zanedbávány prvky jako routery, switche, firewally, kabeláž, servery a další komponenty, které v reálném světe hrají důležitou roli. 

V čem i takový "primitivní" model může být užitečný

Přesto, že se jedná o velmi zjednodušený model, může poskytnout rychlý náhled na rizika spojená s procházením webových stránek. Nutno říci, že model nepočítá s žádnými bezpečnostními opatřeními. S využitím vhodného nástroje můžeme získat následující seznam potenciálních hrozeb. 

V tabulce lze vidět, že systém objevil 18 potenciálních rizik a rozdělil je do několika kategorií. Součástí reportu, což zde není zobrazeno z důvodu zachování rozsahu článku, je také ohodnocení závažnosti a popis konkrétních doporučení k odstranění hrozby a minimalizaci rizika. 

Jak s modelováním hrozeb začít? 

Prvním krokem je zvolení vhodného nástroje. Existuje několik variant, ale nejrozšířenějšími jsou Microsoft Threat Modeling Tool či OWASP Threat Dragon. Jedná se o pěkně zpracovaný nástroj s intuitivním uživatelským rozhraním a bohatou dokumentací, který je navíc dostupný zdarma. Po instalaci můžete bez zbytečných průtahů začít s modelováním. Existuje široká paleta šablon, která obsahuje entity různých systémů a lze modelovat prakticky libovolný informační či komunikační systém.  

K samotnému modelování lze přistupovat z různých úhlů pohledu. Můžeme modelovat dle zaměření (na útočníka, aktiva, systém), dle fáze životního cyklu (návrh či již existující systém), dle zájmové entity (celá organizace, data, software) či například dle cíle (zlepšení bezpečnosti, odhalení zranitelností). 

Existuje také celá řada různých metodik. Cílem tohoto článku je představit základy problematiky modelování hrozeb, proto zde zmíním pouze tu nejpoužívanější pro modelování hrozeb softwarových produktů - STRIDE, respektive její kombinaci s metodou DREAD pro hodnocení závažnosti rizika.  

Kategorie metody STRIDE 

Spoofing  

Vydávání se za někoho/něco jiného 

Tampering 

Modifikace data či kódu 

Repudiation 

Popírání provedení určité akce 

Information disclosure 

Únik citlivých informací 

Denial of service 

Odepření přístupu ke službě 

Elevation of privileges 

Neoprávněné provádění akcí 

 

Kategorie metody DREAD 

Damage potencial 

Míra možného poškození 

Reproducibility 

Schopnost  

Exploitability 

Možnost přímého zneužití  

Affected users 

Kolik či jací uživatelé budou ovlivněni 

Discoverability 

Jak jednoduché je hrozbu odhalit 

 

Příklad využití třetí strany k autentizaci webové aplikace

Podívejme se nyní na trochu komplexnější příklad bez přílišných technických detailů. Uvažujme scénář, kdy uživatel přistupuje k interní webové službě společnosti. Společnost využívá autentizační službu společnosti Microsoft, kde autentizační server je umístěn například v prostředí Microsoft Azure. Jedná se o docela běžný přístup, jehož model může vypadat následovně. 

Opět se nejedná o příliš komplexní model, ale dokáže nám přinést pěkný náhled do fungování takového systému a jeho možných slabých míst. Obecně řečeno je za slabé místo považována jakákoliv interakce mezi dvěma entitami bez použití bezpečnostních opatření. Po sestavení takového modelu získáme seznam s 31 potenciálními hrozbami. Náhled z tohoto reportu si můžete prohlédnout níže. 

Modelování hrozeb je velmi užitečnou, avšak velmi často opomíjenou součástí nejen vývojových projektů. Včasné odhalení potenciálních rizik může ušetřit mnoho času, a tudíž i financí spojených s laděním a zabezpečováním nasazovaných systémů. Lze jej uplatnit na návrhy i již existující projektů a může pomoci s návrhem bezpečnostních opatření i v momentě, kdy vývojáři ještě nenapsali ani jediný řádek kódu.