𝗟𝗟𝗠 𝗣𝗿𝗼𝗺𝗽𝘁 𝗜𝗻𝗷𝗲𝗰𝘁𝗶𝗼𝗻 𝘃𝗲 𝗚𝘂𝗮𝗿𝗱𝗿𝗮𝗶𝗹 𝗚ü𝘃𝗲𝗻𝗹𝗶𝗴𝗶
LLM'lerin talimatlar ve veriler arasında kesin bir sınırı yoktur. Bağlam penceresindeki (context window) her şey tek bir token akışıdır. Prompt injection, saldırgan verilerinin talimat gibi hareket etmesiyle gerçekleşir. Sadece filtreleme yaparak güvenliğe ulaşamazsınız. Bunu derinlemesine savunma (defense-in-depth) ile yönetmelisiniz.
Yaygın savunma yöntemlerinin başarısızlığı:
- Anahtar Kelime Engelleme Listeleri (Keyword Blocklists): Saldırganlar bunları atlatmak için eş anlamlı kelimeler, yanlış yazımlar veya farklı diller kullanır. Dizeleri (string) filtrelemek, niyeti filtrelemez.
- Çıktı Maskeleme (Output Redaction): Saldırganlar, doğrudan bir dizgi eşleşmesinin başarısız olması için sırları parçalayabilir veya kodlayabilir.
- LLM Yargıçları: Ayrı bir model, bir sırrın zararsız olduğuna inanması için sosyal mühendislik yöntemleriyle manipüle edilebilir.
- İnsan İncelemesi: İnsanlar ham baytları değil, işlenmiş metni görürler. ASCII kaçakçılığında (ASCII smuggling) kullanılan gizli karakterleri göremezler.
ASCII Smuggling büyük bir tehdittir. Talimatları gizlemek için Unicode Etiketleri veya sıfır genişlikli boşluklar (zero-width spaces) gibi görünmez karakterler kullanır. Model bunları okur ancak insan hiçbir şey görmez. Bu durum, e-posta veya takvimler aracılığıyla kimlik taklidi (identity spoofing) ve veri sızdırmasına (data exfiltration) olanak tanır.
Uygulamanızı nasıl savunursunuz:
- Ham yükleri (payloads) temizleyin: Kontrol karakterlerini ve sıfır genişlikli karakterleri modele ulaşmadan önce ayıklayın.
- İzin verilenler listesi (allowlists) kullanın: Kötü olanların peşinden koşmak yerine ihtiyacınız olan belirli Unicode kategorilerini tanımlayın.
- Verileri normalize edin: Tüm girdilerde NFKC-normalizasyonu kullanın.
- Sırları en aza indirin: Modelin ihtiyacı yoksa hassas verileri bağlam penceresine koymayın.
- RAG'ı güvenilmeyen bir kaynak olarak değerlendirin: Bir model için geri çağırdığınız her belgenin potansiyel bir enjeksiyon vektörü olduğunu varsayın.
- Anomalileri takip edin: Görünür uzunluğun ham kod noktası (code-point) sayısından farklı olduğu girdileri işaretleyin.
Güvenlik sadece bir model hatası değil, bir boru hattı (pipeline) hatasıdır. Çözüm, uygulama kodunuzda yer alır.
Kaynak: https://dev.to/geekaara/llm-prompt-injection-guardrail-security-glm
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi