Threat Modelinq və Risk Nəzarəti
1) Prinsiplər
1. Architectural First. Kontekstlər, etimad sərhədləri və məlumat axınları ilə başlayırıq.
2. Risk ≈ Likelihood × Impact. Ölçürük, hiss etmirik.
3. Defense in Depth. Hər təbəqədə nəzarət: kod → protokol → platforma → insanlar.
4. Shift Left/Right. PR-da erkən geytalar + prodda monitorinq və reaksiya.
5. Privacy by Design. Biz yalnız təhlükəsizlik təhdidlərini deyil, həm də məxfilik risklərini modelləşdiririk.
6. Automate Where Possible. Siyasət kimi kod, avto-yoxlamalar, «qırmızı xətlər».
2) Inventarlaşdırma: aktivlər, subyektlər, etimad sərhədləri
Aktivlər: məlumatlar (PII, maliyyə, sirr), hesablama resursları, açarlar, girişlər, biznes prosesləri.
Subyektlər: istifadəçilər, xidmətlər, idarəçilər, tərəfdaşlar, xarici provayderlər.
Etimad sərhədləri: istifadəçilər, ön, ön, API-şlyuz, xidmətlər, BD/keşlər/növbələr, regionlar/buludlar.
Hücum səthi: giriş nöqtələri (API, webhucks, UI, şəbəkələr, CI/CD, supply chain).
mermaid flowchart LR
U[Пользователь] -- TLS --> WAF[WAF/CDN]
WAF --> GW[API Gateway]
GW --> Svc[Service A]
Svc --> DB[(Postgres)]
Svc --> MQ[[Kafka]]
MQ --> SvcB[Service B]
subgraph Trust Boundary
GW; Svc; SvcB end
3) Təhdid çərçivələri
STRIDE (безопасность): Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege.
LINDDUN (приватность): Linkability, Identifiability, Non-repudiation, Detectability, Disclosure, Unawareness, Non-compliance.
PASTA (proses): biznes məqsədlərindən və təhdid aktorlarından → texniki detallar → test ssenariləri.
4) Risklərin qiymətləndirilməsi
DREAD/OWASP Risk Rating və ya boşluqlar üçün CVSS.
Ehtimal (L): hücum motivi/imkanları, mürəkkəblik, səth ekspozisiyası.
Təsir (I): maliyyə, yurriski, fasilələr, PD sızması.
Risk (R = L × I) → prioritetləşdirmə və tritment: Avoid/Reduce/Transfer/Accept.
Impact
Low Med High Critical
Lik Low L L M H
Med L M H H
High M H High Crit
Risk registri (minimum sahələr): 'id, ssenari, STRIDE, aktiv, L, I, R, sahibləri, nəzarət, status, yenidən baxılma tarixi'.
5) Nəzarət: Prevent/Detect/Respond
Prevent (qarşısının alınması):- Autentifikasiya/avtorizasiya: OIDC/OAuth2, PoLP, RBAC/ABAC, qısa müddətli xidmət kreddləri.
- Secrets/açarları: KMS/HSM, rotasiya, «bilmə» prinsipi, FPE/sahələrin şifrələnməsi.
- Təhlükəsiz protokollar: TLS1. 2 +, mTLS, vebhuk imzaları, idempotentlik və anti-replay.
- Validasiya/sanitariya: sxemlər (JSON Schema/Proto), limitlər, normallaşma.
- İzolyasiya: şəbəkə siyasəti, seqmentasiya, sandbox, namespaces, bulkheads.
- Audit-loqlar (kəsilməz), SIEM-də korelasiya, anomaliyada alertlər.
- İmza və bütövlüyün monitorinqi (xeş artefaktların ixracı, attestasiya).
- Erkən açar sızması detektoru üçün Honeytokens/kanaryalar.
- Runbook IR: təsnifat, izolyasiya, açar geri çağırılması, xəbərdarlıq, forensika.
- Avtomatik kill-switch/feature-flag, tokenlərin «qara siyahıları».
- PD hadisələri zamanı istifadəçilərin/tənzimləyicilərin bildirişləri.
6) SDL və təhlükəsizlik geytaları
Fikir/dizayn: threat model (RFC/ADR), yoxlama siyahısı.
İnkişaf: SAST/secret-scan, asılılıq skanerləri (SCA), asılılıq siyasəti.
Yığmada: SBOM, artefaktların imzası, zəiflik siyasəti (CVSS eşikləri).
Deploda: OPA/Kyverno - IaC/manifestlər siyasəti (securityContext, şəbəkə siyasətçiləri, sirlərin genişlənməsi).
Prod: IDS/WAF, anomaly detection, canary-yoxlama, xaos-təhlükəsizlik (məsələn, vaxtı keçmiş sertifikat).
rego package policy.cicd deny[msg] {
some v input.sbom.vulns[v].cvss >= 7.0 msg:= sprintf("High vuln blocked: %s %s", [v.package, v.id])
}
deny[msg] {
input.k8s.pod.spec.securityContext.runAsRoot == true msg:= "RunAsRoot forbidden"
}
7) Supply Chain və artefaktlara etimad
Hər şəkil/paket üçün SBOM; asılılıq yeniləmələri - bot/siyasət vasitəsilə.
SLSA/Provenance: Replay montajlar, imzalar, attestations.
Konteynerlər: minimal şəkillər, rootless, drop capabilities, read-only FS.
IaC-skanlar: Terraform/Helm - şifrələmə, açıq port, şəbəkə qaydaları siyasəti.
8) Gizlilik və uyğunluq
LINDDUN-gizlilik təhdidləri kartı, minimizasiya məlumatları, təxəllüs/anonimləşdirmə.
Saxlama siyasəti: TTL/retenshn, «silmək hüququ», PD-yə giriş auditi.
Lokalizasiya: geo-məhdudiyyətlər, «məlumatlar regionda qalır».
Şəffaflıq: emal jurnalları, bildirişlər və razılıq.
9) Buludlar və perimetrlər
Zero Trust: Hər bir sorğunun autentifikasiyası, mTLS/OPA xidmətlər arasında.
Seqmentasiya: VPC/alt şəbəkə/SG, xüsusi end-point, egress-control.
Açarları/sirləri: KMS, rotation, CI-də qısa kreddlər (OIDC-federasiya).
Ehtiyat/DR: şifrələnmiş arxa planlar, açarlar ayrıca, bərpa məşqləri.
10) Qırmızı/bənövşəyi komandalar və tabletop məşqləri
Red Team: təhdid hipotezlərinin yoxlanılması, sosial mühəndislik, zəncirlərin istismarı.
Purple Team: detektorların/alertlərin birgə hata ayıklanması, IR playbook 'ların təkmilləşdirilməsi.
Tabletop: «sertifikat müddəti bitdi», «açar sızması», «supply-chain kompromasiya» ssenariləri. Nəticə - yenilənmiş nəzarət və metriklər.
11) Yetkinlik metrikası və idarəetmə
Coverage: aktual threat model və DFD ilə xidmətlərin%.
MTTD/MTTR təhlükəsizlik, nəzarət tutulan hadisələrin payı.
CI-də Policy pass-rate, kritik zəifliklərin bağlanması vaxtı.
Gizlilik: TTL/ILM ilə% dataset, əsaslandırma ilə giriş payı.
Audit: Risklərin reyestrinə yenidən baxılmasının müntəzəmliyi (rüblük).
12) Artefakt şablonları
12. 1 Risk kartı (nümunə)
Risk ID: SEC-API-012
Сценарий: SSRF через изображение в профиле
STRIDE: Tampering/Info Disclosure
Актив: API / файловый прокси
Likelihood: High Impact: High Risk: Critical
Контроли: denylist схем, egress-прокси, URL-fetcher в изолированном рантайме,
DNS-resolv только через прокси, время/размер-лимиты, allowlist.
Владелец: team-accounts Статус: Reduce (в работе)
Дата пересмотра: 2025-12-01
12. 2 Dizayn çek siyahısı
Aktivlər və PII müəyyən? Etimad sərhədləri qeyd olunub?
DFD/verilənlər konturları tərtib və ADR bağlı?
STRIDE/LINDDUN hər bir DFD oxu boyunca keçdi?
Risk tritmenti seçildi; sahibləri var/şərtləri/DoD?
Siyasət kimi kod əlavə (OPA/Kyverno/CI-geytalar)?
Monitorinq planı/alertlər və IR-runbook yeniləndi?
Gizlilik: minimallaşdırma, şifrələmə, TTL/retenshn, lokalizasiya?
12. 3 Vebhuk siyasəti (psevdokod)
python def verify_webhook(req, keys):
ts = int(req.h["X-Timestamp"])
if abs(now_utc()-ts) > 300: return 401 if not hmac_ok(req.body, ts, keys.active_or_prev(), req.h["X-Signature"]):
return 401 if replay_cache.seen(req.h["X-Event-ID"]): return 200
PoLP: в обработчике — только нужные скоупы handle(json.loads(req.body))
replay_cache.mark(req.h["X-Event-ID"])
return 200
13) Anti-nümunələr
DFD/invariantlar olmadan Threat model «nişan üçün».
«Super-perimetr» xidmət-xidmətə daxili autentifikasiya olmadan.
Çevrə dəyişənlərində/repoda uzun ömürlü sirlər.
Kod kimi tətbiq olunmayan siyasətçilər → əl «unudulur».
Maskasız və retenşn/TTL olmadan PD ilə log.
Supply chain (heç bir SBOM/imza/scan).
Sahibsiz risk (Accept) və yenidən baxılma tarixi.
14) Proseslərə inteqrasiya
RFC/ADR: Hər bir əhəmiyyətli həll «Təhdidlər və nəzarət» bölməsini ehtiva edir.
Docs-as-Code: threat model, DFD, kod yanında versiyası risk register.
Release gates: SAST/SCA/SBOM siyasətlərinin uğursuzluğu və ya yüksək kritik nəzarət olmaması ilə buraxılış bloklanır.
Təlim: tərtibatçılar üçün playbook (sirləri, imzalar, PoLP), müntəzəm tabletop.
Nəticə
Threat Modeling bir dəfəlik sənəd deyil, risk idarəetmə mühəndislik təcrübəsidir. Aktivləri və etimad sərhədlərini müəyyənləşdirin, STRIDE/LINDDUN tətbiq edin, riski ölçün, registrdə qeyd edin və CI/CD-yə və istismara inteqrasiya edərək nəzarəti bir kod kimi həyata keçirin. Yetkinlik göstəriciləri və müntəzəm yenidən baxışla təhlükəsizliyi proqnozlaşdırıla bilən memarlıq qabiliyyətinə çevirəcəksiniz - başa düşülən qiymət, effekt və sürət ilə.