Skip to main content
CID222 Docs

Zararlı içerik ve saldırı tespiti

On üç zararlı içerik etiketi, dört saldırı etiketi, her birine karar veren eşik dosyaları ve hepsinden önce çalışan kaçınma çözücüleri.

  • Sürüm: 0.4
  • Rol: admin_user, normal_user, viewer

Bir istemin yalnızca hassas mı yoksa zararlı mı olduğuna iki tespit motoru karar verir: on üç etiketli bir zararlı içerik sınıflandırıcısı ve iki etiketli bir saldırı sınıflandırıcısı; ayrıca SQL enjeksiyonu ve siteler arası betik çalıştırma için belirlenimci bir tarama. Üçü de zaten çözülmüş metni okur.

Sorun

Zarar tek bir kategori değildir. "Nasıl bomba yaparım" ile "siz zararlı böceksiniz" ifadelerinin ikisi de kabul edilemez ve farklı yanıtlar gerektirir; bunları tek bir puan olarak ele alan bir kurum, birincisini engelleyip ikincisini incelemeye alan bir politika kuramaz. Saldırılar daha da kötüdür: sistem yönergesini geçersiz kılan bir istem sıradan metne benzer ve bir sınıflandırıcının izlediğini bilen saldırgan, yükü base64, leetspeak ya da sıfır genişlikli karakterlerle yazar. Ham dizgi üzerindeki tek bir puan bu sorunların hiçbirini yanıtlamaz.

CID222 bunu nasıl yapar

Önce çözme gelir

Herhangi bir model metni görmeden önce sekiz normalleştirici sabit bir sırayla çalışır — önce ucuz yapısal temizlikler, böylece anlamsal çözücüler zaten sadeleştirilmiş metin üzerinde çalışır.

NormalleştiriciNeyi geri alırAnahtar
Görünmez karakterlerSıfır genişlikli, iki yönlü ve etiket karakterleriNORMALIZE_INVISIBLE_CHARS
KodlamaOn altılık, URL ve HTML varlık kaçışlarıNORMALIZE_ENCODING
DolguHarf dolgusu — h.a.t.e, h a t eNORMALIZE_PADDING
ROT13ROT13 yer değiştirmesiNORMALIZE_ROT13
Base64Base64 yükleriNORMALIZE_BASE64
LeetspeakHarf yerine rakam kullanımı — p@55w0rdNORMALIZE_LEETSPEAK
UnicodeTam genişlikli ve karıştırılabilir karakterlerNORMALIZE_UNICODE
Büyük/küçük harfBağıran ya da OCR'la büyük harfe çevrilmiş metin; CASE_UPPERCASE_THRESHOLD yüzdesinin üzerinde büyük harfNORMALIZE_CASE

Geçiş en çok NORMALIZATION_MAX_PASSES kez yinelenir (varsayılan 2); böylece bir kodlamanın içindeki başka bir kodlama katmanı da açılır. NORMALIZATION_ENABLED bu aşamanın tamamını kapatır.

Warning

NORMALIZATION_MAX_INPUT_BYTES değerinden (varsayılan 16384) uzun metin normalleştirmeyi tümüyle atlar ve tespit motorlarına yazıldığı gibi gider. Bu üst sınır, leetspeak normalleştiricisinin yöneticinin verdiği düzenli ifadeleri eşzamanlı olarak değerlendirmesinden doğar: geri izlemeli bir örüntüye karşı hastalıklı bir girdi ağ geçidini durdurur.

On üç zararlı içerik etiketi

cid-hap-guard-v2, çok dilli bir ONNX sınıflandırıcı çalıştırır ve her istekte on üç etiketin her biri için bir puan döndürür: şiddet, suç, cinsel suç, çocuk istismarı, iftira, tehlikeli tavsiye, mahremiyet, fikrî mülkiyet, silahlar, nefret, kendine zarar, cinsel içerik ve siber suçlar. Etiketler birbirinden bağımsızdır — bir istem aynı anda birkaçından yüksek puan alabilir.

Her etiket, zararlı içerik hizmeti imajının içinde gelen bir eşik dosyasında kendi üç düzeyli eşik üçlüsünü taşır: engelleme, işaretleme ve yalnızca günlükleme. Değerler ortak değil, etiket bazında ayarlanmıştır: dangerous_advice yüksek bir puanda engeller, çünkü aksi hâlde kariyer ve tıp soruları buna takılır; cyber_crimes ise çok daha düşük bir puanda engeller. Tam sayılar ve her etiketin eşlendiği varsayılan eylem, üretilmiş varlık ve etiket türleri başvurusundadır.

Note

Birlikte gelen dosyada her etiketin yalnızca günlükleme eşiği 0.00 değerindedir. Hiçbir etikette bu katman tabanın üzerine ayarlanmamıştır; yani pratikte her etiketin üç değil iki etkin düzeyi vardır.

İki saldırı etiketi ve belirlenimci bir tarama

cid-attack-guard, iki etiket üzerinde sigmoid etkinleştirmeli ikinci bir ONNX sınıflandırıcı çalıştırır — enjeksiyon ve jailbreak — böylece ikisi de tek bir istemde tetiklenebilir. Ağ geçidi, engelleme eşiğini aşan her etiket için bir tespit üretir; bu yüzden tek bir istem hem bir prompt_injection hem de bir jailbreak satırı doğurabilir.

Modelin yanında aynı hizmet, OWASP Core Rule Set'in kullandığı belirteçleyici olan libinjection üzerine kurulu belirlenimci bir tarama da sunar. Bu tarama sql_injection ve xss etiketlerini 1.0 puanıyla üretir — bir olasılık değil, bir parmak izi eşleşmesi.

Warning

Saldırı eşikleri etiket bazında alıntılanamaz. Saldırı hizmetinin eşik dosyası iki satırını label_0 ve label_1 olarak anahtarlar — adlar değil, konumsal dizinler. Dizinden ada eşleme, imaj derlenirken modelle birlikte gelen ve eşik dosyasının yanında dağıtılmayan label_map.json dosyasında yaşar. İki satır farklı değerler taşır; yani hangisinin hangisi olduğunu tahmin etmek yazı tura atmak olur. Satırların kendisi varlık ve etiket türleri sayfasında listelenir.

Tetikleyici sözcükler kararı değil güveni değiştirir

Saldırı tespit motoru hizmetten puanı yükselten sözcükleri ister, sonra bunları model puanıyla birleştirerek tek bir melez güven değeri üretir:

  • Model puanı 0,65 ve üzerindeyse — model olduğu gibi kabul edilir.
  • Model puanı 0,65'in altındaysa — uygun her tetikleyici sözcük 0,05 ekler; bonus 0,2 ve sonuç 0,75 ile sınırlıdır.
  • Model işaretlemediyse ama tetikleyici sözcükler varsa — en az iki uygun sözcük gerekir ve sonuç, doğrulanmış bir tespitin ulaştığı düzeyin altında sınırlanır. Tek bir zayıf sözcük sıfır verir ve tespit düşürülür.

Melez güveni sıfıra düşen bir tespit hiçbir zaman satıra dönüşmez.

Eşiklerin yaşadığı yer

İki eşik dosyası da derleme sırasında, modelin kendisiyle gelen ne varsa onun üzerine, kendi hizmet imajına kopyalanır. Hiçbirini geçersiz kılan bir ortam değişkeni yoktur. Yeniden ayarlamak, dosyayı düzenleyip imajı yeniden derlemek demektir.

Warning

Eski belgeler HAP_THRESHOLD adlı tek bir genel zararlı içerik eşiği değişkeninden ve genel bir kişisel veri güven değişkeninden söz eder. Yığında bunların hiçbiri okunmaz. Zararlı içerik eşikleri etiket bazında ve imaj bazındadır.

Sınırlar ve bilinen eksikler

  • Sekiz eğitilmiş dil. İki model de İngilizce, Türkçe, Almanca, Fransızca, İspanyolca, Arapça, İtalyanca ve Felemenkçe üzerinde eğitilmiştir. Başka bir dildeki istem yine bu modellere ulaşır ve yine bir puan döner; o puanın ölçülmüş bir güvenilirliği yoktur.
  • Çözücü kümesi sonludur. ROT13, base64, leetspeak, Unicode karıştırılabilirleri, on altılık/URL/HTML varlıkları, görünmez karakterler ve harf dolgusu kapsanır. Bu listenin dışındaki bir kodlama tespit motorlarına olduğu gibi ulaşır.
  • Uzun metin hiç çözülmez. Girdi üst sınırının üzerinde normalleştirme aşaması atlanır; bu yüzden büyük bir belge gövdesi yazıldığı gibi taranır.
  • Saldırı koruması etiket adları cihaz üzerinde doğrulanamaz. label_map.json yayımlanana ya da dışa aktarılana kadar, eşik dosyasını okuyan bir işletmeci hangi satırın hangi etiketi yönettiğini söyleyemez.
  • log_only katmanı zararlı içerik tarafında kullanılmaz. On üç zararlı içerik etiketinin her biri log_only: 0.00 ile gelir; yani o katman orada hiç tetiklenmez. Saldırı dosyası ise bunu ayarlar — iki satırı da sıfırdan farklı bir log_only taşır — yani katman saldırı puanlamasında canlı, zararlı içerikte ölüdür.
  • Doğruluk koşulludur. Etikete, dile ve metin uzunluğuna göre değişir. Çıplak bir yüzde değil, performans ve doğruluk sayfasındaki koşullu rakamları alıntılayın.
  • Başarısız bir model çağrısı hiçbir tespit üretmez. İki tespit motoru da hatayı günlükler, hizmeti bozulmuş olarak bildirir ve boş bir liste döndürür. Yanıt vermeyen bir tespit motoruna dayanarak hiçbir şey engellenmez.

İlgili

Son güncelleme

Bu sayfada