- Keyfi verileri tek bir emoji içine kodlamak mümkün
- Unicode, metni kod noktaları dizisi olarak ifade eder ve her kod noktası, Unicode Konsorsiyumu'nun anlam atadığı bir sayıdır.
- Basit Latin alfabesi metinlerinde, Unicode kod noktaları ile ekranda görünen karakterler arasında bire bir eşleme vardır.
- Diğer yazı sistemlerinde ekranda görünen bir karakter, birden fazla kod noktasıyla temsil edilebilir.
- Varyasyon seçicileri
- Unicode, "varyasyon seçicileri" olarak adlandırılan 256 kod noktası tanımlar; bunlar tek başlarına ekranda görünmez, ancak önceki karakterin gösterimini değiştirmek için kullanılır.
- Unicode karakterlerinin çoğunun varyasyonu yoktur ve varyasyon seçicileri dönüşüm sırasında korunmalıdır.
- 256 varyasyon seçicisi, tek bir baytı gizlemenin bir yolunu sunar.
- Veri kodlama
- Varyasyon seçici dizileri birleştirilerek keyfi bayt dizileri ifade edilebilir.
- Örneğin, "hello" metnini temsil eden [0x68, 0x65, 0x6c, 0x6c, 0x6f] verisi kodlanabilir.
- Baytlar varyasyon seçicilerine dönüştürülür ve ardından temel karakterin arkasına eklenerek kodlama yapılır.
- Veri çözme
- Çözme işlemi de kodlamaya benzer şekilde basittir.
- Varyasyon seçicileri tekrar baytlara dönüştürülerek özgün veri geri elde edilebilir.
- Kötüye kullanım potansiyeli
- Bu, Unicode'un kötüye kullanılması anlamına geldiğinden önerilmez.
- İnsan denetimli içerik filtrelerini aşmak veya metne filigran eklemek gibi kötü niyetli amaçlarla kullanılabilir.
- Sonuç
- Emoji kullanarak keyfi verilerin nasıl gizlenebileceğini açıklar; bu yöntem Unicode'un varyasyon seçicilerinden yararlanır.
- Bu yöntem eğlencelidir, ancak pratikte kullanıma uygun olmayabilir.
1 yorum
Hacker News yorumu
Unicode'un PUA'sı (Private Use Area), dahili ve özel amaçlı kullanımlar için ayrılmıştır ve harici sistemlere aktarılmaz
Unicode'u kötüye kullanmak buzdağının sadece görünen kısmı
Geçmişteki bir sızma testi deneyimimde, basit bir aksan işaretiyle arka uç web sunucusunun buffer'ını overflow ettiğimi hatırlıyorum
Sanity, bu tekniği Content Source Maps'i web sayfasındaki gerçek metnin içine kodlamak için kullanıyor
Bu tekniğin LLM çıktısı filigranlamasında kullanılması fikri hoşuma gidiyor
StegCloak, gizli payload'u AES-256-CTR ile şifreleyerek bu fikri bir adım ileri taşıyor
LLM çıktısı filigranlamasının yanı sıra, log probability verilerini paketlemek için de kullanılabilir
Başlık biraz yanıltıcı
Tokenizer bunu yakalıyor
Önceki iş yerimde, çeşitli kötüye kullanım örnekleri nedeniyle kullanıcı takma adlarındaki ve durum mesajlarındaki 'karakterleri' saymak için code pointer kullanmak zorunda kalmıştık
Unicode tag karakterleri ASCII'yi yansıtır ve UI öğelerinde çoğu zaman görünmez
Microsoft'un Copilot'ta düzelttiği gerçek bir istismar örneği var