EDUCATION, THREAT MODELING, STRIDE

🧭 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. 1. Ko mēs veidojam?What are we working on?sistēmas modelis: daļas, dati, plūsmas un uzticamības robežas
  2. 2. Kas var noiet greizi?What can go wrong?draudu saraksts, piemēram, pēc STRIDE katram elementam
  3. 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. 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

  1. Jaunai sistēmaiprojektēšanas laikā, pirms koda
  2. Būtiskai izmaiņaijauna funkcija, integrācija, mākonis, cits piegādātājs
  3. Pirms palaišanaspārbaude, ka atrastie draudi ir apstrādāti
  4. 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.

Interneta veikala datu plūsmas diagramma ar trim uzticamības zonām Pircējs, maksājumu pakalpojums un administrators atrodas internetā. Tīmekļa lietotne un administrēšanas panelis atrodas tīmekļa serverī. Pasūtījumu datubāze un žurnāli atrodas iekšējā tīklā. Katra numurētā plūsma šķērso zonas robežu. Internets (neuzticams) Tīmekļa serveris Iekšējais tīkls Pircējs Maksājumu pakalpojums Administrators Tīmekļa lietotne Admin panelis Pasūtījumu datubāze Žurnāli 1 2 3 4 5 6
  1. Pircējs → tīmekļa lietotne: pieteikšanās un pasūtījums.
  2. Tīmekļa lietotne ↔ maksājumu pakalpojums: maksājuma pieprasījums un apstiprinājums.
  3. Tīmekļa lietotne → pasūtījumu datubāze: pasūtījumi un klientu dati.
  4. Administrators → admin panelis: pieteikšanās un satura maiņa.
  5. Admin panelis → pasūtījumu datubāze: labojumi.
  6. Admin panelis → žurnāli: kas un kad ko mainīja.
DFD elementi
ElementsKā zīmēKo nozīmēPiemērs vietnē
Ārēja puseKā zīmētaisnstūrisKo nozīmēcilvēks vai sistēma, ko tu nekontrolēPiemērs vietnēpircējs, maksājumu pakalpojums
ProcessKā zīmēaplisKo nozīmēkods, kas apstrādā datusPiemērs vietnētīmekļa lietotne, admin panelis
Datu krātuveKā zīmēdivas paralēlas līnijasKo nozīmēvieta, kur dati glabājasPiemērs vietnēdatubāze, žurnāli, failu mape
Datu plūsmaKā zīmēbultaKo nozīmēdati, kas pārvietojas starp elementiemPiemērs vietnēpasūtījums, maksājuma apstiprinājums
Uzticamības robežaKā zīmēpārtraukta līnijaKo nozīmēvieta, kur mainās uzticības pakāpe vai īpašnieksPiemē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.

STRIDE draudu veidi
Draudu veidsKas notiekPārkāptā īpašībaPiemērs vietnēTipiskā kontrole
S Identitātes viltošanaSpoofingKas notiekkāds izliekas par citu lietotāju vai sistēmuPārkāptā īpašībaautentiskumsPiemērs vietnēuzbrucējs piesakās ar nopludinātu administratora paroliTipiskā kontrolestipra autentifikācija, MFA, droša sesija
T Datu sagrozīšanaTamperingKas notiekdati, kods vai konfigurācija tiek mainīti bez atļaujasPārkāptā īpašībaintegritātePiemērs vietnēpircējs pārlūkā nomaina preces cenu pirms pasūtījumaTipiskā kontrolepārbaude serverī, paraksti, piekļuves tiesības
R Darbības noliegšanaRepudiationKas notiekkāds noliedz darbību, un to nevar pierādītPārkāptā īpašībaneatsaucamībaPiemērs vietnēklients apgalvo, ka pasūtījumu neveicaTipiskā kontroleaudita žurnāli ārpus sistēmas, laika zīmogi
I Informācijas noplūdeInformation disclosureKas notiekdati nonāk pie kāda, kam tos nevajadzētu redzētPārkāptā īpašībakonfidencialitātePiemērs vietnēkļūdas lapa parāda datubāzes vaicājumuTipiskā kontrolešifrēšana, piekļuves kontrole, kļūdas bez detaļām
D Pakalpojuma atteiceDenial of serviceKas notieksistēma kļūst nepieejama vai lēnaPārkāptā īpašībapieejamībaPiemērs vietnērobots pārpludina pieteikšanās formuTipiskā kontrolepieprasījumu limiti, CDN, mērogošana
E Tiesību paaugstināšanaElevation of privilegeKas notieklietotājs iegūst vairāk tiesību, nekā viņam pienākasPārkāptā īpašībaautorizācijaPiemērs vietnēparasts pircējs atver administrēšanas funkcijuTipiskā 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ž.

Kuri STRIDE draudi der kuram DFD elementam
ElementsSTRIDE
Ārēja puseS✓T-R✓I-D-E-
ProcessS✓T✓R✓I✓D✓E✓
Datu krātuveS-T✓R✓ žurnāliemI✓D✓E-
Datu plūsmaS-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

  1. 1
    Uzbrucē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.

  2. 2
    Uzbrucē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.

  3. 3
    VeikalsKlients 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.

  4. 4
    Veikals → 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.

  5. 5
    Uzbrucē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šā.

  6. 6
    Uzbrucē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.

  7. 7
    Piezī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. 1. NovērstEliminatemaini dizainu vai atsakies no funkcijas, lai drauda vairs nav
  2. 2. MazinātMitigateievies kontroli, kas samazina iespējamību vai sekas
  3. 3. NodotTransferatbildību uzņemas cits - piegādātājs vai apdrošinātājs
  4. 4. PieņemtAcceptapzināti dzīvo ar risku, ar pamatojumu un atbildīgās personas lēmumu

Kā pierakstīt vienu draudu

Drauda ieraksta piemērs
LauksPiemērs
KurPiemērsplūsma 1: pircējs → tīmekļa lietotne
STRIDEPiemērsS - identitātes viltošana
DraudiPiemērsuzbrucējs piesakās ar paroli, kas nopludināta citā vietnē
RisksPiemērsiespējamība augsta, ietekme vidēja - augsts
RīcībaPiemē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īsPiemērstests, kas pēc piecām nepareizām parolēm saņem bloķējumu

Vai izdarījām pietiekami labi?

  1. ✓ Katrai robežas plūsmai ir izvērtēti draudi
  2. ✓ Katram draudam ir rīcība un atbildīgais
  3. ✓ Pieņemtus augstus riskus apstiprina vadība
  4. ✓ Kontroles pārbauda tests, ne solījums
  5. ✓ 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

Draudu modelēšanas metodes
MetodeUz ko skatāsKad izvēlēties
STRIDEUz ko skatāsdizaina draudi pa sistēmas elementiem (Microsoft, 1999)Kad izvēlētiesizstrādes komandai - vienkāršs sākums jebkurai sistēmai
PASTAUz 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
LINDDUNUz 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 kokiUz 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
OCTAVEUz ko skatāsorganizācijas līmeņa riski un aktīvi (CERT, Carnegie Mellon)Kad izvēlētiesorganizācijai, ne vienai lietotnei
VASTUz ko skatāsmodelēšana lielā mērogā, atsevišķi lietotnēm un infrastruktūraiKad izvēlētieslielām organizācijām ar daudzām komandām
MITRE ATT&CKUz ko skatāsreālu uzbrucēju tehnikas, nevis dizainsKad izvēlētieskad jāpārbauda atklāšana un aizsardzība pret zināmām tehnikām

Rīki

  1. Tāfele vai papīrspietiek pirmajam modelim - svarīgāka ir saruna
  2. OWASP Threat Dragonbezmaksas, atvērtā koda, DFD un STRIDE
  3. Microsoft Threat Modeling Toolbezmaksas, Windows, STRIDE pa elementiem
  4. 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

Kur draudu modelēšanu prasa vai iesaka
AvotsKo saka
NIS2 21. pantsKo 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 SAMMKo sakaprakse Threat Assessment dizaina jomā - no vienkāršiem modeļiem līdz regulārai, standartizētai modelēšanai.
ISO/IEC 27001:2022Ko sakaA.8.25 drošs izstrādes dzīves cikls un A.8.27 drošas sistēmu arhitektūras principi.
Microsoft SDLKo sakadraudu modelēšana ir obligāts projektēšanas solis.
CISA Secure by DesignKo 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.