V minulom blogu sme písali o modelovaní a prečo ho využívajú všetci technologickí giganti. Potrebuješ ho ale aj ty? Podľa štúdie vykonanej na univerzite v Marylande dochádzka k hackerskému útoku každých 39 sekúnd, pričom takmer polovica kyberútokov je mierená na malé biznisy. Ak teda práve vyvíjaš kamoške malú appku na trackovanie kalórii, či eshop so zopár produktami pre klienta, odpoveď je áno.
Otázkou ale zostáva – treba modelovať, keď máme penetračné testy, statickú aj dynamickú analýzu kódu, automatické testy a kopec ďalších nástrojov, ktoré by mali zabezpečiť, aby bol projekt nepriestrelný? Aj tu odborníci kývu hlavou zhora nadol. Prečo? Lebo je oveľa jednoduchšie opraviť niečo predtým, ako to niečo dokončíš, ako naopak. Oplatí sa preto investovať čas do kvalitnej analýzy. A aby si pri nej na nič nezabudol, rozobrali sme pre teba najznámejšie metodológie modelovania hrozieb, ktoré môžeš použiť.
STRIDE
Názov je memotechnickou pomôckom reprezentujúcou pomenovania hrozieb:
- Spoofing: môže útočník získať prístup pomocou falošnej identity?
- Tampering (Manipulácia): môže útočník upravovať údaje, ktoré prechádzajú aplikáciou?
- Repudiation (Odmietnutie): ak útočník popiera, že niečo urobil, môžeš dokázať opak?
- Information disclosure (Zverejnenie informácií): môže útočník získať prístup k súkromným alebo potenciálne škodlivým údajom?
- Denial of service (Odmietnutie služby): môže útočník spôsobiť zlyhanie alebo obmedziť dostupnosť appky, webky?
- Elevation of privilage (Zvýšenie privilégií): môže útočník prevziať identitu privilegovaného používateľa?
V súčasnosti ide o najvyspelejšiu metódu modelovania hrozieb. Používa sa na čisto kybernetické i na kyberfyzikálne systémy.
PASTA
Process for Attack Simulation and Threat Analysis (PASTA) je spôsob modelovania hrozieb zameraný na riziká vyvinutý v roku 2012. Jeho cieľom je spojiť obchodné ciele a technické požiadavky. Ide o postupnosť krokov:
- Definícia cieľov
- Obchodné ciele a požiadavky na bezpečnosť (GDPR a pod.)
- Analýza dopadov na podnikanie (Business Impact Analysis – BIA) – určenie a vyhodnotenie potenciálnych obchodných problémov v dôsledku komplikácií (prírodné katastrofy, odchod dodávateľa, investorov, ale aj hackerský útok)
- Definícia technického rozsahu
- Obmedzenia technického prostredia, závislosti infraštruktúry, aplikácií a softvéru
- “Rozpitvanie” aplikácie
- Identifikácia prípadov použitia, definícia vstupných bodov aplikácie a úrovní prístupov
- Vytvorenie diagramu toku údajov (DFD)
- Analýza hrozieb
- Analýza pravdepodobnosti scenárov útoku (ako často môžem útoky očakávať?)
- Regresná analýza bezpečnostných udalostí (ako útoky vznikajú?)
- Korelácia a analytika inteligencie hrozieb (aké sofistikované tieto útoky sú a čo môžu mojej aplikácii spôsobiť?)
- Analýza zraniteľností
- Mapovanie hrozieb pre existujúce zraniteľnosti pomocou stromov hrozieb
- Zoradenie hrozieb od najkritickejších po najmenej kritické
- Modelovanie útokov
- Modelácia útokov na vývojové prostredie, knižnice, frond-endové vstupy a pod.
- Analýza rizík a dopadov
- Vyčíslenie obchodného dopadu možných útokov
- Identifikácia protiopatrení a analýza rizika, stratégia na jeho zmiernenie
Táto metóda “povyšuje” proces modelovania hrozieb na strategickejšiu úroveň, pretože zahŕňa aj obchodnú stránku a vypočítava možné straty vyplývajúce z narušenia bezpečnosti. Zároveň sa na aplikáciu pozerá aj z pohľadu útočníka (modelácia útokov) a ponúka medzi inými aj veľmi užitočný výstup – podľa kritickosti radený zoznam hrozieb, ktorý ti pomôže si správne zoradiť priority.
CVSS
Common Vulnerability Scoring System (CVSS) vytvoril Národný inštitút pre štandardy a technológie (National Institute of Standards and Technology – NIST). Táto metóda vytvára boduje zraniteľnosti podľa ich závažnosti na základe troch základných metrík: základ (base), časové hľadiská (temporal metrics) a aspekty prostredia (environmental metrics).
aždá skupina obsahuje niekoľko údajov, následne sa vyhodnocuje a na záver sa výsledky všetkých troch skombinujú do konečných čísel hovoriacich o kritickosti hrozby. Na samotný výpočet (našťastie) existuje online kalkulačku. Skóre CVSS je teda odvodené z hodnôt, ktoré priradíš pre každú metriku. Čo ktorá znamená si môžeš prečítať v dokumentácii.
Stromy hrozieb (Attack trees)
Stromy hrozieb sú jednou z najstarších a najpoužívanejších metód na modelovanie hrozieb pre kybernetické, kyberfyzikálne ale aj čisto fyzikálne systémy (napríklad modelácia potenciálneho útoku na bezpečnostný sejf). Spočiatku boli stromy aplikované ako samostatná metóda, ale dnes sa už kombinujú s ďalšími metodológiami, ako STRIDE, PASTA a CVSS.
Strom hrozieb je diagram, ktorý zobrazuje útoky na systém vo forme, ako inak, stromu; vrcholec je cieľ útoku a listy sú spôsoby, ako tento cieľ dosiahnuť. Pre každý cieľ by si mal vytvoriť iný strom – výsledkom potom bude les stromov hrozieb, ktorý predstavuje kompletnú analýzu systémových nebezpečenstiev.
Existujú aj ďalšie metodológie a samozrejme nespočetné množstvo ich kombinácii. Nech si vyberieš akúkoľvek, odporúčame ti hlavne zachovať chladnú hlavu. Určite nie je správne len nerozvážne kódiť a na riziká kašľať, ale zase prehodnocovať každý možný riadok v konzole a dumať, či nepôjde o potenciálnu hrozbu, môže spôsobiť, že svoju appku nikdy nedokončíš. Rovnako nie je múdre hrabať sa spätne v starých projektoch a skúšať na nich napasovať niektorý model – skôr sa sústreď na dobrú analýzu nových funkcií a ďalších projektov, do ktorých sa pustíš.
Zdroje:
- https://reciprocity.com/blog/top-threat-modeling-methodologies/
- https://threatmodeler.com/evolution-of-threat-modeling/
- https://www.techtarget.com/searchstorage/definition/business-impact-analysis
- https://threatmodeler.com/threat-modeling-methodologies-overview-for-your-business/
- https://threatmodeler.com/threat-modeling-methodologies-vast/
- https://www.alldaydevops.com/blog/how-to-fail-at-threat-modeling
- https://www.cybintsolutions.com/cyber-security-facts-stats/
- https://eng.umd.edu/news/story/study-hackers-attack-every-39-seconds