Skip to content

Tehdit Modeli (Threat Model)

  • Sahip: Simetri
  • Son Güncelleme: 2026-04-16 (SIM-176 — adversarial eval suite; §4.1, §4.2, §4.5, §5 matrisi güncellendi)
  • Güncelleme Tetikleyicisi: Yeni ajan tipi, yeni veri akışı, yeni dış entegrasyon, büyük RLS/şema değişikliği.
  • Çeyreklik Review: Her 90 günde bir "değişti mi?" kontrolü (maks. 30 dk).

1. Neden Bu Doküman?

Klasik STRIDE tehdit modeli yeterli değildir çünkü Humindx iki atipik risk yüzeyine sahiptir:

  1. Yoğun kişisel veri + psikometrik çıkarım: Gizlilik düzlemi, klasik CIA (Confidentiality/Integrity/Availability) üçgeninden daha geniş — linkability, identifiability, unawareness gibi boyutlar kritik.
  2. LLM / vektör uzayı: Prompt injection, membership inference, embedding inversion gibi AI'ya özgü saldırı sınıfları var.

Bu nedenle iki tamamlayıcı çerçeve kullanırız:

  • LINDDUN — Gizlilik odaklı tehdit kategorileri.
  • MITRE ATLAS — AI/ML sistemlerine özgü saldırı taksonomisi (STRIDE'ın AI uzantısı gibi).

Bu doküman tüm tehditleri kataloglamazaktif olarak değerlendirilmesi gereken tehditleri ve Humindx'in mevcut savunma hatlarını özetler.


2. Varlık (Asset) Envanteri

#VarlıkHassasiyetNerede
A1Sohbet transkripti (ham metin, PII içerebilir)Çok YüksekHot Path (Redis TTL 24h)
A2PII-masked sanitized transkriptYüksekCold Path event bus
A3Noise-injected embedding (vektör)Orta-Yüksekpgvector
A4Trait skorları (Big Five, RIASEC vb.)YüksekPostgreSQL trait_scores
A5Bağlam Odası (Context Room) metadataOrtaPostgreSQL context_rooms
A6Audit trail kayıtlarıYüksek (integrity-critical)Immutable log store
A7LLM sistem prompt'larıOrta (IP)prompts/ repo
A8B2B müşteri yönetim reçeteleriYüksekPostgreSQL b2b_outputs

3. LINDDUN — Gizlilik Tehditleri

Her kategori için: (En Kritik Akış) → Saldırı Senaryosu → Mevcut Savunma → Artık Risk

3.1. Linkability (Bağlanabilirlik)

Ayrı olayların aynı kullanıcıya ait olduğunun çıkarılması.

  • Akış: B2C sohbet (A1) ↔ B2B işe alım başvurusu (A8) birleştirme
  • Senaryo: Saldırgan, B2B veri ihracı alıp B2C vektör uzayındaki benzerlikle aday kimliklerini birleştirir.
  • Savunma: Context Rooms RLS — B2B rolü B2C odasına bakamaz (context-rooms-design.md). Vektörler de RLS'e tabi (ADR-001).
  • Artık Risk: Aynı kullanıcının iki oda skoru aynı satırda join'lenirse sızıntı olur — Scoring Engine join'leri yalnızca kullanıcı onaylı odalar için yapılmalı (test edilmeli).

3.2. Identifiability (Kimliklendirilebilirlik)

Anonim görünen verinin kullanıcıyı tanımlaması.

  • Akış: Embedding (A3) üzerinden kullanıcıya geri dönüş (embedding inversion).
  • Senaryo: Saldırgan, sızdırılan embedding'lerden orijinal metne yakın rekonstrüksiyon yapar (bilinen akademik saldırı: Song et al., 2020).
  • Savunma: Diferansiyel gürültü enjeksiyonu (vector-privacy.md) + k-anonymity sınırı.
  • Artık Risk: Gürültü parametrelerinin (ε, δ) seçimi yanlışsa saldırı hala başarılı olabilir — ε < 5 hedefi eval testinde doğrulanmalı.

3.3. Non-repudiation (İnkâr Edilemezlik — ters yönde sorun)

Kullanıcının yaptığı bir şeyi sonradan inkâr edememesi — ama kullanıcı için gizlilik ihlali.

  • Akış: Audit trail (A6) kullanıcının sohbet içeriğini neden/ne zaman söylediğini tutar.
  • Savunma: Audit payload'ları PII-masked (audit-trail.md); sadece event tipleri + hash. Kullanıcı içerik inkâr edebilir.
  • Artık Risk: Düşük — ama B2B "karar delili" ihtiyacı gelirse bu denge bozulabilir, ADR açılmalı.

3.4. Detectability (Tespit Edilebilirlik)

Bir veri kaydının var olup olmadığının sızması.

  • Akış: Vektör arama API'si (B2B yetenek eşleştirme)
  • Senaryo: Saldırgan, membership inference ile "X kişi bu sistemde değerlendirildi mi?" sorusunu yanıtlar.
  • Savunma: B2B arama sonuçları agrega eşiği altında (min 5 aday) döndürülmez + rate limit.
  • Artık Risk: Orta — rate limit bypass'ı çoklu tenant ile mümkün; backend:hot-path CI'da test gerekli.

3.5. Disclosure of Information (Bilgi İfşası)

Açık veri sızıntısı (klasik).

  • Akış: A1 → loglar, crash dump, hata mesajları
  • Savunma: Yapılandırılmış logging filter (PII redaction), Sentry PII scrubbing, no-stack-in-user-error kuralı.
  • Artık Risk: Düşük ama takip edilmeli — yeni logger eklendiğinde DoD §8.2 tetiklenmeli.

3.6. Unawareness (Farkında Olmama)

Kullanıcının verisinin nasıl işlendiğinin bilmemesi.

  • Savunma: Veri Röntgeni UI (product/features.md), Data Lineage görünümü, EU AI Act §3.1 şeffaflık maddesi.
  • Artık Risk: Düşük — UI değişirse regresyon testi şart.

3.7. Non-compliance (Uyumsuzluk)

Yasal gereksinimlere uymama.

  • Savunma: eu-ai-act-compliance.md canlı doküman; Tier 2'de NIST AI RMF mapping eklenecek; DPIA iskeleti planlı.
  • Artık Risk: MVP aşamasında kabul edilebilir; enterprise satışta kapatılmalı.

4. MITRE ATLAS — AI/ML'e Özgü Tehditler

Yalnızca Humindx için aktif olan teknikler listelenir (tüm ATLAS matrisi değil).

4.1. Prompt Injection (ATLAS AML.T0051.000 / AML.T0051.001)

  • Senaryo: Kullanıcı sohbet içine "ignore all previous instructions" enjekte ederek ajanın rolünü bozar, diğer kullanıcı verisine erişmeye çalışır. İndirect varyantı: RAG'e gelen belge içine gömülü komut.
  • Savunma Durumu: Kapalı (regresyon tarafı) — sistem prompt'ları guardrail içeriyor (llm-orchestration.md) + adversarial-eval-suite.md §4 ile 20 seed örnekli CI regresyon testi tanımlı; critical örneklerde %100 ret zorunlu (§7).
  • Aksiyon: Çeyreklik red-team seansı (§9) ile yeni saldırı vektörleri eklenir; prod LLM sürümü değişince nightly eval run sonucu revize edilir.

4.2. Membership Inference (ATLAS AML.T0024.001)

  • Senaryo: Dış aktör, vektör benzerlik API'sine sorgular atarak belirli bir metin/profil sistemde var mı öğrenir.
  • Savunma Durumu: Agregasyon eşiği + rate limit (bkz. LINDDUN §3.4) + adversarial-eval-suite.md §5 (existence-probe, vector-neighbor, side-channel kategorileri — 20 seed, %90 toplam / %100 critical ret).
  • Aksiyon: B2B tenant başına quota + eşik ihlali audit event'i (implementasyon görevi, test kapsamı eval suite'te).

4.3. Model Inversion (ATLAS AML.T0018)

  • Senaryo: B2B panelden türetilen skor/eşleşme çıktılarından eğitim verisinin özelliklerini geri çıkarma.
  • Savunma Durumu: Skorlar ham metin değil türetilmiş istatistik (Big Five vb.); inversion ROI'si düşük.
  • Aksiyon: Yeni çıktı tipi eklendiğinde bu madde revize edilmeli.

4.4. Embedding Inversion (ATLAS AML.T0048)

  • Senaryo: Bkz. LINDDUN §3.2 — aynı saldırı sınıfı, ATLAS etiketi farklı.
  • Savunma Durumu: Diferansiyel gürültü.

4.5. LLM Jailbreak → PII Leakage (ATLAS AML.T0054)

  • Senaryo: Kullanıcı, ajanı başka bir kullanıcının geçmiş transkript parçasını söyletmeye zorlar (RAG bypass).
  • Savunma Durumu: RAG sorguları RLS altında — başka kullanıcı vektörü fiziksel olarak join'lenemez. Regresyon tarafı adversarial-eval-suite.md §6 ile kapalı (filter-bypass, label-override, cross-tenant, neighbor-peek, admin-impersonation, soft-disclosure kategorileri — 20 seed, %95 toplam / %100 critical ret, %0 RLS ihlali).
  • Aksiyon: Çeyreklik red-team ritmi (§9 adversarial-eval-suite) — ayrıca RAG mimarisi değişince yeni kategori eklenir.

4.6. Supply Chain — Model/Prompt Provenance (ATLAS AML.T0010)

  • Senaryo: Prompt dosyasına kötü niyetli PR ile guardrail kaldırma.
  • Savunma Durumu: prompts/ altındaki değişiklikler CODEOWNERS ile korunmalı; şu an tanımlı değil.
  • Aksiyon: .github/CODEOWNERS eklenmeli (Tier 1 follow-up).

5. Tehdit → Savunma Matrisi (Özet)

TehditKritiklikKapalıKısmenAçık
LinkabilityYüksekRLSJoin hijyeni
Embedding inversionYüksekVektör gürültüsüε kalibrasyonu
Prompt injectionYüksekGuardrail + adversarial eval (SIM-176)Çeyreklik red-team ritmi
Membership inferenceOrtaRate limit + adversarial eval (SIM-176)Cross-tenantQuota event
LLM jailbreak → PIIYüksekRLS + adversarial eval (SIM-176)Çeyreklik red-team ritmi
Supply chain (prompts)OrtaCODEOWNERS
Non-compliance (NIST)Düşük (MVP)EU AI ActTier 2

6. Bu Dokümanı Ne Zaman Aç?

  • Yeni ajan tipi veya yeni veri toplama akışı eklenirken (DoD §8.2 tetikleyicisi)
  • Yeni dış LLM sağlayıcısı eklenirken
  • RLS politikası veya Context Room tanımı değişirken
  • Yeni B2B tenant tipi (farklı izolasyon) eklenirken
  • Çeyreklik review

Her güncellemede §5 matrisi güncellenmeli — matris değişmiyorsa doküman muhtemelen eksik güncellenmiştir.

Simetri tarafından inşa ediliyor.