Skip to main content
CID222 Docs

İç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ştiriciGirdiÇıktı
ROT13zvff frpergmiss secret
Base64cGFzc3dvcmQ=password
Leetspeakp@55w0rdpassword
Unicodepasswordpassword
Büyük/küçük harfPASSWORDpassword

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 motoruModelÜrettiği
KKV regexGirdi filtresi satırlarındaki desenlerEMAIL, PHONE, TC_KIMLIK, IBAN, sırlar ve desen kataloğunun geri kalanı
KKV NERONNX çok dilli DistilBERTPERSON_NAME, LOCATION, ORGANIZATION dahil 21 yerel varlık etiketi
ToksisiteONNX mDeBERTa, 13 etiketviolence, hate, self_harm, sexual_content, crime, cyber_crimes, weapons ve altı etiket daha
Jailbreak ve enjeksiyonONNX mDeBERTa, 2 etiket, sigmoid olduğundan ikisi de tetiklenebilirjailbreak, injection
Enjeksiyon taramasılibinjection, deterministiksql_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

EylemDavranış
maskVarlı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
flagTespit kaydedilir; içerik değiştirilmeden geçer
allowHiç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, it ve nl ü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 filter parametresi 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

Son güncelleme

Bu sayfada