Modelovanje pretnji

Reading time: 5 minutes

Modelovanje pretnji

Dobrodošli u sveobuhvatan vodič HackTricks-a o modelovanju pretnji! Započnite istraživanje ovog kritičnog aspekta sajber bezbednosti, gde identifikujemo, razumemo i strategijski se borimo protiv potencijalnih ranjivosti u sistemu. Ova tema služi kao vodič korak po korak, ispunjen primerima iz stvarnog sveta, korisnim softverom i lako razumljivim objašnjenjima. Idealno za novajlije i iskusne praktičare koji žele da ojačaju svoju sajber bezbednost.

Uobičajeni scenariji

  1. Razvoj softvera: Kao deo Sigurnog životnog ciklusa razvoja softvera (SSDLC), modelovanje pretnji pomaže u identifikaciji potencijalnih izvora ranjivosti u ranim fazama razvoja.
  2. Pentesting: Standard izvršenja pentestinga (PTES) zahteva modelovanje pretnji kako bi se razumele ranjivosti sistema pre nego što se izvrši test.

Model pretnji u kratkim crtama

Model pretnji se obično prikazuje kao dijagram, slika ili neki drugi oblik vizuelne ilustracije koji prikazuje planiranu arhitekturu ili postojeću izgradnju aplikacije. Podseća na dijagram toka podataka, ali ključna razlika leži u njegovom dizajnu orijentisanom na bezbednost.

Modeli pretnji često sadrže elemente označene crvenom bojom, simbolizujući potencijalne ranjivosti, rizike ili prepreke. Da bi se pojednostavio proces identifikacije rizika, koristi se CIA (Poverljivost, Integritet, Dostupnost) trojka, koja čini osnovu mnogih metodologija modelovanja pretnji, pri čemu je STRIDE jedna od najčešćih. Međutim, odabrana metodologija može varirati u zavisnosti od specifičnog konteksta i zahteva.

CIA trojka

CIA trojka je široko prepoznat model u oblasti informacione bezbednosti, koji se odnosi na Poverljivost, Integritet i Dostupnost. Ove tri kolone čine osnovu na kojoj se grade mnoge mere i politike bezbednosti, uključujući metodologije modelovanja pretnji.

  1. Poverljivost: Osiguranje da podaci ili sistem nisu dostupni neovlašćenim osobama. Ovo je centralni aspekt bezbednosti, koji zahteva odgovarajuće kontrole pristupa, enkripciju i druge mere za sprečavanje curenja podataka.
  2. Integritet: Tačnost, doslednost i pouzdanost podataka tokom njihovog životnog ciklusa. Ova načela osiguravaju da podaci nisu izmenjeni ili kompromitovani od strane neovlašćenih strana. Često uključuje kontrolne sume, heširanje i druge metode verifikacije podataka.
  3. Dostupnost: Ovo osigurava da su podaci i usluge dostupni ovlašćenim korisnicima kada su potrebni. Ovo često uključuje redundanciju, otpornost na greške i konfiguracije visoke dostupnosti kako bi se sistemi održavali u radu čak i u slučaju prekida.

Metodologije modelovanja pretnji

  1. STRIDE: Razvijen od strane Microsoft-a, STRIDE je akronim za Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, and Elevation of Privilege. Svaka kategorija predstavlja tip pretnje, a ova metodologija se obično koristi u fazi dizajniranja programa ili sistema za identifikaciju potencijalnih pretnji.
  2. DREAD: Ovo je još jedna metodologija iz Microsoft-a koja se koristi za procenu rizika identifikovanih pretnji. DREAD se odnosi na Damage potential, Reproducibility, Exploitability, Affected users, and Discoverability. Svaki od ovih faktora se boduje, a rezultat se koristi za prioritizaciju identifikovanih pretnji.
  3. PASTA (Process for Attack Simulation and Threat Analysis): Ovo je metodologija sa sedam koraka, orijentisana na rizik. Uključuje definisanje i identifikaciju bezbednosnih ciljeva, kreiranje tehničkog okvira, dekompoziciju aplikacije, analizu pretnji, analizu ranjivosti i procenu rizika/triage.
  4. Trike: Ovo je metodologija zasnovana na riziku koja se fokusira na odbranu sredstava. Počinje iz perspektive upravljanja rizikom i gleda na pretnje i ranjivosti u tom kontekstu.
  5. VAST (Visual, Agile, and Simple Threat modeling): Ovaj pristup ima za cilj da bude pristupačniji i integriše se u Agile razvojne okruženja. Kombinuje elemente iz drugih metodologija i fokusira se na vizuelne prikaze pretnji.
  6. OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation): Razvijen od strane CERT Coordination Center, ovaj okvir je usmeren na organizacionu procenu rizika umesto na specifične sisteme ili softver.

Alati

Postoji nekoliko alata i softverskih rešenja dostupnih koja mogu pomoći u kreiranju i upravljanju modelima pretnji. Evo nekoliko koje biste mogli razmotriti.

SpiderSuite

Napredni multiplatformski i višefunkcionalni GUI web spider/crawler za profesionalce u sajber bezbednosti. Spider Suite se može koristiti za mapiranje i analizu napadačkih površina.

Korišćenje

  1. Izaberite URL i Crawlujte
  1. Prikaz grafika

OWASP Threat Dragon

Projekat otvorenog koda iz OWASP-a, Threat Dragon je i web i desktop aplikacija koja uključuje dijagramiranje sistema kao i pravilo za automatsko generisanje pretnji/mitigacija.

Korišćenje

  1. Kreirajte novi projekat

Ponekad može izgledati ovako:

  1. Pokrenite novi projekat
  1. Sačuvajte novi projekat
  1. Kreirajte svoj model

Možete koristiti alate poput SpiderSuite Crawler-a da biste dobili inspiraciju, osnovni model bi izgledao ovako

Samo malo objašnjenja o entitetima:

  • Proces (Sam entitet kao što je Webserver ili web funkcionalnost)
  • Akter (Osoba kao što je posetilac veb sajta, korisnik ili administrator)
  • Linija toka podataka (Indikator interakcije)
  • Granica poverenja (Različiti mrežni segmenti ili opsezi.)
  • Skladište (Stvari gde se podaci čuvaju kao što su baze podataka)
  1. Kreirajte pretnju (Korak 1)

Prvo morate izabrati sloj kojem želite dodati pretnju

Sada možete kreirati pretnju

Imajte na umu da postoji razlika između pretnji aktera i pretnji procesa. Ako biste dodali pretnju akteru, tada ćete moći da izaberete samo "Spoofing" i "Repudiation". Međutim, u našem primeru dodajemo pretnju procesu, tako da ćemo ovo videti u okviru za kreiranje pretnje:

  1. Gotovo

Sada bi vaš završeni model trebao izgledati ovako. I ovako pravite jednostavan model pretnji sa OWASP Threat Dragon.

Microsoft Threat Modeling Tool

Ovo je besplatan alat od Microsoft-a koji pomaže u pronalaženju pretnji u fazi dizajniranja softverskih projekata. Koristi STRIDE metodologiju i posebno je pogodan za one koji razvijaju na Microsoft-ovom stack-u.