İçeriğe geç
edumintsBlog
LLM3 dk okuma

Tek Bir Markdown Dosyası Yapay Zeka Kodlama Ajanınızı Ele Geçirebilir: AGENTS.md Dosyasına Körükörüne Güvenmenin Gizli Maliyeti

Kaynak: dev.to

Paylaş
İçindekiler 4 başlık

Yerel makinenizde Claude Code, OpenAI Codex veya Cursor CLI gibi yapay zeka kodlama ajanları çalıştırıyorsanız, tek bir düz metin Markdown dosyası çalışma ortamınızı tehlikeye atmak için yeterlidir. Üstelik bunun için herhangi bir bellek bozulması hatasına, sıfırıncı gün (zero-day) açığına veya CVE kaydına gerek yoktur.

Ekim 2026'nın sonlarında, Forever Security ve Aviatrix Tehdit Araştırma Merkezi'ndeki güvenlik araştırmacıları, tamamen yerel AGENTS.md ve CLAUDE.md dosyaları tarafından tetiklenen ilk gerçek dünya yapay zeka kodlama ajanı ele geçirme vakalarını belgeledi. Kontrollü testler altında bu saldırı zinciri; API trafiğini yönlendirerek, OAuth oturum belirteçlerini (token) sızdırarak ve rastgele kabuk (shell) komutları çalıştırarak Codex'e karşı %90, Claude Code'a karşı ise %50'ye varan başarı oranına ulaştı.

Sorunun temel nedeni oldukça rahatsız edicidir: Ajan aslında hatalı çalışmamaktadır. Mevcut çalışma dizinindeki AGENTS.md dosyasını okumak ve içindeki talimatları uygulamak, bu araçların tam olarak sunmak üzere tasarlandığı özelliktir.

Sorun: Dokümantasyon Kılığına Girmiş Çalıştırılabilir Kod Olarak Bağlam Dosyaları#

Modern yapay zeka kodlama ajanları, başlangıçta proje talimat dosyaları için çalışma dizinini otomatik olarak tarar:

  • AGENTS.md
  • CLAUDE.md
  • .cursorrules ve .cursor/rules/*.mdc
  • .github/copilot-instructions.md

Geliştiriciler bu dosyaları genellikle zararsız birer dokümantasyon olarak görür; ajana npm yerine pnpm tercih etmesini, commit öncesi Vitest çalıştırmasını veya belirli bir TypeScript stil rehberini takip etmesini söyleyen bir alan olarak yaklaşırlar. Ancak arka plandaki büyük dil modeli (LLM) için sistem talimatları ile içe aktarılan proje bağlamı arasında keskin bir kriptografik sınır yoktur. AGENTS.md içeriği bağlam penceresine (context window) girdiği anda, bu yönergeler geliştiricinin kendi işletim sistemi yetkileriyle araç seçimini, kabuk yürütmesini ve yapılandırma değişikliklerini yönlendirir.

Temel Zihniyet Değişimi: Deponuzdaki veya çalışma klasörünüzdeki bir dosya, otonom bir ajana kabuk komutu çalıştırma, paket yükleme veya API uç noktasını değiştirme talimatı verebiliyorsa, o dosya bir dokümantasyon değil, çalıştırılabilir bir betiktir (executable script). Yazılım geliştirme öğrenirken bu dosyaları tıpkı bir Makefile veya CI/CD iş akışı gibi güvenlik denetiminden geçirmeyi alışkanlık haline getirmelisiniz.

Yaygın Hata: Güvenilmeyen Dizinlerde Ajan Başlatmak ve PR'ları Yüzeysel İncelemek#

Günlük iki geliştirici alışkanlığı, bu tasarım davranışını doğrudan bir saldırı vektörüne dönüştürür:

1. ~/Downloads Tuzağı#

Forever Security'nin BleepingComputer ile paylaştığı telemetri verilerine göre, yüzlerce geliştirici CLI kodlama ajanlarını doğrudan ~/Downloads (İndirilenler) klasörünün içinde başlatıyor (sadece ~/Downloads içinde başlatılan 1.300'den fazla Claude Code oturumu kaydedilmiştir). ~/Downloads modern işletim sistemlerinde benzersiz bir konuma sahiptir: Bir web tarayıcısının kullanıcıya sormadan dosya yazabildiği tek dizindir.

Tehlikeli bir dokümantasyon sitesini ziyaret ettiğinizde veya bir bağlantıya tıkladığınızda, ~/Downloads içine AGENTS.md adında küçük bir metin dosyasının sessizce indirilmesi tetiklenebilir. Günler sonra aynı dizinde bir arşivi açıp claude veya codex komutunu çalıştırdığınızda, ajan ilk isteminizi (prompt) bile yürütmeden önce ~/Downloads/AGENTS.md dosyasını güvenilir çalışma alanı talimatı olarak otomatik biçimde içe aktarır. Pratik çıkarım: Kodlama ajanlarını asla ~/Downloads gibi genel dizinlerde çalıştırmayın; her zaman izole proje klasörlerini kullanın.

2. İncelenmeyen Pull Request ("Kurallar Dosyası Arka Kapısı")#

~/Downloads içinde hiçbir zaman ajan çalıştırmasanız bile, açık kaynaklı bir depoyu klonlamak veya bir katılımcının gönderdiği Pull Request'i (PR) yerelinizde kontrol etmek (checkout) birebir aynı riski taşır. Saldırganlar, meşru görünen AGENTS.md veya .cursorrules dosyalarının içine şu yöntemi kullanarak istem enjeksiyonu (prompt injection) yükleri gizlerler:

  • Makul mühendislik bahaneleri: Örneğin, ajana telemetri verilerini özel bir kurumsal vekil sunucu (proxy) üzerinden yönlendirmesini veya sözde "gerekli" bir paketi kurmasını söyleyen talimatlar eklemek. Kod incelemesi (code review) yaparken .md ve kural dosyalarındaki her satırı üretim kodu kadar titizlikle denetleyin.

Kaynak ve atıf

Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • dev.to/johnnylemonny/one-markdown-file-can-hijack-your-ai-coding-agent-the-hidden-cost-of-blindly-trusting-agentsmd-167n