Homoglyph saldırıları LLM koruma filtrelerini nasıl atlatıyor
Cyrillic ve Yunanca görsel benzeri karakterlerle yazılan jailbreak komutları, basit anahtar kelime filtrelerini kolayca atlatabiliyor. Çözüm: eşleştirmeden önce normalize et.
Görsel olarak birebir aynı görünen iki metin, byte düzeyinde tamamen farklı olabilir. 'ignore all previous instructions' cümlesindeki bazı Latin harfleri Cyrillic görsel eşdeğerleriyle (і, о, а, е, с, р) değiştirildiğinde, insan gözü farkı ayırt edemezken metin artık ASCII bile değildir. Basit substring veya regex tabanlı jailbreak filtreleri byte eşleştirdiği için bu tür 'homoglyph evasion' saldırılarını tamamen kaçırır — orijinal komut engellenirken, görsel klonu sorunsuzca geçer.
Çözüm, algılamayı ham girdi üzerinde değil normalize edilmiş bir kopya üzerinde yapmaktır: sıfır genişlikli/BOM/bidi karakterleri temizle, NFKC normalizasyonuyla fullwidth ve matematiksel Unicode formlarını ASCII'ye indirge, ardından Cyrillic/Yunanca homoglyph'leri Latin karşılıklarına eşle. Kritik nokta, bu normalize edilmiş metnin sadece kural motoruna gitmesi, modele giden orijinal byte'ların asla değiştirilmemesidir. Ayrıca büyük/küçük harf duyarlı gizli anahtar desenlerini (ör. AWS anahtarları) bozmamak için kör bir lowercase işlemi yapılmamalı, gerçek çok dilli metinler de yanlış pozitif üretmemesi için ayrıca test edilmelidir.
Bu yaklaşım, Rust ile yazılmış açık kaynaklı bir OpenAI-uyumlu güvenlik gateway'inde (Akav Labs, Apache-2.0) uygulanmış; ASCII ve Cyrillic jailbreak varyantları aynı kural setiyle (JBK.001, JBK.003) yakalanıyor. Yazar, bunun sihirli bir çözüm olmadığını, deterministik desen eşleştirmenin tabanı yükselttiğini ama kombinasyon karakterleri veya anlamsal parafrazlar gibi daha ileri saldırılara karşı derinlemesine savunmanın yerini tutmadığını vurguluyor; asıl odaklanılması gereken riskin ise yanlış pozitifler olduğunu belirtiyor.