Prompt enjeksiyonu (prompt injection) nedir?

Kısaca

Prompt enjeksiyonu, bir dil modelinin okuduğu metne gizlenmiş talimatlarla modelin asıl görevinden saptırılmasıdır. Kodlama ajanlarında bu talimatlar bir web sayfasından, issue’dan, belgeden ya da araç çıktısından gelebilir ve ajana istenmeyen işlemler yaptırabilir.

Doğrudan ve dolaylı enjeksiyon

Kodlama ajanları için asıl risk dolaylı olandır, çünkü ajanlar sürekli dış içerik okur.

  • Doğrudan: kullanıcı modele kurallarını yok saymasını söyler.
  • Dolaylı: talimat, modelin işlediği içeriğe gömülüdür; bir README, kod yorumu, issue, web sayfası ya da MCP aracının yanıtı.

Neden zor bir sorun?

Model, kendisine verilen talimatla okuduğu veriyi aynı metin akışında görür ve ikisini her zaman ayırt edemez. Bu yüzden prompt enjeksiyonunu tamamen önleyen bilinen bir yöntem yoktur. OWASP’ın büyük dil modeli uygulamaları için yayımladığı Top 10 listesinde prompt enjeksiyonu ilk sırada yer alır.

Ajanlarda ne olabilir?

Ajan ne kadar çok araca ve yetkiye sahipse, başarılı bir enjeksiyonun etkisi o kadar büyür.

  • Gizli bilgileri (.env, token’lar) dışarı göndermek.
  • Zararlı bir paket kurmak ya da yıkıcı bir komut çalıştırmak.
  • Koda fark edilmesi zor bir arka kapı eklemek.
  • Bir MCP aracıyla, yetkisi olan bir serviste istenmeyen işlem yapmak.

Önlemler

Tek bir önlem yetmez; amaç, saldırı başarılı olsa bile verebileceği zararı sınırlamaktır.

  • En az yetki: ajana yalnızca işin gerektirdiği araçları ve erişimi ver.
  • Yıkıcı ve dışarıya etki eden işlemleri her zaman onaya bağla.
  • Güvenilmeyen depoları ve içerikleri yalıtılmış bir ortamda (container, sanal makine) işle.
  • MCP sunucularını yalnızca güvendiğin kaynaklardan kur.
  • Ajanın yaptığı değişiklikleri birleştirmeden önce incele.

AgentVera’da güvenlik önlemleri

AgentVera’da ajanların sunuculara ve veritabanlarına erişimi varsayılan olarak kapalıdır, riskli işlemler sana gelir.

  • Otomatik onay yalnızca okuma ve test gibi güvenli istekleri onaylar; yönlendirme (>), $() ya da backtick içeren komutlar asla otomatik onaylanmaz, git push ve rm gibi komutlar her zaman sana sorulur (Pro ve Team).
  • SSH’ta ajan erişimi her sunucu için varsayılan olarak kapalıdır; açıldığında ajanlar bağlantı bilgisini ve parolayı görmez, her istek kurallardan geçer ve kaydedilir (Pro ve Team).
  • Veritabanı erişimi de varsayılan olarak kapalıdır; açıldığında salt okunur modla başlar ve ajanın çalıştırdığı her sorgu kayda geçer (Pro ve Team).
  • MCP sunucularının gizli değerleri işletim sisteminin anahtar zincirinde saklanır.

Sık sorulanlar

Prompt enjeksiyonu tamamen önlenebilir mi?

Bugün bilinen bir yöntemle hayır. Risk; yetkileri sınırlayarak, kritik işlemleri onaya bağlayarak ve ajanı yalıtarak azaltılır.

Kodlama ajanım bir web sayfası okurken saldırıya uğrayabilir mi?

Evet. Sayfadaki gizli bir metin ajana talimat gibi görünebilir. Bu yüzden web’den içerik okuyan bir ajanın yıkıcı komutları onaysız çalıştırma yetkisi olmamalı.

MCP sunucuları prompt enjeksiyonuna açık mı?

Araç açıklamaları ve araç sonuçları modelin bağlamına girdiği için evet. Güvendiğin sunucuları kullan ve dış içerik getiren araçlara dikkat et.

Prompt enjeksiyonu ile jailbreak arasındaki fark nedir?

Jailbreak, kullanıcının modelin güvenlik kurallarını aşmaya çalışmasıdır. Prompt enjeksiyonu ise çoğu zaman üçüncü bir tarafın, modelin işlediği içeriğe talimat gizleyerek uygulamayı kendi amacına çevirmesidir.

İlgili kavramlar

Tüm kavramlar

Kavramları bir de iş başında gör.

AgentVera’yı ücretsiz indir, proje klasörünü ekle; Claude Code, Codex ve diğer ajanları yan yana çalıştır.