Giriş
Bir Azure DevOps pull request’inde yer alan görünmez bir yorum, bir inceleme uzmanının AI kodlama ajanını kendi aleyhine döndürebilir. Bu durum, saldırganların erişim yetkisi olmayan projelere girmesine ve gizli bilgilerin sızdırılmasına yol açmaktadır.
Saldırı Nasıl Çalışıyor?
Microsoft’un resmi Azure DevOps MCP serverında bulunan açık, inceleme sürecindeki bir sorunun sonucudur. Bu flaw, diğer araçlarda uygulanan prompt-injection koruma mekanizmasının, pull request açıklamaları için uygulanmaması nedeniyle oluşmaktadır.
Manifold Security’nin raporuna göre, Azure DevOps PR açıklamaları Markdown formatını destekler ve bu da HTML yorumlarının kullanılmasına olanak tanır. Web kullanıcı arayüzünde bir HTML yorumu () hiç görünmez. Böylece, inceleme uzmanı açıklamayı kaydırdığında sıradan bir değişiklik görüyor. Ancak REST API bu açıklamayı ham haliyle döndürmekte ve sunucu bu metni doğrudan ajana iletmektedir.
Saldırgan, ajan ile etkileşime geçmeden, içeriğe yanlış yönlendirme talimatları ekleyebilir. İnceleme uzmanı, ajana PR’ı gözden geçirmesi için talimat verdiğinde, bu görünmeyen metin ajanın hedefini değiştirebilir. Ajan, inceleme uzmanının kimlik bilgilerini taşıdığı için, saldırganın erişim yetkisi olmadığı projelerde de işlemler gerçekleştirebilir.
Etkilenen Sistemler
Manifold, bu açığın yalnızca belirli bir wiki sayfasına değil, aynı zamanda aşağıdakilere erişim sağladığını belirtmiştir:
- Kaynak kodu
- Gizli bilgiler
- Çalışma öğeleri
Bu durum, inceleme uzmanının yetkilerinin, PR’ı açan kişiden genelde daha fazla olmasından kaynaklanmaktadır. Saldırgan, doğrudan bir şey kazanmasa da, inceleme uzmanının erişiminden faydalanmaktadır.
Çözüm ve Korunma
Manifold, bu sorunu aşmak için bazı koruma tedbirleri önermektedir. Microsoft, prompt-injection saldırılarına karşı bazı savunmalar geliştirmiştir, ancak bu savunmalar tüm araçlara uygulanmamıştır.
Yapılması gerekenler:
- Ajanınıza minimum yetki verme (least-privilege tokens).
- Projeye özel alanlarda yetkilendirme yapmak.
- Kod inceleme aracı için gereksiz olan pipeline çalıştırmalarını ve yorum gönderimlerini dışarıda bırakmak.
- Ajanda çapraz proje pipeline çalıştırmaları için herhangi bir işlem geçmişi olup olmadığını kontrol etmek.
- Açık PR açıklamalarında gizli HTML yorumlar için tarama yapmak.
Unutulmamalıdır ki, bu tür savunmalar yalnızca mevcut olan yollar için geçerlidir ve koruma mekanizmalarının eksik olduğu durumlarda saldırılar gerçekleşebilir.
Sonuç
Azure DevOps kullanıcılarının, proje erişimlerini sınırlamaları ve AI araçlarına içerik aktarmadan önce önerilen değişiklikleri dikkatle gözden geçirmeleri gerekmektedir. Güncellemeleri takip edin , port kapatma ve gereksiz yetkilere sahip olduğunuzu düşündüğünüz alanları yeniden değerlendirin. Herhangi bir görünmez yükleme ve potansiyel bilgiler için dikkatli olmak, güvenliğinizi artıracaktır.


