
Modelovanie hrozieb sa pýta, čo sa môže pokaziť v konkrétnom systéme a čo by s tým mal tím urobiť. Jeho užitočným výstupom nie je katalóg desivých možností. Je ním súbor rozhodnutí o návrhu a implementácii naviazaných na architektúru, s vlastníkmi a dôkazmi, že zvolené obranné opatrenia fungujú.
Pre CTO je ústrednou otázkou, či vývoj dokáže vysvetliť, ako dôležité bezpečnostné vlastnosti obstoja pri skutočnom správaní systému: pri opakovaných pokusoch, úlohách na pozadí, privilegovaných zásahoch podpory, výpadkoch dodávateľov a škodlivých vstupoch. Diagram robí tieto rozhovory konkrétnymi. Udržiavaný model hrozieb premieňa závery na realizačnú prácu.
Usmernenia OWASP k modelovaniu hrozieb poskytujú užitočný základ: pochopiť systém, identifikovať hrozby, rozhodnúť o reakcii a posúdiť, či je práca dostatočná. Nasledujúci postup uplatňuje toto uvažovanie na inžinierske rozhodnutia.
Začnite ohraničenou schopnosťou, napríklad exportmi pre zákazníkov, iniciovaním platieb alebo aktualizáciami zariadení. Modelovanie celej platformy naraz často vedie k povrchným pozorovaniam, pretože nikto nedokáže vysvetliť každú závislosť dostatočne podrobne.
Aktíva a bezpečnostné ciele formulujte prevádzkovo. „Chrániť údaje zákazníkov“ je príliš široké. „Autentifikovaný používateľ môže exportovať iba záznamy patriace jeho autorizovanému tenantovi“ dáva tímu vlastnosť, ktorú možno testovať. Ďalšie ciele sa môžu týkať integrity transakcií, dostupnosti služby, obnovy alebo pripísateľnosti administrátorských zásahov.
Identifikujte používateľov, služby, dátové úložiská, externé závislosti, vstupné body a hranice dôvery. Nakreslite dôležité dátové toky vrátane asynchrónneho spracovania a administrátorských ciest. Toky označte prenášanými údajmi, mechanizmom autentifikácie a autorizačným kontextom, ak ovplyvňujú analýzu.
Hranica dôvery označuje zmenu predpokladov alebo právomoci, nie nevyhnutne sieťový perimeter. Prehliadač volajúci API prekračuje jednu hranicu. Zdieľaný worker konajúci v mene zákazníka prekračuje ďalšiu, aj keď obe služby bežia v tom istom klastri.
Pri multi-tenantovej aplikácii ukážte, kde sa určuje identita tenanta a ako sa dostáva k autorizačným kontrolám, úlohám na pozadí a exportom. Zahrňte identity služieb, prístup k objektovému úložisku, nástroje podpory a externé callbacky. Inak môže diagram opisovať ideálnu cestu a vynechať práve tie cesty, ktoré s najväčšou pravdepodobnosťou obídu izoláciu.
Predpoklady zaznamenávajte oddelene od faktov. „Do fronty nemôžu zapisovať zákazníci“ potrebuje podporné dôkazy o konfigurácii. Neznáme by sa mali stať úlohami na prešetrenie, nie potichu akceptovanými obrannými opatreniami.
Metóda poskytuje podnety a štruktúru. Neurčuje, ktoré hrozby sú najdôležitejšie, nedokazuje, že návrh je bezpečný, a nenahrádza znalosť systému.
STRIDE skúma šesť kategórií. Uplatňujte ich na relevantné komponenty, toky a hranice, namiesto toho, aby ste každú kategóriu nasilu aplikovali na každý prvok diagramu.
| Kategória | Otázka | Príklad v službe na export pre zákazníkov |
|---|---|---|
| Spoofing (podvrhnutie identity) | Môže sa aktér vydávať za inú identitu? | Callback tvrdí, že pochádza od dôveryhodného poskytovateľa. |
| Tampering (neoprávnená zmena) | Možno údaje alebo inštrukcie zmeniť bez oprávnenia? | Identifikátor tenanta v úlohe vo fronte je pozmenený. |
| Repudiation (popretie) | Môže dôležitý úkon postrádať spoľahlivú pripísateľnosť? | Export podpory nemá pripísateľný záznam o schválení. |
| Information disclosure (únik informácií) | Môžu sa informácie dostať k neoprávnenej strane? | Odkaz na stiahnutie sprístupní export iného tenanta. |
| Denial of service (odmietnutie služby) | Môže aktér vyčerpať zdroje alebo narušiť službu? | Opakované exporty monopolizujú zdieľané workery. |
| Elevation of privilege (eskalácia oprávnení) | Môže aktér získať väčšiu právomoc? | Bežný používateľ vyvolá export vyhradený pre administrátorov. |
Jeden scenár môže zasahovať do viacerých kategórií. Tam, kde je to vhodné, ponechajte jeden použiteľný záznam, namiesto vytvárania duplicitných tiketov len kvôli taxonómii.
PASTA (Process for Attack Simulation and Threat Analysis) ponúka sedemstupňový prístup orientovaný na riziko, ktorý prepája obchodné ciele, technický rozsah, dekompozíciu, analýzu hrozieb a zraniteľností, modelovanie útokov a ošetrenie rizík. Hodí sa na hlbšiu analýzu, kde si správanie útočníka a obchodné dôsledky vyžadujú explicitnú pozornosť.
Stromy útokov začínajú cieľom útočníka a rozkladajú ho na alternatívne alebo kombinované cesty. Pre cieľ „získať export iného tenanta“ môžu alternatívy zahŕňať obídenie autorizácie API, zmätenie kontextu tenanta vo workeri alebo krádež prístupového údaja na stiahnutie. Vzťahy AND predstavujú podmienky, ktoré musia nastať súčasne; vzťahy OR predstavujú alternatívy.
VAST (Visual, Agile, and Simple Threat modeling) kladie dôraz na škálovateľné modelovanie z aplikačného aj prevádzkového pohľadu. Tímy, ktoré ho zvažujú, by mali preskúmať, či ich nástroje a vývojový proces dokážu tieto pohľady konzistentne udržiavať.
Praktickým odporúčaním na začiatok je diagram dátových tokov spolu so STRIDE, po ktorom nasleduje strom útokov pre scenár s najzávažnejšími dôsledkami. Viac metodiky je užitočné iba vtedy, ak zlepšuje rozhodnutia.
Prizvite ľudí, ktorí rozumejú implementácii a prevádzke: vývojára, architekta alebo technického vedúceho, bezpečnostného posudzovateľa a niekoho, kto pozná správanie produkcie. Ak ich znalosti ovplyvňujú rozsah, zahrňte aj špecialistov na produkt, ochranu súkromia alebo dodávateľov.
Pred stretnutím rozošlite diagram, bezpečnostné ciele, relevantnú konfiguráciu a nevyriešené predpoklady. Počas preskúmania prejdite jednu požiadavku alebo udalosť od vstupu až po dokončenie. Pýtajte sa, kde sa mení identita, kde sa údaje ukladajú, čo sa opakuje a ktorý komponent má právomoc schváliť určitý úkon.
Hrozby zapisujte ako scenáre, nie ako označenia. „Problém s autorizáciou“ nie je dostatočne užitočné. Silnejšie tvrdenie znie: „Autentifikovaný používateľ nahradí identifikátor exportu iného tenanta; koncový bod na stiahnutie kontroluje prihlásenie, ale nie vlastníctvo objektu, čím sprístupní záznamy zákazníkov.“
Rozlišujte tri pojmy:
Hrozbu sa môže oplatiť prešetriť ešte pred potvrdením zraniteľnosti. Rovnako tak zistenie slabiny nedokazuje, že každý predstaviteľný útok je uskutočniteľný.
Popri externých útokoch zahrňte aj zneužitie legitímnymi používateľmi, privilegovaných insiderov, chyby konfigurácie a zlyhania dodávateľov. Pýtajte sa, čo sa stane, keď závislosť vyprší alebo vráti neočakávanú odpoveď. Z týchto diskusií často vyplynie správanie typu fail-open a nekonzistentné opakovania.
Nasledujúci príklad je ilustratívny. Predpokladajme, že aplikácia SaaS má klienta v prehliadači, API, zdieľanú databázu, frontu úloh, exportný worker a objektové úložisko. Používatelia tenantov žiadajú o exporty CSV; worker generuje súbory a API vydáva dočasné odkazy na stiahnutie. Administrátori podpory majú samostatné rozhranie na riešenie problémov.
Bezpečnostnými cieľmi sú izolácia tenantov, oprávnené iniciovanie exportov, ohraničená spotreba zdrojov a pripísateľné zásahy podpory. Predpokladajme, že worker má prístup k databáze dostatočne široký na obsluhu viacerých tenantov. Tým sa jeho zaobchádzanie s kontextom tenanta stáva ústredným rozhodnutím, nie menej významným implementačným detailom.
V API je autentifikovaný subjekt priradený k povolenému členstvu v tenante. Identifikátor tenanta poskytnutý prehliadačom je požiadavkou na výber, nie dôkazom oprávnenia. API skontroluje členstvo a oprávnenie na export a až potom vytvorí nemenný záznam úlohy obsahujúci autorizovaného tenanta, žiadateľa a povolený rozsah exportu.
Správa vo fronte odkazuje na tento záznam. Worker overí úlohu a pri vytváraní exportu vynúti prístup k údajom obmedzený na tenanta. Metadáta úložiska priraďujú výsledný objekt k úlohe a tenantovi. Pred vydaním odkazu na stiahnutie API skontroluje oprávnenie aktuálneho žiadateľa voči tomuto priradeniu.
Aj tento návrh si vyžaduje explicitné rozhodnutia o odobratí prístupu: mal by si používateľ, ktorý po vyžiadaní exportu stratí členstvo, ponechať prístup k dokončenému súboru? Tím musí túto politiku definovať a konzistentne implementovať.
| Scenár | Rozhodnutie o ošetrení | Dôkazy o overení |
|---|---|---|
| Používateľ nahradí identifikátor iného tenanta | Odvodiť povolený rozsah z členstva na strane servera a kontrolovať vlastníctvo objektu | Negatívne testy API s dvoma tenantmi a viacerými rolami |
| Worker spracuje nesprávny kontext tenanta | Overovať úlohy voči autoritatívnym záznamom a používať dopyty obmedzené na tenanta | Testy workera s nezhodným, chýbajúcim a chybne formátovaným kontextom |
| Odkaz na stiahnutie unikne cez logy alebo tikety podpory | Nedávať prístupové údaje do logov a obmedziť platnosť odkazu podľa expozície | Preskúmanie logovania, testy expirácie odkazov a preskúmanie prístupových ciest |
| Jeden tenant zahltí exportnú frontu | Uplatniť kvóty na tenanta, limity súbežnosti a hranice záťaže | Záťažové testy ukazujúce správanie služby pri zneužívajúcom dopyte |
| Pracovníci podpory exportujú údaje bez zodpovednosti | Vyžadovať explicitné privilegované oprávnenie a pripísateľné záznamy udalostí | Testy rolí a preskúmané vzorky administrátorských udalostí |
Dočasné odkazy vytvárajú zostatkové okno expozície: v závislosti od mechanizmu môže vlastníctvo odkazu umožniť prístup až do jeho expirácie. Tím by mal rozhodnúť, či je to pre dotknuté údaje prijateľné, alebo či stiahnutia potrebujú autentifikovaného sprostredkovateľa s aktuálnymi kontrolami oprávnení.
Model neuzatvárajte po otestovaní iba synchrónneho API. Overte oneskorené úlohy, opakované pokusy, zrušené požiadavky, uplynuté členstvo, vymazaných tenantov a čiastočné zlyhania. Napríklad opakovaná úloha nesmie znovu použiť objekt priradený inému tenantovi ani zverejniť neúplný export ako úspešný.
Výsledným výstupom je preskúmaná architektúra, register hrozieb, implementačné úlohy a prepojené výsledky overenia. Nie je to len diagram.
Pravdepodobné scenáre prioritizujte podľa expozície, dopadu, predpokladov a existujúcich obranných opatrení. Rozlišujte priamo dosiahnuteľné zlyhanie autorizácie od scenára, ktorý si vyžaduje niekoľko nepreukázaných kompromitácií. Tam, kde je to relevantné, zohľadnite dotknuté údaje, narušenie služby, finančné dôsledky, vplyv na bezpečnosť osôb a náročnosť obnovy.
Ak to tímu pomáha, používajte jednoduchú konzistentnú stupnicu, ale zaznamenajte zdôvodnenie hodnotenia. Číselné skóre s nevysvetlenými vstupmi vytvára falošnú presnosť. CVSS môže poslúžiť pri posudzovaní konkrétnej zraniteľnosti; nie je však náhradou za pochopenie obchodného dopadu ani architektonického prípadu zneužitia.
Možnosti ošetrenia zahŕňajú zmenu návrhu, zníženie expozície, pridanie preventívnych alebo detekčných opatrení, vyhnutie sa danej schopnosti alebo akceptovanie zostávajúceho rizika. Zmluvy s dodávateľmi môžu rozdeliť zodpovednosti, ale neodstraňujú technické spôsoby zlyhania.
Zostatkové riziko by malo mať menovite určeného rozhodovateľa, dôvod, dátum expirácie alebo podnet na preskúmanie a prípadné prevádzkové podmienky. Dokončenie vývoja a akceptovanie rizika sú rozdielne rozhodnutia. Tiket môže byť hotový, aj keď významné riziko pretrváva.
Pri každom podstatnom scenári zaznamenajte jeho identifikátor, dotknuté komponenty, predpoklady, dôsledok, existujúce obranné opatrenia, ošetrenie, vlastníka a metódu overenia. Záznam prepojte s verziou architektúry a relevantnou implementačnou prácou, aby posudzovatelia vedeli, ktorý návrh bol posúdený.
Ošetrenia premeňte na testovateľné akceptačné kritériá. „Zlepšiť riadenie prístupu“ je vágne. „Tenant A nemôže vyžiadať, dopytovať, zrušiť ani stiahnuť export tenanta B cez žiadny podporovaný koncový bod“ určuje správanie, ktoré môže vývoj overiť.
Používajte dôkazy primerané tvrdeniu:
Žiadny jednotlivý artefakt nedokazuje celý model. Snímka obrazovky nastavenia nedokazuje, že ho používa každý worker, a úspešný test nepreukazuje neotestovanú cestu. Zaznamenajte testovacie prostredie, rozsah, výsledky a obmedzenia.
Modelovanie hrozieb dopĺňa bezpečné programovanie, posudzovanie závislostí, skenovanie zraniteľností a penetračné testovanie. Jeho osobitým prínosom je architektonické uvažovanie: dokáže odhaliť nebezpečné rozdelenie právomocí, aj keď jednotlivé komponenty nemajú žiadnu známu zraniteľnosť.
Zdieľaný diagram a štruktúrovaný register môžu podporiť prvé zamerané preskúmanie. Špecializované nástroje začnú byť užitočné, keď tímy potrebujú opakovane použiteľné knižnice komponentov, konzistentné identifikátory, spoluprácu a spoľahlivé prepojenia medzi hrozbami a realizačnými záznamami.
Posúďte, či nástroj podporuje hranice dôvery, vlastné scenáre, históriu verzií, exportovateľné záznamy, vlastníctvo a odkazy na dôkazy. Automaticky generované hrozby sú podnetmi na preskúmanie, nie potvrdenými zisteniami. Dlhé zoznamy bez kontextu môžu skryť tých niekoľko rozhodnutí, na ktorých záleží.
Podpora AI môže navrhnúť opisy scenárov, upozorniť na chýbajúce cesty alebo porovnať zmeny so starším modelom. Ľudskí posudzovatelia však stále musia overiť architektúru, uskutočniteľnosť, pokrytie zmierňujúcimi opatreniami a zostatkové riziko. Dôverné diagramy a prístupové údaje nevkladajte do neschválených služieb. Generovanie modelu hrozieb sa tiež líši od detekcie za behu; vytvorenie modelu nezakladá nepretržité monitorovanie ani automatizovanú nápravu.
Model aktualizujte pri nových integráciách, zmenách autentifikácie, privilegovaných úkonoch, kategóriách údajov, sieťovej expozícii a veľkých zmenách závislostí. Aj incident alebo neočakávaný výsledok testu môže zneplatniť skorší predpoklad.
Rôzne systémy si vyžadujú rozdielny dôraz. Cloudové aplikácie si vyžadujú pozornosť venovanú oprávneniam identít a prístupu k riadiacej vrstve (management plane). Mobilných klientov treba považovať za prostredia ovládané útočníkom, nie za dôveryhodné body vynucovania. Pripojené zariadenia prinášajú fyzický prístup, integritu aktualizácií, obnovu a potenciálne aj dôsledky pre bezpečnosť osôb. Funkcie s podporou AI pridávajú nedôveryhodný obsah a hranice používania nástrojov; autorizácia musí obmedzovať úkony bez ohľadu na výstup modelu.
Merajte, či majú dôležité toky aktuálne modely, či majú ošetrenia s vysokou prioritou dôkazy o overení, či zostávajú predpoklady nevyriešené a či majú akceptované riziká oneskorené preskúmania. Samotné počítanie hrozieb odmeňuje objem, nie užitočnú analýzu. Pravidelne požiadajte nezávislého posudzovateľa, aby spochybnil jeden kritický scenár a jeho dôkazy.
Secani môže zachovať pracovný postup okolo týchto rozhodnutí modelovaním relevantných systémov a závislostí, prideľovaním vlastníkov a posudzovateľov a prepájaním dôkazov s požiadavkami, opatreniami a rozhodnutiami. Nevyriešené predpoklady sa stávajú úlohami; zdrojové materiály a ľudské schválenia zostávajú pripojené k preskúmaniu. Akékoľvek návrhy s podporou AI by sa mali pred schválením skontrolovať.
Začnite jedným kritickým dátovým tokom. Sledujte jeho právomoc od začiatku do konca, identifikujte niekoľko pravdepodobných scenárov a skončite ošetreniami s vlastníkmi a explicitnými kritériami overenia. Ďalšie preskúmanie naplánujte podľa zmien architektúry, ktoré by mohli tieto rozhodnutia zneplatniť.
Secani prepája rozsahy, dôkazy, úlohy a agentov AI v jednom zdieľanom pracovnom priestore.
Prepojte kritické služby s cieľmi obnovy, závislosťami, cvičeniami a nápravnými opatreniami, aby plány kontinuity odrážali skutočné schopnosti.
Preverujte identity, expozíciu, šifrovanie, obnovu a logovanie v cloude pomocou dôkazov viazaných na skutočné účty, služby a dáta.
Kombinujte opakované technické kontroly s periodickým úsudkom, s jasným pokrytím, zdravím zberu dát, prahovými hodnotami a zodpovednosťou za nadväzné kroky.