Tehdit Modelleme ve Risk Kontrolü
1) İlkeler
1. Önce mimari. Bağlamlar, güven sınırları ve veri akışlarıyla başlıyoruz.
2. Risk ≈ Olasılık × Etki Ölçüyoruz, hissetmiyoruz.
3. Derinlikte savunma. Her katmanda kontroller: Kod, protokol, platform, insanlar.
4. Sola/Sağa Kaydır. PR + izlemede erken kapılar ve prod'da reaksiyon.
5. Tasarıma Göre Gizlilik. Sadece güvenlik tehditlerini değil, aynı zamanda gizlilik risklerini de simüle ediyoruz.
6. Mümkün olan yerlerde otomatikleştirin. Kod olarak politikalar, otomatik kontroller, "kırmızı çizgiler".
2) Envanter: varlıklar, varlıklar, güven sınırları
Varlıklar: veri (PII, finans, sırlar), bilgi işlem kaynakları, anahtarlar, erişimler, iş süreçleri.
Konular: kullanıcılar, hizmetler, yöneticiler, ortaklar, dış sağlayıcılar.
Güven sınırları: Kullanıcılar ↔ ön, ön ↔ API ağ geçidi, hizmetler ↔ veritabanları/önbellekler/kuyruklar, bölgeler/bulutlar.
Saldırı yüzeyi: giriş noktaları (API, webhooks, UI, ağlar, CI/CD, tedarik zinciri).
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) Tehdit çerçeveleri
STRIDE (безопасность): Sahtecilik, Kurcalama, Reddetme, Bilgi İfşa, Hizmet Reddi, Ayrıcalığın Yükseltilmesi.
LINDDUN (приватность): Bağlanabilirlik, Tanımlanabilirlik, Reddedilmeme, Tespit edilebilirlik, Açıklama, Farkındalık, Uyumsuzluk.
PASTA (süreç): iş hedeflerinden ve tehdit aktörlerinden - teknik detaylar - test senaryoları.
4) Risk değerlendirmesi
Güvenlik açıkları için DREAD/OWASP Risk Değerlendirmesi veya CVSS.
Olasılık (L): Saldırganın güdüsü/yetenekleri, karmaşıklığı, yüzeye maruz kalması.
Etki (I): finans, yasal riskler, kesinti süresi, PD sızıntıları.
Risk (R = L × I) - önceliklendirme ve tritment: Kaçının/Azaltın/Aktarın/Kabul Edin.
Impact
Low Med High Critical
Lik Low L L M H
Med L M H H
High M H High Crit
Risk kaydı (minimum alanlar):'id, senaryo, STRIDE, varlık, L, I, R, sahipler, kontroller, durum, revizyon tarihi ".
5) Kontroller: Önleme/Tespit Etme/Yanıtlama
Önleyin:- Kimlik doğrulama/yetkilendirme: OIDC/OAuth2, PoLP, RBAC/ABAC, kısa süreli hizmet kredileri.
- Sırlar/anahtarlar: KMS/HSM, rotasyon, bilmiyorum, FPE/alan şifreleme.
- Güvenli protokoller: TLS1. 2 +, mTLS, webhook imzaları, idempotency ve anti-replay.
- Doğrulama/sanitasyon: şemalar (JSON Şeması/Proto), sınırlar, normalleştirme.
- İzolasyon: ağ ilkeleri, segmentasyon, sanal alan, ad alanları, bölmeler.
- Denetim günlükleri (tanınmaz), SIEM'de korelasyon, anomalilere karşı uyarılar.
- İmzanın ve bütünlüğün izlenmesi (artefakt karmalarının dışa aktarılması, tasdik).
- Erken anahtar sızıntısı tespiti için Honeytokens/kanaryalar.
- Runbook IR: sınıflandırma, izolasyon, anahtar hatırlama, uyarılar, adli tıp.
- Otomatik kill-switch/feature-flag, belirteçlerin'kara listeleri ".
- PD olayları durumunda kullanıcıların/düzenleyicilerin bildirimleri.
6) SDL ve güvenlik kapıları
Fikir/tasarımda: tehdit modeli (RFC/ADR), kontrollerin kontrol listesi.
Geliştirme aşamasında: SAST/gizli tarama, bağımlılık taramaları (SCA), bağımlılık politikası.
Montajda: SBOM, artefakt imzası, güvenlik açığı politikası (CVSS eşikleri).
Alanında: OPA/Kyverno - IaC/manifest politikası (securityContext, ağ politikaları, gizli yönlendirme).
Satışlarda: IDS/WAF, anomali tespiti, kanarya kontrolleri, kaos güvenliği (örneğin, süresi dolmuş sertifika).
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) Tedarik Zinciri ve Eserlere Güven
Görüntü/paket başına SBOM; Bağımlılık güncellemeleri - bot/politika yoluyla.
SLSA/Provenance: tekrarlanabilir meclisler, imzalar, onaylar.
Kapsayıcılar: minimal görüntüler, köksüz, düşme yetenekleri, salt okunur FS.
IaC taramaları: Terraform/Helm - şifreleme politikası, açık portlar, ağ kuralları.
8) Gizlilik ve uyumluluk
LINDDUN-gizlilik tehditleri haritası, veri minimizasyonu, takma ad/anonimleştirme.
Saklama politikaları: TTL/saklama, "silme hakkı", PD'ye erişim denetimi.
Yerelleştirme: coğrafi sınırlamalar, "veriler bölgede kalır".
Şeffaflık: işleme, bildirim ve onay günlükleri.
9) Bulutlar ve çevreler
Sıfır Güven: Her isteğin kimlik doğrulaması, hizmetler arasında mTLS/OPA.
Segmentasyon: VPC/alt ağlar/SG, özel uç noktalar, çıkış kontrolü.
Anahtarlar/sırlar: KMS, rotasyon, CI'de kısa krediler (OIDC federasyonu).
Rezerv/DR: şifreli yedeklemeler, ayrı ayrı anahtarlar, kurtarma provaları.
10) Kırmızı/mor takımlar ve masa üstü egzersizleri
Kırmızı Takım: tehdit hipotezi testi, sosyal mühendislik, zincirleme sömürü.
Purple Team: algılamaların/uyarıların ortak hata ayıklama, playbooks IR'yi iyileştirme.
Masaüstü: komut "süresi dolmuş sertifika", "sızdırılmış anahtarlar", "tedarik zinciri uzlaşması. Sonuç, güncellenmiş kontroller ve metriklerdir.
11) Olgunluk metrikleri ve yönetimi
Kapsam: Mevcut tehdit modeline ve DFD'ye sahip hizmetlerin yüzdesi.
Güvenlik MTTD/MTTR, kontroller tarafından yakalanan olayların oranı.
CI'da politika geçiş oranı, kırılganlıkları kritiklikle kapatma zamanı.
Gizlilik: TTL/ILM ile veri kümelerinin %'si, gerekçe ile erişim payı.
Denetim: Risk kaydı revizyonunun düzenliliği (üç ayda bir).
12) Eser desenleri
12. 1 Risk kartı (örnek)
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 Tasarım kontrol listesi
Varlıklar ve PII tanımlandı mı? Güven sınırları belirlendi mi?
DFD'ler/veri döngüleri ADR'lerle birleştirilip eşleştiriliyor mu?
STRIDE/LINDDUN her DFD okunu geçti mi?
Risk tritment seçildi; sahipler/son tarihler/DoD var mı?
Kod olarak politikalar eklendi (OPA/Kyverno/CI kapıları)?
İzleme planı/uyarıları ve IR-runbook güncellendi mi?
Gizlilik: minimizasyon, şifreleme, TTL/saklama, yerelleştirme?
12. 3 Webhook Politikası (Pseudocode)
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-desenler
DFD/değişmezleri olmadan "gösteri için" tehdit modeli.
Dahili servis-servis kimlik doğrulaması olmadan "süper çevre".
Çevre/repo değişkenlerinde uzun ömürlü sırlar.
Kod olarak gömülü olmayan politikalar - manuel "unutulmuş".
Kamuflajsız ve muhafazasız PD ile günlükler/TTL.
Tedarik zincirini yok sayma (SBOM/imzalar/taramalar yok).
Sahibi ve revizyon tarihi olmadan kabul edin.
14) Süreçlere entegrasyon
RFC/ADR - Her anlamlı çözüm bir Tehditler ve Kontroller bölümü içerir.
Docs-as-Code: tehdit modeli, DFD, kodun yanındaki sürümde risk kaydı.
Serbest bırakma kapıları: SAST/SCA/SBOM politikaları başarısız olduğunda veya yüksek önemde kontroller eksik olduğunda serbest bırakma engellenir.
Eğitim: Geliştiriciler için oyun kitapları (sırlar, imzalar, PoLP), normal masa üstü.
Sonuç
Tehdit Modelleme, bir defalık bir belge değil, risk yönetiminin bir mühendislik uygulamasıdır. Varlıkları ve güven sınırlarını tanımlayın, STRIDE/LINDUN'u uygulayın, riski ölçün, kaydedin ve kontrolleri CI/CD'ye ve operasyona gömerek kod olarak uygulayın. Olgunluk ölçümleri ve düzenli revizyon ile güvenliği öngörülebilir bir mimari yeteneğe dönüştüreceksiniz - anlaşılabilir fiyat, etki ve hız ile.