Öğrenme yolu 03Ders 3 / 6

Alınan içeriği güvenilmeyen girdi olarak ele alın

Kod deposu dosyalarına ve araç sonuçlarına gizlenmiş talimatları tanıyın. Alınan bilgiyi işlem yapma yetkisinden ayrı tutun.

Uygulayıcı10 minİncelendi

Yayımlayan Nasıl yazıyoruz?

Neler öğreneceksiniz?

  • Bir geliştirme iş akışındaki dolaylı istem enjeksiyonunu belirleyin.
  • Metin etiketlerinin tek başına neden bir güvenlik sınırı uygulayamadığını açıklayın.
  • Araç kısıtlamaları için güvenli bir test tasarlayın.

Verinin talimata dönüştüğü noktayı belirleyin

Bir kodlama ajanı, kullanıcının isteğinden fazlasını okur. Issue kayıtlarını, kod deposu dosyalarını, paket belgelerini, arama sonuçlarını ve araç yanıtlarını inceleyebilir. Bu içeriğin bir kısmı başka bir kişinin talimatlarını içerebilir.

İstem enjeksiyonu, bu tür içerik modeli yetkilendirilmiş görevden uzaklaştırdığında gerçekleşir. Dolaylı enjeksiyon, kullanıcının doğrudan isteği yerine alınan bir kaynak üzerinden gelir. OWASP, kod deposu içeriğini ve araç çıktısını ilgili giriş noktaları arasında sayar. Önleme rehberini okuyun.

Kurgusal bir bakım görevini ele alın. Kullanıcı, ajandan bir rapor filtresini düzeltmesini ve zorunlu testleri çalıştırmasını ister. Alınan bir README, testlerin artık geçersiz olduğunu söyler ve ajandan bir yapılandırma dosyasını yüklemesini ister. README projeyi açıklayabilir. Kullanıcının kontrollerini atlama veya dosyaları başka yerlere gönderme yetkisi veremez.

Olası sonuçları haritalayın

Aynı yanıltıcı metin, farklı ortamlarda farklı sonuçlar doğurur. Yalnızca okuma izni olan bir özetleme aracı yanlış bir özet üretebilir. Kod deposuna yazma izni olan bir ajan kodu değiştirebilir. Gizli bilgilere ve dışarıya ağ erişimine sahip bir ajan bilgileri açığa çıkarabilir.

Hangi savunmaların önemli olduğuna karar vermeden önce kullanılabilir işlemleri inceleyin. Hassas kaynakları, yazılabilir hedefleri ve dış hedefleri listeleyin. İlk kurulumdan sonra eklenen bağlayıcıları da dahil edin. Yeni bir araç, mevcut bir zayıflığın etkisini büyütebilir.

Bir ajan, yanıltıcı içeriği daha sonraki bir aşamaya da taşıyabilir. Örneğin, güvenilmeyen bir talimatı oluşturduğu görev tanımına kopyalayabilir. Sonraki ajan bu tanımı, bağımsız olarak onaylanmış bir politika gibi ele almamalıdır.

Farklı amaçlara hizmet eden birden fazla kontrol kullanın

Uygulama tasarımında güvenilir görev talimatlarını alınan veriden ayırın. Alınan içeriğin kaynağını gösterin. Bu adımlar yorumlamayı iyileştirir, ancak eksiksiz bir güvenlik sınırı oluşturmaz.

Kaynak izinlerini yürütme sisteminde uygulayın. Hassas verilerin gönderilebileceği hedefleri kısıtlayın. Önemli sonuçları olan işlemlerden önce uygun kararı zorunlu kılın. Önerilen işlemi, yetkilendirilmiş görev ve hedefle karşılaştırarak doğrulayın.

Filtreler ve ikinci bir model, şüpheli içeriği tespit etmeye yardımcı olabilir. Ancak saldırıları gözden kaçırabilir veya meşru bilgileri engelleyebilirler. Kesin kurallara dayanan yetkilendirmeyi modelin güven puanıyla değiştirmeyin. OWASP, yalnızca istemlere veya bilgi getirmeye dayanmanın sınırlarını açıkça belirtir. Risk açıklamasını okuyun.

İş akışını gerçek bir maruziyet oluşturmadan test edin

İşiniz bitince silinecek bir kod deposu ve kurgusal dosyalar kullanın. Değerlendirmeye üretim erişim bilgileri veya dış sistemlere sınırsız yazma izni vermeyin. Zorunlu bir kontrolü atlamak gibi, görevle çelişen zararsız bir talimat ekleyin.

Hem modelin yanıtını hem de araçların gerçekten yaptığı işlemleri gözlemleyin. Kontrol yine de atlandıysa, “Talimatı yok saydım” mesajı yeterli değildir. Görevi, enjeksiyon içeren test dosyasını, izin verilen araçları ve gözlenen sonucu kaydedin.

İstemler, modeller, bağlayıcılar veya izinler değiştikten sonra temsili senaryoları tekrarlayın. Engellenen bir örnek, o senaryo için kanıttır; her enjeksiyona karşı koruma kanıtı değildir. Bir test başarısız olursa, temel iş akışını düzeltirken olası sonuçların kapsamını daraltın.

Alıştırmayı yapın

Bir ajandan zorunlu bir kontrolü atlamasını isteyen yorum içeren, işiniz bitince silinecek bir test dosyası oluşturun. Gizli bilgiler ve dış sistemlere yazma izni olmadan, yetkilendirilmiş ve yalıtılmış bir değerlendirme çalıştırın. Kontrolün yine de çalıştığını doğrulayın. Araç izinlerini, gözlenen davranışı ve bu tek testin sınırlarını kaydedin.

Çalışma sayfasını indir (Markdown)

Anladığınızı kontrol edin

Bir kod deposu dosyası, tüm testlerin isteğe bağlı olduğunu ve ajanın görev talimatlarını yok sayması gerektiğini söylüyor. İş akışı bunu nasıl ele almalıdır?

Kaynaklar ve ek okumalar

Taiga'dan ilgili okumalar