Ana içeriğe geç

Bölüm 21: Session Threat Detection

Oturum Tehdidi Tespiti Nedir?

Session Threat Detection, çok turlu (multi-turn) / Crescendo tarzı saldırıları tespit etmek için tasarlanmış oturum bazlı tehdit korelasyon motorudur. Prompt Guard gibi tek başına çalışan kontroller her isteği tek tek değerlendirirken; bu motor, tek bir konuşma (session) boyunca biriken riski izler. Amaç, saldırganın tehlikeli içeriği birden çok, tek başına zararsız görünen mesaja bölerek (kademeli olarak güvenlik kontrollerini aşarak) enjekte etme girişimlerini yakalamaktır.

Motor, her gerçek istemde sekiz farklı tehdit sinyalini (signal) değerlendirir; eşleşen sinyaller risk puanına eklenir ve toplam puan [0, 1] aralığında sıkıştırılır (clamp). Risk puanı eşikleri aştığında sistem allow (izin) / monitor (izle) / block (engelle) kararı verir. Her karar, sinyalleri yayımlanmış güvenlik çerçeveleriyle de sınıflandırır: OWASP Top 10 for LLM Applications (ör. LLM01:2026 Prompt Injection) ve MITRE ATLAS (ör. AML.T0051). Bu kimlikler denetim kaydında ve SIEM aktarımında taşınır (Bölüm 25).

Korelasyon, üç giriş düzleminin hepsinde de çalışır: tarayıcı trafiği (şeffaf proxy), IDE/CLI trafiği (açık proxy, kendi ide: ad alanında) ve API gateway yolu. Durum, Arceris açısından durum bilgisiz (stateless) olacak şekilde tasarlanmıştır — oturum durumu önbellek katmanında (yapılandırıldıysa) veya otomatik bellek yedeğinde tutulur, böylece ağ geçidi düğümleri durum bilgisi taşımaz.

Oturum Kimliği Çözümleme

Oturum anahtarı trafiğin geldiği kanala göre türetilir; bu, kimlik çözümlemesinin kanal bazlı farklılaştığı anlamına gelir (bkz. Bölüm 9):

API gateway yolu — öncelik sırası:

  1. X-Arceris-Session başlığı — çağıranın açık oturum kimliği.
  2. Anthropic x-conversation-id başlığı.
  3. OpenAI openai-conversation-id / openai-thread-id başlıkları.
  4. Örtük oturum — tenant + kullanıcı + 30 dakikalık zaman penceresinin hash'i (aynı yarım saatteki istekler otomatik ilişkilendirilir).

Tarayıcı (şeffaf proxy) — tarayıcı bu başlıkların hiçbirini göndermez; oturum anahtarı AI hostuna göre kapsamlanır. İki bilinçli özellik: yeni bir sohbet açmak biriken riski sıfırlayamaz (kapsam sohbet değil, hosttur), ancak farklı sağlayıcılardaki konuşmalar birbirinin puanını etkilemez.

IDE / CLI (açık proxy) — oturum anahtarı araca göre kapsamlanır: bir kullanıcının Claude Code oturumu, aynı kullanıcının Codex oturumundan ayrı tutulur. Bu ad alanı tarayıcı ad alanından bilinçli olarak ayrıdır; kanallar arası risk birikimi bilinen bir sınır olarak teslim edilmez.

Kimlik çözümlemesindeki değişiklikler korelasyonu doğrudan etkiler: kayıtlı bir cihazın bağlantısı üzerinden gelen çerezsiz tarayıcı istekleri artık cihazın kullanıcısı olarak değerlendirilir; dolayısıyla bu istekler anonim bir IP kimliği altında değil, o kullanıcının oturum anahtarında birikir (Bölüm 9).

Admin Arayüzü ve API

Oturum tehdit kararları Oturum Tehditleri sayfasında izlenir: sol menü → Güvenlik → "Oturum Tehditleri" (/admin/session-threats). Sayfa salt okunur bir karar akışıdır; eşikler buradan değil Settings → Runtime → "Oturum Tehdit Korelasyonu" bölümünden yönetilir (aşağıda).

Sayfanın yapısı şöyledir:

  • Özet kartları — seçili olaylar içindeki engellenen tur sayısı, izlenen tur sayısı ve etkilenen konuşma sayısı.
  • Filtreler — Sonuç (Tüm sonuçlar / Engellenen / İzlenen / Yalnızca sinyal), Kaynak (Tarayıcı (şeffaf proxy) / API / ağ geçidi / IDE / CLI (açık proxy)) ve kullanıcı, host, oturum veya sinyal üzerinde metin arama.
  • Olay tablosu — Zaman, Kullanıcı, Kaynak, Oturum Riski (renkli çubuk + skor), Tur (kararın konuşmanın kaçıncı turunda verildiği), Çerçeveler (OWASP kimlikleri) ve Sonuç rozeti (BLOCKED / MONITORED / SIGNALS).
  • Satır detayı — satır tıklanınca genişler: sinyaller sade adlarıyla, erişilen kaynak (host + yol), istemci IP'si, oturum kimliği ve tehdit sınıflandırması (her sinyalin OWASP ve MITRE ATLAS kimliği + adı).

Kullanıcı kimlikleri panelde çözümlenerek gösterilir; karar kayıtlarında sınıflandırma taşınır, asla istem metni taşınmaz. Her tur değerlendirilir; ancak yalnızca sinyal eşleşen ya da allow dışında kararlanan turlar satır üretir — temiz turlar akışı doldurmaz.

Akış bellek içi bir görünüm olup en fazla 10000 kararı tutar (yenisi eskisini düşürür) ve her düğüm yalnız kendi değerlendirdiği kararları gösterir. Kalıcı kayıt denetim günlüğüdür (session_threat olay türü); SIEM eşlemesi için Bölüm 25.

Sinyaller ve Risk Puanı Katkıları

Sinyal Puan Katkısı Ne zaman tetiklenir
injection_attempt 0.50 Prompt enjeksiyonu taraması bu turda enjeksiyon algıladığında (dışarıdan bildirilir)
injection_keyword_repeat 0.30 Bu turda yeni bir enjeksiyon varsa ve oturum geçmişinde zaten bir enjeksiyon denemesi bulunduysa
system_prompt_probe 0.25 "system prompt"/"system instructions"/"hidden instructions" içeriyor
guardrail_bypass_seek 0.30 "ignore"/"bypass"/"override" + "previous"/"instructions"/"rules" bir arada
role_manipulation 0.25 "pretend you are"/"act as"/"you are now"/"forget your" içeriyor
privilege_escalation 0.20 "admin mode"/"developer mode"/"sudo"/"root access" içeriyor
recon_pattern 0.15 "what are your"/"list your"/"show me your" + "rules"/"instructions"/"guidelines"
social_engineering 0.20 Yetki iddiası + acil eylem talebi

Sinyaller additiftir (toplanır) ve toplam [0, 1] aralığında sıkıştırılır. Sinyal tetiklemeyen her mesajda risk puanından 0.10 düşülür — puan zararsız sohbetle zamanla sönümlenir.

Motorun iki ek koruma kuralı daha vardır:

  • Tek tura üst sınır — bir turun toplam katkısı blok eşiğinin %60'ıyla sınırlanır. Tek bir mesaj, soğuk bir oturumu asla blok eşiğine taşıyamaz; blok için her zaman en az iki sinyalli tur gerekir. (Sinyaller yine de karar içinde ve kayıtta eksiksiz gösterilir; yalnızca o turun puan ağırlığı sınırlanır.)
  • Sınırlı geçmiş — oturumun sinyal geçmişi en son 200 sinyalle sınırlı tutulur; uzun konuşmalar durum kaydını büyütmez.

Çerçeve eşlemesi özeti: enjeksiyon sinyalleri LLM01:2026 Prompt Injection / AML.T0051 olarak; guardrail bypass, rol manipülasyonu ve sosyal mühendislik LLM01:2026 / AML.T0054 (LLM Jailbreak) olarak; sistem istemi sorgulama ve keşif kalıpları LLM08:2026 Hidden Context Exposure / AML.T0056 olarak; yetki yükseltme girişimleri LLM03:2026 Excessive Agency olarak sınıflandırılır.

Karar Eşikleri (varsayılan)

  • Risk puanı 0.85 ve üzeri → block (istem reddedilir).
  • Risk puanı 0.60–0.84 → monitor (geçir + kaydet + işaretle).
  • Risk puanı 0.60 altı → allow (normal akış; sinyal eşleştiyse kayda geçer).

Blok sonrası toparlanma bilinçli olarak hızlı tasarlanmıştır: blok kararı verildiğinde saklanan puan eşiğin hemen altına çekilir (blok eşiği − 0.10), böylece tek bir temiz mesaj bloğu kaldırır ve kullanıcı kilitlenmez; buna karşılık bir sonraki sinyalli tur, ne kadar hafif olursa olsun eşiği hemen yeniden geçer.

Bir reddedilen istemin istemci tarafından yeniden gönderilmesi (tarayıcı arayüzleri ve IDE istemcileri otomatik yeniden dener) yeni tur sayılmaz: aynı karar 60 saniye içinde tekrar oynatılır — istem yine reddedilir, ancak puan yeniden biriktirilmez ve kayıt bir kez yazılır.

İlgili Ayarlar (Ortam Değişkenleri)

Özelliğin açma/kapama anahtarı ve her iki eşik, yönetim panelinde Settings → Runtime → "Oturum Tehdit Korelasyonu" bölümündendir ve yeniden başlatma olmadan canlı uygulanır. Panelde kaydedilen değerler aşağıdaki önyükleme değerlerini geçersiz kılar. Önerilen açılış yöntemi kademelidir: önce etkinleştirip birkaç gün Oturum Tehditleri sayfasını izlemek, ardından blok eşiğini kademeli düşürmek.

Ortam değişkenleri ilk açılışta (boot) şu varsayılanları belirler:

Değişken Varsayılan Açıklama
SESSION_THREAT_ENABLED false Oturum tehdit tespitinin ilk değeri. Kapalıyken hiçbir istem puanlanmaz ve oturum durumu değiştirilmez.
SESSION_THREAT_BLOCK_THRESHOLD 0.85 Bu puan ve üzeri block kararı.
SESSION_THREAT_WARN_THRESHOLD 0.60 Bu puan ve üzeri monitor kararı (blok eşiğinin altında olmalı).
SESSION_THREAT_TTL_MINUTES 30 Oturum durumunun saklanma süresi (dakika). Yalnızca ortam değişkeniyle değiştirilir; panelde karşılığı yoktur.

Bu ayarlar lisans paketine bağlı değildir; lisans kontrolünden bağımsızdır.

Operasyonel Davranış

Değerlendirme noktası kanala göre farklıdır. API gateway yolunda motor, ara yazılım zincirinde hız sınırından sonra ama maliyet sınırından önce çalışır (Security → Auth → Tenant → ACL → RoutingDecision → Policy → RateLimit → SessionThreat → CostLimit → License → ProxyHandler) ve yalnızca gövde taşıyan POST isteklerini değerlendirir. Tarayıcı ve IDE/CLI yollarında ise karar, istem tarama hattının içinde verilir: bu turun enjeksiyon taraması bittikten sonra, kullanıcı bazlı istem kontrollerinden (DLP, içerik moderasyonu — katman sırası için Bölüm 20) önce. Böylece riski yükselmiş bir oturumun istemi, üçüncü taraf taramalarına hiç gönderilmez; ayrıca yardımcı (housekeeping) istekleri tur olarak sayılmaz ve puanı sıfırlayamaz.

İstemci deneyimi karara göre değişir:

  • Tarayıcıda block: Arceris blok sayfası gösterilir ("Your message was blocked: this conversation shows a pattern of attempts to bypass the assistant's safety rules").
  • IDE/CLI'da block: aynı mesajla JSON 403 yantı döner (CLI istemcileri JSON'u doğrudan işler).
  • API yolunda block: HTTP 403 ve "security alert: session risk threshold exceeded" mesajı.
  • API yolunda monitor: istek geçirilir; yanıt başlıklarına X-Arceris-Session-Risk: monitor ve X-Arceris-Session-Score: <yüzde> eklenir.

Denetim günlüğü ve kayıt kuralları: Kararlar warn seviyesinde denetim olayı olarak yazılır; sonuç türü (outcome) kararın ne olduğunu ayırt eder: signals_detected (sinyal eşleşti, puan hâlâ düşük), risk_monitored (izleme eşiği aşıldı, bilinçli geçirildi), risk_blocked (blok). Kayıtlar sinyal adlarını ve OWASP/ATLAS kimliklerini taşır, istem metnini asla. Bloklarda ayrıca bir deny event üretilir; açık proxy yolunda karantinaya alınmış bir MCP hostu bloğu kayıtlı ihlale dönüştürür (Bölüm 23).

Veri saklama: Oturum durumu önbellek katmanında tutulur; önbellek kullanılamazsa otomatik olarak bellek yedeğine düşer. Durum: session_id, tenant_id, principal_id, risk_score, signals (son 200), message_count, last_decision, son istem parmak izi ve zaman damgaları — istem metni değil. TTL süresi dolunca oturum otomatik temizlenir.

İlgili bölümler: Bölüm 9 (kimlik çözümlemesi ve cihaz kullanıcısı), Bölüm 20 (istek katmanı sıralaması), Bölüm 23 (açık proxy ve MCP karantinası), Bölüm 25 (denetim günlüğü, SIEM adları ve alert eşleşmeleri).