🧭 Draudu modelēšana - kā atrast vājās vietas, pirms tās atrod uzbrucējs
Septiņas sadaļas par draudu modelēšanu starptautiskajā praksē: četri jautājumi (Threat Modeling Manifesto), sistēmas modelis ar uzticamības robežām, STRIDE, uzbrukumi interneta veikalam soli pa solim, riska rīcība, metodes un rīki, saistība ar NIS2 un standartiem. Piemēri ir izdomāti, paredzēti apmācībām.
Četri jautājumi
Kas ir draudu modelēšana un kāpēc to darīt
Draudu modelēšana ir strukturēts veids, kā atrast, kas sistēmā var noiet greizi, vēl pirms to atrod uzbrucējs. To dara projektēšanas laikā, kad kļūdu labot ir lētāk nekā pēc palaišanas, un atkārto, kad sistēma mainās.
Četri jautājumi Threat Modeling Manifesto
- 1. Ko mēs veidojam?What are we working on?sistēmas modelis: daļas, dati, plūsmas un uzticamības robežas
- 2. Kas var noiet greizi?What can go wrong?draudu saraksts, piemēram, pēc STRIDE katram elementam
- 3. Ko mēs darīsim?What are we going to do about it?rīcība katram draudam: novērst, mazināt, nodot vai pieņemt
- 4. Vai izdarījām pietiekami labi?Did we do a good enough job?pārbaude, ka pasākumi ieviesti un modelis atbilst sistēmai
Kad modelēt
- Jaunai sistēmaiprojektēšanas laikā, pirms koda
- Būtiskai izmaiņaijauna funkcija, integrācija, mākonis, cits piegādātājs
- Pirms palaišanaspārbaude, ka atrastie draudi ir apstrādāti
- Pēc incidentako modelis nepamanīja un kāpēc
Kas piedalās
Izstrādātāji un arhitekts, kas sistēmu zina, produkta īpašnieks, kas zina biznesa vērtību, darbības komanda un drošības speciālists. Labākie draudi atrodas sarunā, ne vienas personas dokumentā.
Manifesta vērtības
Atrast un labot dizaina kļūdas ir svarīgāk par atbilstības ķeksīšiem; cilvēki un sadarbība - par rīkiem; izpratne - par vienreizēju momentuzņēmumu; darīt - par runāšanu; pastāvīga pilnveide - par vienu nodevumu.
Rezultāts
Ne biezs dokuments, bet saraksts ar konkrētiem draudiem un uzdevumiem, kas nonāk izstrādes darba sarakstā tāpat kā jebkurš cits darbs.
Biežākā kļūda
Sākt ar rīku vai veidni, nevis ar jautājumu, ko sistēma dara. Modelis, ko neviens neatjauno, pēc pusgada apraksta citu sistēmu.
Ko mēs veidojam?
Sistēmas modelis - datu plūsmas un uzticamības robežas
Pirmais jautājums - ko mēs veidojam - atbild ar datu plūsmas diagrammu (DFD). Piemērā ir neliels interneta veikals. Pārtrauktā līnija ir uzticamības robeža: vieta, kur dati pāriet no vienas uzticības pakāpes citā. Tieši tur visbiežāk ir draudi.
- Pircējs → tīmekļa lietotne: pieteikšanās un pasūtījums.
- Tīmekļa lietotne ↔ maksājumu pakalpojums: maksājuma pieprasījums un apstiprinājums.
- Tīmekļa lietotne → pasūtījumu datubāze: pasūtījumi un klientu dati.
- Administrators → admin panelis: pieteikšanās un satura maiņa.
- Admin panelis → pasūtījumu datubāze: labojumi.
- Admin panelis → žurnāli: kas un kad ko mainīja.
| Elements | Kā zīmē | Ko nozīmē | Piemērs vietnē |
|---|---|---|---|
| Ārēja puse | Kā zīmētaisnstūris | Ko nozīmēcilvēks vai sistēma, ko tu nekontrolē | Piemērs vietnēpircējs, maksājumu pakalpojums |
| Process | Kā zīmēaplis | Ko nozīmēkods, kas apstrādā datus | Piemērs vietnētīmekļa lietotne, admin panelis |
| Datu krātuve | Kā zīmēdivas paralēlas līnijas | Ko nozīmēvieta, kur dati glabājas | Piemērs vietnēdatubāze, žurnāli, failu mape |
| Datu plūsma | Kā zīmēbulta | Ko nozīmēdati, kas pārvietojas starp elementiem | Piemērs vietnēpasūtījums, maksājuma apstiprinājums |
| Uzticamības robeža | Kā zīmēpārtraukta līnija | Ko nozīmēvieta, kur mainās uzticības pakāpe vai īpašnieks | Piemērs vietnēinternets - serveris - iekšējais tīkls |
Tvērums
Pirms zīmēšanas pieraksti, kas ir modelī un kas nav. Viena lapa vienai sistēmai - ja shēma neietilpst, sadali to.
Vērtīgākie aktīvi
Kas būtu sliktākais, ja nonāktu nepareizās rokās vai pazustu? Vietnei tie parasti ir klientu dati, pieteikšanās dati, maksājumu plūsma un administratora piekļuve.
Ieejas punkti
Katra vieta, kur sistēmā ienāk dati: formas, API, failu augšupielāde, administrēšanas panelis, integrācijas. Uzbrucējs sāk tieši tur.
Kas var noiet greizi?
STRIDE - seši draudu veidi
Otrais jautājums - kas var noiet greizi. STRIDE ir Microsoft izstrādāts atgādinājums par sešiem draudu veidiem. Katrs ir pretstats kādai drošības īpašībai, tāpēc, ejot cauri visiem sešiem, neviena draudu klase netiek aizmirsta.
| Draudu veids | Kas notiek | Pārkāptā īpašība | Piemērs vietnē | Tipiskā kontrole |
|---|---|---|---|---|
| S Identitātes viltošanaSpoofing | Kas notiekkāds izliekas par citu lietotāju vai sistēmu | Pārkāptā īpašībaautentiskums | Piemērs vietnēuzbrucējs piesakās ar nopludinātu administratora paroli | Tipiskā kontrolestipra autentifikācija, MFA, droša sesija |
| T Datu sagrozīšanaTampering | Kas notiekdati, kods vai konfigurācija tiek mainīti bez atļaujas | Pārkāptā īpašībaintegritāte | Piemērs vietnēpircējs pārlūkā nomaina preces cenu pirms pasūtījuma | Tipiskā kontrolepārbaude serverī, paraksti, piekļuves tiesības |
| R Darbības noliegšanaRepudiation | Kas notiekkāds noliedz darbību, un to nevar pierādīt | Pārkāptā īpašībaneatsaucamība | Piemērs vietnēklients apgalvo, ka pasūtījumu neveica | Tipiskā kontroleaudita žurnāli ārpus sistēmas, laika zīmogi |
| I Informācijas noplūdeInformation disclosure | Kas notiekdati nonāk pie kāda, kam tos nevajadzētu redzēt | Pārkāptā īpašībakonfidencialitāte | Piemērs vietnēkļūdas lapa parāda datubāzes vaicājumu | Tipiskā kontrolešifrēšana, piekļuves kontrole, kļūdas bez detaļām |
| D Pakalpojuma atteiceDenial of service | Kas notieksistēma kļūst nepieejama vai lēna | Pārkāptā īpašībapieejamība | Piemērs vietnērobots pārpludina pieteikšanās formu | Tipiskā kontrolepieprasījumu limiti, CDN, mērogošana |
| E Tiesību paaugstināšanaElevation of privilege | Kas notieklietotājs iegūst vairāk tiesību, nekā viņam pienākas | Pārkāptā īpašībaautorizācija | Piemērs vietnēparasts pircējs atver administrēšanas funkciju | Tipiskā kontroletiesību pārbaude katrā pieprasījumā, mazākās tiesības |
STRIDE pa elementu tipiem
Ne katrs draudu veids der katram elementam. Microsoft tabula saka, kurus jautāt kuram - tas saīsina darbu un neko neizlaiž.
| Elements | S | T | R | I | D | E |
|---|---|---|---|---|---|---|
| Ārēja puse | S✓ | T- | R✓ | I- | D- | E- |
| Process | S✓ | T✓ | R✓ | I✓ | D✓ | E✓ |
| Datu krātuve | S- | T✓ | R✓ žurnāliem | I✓ | D✓ | E- |
| Datu plūsma | S- | T✓ | R- | I✓ | D✓ | E- |
Kā lietot
Katram elementam un katrai plūsmai uzdod tikai tos jautājumus, kas tabulā atzīmēti. Plūsmas, kas šķērso uzticamības robežu, izskati pirmās.
Ierobežojums
STRIDE atrod dizaina draudus, bet ne visu: biznesa loģikas kļūdas un privātuma riskus labāk atrod ar papildu jautājumiem vai LINDDUN.
Uzbrucēja skatījums
Interneta veikals soli pa solim
Tas pats veikals ar uzbrucēja acīm. Ej cauri soļiem: katrs ir viens STRIDE draudu veids un zaļā piezīme - kontrole, kas to aptur.
Seši draudi vienai vietnei
Katrs solis - viens STRIDE burts. Pārbaudi, vai tavā vietnē šī kontrole ir.
Uzbrukumi interneta veikalam
- 1Uzbrucējs → Veikalspieteikšanās ar nopludinātu paroli
Kontrole: MFA, ierobežoti pieteikšanās mēģinājumi
S - identitātes viltošana: uzbrucējs izliekas par likumīgu lietotāju.
- 2Uzbrucējs → Veikalspasūtījums ar cenu 0,01 €
Kontrole: cenu aprēķina serveris, ne pārlūks
T - datu sagrozīšana: dati, kas nāk no pārlūka, ir lietotāja kontrolē, tāpēc tiem neuzticas.
- 3VeikalsKlients saka: šo pasūtījumu es neveicu.
R - darbības noliegšana: bez žurnāla nevar pierādīt, kas notika. Kontrole: žurnāls ar laiku, kontu un apstiprinājumu, glabāts ārpus servera.
- 4Veikals → Uzbrucējskļūdas lapa ar datubāzes vaicājumu
Kontrole: lietotājam īss paziņojums, detaļas tikai žurnālā
I - informācijas noplūde: lapa pati atklāj, kā sistēma ir uzbūvēta.
- 5Uzbrucējs → Veikals10 000 pieteikšanās mēģinājumu minūtē
Kontrole: pieprasījumu limiti, aizsardzība tīkla malā (CDN, WAF)
D - pakalpojuma atteice: vietne pārslogota, un īsti pircēji netiek iekšā.
- 6Uzbrucējs → Veikals/admin/ ar parasta pircēja kontu
Kontrole: tiesības pārbauda serveris katrā pieprasījumā
E - tiesību paaugstināšana: parasts lietotājs iegūst administratora iespējas.
- 7PiezīmeSeši jautājumi katram elementam - un neviena draudu klase netiek aizmirsta.
Katra atrastā drauda kontrole kļūst par uzdevumu izstrādes darba sarakstā.
Ko mēs darīsim?
Risks, rīcība un pārbaude
Trešais jautājums - ko mēs darīsim. Katram draudam novērtē risku (cik ticams un cik nopietns) un izvēlies rīcību. Kā novērtēt risku, sīkāk ir nākamajā ceļvedī - riska analīzē.
- 1. NovērstEliminatemaini dizainu vai atsakies no funkcijas, lai drauda vairs nav
- 2. MazinātMitigateievies kontroli, kas samazina iespējamību vai sekas
- 3. NodotTransferatbildību uzņemas cits - piegādātājs vai apdrošinātājs
- 4. PieņemtAcceptapzināti dzīvo ar risku, ar pamatojumu un atbildīgās personas lēmumu
Kā pierakstīt vienu draudu
| Lauks | Piemērs |
|---|---|
| Kur | Piemērsplūsma 1: pircējs → tīmekļa lietotne |
| STRIDE | PiemērsS - identitātes viltošana |
| Draudi | Piemērsuzbrucējs piesakās ar paroli, kas nopludināta citā vietnē |
| Risks | Piemērsiespējamība augsta, ietekme vidēja - augsts |
| Rīcība | Piemērsmazināt: MFA un pieteikšanās mēģinājumu ierobežojums |
| Atbildīgais un termiņš | Piemērsizstrādes komanda, nākamā izlaide |
| Kā pārbaudīs | Piemērstests, kas pēc piecām nepareizām parolēm saņem bloķējumu |
Vai izdarījām pietiekami labi?
- ✓ Katrai robežas plūsmai ir izvērtēti draudi
- ✓ Katram draudam ir rīcība un atbildīgais
- ✓ Pieņemtus augstus riskus apstiprina vadība
- ✓ Kontroles pārbauda tests, ne solījums
- ✓ Modelis atbilst tam, kas tiešām darbojas
DREAD
Agrāk Microsoft lietoja DREAD punktu skalu, bet no tās atteicās - vērtējumi bija pārāk subjektīvi. Mūsdienās lieto vienkāršu iespējamību un ietekmi vai CVSS konkrētām ievainojamībām.
Darba sarakstā
Draudi, kas paliek tikai dokumentā, netiek izlaboti. Katra rīcība kļūst par uzdevumu ar atbildīgo, tāpat kā kļūdas labojums.
Salīdzinājums
Metodes un rīki
| Metode | Uz ko skatās | Kad izvēlēties |
|---|---|---|
| STRIDE | Uz ko skatāsdizaina draudi pa sistēmas elementiem (Microsoft, 1999) | Kad izvēlētiesizstrādes komandai - vienkāršs sākums jebkurai sistēmai |
| PASTA | Uz ko skatāsseptiņi soļi no biznesa mērķiem līdz uzbrukuma simulācijai (UcedaVélez, Morana) | Kad izvēlētieskad jāsasaista draudi ar biznesa ietekmi un risku |
| LINDDUN | Uz ko skatāsprivātuma draudi: sasaistāmība, identificējamība, datu atklāšana u.c. (KU Leuven) | Kad izvēlētiessistēmām ar personas datiem, kopā ar GDPR |
| Uzbrukumu koki | Uz ko skatāsviens uzbrucēja mērķis, sadalīts soļos (Schneier, 1999) | Kad izvēlētieskad jāizprot, kā tieši sasniegt konkrētu mērķi |
| OCTAVE | Uz ko skatāsorganizācijas līmeņa riski un aktīvi (CERT, Carnegie Mellon) | Kad izvēlētiesorganizācijai, ne vienai lietotnei |
| VAST | Uz ko skatāsmodelēšana lielā mērogā, atsevišķi lietotnēm un infrastruktūrai | Kad izvēlētieslielām organizācijām ar daudzām komandām |
| MITRE ATT&CK | Uz ko skatāsreālu uzbrucēju tehnikas, nevis dizains | Kad izvēlētieskad jāpārbauda atklāšana un aizsardzība pret zināmām tehnikām |
Rīki
- Tāfele vai papīrspietiek pirmajam modelim - svarīgāka ir saruna
- OWASP Threat Dragonbezmaksas, atvērtā koda, DFD un STRIDE
- Microsoft Threat Modeling Toolbezmaksas, Windows, STRIDE pa elementiem
- OWASP pytmmodelis kā kods, ģenerē DFD un draudu sarakstu
Kombinē
Metodes nav jāizvēlas vienreiz uz visiem laikiem: STRIDE dizainam, LINDDUN personas datiem, ATT&CK aizsardzības pārbaudei.
Rīks nav modelis
Rīks palīdz pierakstīt, bet draudus atrod cilvēki, kas saprot sistēmu. Sāc ar sarunu un tāfeli.
Atsauces
Standarti un NIS2
| Avots | Ko saka |
|---|---|
| NIS2 21. pants | Ko saka2. punkta a) apakšpunkts prasa riska analīzes politiku, e) apakšpunkts - drošību sistēmu iegādē, izstrādē un uzturēšanā. Draudu modelis ir veids, kā pamatot, kāpēc izvēlēti tieši šie pasākumi. |
| NIST SSDF (SP 800-218) | Ko sakaPW.1.1 - lieto riska modelēšanu, piemēram, draudu modelēšanu, lai novērtētu programmatūras drošības risku. |
| OWASP SAMM | Ko sakaprakse Threat Assessment dizaina jomā - no vienkāršiem modeļiem līdz regulārai, standartizētai modelēšanai. |
| ISO/IEC 27001:2022 | Ko sakaA.8.25 drošs izstrādes dzīves cikls un A.8.27 drošas sistēmu arhitektūras principi. |
| Microsoft SDL | Ko sakadraudu modelēšana ir obligāts projektēšanas solis. |
| CISA Secure by Design | Ko sakaražotājs atbild par drošību jau dizainā, ne lietotājs pēc tam. |
Atsauces
Threat Modeling Manifesto (2020), A. Shostack - Threat Modeling: Designing for Security (2014), OWASP Threat Modeling Cheat Sheet, NIST SP 800-154 (projekts, 2016).
Saistība ar citiem ceļvežiem
Riska novērtēšana un apstrāde - riska analīzē, DFD un C4 - sistēmu modelēšanā, drošības vārti izstrādē - drošā izstrādē.
Saīsinājumi
Ceļvedī lietotie saīsinājumi: oriģinālais nosaukums un ko tas nozīmē.
- DFD
- Data Flow Diagram - shēma, kas parāda sistēmas daļas un datu plūsmas starp tām.
- STRIDE
- Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege - seši draudu veidi, ko izstrādāja Microsoft.
- PASTA
- Process for Attack Simulation and Threat Analysis - uz risku balstīta septiņu soļu metode.
- LINDDUN
- Privātuma draudu metode (KU Leuven).
- OCTAVE
- Operationally Critical Threat, Asset, and Vulnerability Evaluation - organizācijas līmeņa riska novērtēšanas metode.
- VAST
- Visual, Agile and Simple Threat modeling - draudu modelēšana lielā mērogā.
- MFA
- Multi-Factor Authentication - pieteikšanās ar vairāk nekā vienu pierādījumu, piemēram, paroli un kodu.
- CDN
- Content Delivery Network - serveru tīkls, kas piegādā vietni tuvāk lietotājam un uztver pārslodzi.
- WAF
- Web Application Firewall - tīmekļa lietotņu ugunsmūris.
- API
- Application Programming Interface - saskarne, caur kuru programmas apmainās ar datiem.
- DREAD
- Agrāka Microsoft riska punktu skala, no kuras atteicās.
- CVSS
- Common Vulnerability Scoring System - ievainojamību smaguma vērtējums no 0 līdz 10.
- NIS2
- ES direktīva (ES) 2022/2555 par kiberdrošību.
- SSDF
- Secure Software Development Framework - NIST drošas programmatūras izstrādes ietvars (SP 800-218).
- SAMM
- Software Assurance Maturity Model - OWASP drošas izstrādes brieduma modelis.
- SDL
- Security Development Lifecycle - Microsoft drošas izstrādes process.
- OWASP
- Open Worldwide Application Security Project - bezpeļņas kopiena tīmekļa lietotņu drošībai.
- ATT&CK
- MITRE zināšanu bāze par reālu uzbrucēju taktikām un tehnikām.
- GDPR
- General Data Protection Regulation - Vispārīgā datu aizsardzības regula.