Blue Team · Tespit Mühendisliği

LLM Saldırıları İçin Kopyalanabilir SIEM/SOAR Tespit Kuralları
Sigma-tarzı, Türkçe bağlamlı, kopyala-yapıştır kural kütüphanesi

Tespit mühendisliğinin "nasıl" tarafını başka bir yazıda anlattık; bu yazı onun pratik ekidir. Burada teori yok: bir SOC ekibinin doğrudan SIEM'ine yapıştırıp uyarlayabileceği, LLM saldırılarına yönelik hazır kural mantığı var.

LLM tespit kuralı kütüphanesi nedir?

LLM tespit kuralı kütüphanesi, bir dil modeli uygulamasının ürettiği güvenlik telemetrisi (istem/yanıt logları, ağ geçidi kayıtları, araç çağrısı olayları, token sayaçları) üzerinde çalışacak, önceden yazılmış ve yeniden kullanılabilir tespit mantığı birimlerinin bir koleksiyonudur. Her birim bir saldırı davranışını (örneğin prompt injection ya da sistem promptu sızdırma) tarif eder, bir SIEM'de sorguya dönüştürülür ve bir uyarı üretir. Amaç, her ekibin aynı kuralı sıfırdan yazmasını önlemek; onun yerine denetlenmiş, paylaşılabilir ve versiyonlanabilir bir tespit tabanı sağlamaktır.

Bu format yeni değildir. Klasik güvenlik operasyonlarında bu iş Sigma ile yapılır: SIEM'den bağımsız, açık YAML tespit standardı. Aynı yaklaşım LLM katmanına taşınabilir. Bu yazı, Türkçe konuşan bir SOC'un doğrudan uyarlayabileceği kural birimlerini bir arada sunar.

Bu yazının yeri: metodoloji değil, kopyala-yapıştır kütüphane

Tespit kuralı yazmayı — log kaynaklarını normalize etmeyi, eşik seçmeyi, yanlış pozitifi ayarlamayı — ayrı bir yazıda ele aldık. Kural mantığının arkasındaki tasarım kararlarını merak ediyorsanız önce oraya bakın: LLM tespit mühendisliği rehberi. Bu yazı o rehberin pratik ekidir; kavramları tekrar etmez, doğrudan çalıştırılabilir birimler verir.

Açık olalım: LLM ve AI ajanı tehditleri için hazır tespit setleri zaten mevcut. SigmaHQ ekosisteminde ajan tehditlerini Sigma'ya çeviren MIT lisanslı setler (ör. Agent Threat Rules, atr convert sigma ile) dolaşımda. Dolayısıyla burada bir "özgünlük" iddiası yok. Bizim eklediğimiz değer dar ve savunulabilir: Türkçe bağlamlı, morfoloji-aware anahtar örüntüler ve kopyala-yapıştır kullanılabilirlik. Türkçe'nin eklemeli yapısı, saldırgan niyetini tek bir sabit ifadeye sığdırmayı zorlaştırır; İngilizce-merkezli setler bu varyasyonu çoğu zaman ıskalar. AltaySec bu kural mantığını prompt-injection-detection-rules adı altında derlemeye hazırlanıyor; aşağıdaki birimler o çalışmanın çekirdeğini oluşturuyor ve tek başlarına da kullanılabilir.

Not: Aşağıdaki kurallar başlangıç şablonlarıdır. Eşikler, anahtar listeleri ve alan adları kendi log şemanıza göre uyarlanmalıdır. Hiçbir kuralı ölçmeden üretime almayın.

Kural 1 — Prompt injection tespiti

Prompt injection, kullanıcı girdisinin modeli mevcut talimatlarını yok saymaya ya da geçersiz kılmaya yönlendirmesidir. En ucuz sinyal, girdide bilinen "talimat ezme" örüntülerinin geçmesidir. Türkçe için tekil kelime yerine kök + çekim varyasyonlarını yakalayan geniş örüntüler kullanın ("yok say", "yoksay", "görmezden gel", "unut", "boşver").

title: LLM Prompt Injection - Talimat Ezme Ornekleri (TR/EN)
id: a1f3c7e0-llm-pi-01
status: experimental
description: Kullanici girdisinde bilinen talimat-ezme oruntulerini tespit eder.
logsource:
  product: llm_gateway
  category: application
detection:
  selection_tr:
    user_input|contains:
      - 'onceki talimatlar'
      - 'yukaridaki talimat'
      - 'gormezden gel'
      - 'yok say'
      - 'yoksay'
      - 'sistem promptu'
      - 'gercek talimat'
      - 'artik sen'
  selection_en:
    user_input|contains:
      - 'ignore previous'
      - 'ignore above'
      - 'disregard your instructions'
      - 'you are now'
      - 'system prompt'
      - 'developer mode'
  condition: selection_tr or selection_en
fields:
  - session_id
  - user_id
  - user_input
falsepositives:
  - Guvenlik egitimi / kirmizi takim simulasyonlari
  - Modelin kendi davranisini soran mesru sorular
level: high
tags:
  - attack.initial_access
  - owasp.llm01

Bu kural bilinçli olarak yüksek geri çağırma (recall), düşük kesinlik (precision) hedefler; ilk üçleme (triage) katmanıdır. İkinci katman olarak yanıtı da denetleyin: model gerçekten davranış değiştirdi mi? Saldırı kalıplarının daha ayrıntılı bir haritası için Türkçe prompt injection 5 saldırı kalıbı yazısına bakın. Kavramsal temel için: prompt injection nedir.

Kural 2 — Sistem promptu sızıntısı

Sistem promptu sızıntısında model, kendisine verilen gizli talimatları (rol tanımı, kısıtlar, gömülü sırlar) yanıtında ifşa eder. Burada doğru sinyal girdi değil, çıktıdır: yanıt, sistem promptunuzun bilinen imza dizgelerini içeriyorsa alarm üretin. Bu yüzden sistem promptunuza benzersiz bir işaretçi (canary) yerleştirmek, tespiti çok güvenilir kılar.

title: LLM Sistem Promptu Sizintisi - Canary Eslesmesi
id: b2e4d8f1-llm-leak-01
status: experimental
description: Model yanitinda sistem promptunun canary dizgesi ya da bilinen imza
  ifadeleri gorulurse tetiklenir.
logsource:
  product: llm_gateway
  category: application
detection:
  selection_canary:
    model_output|contains: 'CANARY-7F3A-DO-NOT-REVEAL'
  selection_imza:
    model_output|contains:
      - 'Sen AltaySec asistanisin'
      - 'Asagidaki kurallara asla uyma disina cikma'
      - 'You are a helpful assistant with the following rules'
  condition: selection_canary or selection_imza
fields:
  - session_id
  - user_id
  - model_output
level: critical
tags:
  - attack.credential_access
  - owasp.llm07

Canary yaklaşımının avantajı kesinliktir: normal bir yanıt bu benzersiz dizgeyi asla içermez, dolayısıyla yanlış pozitif neredeyse sıfırdır. Sistem promptu tasarımının kendisi tespitin ilk savunma hattıdır; bu konuyu sistem promptu sızdırma yazısında ayrıntılandırdık.

Kural 3 — Araç kötüye kullanımı (tool abuse)

Araç kullanan ajanlarda saldırı yüzeyi, modelin yetkilendirilmediği bir aracı ya da tehlikeli bir parametreyi çağırmaya ikna edilmesidir. Buradaki tespit mantığı iki eksenlidir: (1) beklenen araç setinin dışında bir çağrı, (2) meşru bir aracın riskli argümanlarla çağrılması (ör. dosya silme, dış ağa istek, ayrıcalık yükseltme). Bu, prompt injection'ın en sık ikinci-aşama etkisidir.

title: LLM Ajan Araç Kotuye Kullanimi - Yetkisiz veya Riskli Cagri
id: c3f5a9d2-llm-tool-01
status: experimental
description: Ajanin izin listesi disindaki araci ya da riskli argumanlari cagirmasini
  tespit eder.
logsource:
  product: llm_gateway
  category: agent_action
detection:
  selection_yetkisiz:
    tool_name|not_in:
      - 'search_docs'
      - 'get_ticket'
      - 'summarize'
  selection_riskli_arg:
    tool_args|contains:
      - 'rm -rf'
      - 'DROP TABLE'
      - 'http://'
      - 'file:///'
      - '../'
  condition: selection_yetkisiz or selection_riskli_arg
fields:
  - session_id
  - agent_id
  - tool_name
  - tool_args
level: high
tags:
  - attack.execution
  - owasp.llm06

İzin listesini (allow-list) her ajan için sıkı tutmak, bu kuralın değerini katlar; "her şeye izin ver, sonra tespit et" yerine "az yetki ver, sapmayı tespit et" ilkesi geçerlidir. En az ajanlık (least agency) ilkesi ve araç kaçırma senaryoları için AI ajan güvenliği: araç kaçırma ve AI ajan yetki modeli yazılarına bakın.

Kural 4 — Aşırı token tüketimi (kaynak tükenmesi)

Aşırı token tüketimi hem bir maliyet saldırısı (denial-of-wallet) hem de veri sızdırma ya da model kötüye kullanımının bir sinyalidir. İki desen izlenir: tek istekte anormal büyük token üretimi ve kısa pencerede aynı oturumdan gelen yoğun tekrar. Bu kural sayaç tabanlıdır; eşikleri kendi normal trafiğinize göre kalibre edin.

title: LLM Asiri Token Tuketimi - Anormal Kullanim
id: d4a6b0e3-llm-dos-01
status: experimental
description: Tek istekte veya kisa pencerede anormal token tuketimini tespit eder.
logsource:
  product: llm_gateway
  category: application
detection:
  selection_buyuk_istek:
    total_tokens|gt: 16000
  timeframe: 5m
  selection_yogun:
    user_id|count() by session_id|gt: 50
  condition: selection_buyuk_istek or selection_yogun
fields:
  - session_id
  - user_id
  - total_tokens
falsepositives:
  - Mesru toplu isleme / uzun dokuman ozetleme is akislari
level: medium
tags:
  - attack.impact
  - owasp.llm10

Bu tür kaynak-tabanlı kurallar, tek başlarına düşük şiddet taşısa da diğer sinyallerle birleştiğinde (örneğin aynı oturumda prompt injection deneme + aşırı token) güçlü bir olay göstergesine dönüşür. Korelasyon, bir sonraki bölümün konusudur.

Kuralları SOAR'a bağlamak: korelasyon ve otomatik müdahale

Tekil kurallar gürültü üretir; değer, onları bir SOAR playbook'unda birbirine bağlamaktan gelir. Pratik bir öncelik zinciri şöyle kurulabilir:

  • Zenginleştir: Uyarı gelince oturumun tam istem/yanıt geçmişini, kullanıcı kimliğini ve önceki uyarı sayısını topla.
  • Korele et: Aynı session_id altında birden fazla kural tetiklendiyse (ör. Kural 1 + Kural 3) şiddeti otomatik yükselt. Tekil bir prompt injection denemesi ile araç kötüye kullanımına kadar zincirlenen bir denemenin ağırlığı aynı değildir.
  • Sınırla: Yüksek güven durumunda oturumu askıya al, ilgili API anahtarını hız-sınırla ya da ajanın araç erişimini geçici olarak kıs.
  • Kaydet: Olayı yapılandırılmış biçimde arşivle; kanıt zinciri sonraki analiz ve düzenleyici raporlama için gereklidir.

Runtime katmanında bu müdahalelerin bir kısmı zaten gerçekleşebilir. AltaySec'in LLM güvenlik duvarı olan Guardian, bu kuralların bir bölümünü istek anında (inline) uygulayarak SIEM'e ulaşmadan bloklamayı hedefler; SIEM/SOAR katmanı ise geriye dönük görünürlük, korelasyon ve denetim için kalır. Bu iki katmanın nasıl birlikte konumlandığını AI SOC mimarisi ve runtime LLM guardrail'ları yazılarında ele aldık. Olay sonrası akış için AI olay müdahale playbook'una bakın.

Sınırlar, yanlış pozitif ve Türkçe morfoloji notu

Anahtar-örüntü tabanlı tespit ucuz ve şeffaftır ama kırılgandır: saldırgan kelimeyi biraz değiştirir, kural kaçırır. Türkçe'de bu kırılganlık daha da belirgindir çünkü eklemeli yapı tek bir kökten onlarca yüzey biçimi üretir ("yok say", "yoksay", "saymayacaksın", "görmezden gel"). Bu yüzden kurallarınızı morfolojik varyasyonu kapsayacak biçimde genişletin ve düzenli aralıklarla kırmızı takım verisiyle test edin.

AltaySec'in kendi ölçüm çalışmaları bu boşluğu doğrudan besliyor: guard-blindspots-tr ve guardrail-arena, Türkçe morfolojik varyasyonun mevcut guardrail'ları nasıl kaçırdığını sistematik olarak ölçen iç veri motorlarımızdır (dış-genel bir gerçek değil, AltaySec'in kendi ölçümüdür). Bu ölçümlerden çıkan varyant listeleri, yukarıdaki anahtar örüntüleri zenginleştirmek için kullanılabilir. Morfoloji tabanlı bypass'ın mekaniği için Türkçe morfolojik LLM bypass yazısına bakın.

Son ilke: anahtar-örüntü kuralları bir başlangıçtır, hedef değil. Olgun bir tespit programı bunları anlamsal (embedding tabanlı) sınıflandırıcılar ve çıktı denetimi ile katmanlar. Ama sıfırdan başlarken, kopyalanabilir ve denetlenebilir bir taban kurmanın en hızlı yolu bu birimlerdir. Kendi ortamınıza uyarlama konusunda destek isterseniz bizimle iletişime geçebilirsiniz.

Kaynaklar

İlgili Yazılar