
Modelování hrozeb se ptá, co se může v konkrétním systému pokazit a co by s tím měl tým udělat. Jeho užitečným výstupem není katalog děsivých možností. Je to soubor rozhodnutí o návrhu a implementaci navázaných na architekturu, s vlastníky a důkazy, že zvolená obrana funguje.
Pro CTO je ústřední otázkou, zda vývoj dokáže vysvětlit, jak důležité bezpečnostní vlastnosti obstojí při skutečném chování systému: při opakovaných pokusech, úlohách na pozadí, privilegovaných akcích podpory, výpadcích dodavatelů a škodlivých vstupech. Diagram tyto rozhovory zkonkrétní. Udržovaný model hrozeb převede závěry na realizační práci.
Návod OWASP k modelování hrozeb poskytuje užitečný základ: porozumět systému, identifikovat hrozby, rozhodnout o reakci a posoudit, zda je práce dostatečná. Níže uvedený pracovní postup uplatňuje toto uvažování na rozhodnutí ve vývoji.
Začněte ohraničenou funkcí, například zákaznickými exporty, iniciací plateb nebo aktualizacemi zařízení. Modelování celé platformy najednou často vede k povrchním zjištěním, protože nikdo nedokáže vysvětlit každou závislost dostatečně podrobně.
Aktiva a bezpečnostní cíle formulujte provozně. „Chránit zákaznická data“ je příliš široké. „Ověřený uživatel může exportovat pouze záznamy patřící jeho autorizovanému tenantovi“ dává týmu vlastnost, kterou lze testovat. Další cíle se mohou týkat integrity transakcí, dostupnosti služby, obnovy nebo přiřaditelnosti administrativních akcí.
Identifikujte uživatele, služby, datová úložiště, externí závislosti, vstupní body a hranice důvěry. Zakreslete důležité datové toky, včetně asynchronního zpracování a administrativních cest. Tam, kde to ovlivňuje analýzu, označte toky přenášenými daty, mechanismem ověřování a kontextem autorizace.
Hranice důvěry označuje změnu předpokladů nebo pravomoci, ne nutně síťový perimetr. Prohlížeč volající API překračuje jednu hranici. Sdílený worker jednající jménem zákazníka překračuje jinou, i když obě služby běží ve stejném clusteru.
U aplikace pro více tenantů ukažte, kde se stanoví identita tenanta a jak se dostane ke kontrolám autorizace, úlohám na pozadí a exportům. Zahrňte identity služeb, přístup k objektovému úložišti, nástroje podpory a externí callbacky. Jinak může diagram popisovat ideální cestu a vynechat ty cesty, které s největší pravděpodobností obejdou izolaci.
Předpoklady zaznamenávejte odděleně od faktů. „Do fronty nemohou zákazníci zapisovat“ potřebuje podpůrné důkazy o konfiguraci. Neznámé by se měly stát úkoly k prošetření, nikoli mlčky přijatou obranou.
Metoda poskytuje podněty a strukturu. Neurčuje, na kterých hrozbách záleží nejvíce, neprokazuje, že je návrh bezpečný, a nenahrazuje znalost systému.
STRIDE zkoumá šest kategorií. Uplatňujte je na relevantní komponenty, toky a hranice, místo abyste každou kategorii vnucovali každému prvku diagramu.
| Kategorie | Otázka | Příklad ve službě pro zákaznické exporty |
|---|---|---|
| Spoofing (podvržení identity) | Může se aktér vydávat za jinou identitu? | Callback tvrdí, že pochází od důvěryhodného poskytovatele. |
| Tampering (neoprávněná změna) | Lze data nebo instrukce změnit bez oprávnění? | Identifikátor tenanta u úlohy ve frontě je pozměněn. |
| Repudiation (popření) | Může důležité akci chybět spolehlivé přiřazení? | Export podpory nemá přiřaditelný záznam o schválení. |
| Information disclosure (zpřístupnění informací) | Mohou se informace dostat k neoprávněné straně? | Odkaz ke stažení zpřístupní export jiného tenanta. |
| Denial of service (odepření služby) | Může aktér vyčerpat zdroje nebo narušit službu? | Opakované exporty monopolizují sdílené workery. |
| Elevation of privilege (zvýšení oprávnění) | Může aktér získat vyšší pravomoc? | Běžný uživatel spustí export vyhrazený administrátorům. |
Jeden scénář může zasahovat do několika kategorií. Tam, kde je to vhodné, veďte jediný akční záznam, místo abyste kvůli taxonomii vytvářeli duplicitní tikety.
PASTA (Process for Attack Simulation and Threat Analysis) nabízí sedmistupňový přístup orientovaný na riziko, který propojuje obchodní cíle, technický rozsah, dekompozici, analýzu hrozeb a zranitelností, modelování útoků a ošetření rizik. Hodí se pro hlubší analýzu, kde je třeba výslovně věnovat pozornost chování útočníka a obchodním důsledkům.
Stromy útoků začínají cílem útočníka a rozkládají ho na alternativní nebo kombinované cesty. U cíle „získat export jiného tenanta“ mohou alternativy zahrnovat obejití autorizace API, zmatení kontextu tenanta ve workeru nebo krádež přihlašovacího údaje ke stažení. Vztahy AND představují podmínky, které musí nastat současně; vztahy OR představují alternativy.
VAST (Visual, Agile, and Simple Threat modeling) klade důraz na škálovatelné modelování z aplikačního i provozního pohledu. Týmy, které ji zvažují, by měly prověřit, zda jejich nástroje a vývojový proces dokážou tyto pohledy konzistentně udržovat.
Praktickým výchozím doporučením je diagram datových toků se STRIDE, doplněný stromem útoků pro scénář s nejzávažnějšími důsledky. Další metodika je užitečná jen tehdy, když zlepšuje rozhodnutí.
Přizvěte lidi, kteří rozumějí implementaci a provozu: vývojáře, architekta nebo technického vedoucího, bezpečnostního revizora a někoho, kdo zná chování v produkci. Pokud jejich znalosti ovlivňují rozsah, zahrňte specialisty na produkt, ochranu soukromí nebo dodavatele.
Před setkáním rozešlete diagram, bezpečnostní cíle, relevantní konfiguraci a nevyřešené předpoklady. Během přezkoumání projděte jeden požadavek nebo událost od vstupu po dokončení. Ptejte se, kde se mění identita, kde se data ukládají, co se opakuje a která komponenta má pravomoc schválit akci.
Hrozby zapisujte jako scénáře, ne jako nálepky. „Problém s autorizací“ není dostatečně užitečné. Silnější formulace zní: „Ověřený uživatel podstrčí identifikátor exportu jiného tenanta; endpoint pro stažení kontroluje přihlášení, ale ne vlastnictví objektu, a zpřístupní tak zákaznické záznamy.“
Oddělte tři pojmy:
Hrozbu může mít smysl prošetřit dříve, než se potvrdí zranitelnost. Stejně tak nalezení slabiny nedokazuje, že je proveditelný každý představitelný útok.
Vedle externích útoků zahrňte zneužití legitimními uživateli, privilegované insidery, chyby konfigurace a selhání dodavatelů. Ptejte se, co se stane, když závislost vyprší nebo vrátí neočekávanou odpověď. Z těchto diskusí často vyplyne chování typu fail-open a nekonzistentní opakování.
Následující příklad je ilustrativní. Předpokládejme aplikaci SaaS s klientem v prohlížeči, API, sdílenou databází, frontou úloh, exportním workerem a objektovým úložištěm. Uživatelé tenantů požadují exporty CSV; worker generuje soubory a API vydává dočasné odkazy ke stažení. Administrátoři podpory mají samostatné rozhraní pro řešení problémů.
Bezpečnostními cíli jsou izolace tenantů, autorizované spouštění exportů, omezená spotřeba zdrojů a přiřaditelné akce podpory. Předpokládejme, že worker má přístup k databázi natolik široký, aby obsluhoval více tenantů. Jeho zacházení s kontextem tenanta se tím stává ústředním rozhodnutím, nikoli drobným implementačním detailem.
V API je ověřený subjekt spojen s povoleným členstvím v tenantovi. Identifikátor tenanta dodaný prohlížečem je žádostí o výběr, nikoli důkazem oprávnění. API zkontroluje členství a oprávnění k exportu dříve, než vytvoří neměnný záznam úlohy obsahující autorizovaného tenanta, žadatele a povolený rozsah exportu.
Zpráva ve frontě odkazuje na tento záznam. Worker úlohu ověří a při vytváření exportu vynucuje přístup k datům omezený na tenanta. Metadata úložiště spojují výsledný objekt s úlohou a tenantem. Před vydáním odkazu ke stažení API zkontroluje oprávnění aktuálního žadatele vůči tomuto přiřazení.
Tento návrh stále potřebuje explicitní rozhodnutí o odebírání přístupu: má uživatel, který ztratí členství po zadání exportu, mít nadále přístup k dokončenému souboru? Tým musí tuto politiku definovat a konzistentně ji implementovat.
| Scénář | Rozhodnutí o ošetření | Důkazy o ověření |
|---|---|---|
| Uživatel podstrčí identifikátor jiného tenanta | Odvodit povolený rozsah z členství na straně serveru a kontrolovat vlastnictví objektu | Negativní testy API se dvěma tenanty a několika rolemi |
| Worker zpracuje nesprávný kontext tenanta | Ověřovat úlohy vůči autoritativním záznamům a používat dotazy omezené na tenanta | Testy workeru s nesouhlasným, chybějícím a poškozeným kontextem |
| Odkaz ke stažení unikne přes protokoly nebo tikety podpory | Nedávat přihlašovací údaje do protokolů a omezit platnost odkazu podle expozice | Přezkoumání protokolování, testy vypršení odkazů a přezkoumání přístupových cest |
| Jeden tenant zahltí exportní frontu | Uplatnit kvóty na tenanta, limity souběžnosti a omezení zátěže | Zátěžové testy ukazující chování služby při zneužívající poptávce |
| Pracovníci podpory exportují data bez odpovědnosti | Vyžadovat explicitní privilegovanou autorizaci a přiřaditelné záznamy událostí | Testy rolí a přezkoumané vzorky administrativních událostí |
Dočasné odkazy zavádějí okno zbytkové expozice: v závislosti na mechanismu může držení odkazu umožnit přístup až do vypršení. Tým by měl rozhodnout, zda je to pro dotčená data přijatelné, nebo zda stahování potřebuje ověřeného prostředníka s aktuálními kontrolami autorizace.
Neuzavírejte model po otestování samotného synchronního API. Ověřte odložené úlohy, opakované pokusy, zrušené požadavky, vypršelé členství, smazané tenanty a částečná selhání. Například opakovaná úloha nesmí znovu použít objekt spojený s jiným tenantem ani zveřejnit neúplný export jako úspěšný.
Výsledným výstupem je přezkoumaná architektura, registr hrozeb, implementační úkoly a propojené výsledky ověření. Nejde pouze o diagram.
Věrohodné scénáře prioritizujte podle expozice, dopadu, předpokladů a stávající obrany. Rozlišujte přímo dosažitelné selhání autorizace od scénáře vyžadujícího několik neprokázaných kompromitací. Tam, kde je to relevantní, zvažte dotčená data, narušení služby, finanční důsledky, dopady na bezpečnost osob a obtížnost obnovy.
Pokud to týmu pomáhá, používejte jednoduchou konzistentní stupnici, ale zaznamenávejte zdůvodnění hodnocení. Číselné skóre s nevysvětlenými vstupy vytváří falešnou přesnost. CVSS může podpořit posouzení konkrétní zranitelnosti; nenahrazuje však porozumění obchodnímu dopadu ani architektonickému scénáři zneužití.
Možnosti ošetření zahrnují změnu návrhu, snížení expozice, přidání preventivních nebo detekčních opatření, vyhnutí se dané funkci nebo akceptaci zbývajícího rizika. Smlouvy s dodavateli mohou rozdělit odpovědnosti, ale technické režimy selhání neodstraňují.
Zbytkové riziko by mělo mít jmenovitě určenou osobu s rozhodovací pravomocí, důvod, vypršení nebo spouštěč přezkoumání a případné provozní podmínky. Dokončení vývoje a akceptace rizika jsou odlišná rozhodnutí. Tiket může být dokončen, i když podstatné riziko zůstává.
U každého podstatného scénáře zaznamenejte jeho identifikátor, dotčené komponenty, předpoklady, důsledek, stávající obranu, ošetření, vlastníka a metodu ověření. Propojte záznam s verzí architektury a relevantní implementační prací, aby přezkoumávající poznali, který návrh byl posouzen.
Ošetření převeďte na testovatelná kritéria přijetí. „Zlepšit řízení přístupu“ je vágní. „Tenant A nemůže přes žádný podporovaný endpoint požádat o export tenanta B, dotazovat se na něj, zrušit ho ani ho stáhnout“ identifikuje chování, které vývoj může ověřit.
Používejte důkazy přiměřené tvrzení:
Žádný jednotlivý artefakt neprokazuje celý model. Snímek obrazovky nastavení neprokazuje, že ho používá každý worker, a úspěšný test neprokazuje netestovanou cestu. Zaznamenejte testovací prostředí, rozsah, výsledky a omezení.
Modelování hrozeb doplňuje bezpečné programování, posuzování závislostí, skenování zranitelností a penetrační testování. Jeho jedinečným přínosem je architektonické uvažování: dokáže odhalit nebezpečné rozložení pravomocí, i když jednotlivé komponenty nemají žádnou známou zranitelnost.
Sdílený diagram a strukturovaný registr mohou podpořit první cílené přezkoumání. Specializované nástroje se stávají užitečnými, když týmy potřebují opakovaně použitelné knihovny komponent, konzistentní identifikátory, spolupráci a spolehlivé vazby mezi hrozbami a záznamy o realizaci.
Vyhodnoťte, zda nástroj podporuje hranice důvěry, vlastní scénáře, historii verzí, exportovatelné záznamy, vlastnictví a odkazy na důkazy. Automaticky generované hrozby jsou podněty k prověření, nikoli potvrzená zjištění. Dlouhé seznamy bez kontextu mohou skrýt těch několik rozhodnutí, na kterých záleží.
Asistence AI může navrhovat popisy scénářů, upozorňovat na chybějící cesty nebo porovnávat změny s dřívějším modelem. Lidští přezkoumávající však stále musí ověřit architekturu, proveditelnost, pokrytí zmírňujícími opatřeními a zbytkové riziko. Důvěrné diagramy a přihlašovací údaje nedávejte do neschválených služeb. Generování modelu hrozeb se také liší od detekce za běhu; vytvoření modelu nezakládá průběžné monitorování ani automatizovanou nápravu.
Aktualizujte model při nových integracích, změnách ověřování, privilegovaných akcích, nových kategoriích dat, síťové expozici a zásadních změnách závislostí. Incident nebo neočekávaný výsledek testu může také zneplatnit dřívější předpoklad.
Různé systémy vyžadují různý důraz. Cloudové aplikace vyžadují pozornost k oprávněním identit a přístupu k řídicí rovině. Mobilní klienty je třeba považovat za prostředí ovládané útočníkem, nikoli za důvěryhodné body vynucování. Připojená zařízení přinášejí fyzický přístup, integritu aktualizací, obnovu a potenciálně i dopady na bezpečnost osob. Funkce využívající AI přidávají nedůvěryhodný obsah a hranice používání nástrojů; autorizace musí omezovat akce bez ohledu na výstup modelu.
Měřte, zda mají důležité toky aktuální modely, zda mají vysoce prioritní ošetření důkazy o ověření, zda zůstávají předpoklady nevyřešené a zda mají akceptovaná rizika přezkoumání po termínu. Samotné počítání hrozeb odměňuje objem místo užitečné analýzy. Pravidelně požádejte nezávislého přezkoumávajícího, aby zpochybnil jeden kritický scénář a jeho důkazy.
Secani může zachovat pracovní postup kolem těchto rozhodnutí modelováním relevantních systémů a závislostí, přidělováním vlastníků a přezkoumávajících a propojováním důkazů s požadavky, opatřeními a rozhodnutími. Nevyřešené předpoklady se stávají úkoly; zdrojové materiály a lidská schválení zůstávají připojeny k přezkoumání. Jakékoli návrhy s podporou AI by měly být před schválením zkontrolovány.
Začněte jedním kritickým datovým tokem. Sledujte jeho pravomoci od začátku do konce, identifikujte několik věrohodných scénářů a zakončete to ošetřeními s vlastníky a explicitními kritérii ověření. Další přezkoumání naplánujte podle změn architektury, které by mohly tato rozhodnutí zneplatnit.
Secani propojuje rozsahy, důkazy, úkoly a agenty AI v jednom sdíleném pracovním prostoru.
Propojte kritické služby s cíli obnovy, závislostmi, cvičeními a nápravnými opatřeními, aby plány kontinuity odrážely skutečné schopnosti.
Prověřte identity, expozici, šifrování, obnovu a logování v cloudu pomocí důkazů vázaných na skutečné účty, služby a data.
Kombinujte opakované technické kontroly a pravidelný odborný úsudek s jasným pokrytím, stavem sběru, prahovými hodnotami a vlastnictvím následných kroků.