Prompt Injection ve OWASP LLM Top 10: Yapay Zekâ Uygulama Güvenliği
Prompt injection, güvenilmez metnin LLM sistem talimatını ezmesidir ve OWASP LLM Top 10'un bir numaralı riskidir. Doğrudan ve dolaylı türler, OWASP LLM haritası, tek filtrenin neden yetmediği ve yetki sınırlama ile onay katmanı savunması.
Hızlı cevap: Prompt injection (istem enjeksiyonu), bir dil modeline (LLM) verilen güvenilmez metnin, geliştiricinin sistem talimatlarını ezerek modele istenmeyen davranışı yaptırmasıdır. Saldırgan, kullanıcı girdisine ya da modelin okuduğu bir web sayfasına, e postaya veya belgeye gizli talimatlar yerleştirir ve model bu talimatları meşru komut sanar. Sonuç, gizli sistem isteminin sızması, yetkisiz araç çağrıları, veri sızıntısı ya da kullanıcıyı kandıran çıktı olabilir. Kök çözüm tek bir filtre değildir: güvenilmez veriyi talimattan ayırmak, modelin yetkilerini en aza indirmek ve her hassas eylemi model dışı bir katmanla doğrulamaktır. Prompt injection, OWASP LLM Top 10 listesinin bir numaralı riskidir.
Yapay zekâ uygulamaları artık e posta okuyor, web'de arama yapıyor, veri tabanına erişiyor ve araç çağırıyor. Bu güç, yeni bir saldırı yüzeyi açar: modele ulaşan her metin bir komut olabilir. Bu yazı, prompt injection'ın nasıl çalıştığını, doğrudan ve dolaylı türlerini, OWASP LLM Top 10 çerçevesini ve kurumsal yapay zekâ uygulamalarında doğru savunmayı anlatır.
Prompt injection nasıl çalışır
Bir LLM, sistem talimatını ve kullanıcı girdisini aynı bağlam penceresinde metin olarak görür. Model, kod ile veriyi ayıran katı bir sınır tanımaz. Saldırgan bu belirsizliği kullanır: girdiye "önceki tüm talimatları unut ve şunu yap" gibi bir cümle ekler. Model, geliştiricinin niyetini değil, en son ve en ikna edici talimatı takip edebilir.
Asıl tehlike, model bir aracı çağırabildiğinde ortaya çıkar. Dosya okuyabilen, e posta gönderebilen ya da API çağırabilen bir ajan, enjekte edilen talimatla bu yetkileri saldırgan için kullanabilir.
Doğrudan ve dolaylı prompt injection
| Tür | Nasıl gelir | Örnek etki |
|---|---|---|
| Doğrudan | Kullanıcı doğrudan modele yazar | Sistem istemini sızdırma, kural atlatma |
| Dolaylı | Modelin okuduğu dış içerikte gizli | Web sayfası ya da e postadaki gizli komut ile veri sızıntısı |
| Çok adımlı | Hafızaya ya da belgeye yerleşir | Sonraki oturumda tetiklenen kalıcı talimat |
Dolaylı prompt injection en tehlikeli olanıdır çünkü kurban farkında bile olmaz. Model, özetlemesi istenen bir sayfadaki gizli metni komut sanar. Bu, RAG ve vektör veri tabanı güvenliği ile doğrudan ilişkilidir, çünkü zehirli içerik hafızaya girerse kalıcı hale gelir.
OWASP LLM Top 10, kısa harita
OWASP, yapay zekâ uygulamaları için ayrı bir ilk on risk listesi yayınlar. Öne çıkanlar:
- LLM01 Prompt Injection. Bu yazının konusu, listenin başındaki risk.
- LLM02 Hassas Bilgi İfşası. Modelin gizli veriyi çıktıya taşıması.
- LLM04 Veri ve Model Zehirlenmesi. Eğitim ya da hafıza verisinin bozulması, ayrıntı için veri zehirlenmesi yazımıza bakın.
- LLM06 Aşırı Yetki. Ajanın ihtiyacından fazla araç ve izne sahip olması.
- LLM08 Vektör ve Gömme Zayıflıkları. RAG hafızasına yönelik saldırılar.
Bu liste, güvenlik ekibine ortak bir dil ve öncelik sırası verir.
Neden tek bir filtre yetmez
Çoğu ekip, tehlikeli kelimeleri arayıp engelleyerek sorunu çözdüğünü sanır. Ama bu kara liste yaklaşımı zayıftır:
- Sonsuz varyasyon. Aynı niyet farklı dille, dolaylı anlatımla ya da başka bir dilde yazılabilir.
- Kodlama ve gizleme. Talimat base64, emoji ya da görünmez karakterlerle saklanabilir.
- Dolaylı kanal. İçerik dış kaynaktan geldiğinde girdi filtresi devreye bile girmez.
Bu yüzden savunma, kelime aramak değil, mimariyi güvenli kurmaktır.
Doğru savunma
1. Güvenilmez veriyi talimattan ayırın
Kullanıcı girdisi ve dış içerik, sistem talimatından net biçimde ayrılmalı ve modele "bu bölüm veridir, komut değildir" bağlamıyla verilmelidir. Hassas kararlar yalnızca güvenilir talimata dayanmalıdır.
2. En az yetki ilkesi
Ajanın erişebildiği araçları ve izinleri en aza indirin. Bir aracın yıkıcı etkisi varsa, onu modelin tek başına tetiklemesine izin vermeyin. Bu, aşırı yetkiyi sınırlamakla aynı mantıktır.
3. İnsan ya da kural onayı
Para transferi, veri silme, e posta gönderme gibi hassas eylemler model dışı bir katmanla, kural ya da insan onayıyla doğrulanmalıdır. Model önerir, bağımsız katman uygular.
4. Çıktı ve veri sınırı
Modelin çıktısı doğrudan bir sisteme komut olarak verilmemelidir. Gizli veriye erişim, kullanıcının yetkisiyle sınırlanmalı ve çıktı sızıntıya karşı denetlenmelidir.
5. Yerel ve izole çalıştırma
Kurumsal veriyi dış API'lere göndermek yerine kendi sunucunuzda yerel LLM çalıştırmak, veri sızıntısı yüzeyini ve çalışanların yapay zekâya veri sızdırma riskini azaltır.
KAOS ile yapay zekâ uygulama güvenliği
DSET'in yerel yapay zekâ güvenlik motoru KAOS, LLM tabanlı uygulamaları prompt injection ve OWASP LLM Top 10 riskleri açısından test eder. KAOS, doğrudan ve dolaylı enjeksiyon vektörlerini dener, ajanın aşırı yetkili araç çağrılarını tespit eder ve bir enjeksiyonun gerçekten hassas bir eylemi tetikleyip tetiklemediğini kontrollü biçimde doğrular. Yalnızca kanıtlanmış bulguyu, yanlış pozitif gürültüsü olmadan raporlar. KAOS tümüyle çevrim dışı çalıştığı için test sırasında kurumsal veri dışarı çıkmaz, bu da KVKK uyumu için önemlidir.
Sık sorulan sorular
Prompt injection ile jailbreak aynı şey mi? Yakın ama aynı değildir. Jailbreak, modelin güvenlik kurallarını aşıp yasak içerik ürettirmeye odaklanır. Prompt injection daha geniştir: modelin okuduğu herhangi bir güvenilmez metnin, sistem talimatını ezip istenmeyen eylem yaptırmasıdır. Jailbreak, prompt injection'ın bir alt kümesi sayılabilir.
Sadece iyi bir sistem istemi yazsam yeter mi? Hayır. Güçlü bir sistem istemi yardımcı olur ama tek başına güvenilmez. Model, yeterince ikna edici bir enjeksiyonla talimatı ezebilir. Gerçek savunma mimaridedir: yetki sınırlaması ve model dışı onay katmanı.
Yerel model kullanmak prompt injection'ı çözer mi? Yerel model, veri sızıntısı yüzeyini ve gizlilik riskini azaltır ama prompt injection'ı tek başına çözmez. Enjeksiyon, modelin nerede çalıştığından bağımsızdır. Yine de yetki sınırlaması ve onay katmanı gerekir.
Kaynaklar
- OWASP Top 10 for LLM Applications: https://owasp.org/www-project-top-10-for-large-language-model-applications/
- DSET KAOS Yerel Yapay Zekâ: https://dset.com.tr/hizmetler
Yapay zekâ uygulamanızı prompt injection ve OWASP LLM Top 10 risklerine karşı test ettirmek için DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan KAOS ile çevrim dışı, KVKK uyumlu güvenlik testi sağlıyoruz.
Kimliğinizi doğrulayın
Yetkilendirilmiş erişim alanı. Tüm giriş denemeleri kayıt altına alınır.