İçerik güvenliği hattı
CID222'nin her prompt ve her yanıt üzerinde neyi hangi sırayla çalıştırdığı ve bir dizi tespiti tek bir eyleme neyin dönüştürdüğü.
- Sürüm: 0.4
- Rol: admin_user, normal_user, viewer
Her prompt ve her yanıt aynı hattan geçer: çöz, paralel tespit et, doğrula, karar ver, uygula. Hat CID222'ye özgüdür — özel ONNX modelleri ve CID'in kendi karar vericisi.
Sorun
Tek bir tespit motoru ya fazla gürültülüdür ya fazla sessiz. Tek başına regex, hiç görmediği bir adı kaçırır ve bir kimlik numarasına benzeyen bir sayıda tetiklenir. Tek başına bir sınıflandırıcı ise bir kart numarasının gerçek olduğunu kanıtlayamaz ve kendini açıklayamaz. Bir tespit motorunun varlığını bilen bir saldırgan da etrafından kodlayarak dolaşır — base64, homoglifler, leetspeak — ve ham girdiyi okuyan bir tespit motoru yanlış dizeyi okur. Gereken; tek bir çözülmüş metin üzerinde birden çok tespit motoru, her birinin bulduğunu doğrulayacak veya zayıflatacak bir yol ve anlaşmazlığı tek bir eyleme dönüştüren tek bir kuraldır.
CID222 bunu nasıl yapar
1. Dil tespiti
Metin, modeller onu görmeden önce belirlenir; böylece her tespit motoru tahmin etmek yerine bir
dil ipucu alır. Toksisite ve saldırı modelleri sekiz dili kapsar: en, tr, de, fr, es,
ar, it ve nl. KKV modeli tek bir ağırlık kümesi üzerinde çok dillidir.
2. Normalleştirme
Kaçınma çözücüleri her tespitten önce çalışır; böylece bir tespit motoru metnin nasıl gizlendiğini değil ne anlama geldiğini okur.
| Normalleştirici | Girdi | Çıktı |
|---|---|---|
| ROT13 | zvff frperg | miss secret |
| Base64 | cGFzc3dvcmQ= | password |
| Leetspeak | p@55w0rd | password |
| Unicode | password | password |
| Büyük/küçük harf | PASSWORD | password |
Tespit yanıtı, hangi çözücülerin tetiklendiğini normalization.applied içinde bildirir. Orijinal
metni asla döndürmez.
3. Paralel tespit
Normalleştirilmiş metin üzerinde beş tespit motoru aynı anda çalışır.
| Tespit motoru | Model | Ürettiği |
|---|---|---|
| KKV regex | Girdi filtresi satırlarındaki desenler | EMAIL, PHONE, TC_KIMLIK, IBAN, sırlar ve desen kataloğunun geri kalanı |
| KKV NER | ONNX çok dilli DistilBERT | PERSON_NAME, LOCATION, ORGANIZATION dahil 21 yerel varlık etiketi |
| Toksisite | ONNX mDeBERTa, 13 etiket | violence, hate, self_harm, sexual_content, crime, cyber_crimes, weapons ve altı etiket daha |
| Jailbreak ve enjeksiyon | ONNX mDeBERTa, 2 etiket, sigmoid olduğundan ikisi de tetiklenebilir | jailbreak, injection |
| Enjeksiyon taraması | libinjection, deterministik | sql_injection, xss |
İçerik kod olduğunda bunların yanında kod güvenliği çalışır: sırlar ve yıkıcı komutlar için bir kural katmanı ve CWE başına bir tespit bildiren bir denetleyici.
Note
Bu tespit motorlarının önünde anlamsal bir yönlendirici yoktur ve hangilerinin atlanacağına ilişkin istek başına bir karar verilmez. Hepsi, her seferinde, aynı metin üzerinde çalışır.
4. Doğrulama
Her tespit, güvenilmeden önce denetlenir. Bir sağlama toplamı kuralı, sayısal bir tanımlayıcının yapısını doğrular: kart için marka ve uzunluk denetimiyle birlikte Luhn, IBAN için ISO 13616 mod-97, T.C. kimlik numarası, vergi numarası veya ABD SSN için ulusal algoritma ve Türkiye posta kodu veya araç plakası için il aralığı denetimi.
Karar üç durumludur. valid tespiti doğrular. invalid tespiti düşürür ya da kural söylüyorsa
eylemini mask'tan flag'e indirir. unknown — değer bu doğrulayıcının biçiminde değildir —
doğrulayıcı hiç çalışmamış gibi davranır. Bu üçüncü, açığa düşen durum, çok biçimli bir türü
güvende tutan şeydir: bir banka hesabı alanı çıplak hesap numaraları da taşır, bir ulusal kimlik
alanı B1234567 gibi belge numaraları da taşır ve yalnızca sayı okuyan bir sağlama toplamı
okuyamadı diye bunların hiçbiri atılmamalıdır.
Doğrulanan bir varlık yalnızca nihai güveni 0.6'ya ulaştığında geçer. Hiç güven değeri olmadan
gelen bir tespit 0.8 varsayılır.
5. Güven artırma
Bir tespit, varlık türü için kayıtlı bir bağlam anahtar kelimesi aralığın 50 karakter yakınında
göründüğünde 0.1 kazanır ve 1.0'da sınırlanır. Anahtar kelime–tür eşlemesi etkin filtre
satırlarından yüklenir; böylece bir yönetici bunu kod olarak değil veri olarak genişletir.
Warning
Artırım yalnızca bağlam anahtar kelimesine dayanır. İki tespit motorunun aynı aralıkta hemfikir olması güveni yükseltmez — örtüşen tespitler birleştirilir ve birleştirme bir bonus eklemez.
6. Karar
Karar verici, her tespiti türünü sahiplenen kurala göre çözümler, o kuralın eylemine kiracı veya grup bazlı geçersiz kılmaları uygular ve sonuçları istek için tek bir karara katlar. En güçlü eylem kazanır:
reject > mask > flag > allow
| Eylem | Davranış |
|---|---|
mask | Varlık yer tutucusuyla değiştirilir, örneğin [EMAIL], ve istek temizlenmiş metinle devam eder |
reject | İstek engellenir. Sohbet akışında bu bir HTTP hatası değil, {"type":"content_rejected"} ve ardından [DONE] olur |
flag | Tespit kaydedilir; içerik değiştirilmeden geçer |
allow | Hiçbir şey olmaz. Bir geçersiz kılmada allow, bir kuralı tek bir kapsam için kapatma biçimidir |
Eşikler ağ geçidinde değil modellerle birlikte yaşar. Toksisite hizmeti etiket başına ayarlanmış
bir block / flag / log_only üçlüsü taşır; saldırı hizmeti de etiket başına birer üçlü taşır.
Her iki dosya da kendi servis imajına gömülüdür ve ortam değişkeniyle geçersiz kılınamaz; yeniden
ayarlamak imajı yeniden derlemek demektir.
Çıktı tarafı
Yanıt, istemci hiçbir bölümünü görmeden önce filtrelenir; akışın yanıtın tamamını tek bir olay olarak vermesinin nedeni budur.
- Katman 1, istek yolunda. Aynı tespit servisi, üretilen metin üzerinde KKV ve toksisite için çalışır. Bir yanıt karar vericisi, kendi eylem kümesi olan çıktı kurallarını uygular ve yanıt maskelenir, uyarı üretir veya tamamen reddedilir.
- Katman 2, arka planda. İstek RAG bağlamları sağladıysa, sonradan bunlara karşı bir dayanaklılık denetimi çalışır. Bir tespit kaydı ve bir oturum uyarısı yazar. Bir akış olayı değildir ve kararı, "denetlendi ve dayanaklı" ile "denetlenmedi" durumlarını birbirine karıştırmak yerine ayırt eder.
Sınırlar ve bilinen boşluklar
- Hat, CID'in kendi modellerini ve karar vericisini kullanır. Presidio, spaCy veya bir OPA/Rego politika motoru kullanmaz ve hiç kullanmadı. Politika, PostgreSQL'deki filtre satırları ve geçersiz kılmalardır; bunları karar verici değerlendirir. Aksini iddia eden her şey başka bir ürünü anlatıyordur.
- Doğruluk koşulludur ve tek bir sayı değildir. Varlık türüne, dile, metin uzunluğuna ve yürürlükteki filtre yapılandırmasına göre değişir. Sağlama toplamı olan yapılandırılmış tanımlayıcılar deterministiğe yakın davranır; serbest metin varlıkları NER modeline ve çevresindeki bağlama bağlıdır. Çıplak bir yüzde değil, performans ve doğruluk sayfasındaki koşullu değerleri aktarın.
- Eğitilmiş sekiz dilin dışındaki kapsam ölçülmemiştir. Toksisite ve saldırı modelleri
en,tr,de,fr,es,ar,itvenlüzerinde eğitilmiştir. Başka bir dildeki bir prompt yine de bu modellere ulaşır ve yine bir puan üretir; o puanın ölçülmüş bir güvenilirliği yoktur. - Normalleştirme bir çözücü kümesidir, bir kanıt değil. ROT13, base64, leetspeak, Unicode ve büyük/küçük harf kapsanır. Bu listede olmayan bir kodlama, tespit motorlarına değiştirilmeden ulaşır.
- Tespit uç noktasındaki
filterparametresi hiçbir şey yapmaz. Doğrulanır ve servis çağrılmadan önce atılır. Bunun yerine davranışı bir geçersiz kılmayla kapsamlandırın. - Bozuk bir desen sessizce hiçbir şeyi korumaz. Derlenemeyen, kayıtlı bir regex yükleme sırasında atlanır. Ağ geçidi bunu günlüğe yazar ve kontrol paneline bildirir, ancak filtre yine de etkin görünür.
- Kiracı çözümlenemeyen yerlerde tespitler dayatılmaz. Geçersiz kılma geçişi kiracısız işlevsizdir; bu yüzden kiracı çözümleyemeyen giriş yollarında, bir departman ne yapılandırmış olursa olsun temel eylem uygulanır.
- Parçalı ve sürdürülebilir yüklemeler incelenmez, reddedilir. Hiçbir şey bir gövdeyi istekler arasında tamponlamaz; bu yüzden parçalanmış bir yükleme yeniden birleştirilip taranamaz.
İlgili sayfalar
- KKV tespiti — varlık kataloğu ve maskelemenin işleyişi.
- İçerik tespiti API'si — bu hattı doğrudan çağırın.
- Mimari — hattın bir istek içindeki yeri.
Son güncelleme