Guardrail Eşiği Nasıl Kalibre Edilir?
Aşırı-red ile saldırı kaçırma arasındaki değiş-tokuş
"Guardrail'imiz çok fazla şeyi engelliyor" şikâyetinin arkasında tek bir mühendislik gerçeği var: her eşik ayarı, kaçırılan saldırı ile yanlışlıkla reddedilen zararsız istek arasında bir denge noktası seçer. Bu yazı, o dengeyi Türkçe rakamlarla ölçülebilir hâle getiriyor.
Aşırı-red (over-refusal) nedir?
Aşırı-red (İngilizce over-refusal), bir güvenlik katmanının tamamen zararsız bir isteği saldırı ya da politika ihlali sanarak engellemesidir. Kullanıcı meşru bir soru sorar, guardrail bunu «prompt injection» veya «jailbreak» olarak işaretler ve yanıt hiç üretilmez. Yapay zekâ güvenliği literatüründe bu, bir güvenlik sınıflandırıcısının yanlış pozitifi (false positive) olarak da adlandırılır: gerçek bir tehdit olmadığı hâlde alarm çalar.
Bunu somutlaştırmak kolaydır çünkü Türkçede birçok masum fiil yüzeyde tehlikeli görünür. Mısırı «patlatmak», gitar akorunu «vurmak», Linux'ta bir süreci «öldürmek» (kill) — hepsi günlük, zararsız isteklerdir ama İngilizce üzerine eğitilmiş bir filtre için tetikleyici kelimeler taşır. Aşırı-red, güvenlik araçlarının sessiz vergisidir: bir saldırı-yakalama tablosunda görünmez, ama gerçek kullanıcıları — yemek tarifi soranı, sistem yöneticisini, destek talebini — kırar.
Kritik nokta şudur: aşırı-red bir yazılım hatası değil, bir eşik kararının kaçınılmaz yan ürünüdür. Guardrail'ı ne kadar hassas ayarlarsanız daha çok saldırı yakalar ama daha çok masum isteği de reddeder. Bu yüzden "çok agresif guardrail" sorununun çözümü kodu düzeltmek değil, eşiği doğru kalibre etmektir.
Eşik, ROC eğrisi ve kaçınılmaz değiş-tokuş
Bir guardrail, girdiye 0 ile 1 arasında bir tehdit skoru atar (örneğin "bu metnin saldırı olma olasılığı 0,72"). Ardından bir eşik (threshold) bu skoru ikili bir karara çevirir: skor eşiğin üstündeyse engelle, altındaysa geçir. Eşiği düşürmek guardrail'ı sertleştirir; yükseltmek gevşetir.
Bu ayarın iki sonucu ters yönde hareket eder ve klasik bir sınıflandırma değiş-tokuşu oluşturur:
- Yanlış negatif / kaçırma oranı (miss-rate): guardrail'ın gözden kaçırdığı gerçek saldırılar. Eşik yükseldikçe artar.
- Yanlış pozitif / aşırı-red oranı: yanlışlıkla engellenen zararsız istekler. Eşik yükseldikçe azalır.
İstatistikte bu ilişki ROC (Receiver Operating Characteristic) ve precision-recall eğrileriyle çizilir: eşiği kaydırdıkça yakalama oranı ile yanlış-alarm oranı bir eğri boyunca birlikte değişir. Sihirli bir eşik yoktur — sadece kurumunuzun "bir saldırıyı kaçırmanın maliyeti" ile "bir müşteriyi haksız yere reddetmenin maliyeti" arasındaki tercihine denk düşen bir çalışma noktası (operating point) vardır. Bu makalenin ana tezi budur: eşik teknik değil, iş kararıdır; ama o kararı ancak iki ekseni birlikte ölçerek verebilirsiniz.
Her savunma katmanı kendi yanlış pozitifini üretir
Modern bir LLM guardrail'ı tek bir modelden ibaret değildir; genellikle sıralı katmanlardan oluşur ve her katman kendi yanlış pozitif kaynağını ekler:
| Katman | Görevi | Tipik aşırı-red kaynağı |
|---|---|---|
| Regex ön-filtre | Bilinen kalıpları hızla ele | "ignore", "öldür", "sistem promptu" gibi kelimeler masum bağlamda geçince |
| Kategori sınıflandırıcı | Saldırı/jailbreak olasılığı skoru | Eğitim dağılımından sapan dil, üslup veya konu (ör. güvenlik metni) |
| Model hakem (judge) | Anlamsal değerlendirme | Aşırı temkinli sistem promptu; "emin değilsen reddet" talimatı |
| Politika motoru | Kurumsal kural uygulama | Çok geniş yazılmış kural; kelime kara-listeleri |
Katmanlar VE mantığıyla değil, çoğunlukla "herhangi biri engellerse engelle" mantığıyla çalıştığı için yanlış pozitifler birikir: her katmanın tek başına makul aşırı-red oranı, üst üste bindiğinde toplam reddi şişirir. Bu yüzden eşik kalibrasyonu tek bir modelin değil, tüm boru hattının davranışını hedef almalıdır. Katmanlı bir guardrail mimarisinin nasıl kurulduğunu çalışma zamanı LLM guardrail'ları yazımızda ayrıntılandırdık.
AltaySec ölçümü: aşırı-red uçurumu
Aşırı-redi somut rakamlara bağlamak için AltaySec olarak iki eksenli, Türkçe-İngilizce bir açık ölçüt yayımladık: guardrail-arena. 337 istem (217 enjeksiyon + 120 zararsız) üzerinde her guardrail'ı iki eksende birden puanlıyor: kaçırma oranı ve aşırı-red oranı. Aşağıdaki sayılar AltaySec'in kendi ölçümüdür ve her guard'ın varsayılan eşiğinde alınmıştır.
Bulgunun özü, biz buna «aşırı-red uçurumu» diyoruz, şudur: sıradan istekleri neredeyse hiçbir guard engellemez, ama saldırıdan söz eden meşru metinlerde aşırı-red patlar. Zararsız istemleri iki gruba ayırdık — 80 sıradan istek (yemek, ders, kod) ve 40 güvenlik-bitişik istek (bir saldırıyı anlatan, alıntılayan ya da tespit kuralı isteyen meşru metinler):
| Guard | Sıradan istekte aşırı-red (n=80) | Güvenlik-bitişik metinde aşırı-red (n=40) |
|---|---|---|
| regex-kurallar | %6 | %30 |
| anahtar-kelime | %8 | %38 |
| protectai-deberta-v2 (yaygın açık standart) | %8 | %40 (16/40) |
| AltaySec-detektör * | %0 | %70 (28/40) |
Yaygın olarak sahaya sürülen ProtectAI dedektörü bile, sadece bir saldırıdan bahseden 40 zararsız istemin 16'sını reddediyor. (* AltaySec-detektörün enjeksiyon ve sıradan zararsız verisiyle örtüşen bir eğitim kümesi vardır; %0 sıradan oranı bu nedenle dağılım-içi bir üst sınırdır. Güvenlik-bitişik sütun ise tüm guard'lar için tutulan tek bağımsız karşılaştırmadır, dolayısıyla %70 anlamlıdır.) Bu değerler küçük örneklem üzerinde ölçülmüştür; sıralamayı sinyal olarak okuyun, tam yüzdeyi değil. Türkçede az işlenen bu ikinci eksen — güvenlik-bitişik aşırı-red — normal bir saldırı-yakalama tablosunda tamamen görünmezdir ve tam da güvenlik ekipleri, SOC yardımcıları ve destek botlarının kırıldığı yerdir.
Türkçeye özgü ceza: dil-koşullu aşırı-engelleme
Aşırı-red yalnızca konuya değil, dile de bağlıdır. AltaySec'in ikinci veri kümesi turkish-over-refusal-set, aynı tetikleyici kelimeyi paylaşan 120 eşleşik çift (bir zararsız + bir gerçekten reddedilmeyi hak eden ikiz) üzerinde üç açık guard'ı ölçtü. AltaySec'in kendi ölçümüne göre:
| Guard | Zararsız TR aşırı-red | Zararsız EN aşırı-red | TR ÷ EN |
|---|---|---|---|
| protectai-deberta-v2 | %59,2 | %0,8 | ~71× |
| fmops-distilbert | %25,0 | %5,0 | 5× |
| jackhhao-jailbreak | %0,0 | %0,0 | — |
ProtectAI, zararsız Türkçe istemlerin beşte üçünü saldırı sayarken İngilizce eşdeğerlerinin yüzde birinden azını işaretliyor. Daha da çarpıcısı: aynı guard, zararsız Türkçeyi (%59,2) gerçekten zararlı Türkçeden (%39,2) daha sık engelliyor. Yani öğrendiği sinyal "bu bir saldırı" değil, "bu metin Türkçe / alışılmadık"a daha yakın. Bu, madalyonun diğer yüzüyle birleşince tehlikeli olur: aynı ekosistemdeki jackhhao sınıflandırıcısı Türkçe saldırıların %85'ini kaçırıyor (bkz. AltaySec'in guard-blindspots-tr ölçümü). Sadece İngilizcede doğrulanmış bir guard, başka bir dilde hem masumları cezalandırıp hem gerçek saldırıları kaçırabilir. Bu morfolojik kör noktaların mekaniğini Türkçe morfolojik LLM baypası yazısında ele aldık.
Eşik nasıl kalibre edilir? Pratik yöntem
İki ekseni ölçtüğünüzde kalibrasyon somut bir sürece dönüşür. AltaySec'te izlediğimiz akış şudur:
- Kendi trafiğinizden etiketli bir küme çıkarın. Guardrail'ı kimin kullandığını yansıtan gerçek istekler + bilinen saldırılar. Sentetik ölçüt (guardrail-arena gibi) başlangıç noktasıdır, üretim trafiğinin yerini tutmaz.
- İki ekseni birlikte çizin. Eşiği süpürerek kaçırma oranı ile aşırı-red oranını aynı grafikte gösterin. Tek eksene (yalnızca saldırı yakalama) bakmak, boru hattını üretimde kıran gizli maliyeti görünmez kılar.
- Maliyeti tanımlayın. "Bir kaçırılan saldırının bize maliyeti" ile "bir haksız reddin maliyeti" oranını belirleyin. Çalışma noktası bu orandan çıkar.
- Güvenlik-bitişik metni ayrı ölçün. Sıradan aşırı-red neredeyse sıfır olsa bile, kullanıcılarınız güvenlikten söz ediyorsa (SOC, uyum, destek) uçurum sizi vurur.
Bu adımlardan sonra bile eşik seçimi bir yargıdır, ölçüm değil. Aşağıdaki tablo AltaySec'in tavsiyesidir — ölçülmüş bir değer değil, sektörün saldırı ve kesinti maliyetlerine dair mühendislik kanaatidir:
| Sektör | Baskın risk | Önerilen eğilim (tavsiye) |
|---|---|---|
| Bankacılık / finans | Sızıntı ve dolandırıcılık maliyeti çok yüksek | Daha sıkı eşik; aşırı-redi insan-döngüde eskalasyonla telafi et |
| Sağlık | Hem sızıntı hem yanlış reddin hasta güvenliğine etkisi | Sıkı eşik + klinik-bitişik metin için ayrı istisna listesi |
| E-ticaret / destek | Kesinti = doğrudan gelir ve terk kaybı | Daha gevşek eşik; kaçırılanı egress ve araç-yetki sınırıyla kapat |
| İç verimlilik araçları | Saldırı yüzeyi dar, çalışan memnuniyeti kritik | Gevşek eşik; aşırı-redi minimuma indir, izleme ile telafi et |
Not: Bu tablo bir başlangıç eğilimidir, sabit bir reçete değil. Her kurum kendi etiketli kümesiyle noktayı hassaslaştırmalıdır.
Kendi deneyimimiz: %47 aşırı-engelleme ve dürüst kalibrasyon
Bunları dışarıdan öğrenmedik. AltaySec'in kendi LLM güvenlik duvarı Guardian'ın erken bir sürümünde, sıkı yazılmış kural setiyle gelen istekleri belirli bir konfigürasyonda yaklaşık %47 oranında aşırı-engellediğini kendi iç ölçümümüzde gördük. Bu, guardrail'ın "çalışmadığı" değil, çalışma noktasının yanlış yerde durduğu anlamına geliyordu: saldırıları yakalıyor ama meşru trafiğin çok büyük bir dilimini de birlikte kesiyordu.
Bu deneyim, ürün felsefemizi belirledi: bir guardrail'ı yalnızca "kaç saldırı yakaladı" ile pazarlamak yanıltıcıdır; aşırı-red oranını da açıkça raporlamak gerekir. Guardian'ı bugün iki eksende birden ayarlanabilir eşiklerle sunmamızın ve LLM güvenlik duvarı seçim kriterlerinde bu ekseni öne çıkarmamızın nedeni budur. Kurumunuzun trafiğinde doğru çalışma noktasını bulmak için AltaySec ekibiyle iletişime geçebilirsiniz.
Sonuç: "Guardrail'imiz çok fazla engelliyor" bir kusur raporu değil, bir kalibrasyon çağrısıdır. İki ekseni ölçün, maliyeti tanımlayın, güvenlik-bitişik metni ayrı sınayın ve eşiği bir iş kararı olarak seçin. Türkçe trafik için varsayılan İngilizce eşiklere güvenmeyin — rakamlar dilin kendisinin cezalandırıldığını gösteriyor.
Kaynaklar
- FalseReject: Reducing Over-refusal in Language Models
- XSTest: A Test Suite for Identifying Exaggerated Safety Behaviours (Röttger et al., arXiv:2308.01263)
- OR-Bench: An Over-Refusal Benchmark for Large Language Models (Cui et al., arXiv:2405.20947)
- AltaySec guardrail-arena — iki eksenli, çok dilli guardrail ölçütü
- AltaySec turkish-over-refusal-set — zararsız Türkçe istemlerde aşırı-red bulguları
- AltaySec guard-blindspots-tr — Türkçe saldırılarda guard kaçırma oranları
- OWASP Top 10 for LLM Applications — LLM01: Prompt Injection
