İndirilenler klasörüne bırakılan bir talimat dosyası, yapay zekâ kodlama ajanlarına zararlı paket kurdurabiliyor
Güvenlik şirketi Forever Security, bir müşterisinin bilgisayarında İndirilenler (Downloads) klasörüne bırakılmış zararlı bir AGENTS.md dosyası buldu. Bu klasörde çalıştırılan OpenAI Codex, dosyadaki talimatla zararlı bir npm paketi kurmaya çalıştı. Araştırmacılar benzer bir yöntemle Claude Code'un oturum anahtarını da ele geçirdi.
- 3 dk okuma
- 2 kaynak

Kısaca
- Bir web sayfası, kullanıcı tıklamadan İndirilenler klasörüne AGENTS.md adlı bir dosya indirebiliyor. Kodlama ajanı bu klasörde başlatılırsa dosyadaki talimatları, proje talimatı sanarak uyguluyor.
- Araştırmacılara göre ortada OpenAI ya da Anthropic'in düzeltebileceği bir hata yok, ajanlar tasarlandığı gibi çalışıyor. Öneri, ajanları İndirilenler klasöründe değil yalnızca üzerinde çalışılan proje klasöründe başlatmak.
Yapay zekâ kodlama ajanlarının izlenmesi üzerine çalışan güvenlik şirketi Forever Security, 22 Ekim’de yayımladığı ve BleepingComputer’ın 25 Ekim’de aktardığı çalışmada, bir müşterisinin bilgisayarında yeni bir saldırı yöntemine rastladığını açıkladı. Şirket, müşterinin İndirilenler (~/Downloads) klasöründe çalışan bir kodlama ajanının, bilinen zararlı npm paketi function-color’ı kurmasını son anda durdurdu.
Araştırmacılar paketi kurma isteğinin nereden geldiğini incelediğinde, ajanın bir bağımlılığı ya da kod deposunu değil, İndirilenler klasöründeki bir AGENTS.md dosyasını izlediğini gördü. Dosya, sıradan mühendislik notları gibi görünecek şekilde hazırlanmıştı. Dosyanın oraya nasıl geldiği belirlenemedi.
AGENTS.md dosyaları ve İndirilenler klasörü
AGENTS.md ve CLAUDE.md gibi dosyalar, yapay zekâ kodlama ajanlarına proje hakkında talimat veren düz metin dosyaları. Hangi araçların kullanılacağı, testlerin nasıl çalıştırılacağı, hangi kodlama kurallarına uyulacağı bu dosyalara yazılıyor. Ajanlar, başlatıldıkları klasördeki bu dosyaları otomatik olarak okuyup talimatlarına uyuyor.
Forever Security’ye göre sorun iki ayrı davranışın birleşmesinden doğuyor. Birincisi, ajanlar bulundukları klasördeki talimat dosyasına güvenmek üzere tasarlanmış. İkincisi, İndirilenler bir web sayfasının kullanıcıya sormadan dosya bırakabildiği tek klasör. BleepingComputer’ın denemelerine göre Chrome, Edge ve Firefox varsayılan olarak indirilen dosyaları her seferinde yer sormadan İndirilenler klasörüne kaydediyor, ancak indirme bildirimi gösteriyor. Brave ise indirmeden önce kullanıcı onayı istedi.
Şirket, bir web sayfasının bu klasöre fark ettirmeden AGENTS.md adlı bir dosya bırakabildiğini gösteren bir kavram kanıtı da hazırladı. BleepingComputer sayfayı denediğinde zararsız içerikli bir AGENTS.md dosyası indirildi.
Bu dosya tek başına bir şey çalıştırmıyor ve çalıştırılabilir dosyalara uygulanan korumalara takılmıyor. Saldırının işlemesi için kullanıcının kodlama ajanını aynı klasörde başlatması gerekiyor. Forever Security’ye göre bu yaygın bir alışkanlık. İnsanlar ajanları bu klasörü düzenlemek ya da yeni indirdikleri bir dosya üzerinde çalışmak için kullanıyor. Şirketin kendi verilerine göre müşterilerinin yaklaşık yarısında bir kodlama ajanı İndirilenler klasöründe çalıştırılıyor.
Codex ve Claude Code denemeleri
Araştırmacılar, müşterinin bilgisayarında bulunan gerçek AGENTS.md dosyasını yalıtılmış bir sanal makinede OpenAI Codex ile denedi. Codex, kendisine verilen görevden önce kendi ayar dosyasına bir sunucu ekledi ve npm’den zararlı paketi kurdu. Şirkete göre Codex denemelerin yüzde 90’ından fazlasında zararlı yazılımı çalıştırdı. Codex’in değiştirdiği ~/.codex/config.toml dosyası bilgisayarın genelinde geçerli olduğu için, eklenen sunucu sonraki bütün Codex oturumlarında, başka klasörlerde de yükleniyor.
Araştırmacılar aynı yöntemin yalnızca Codex’e özgü olup olmadığını görmek için Claude Code’u da denedi. Şirkete göre Claude’u kandırmak çok daha zordu ve sonunda işe yarayan yöntem farklıydı. Araştırmacıların hazırladığı bir CLAUDE.md dosyası, Claude Code’un kendi API trafiğini araştırmacıların kontrol ettiği bir sunucuya yönlendirmesini sağladı. Bu da Claude Code’un OAuth oturum anahtarını sunucuya sızdırdı ve sunucunun modelmiş gibi yanıt vererek Claude Code’a komut çalıştırtmasına yol açtı. Şirkete göre Claude Code denemelerin yaklaşık yarısında bu talimatı izledi.
Forever Security’ye göre ortada OpenAI ya da Anthropic’in düzeltebileceği bir hata yok. Şirket, klasöründeki AGENTS.md’ye uyan bir ajanın tam olarak yapmak üzere tasarlandığı şeyi yaptığını, tıpkı sahte bir banka sayfasını gösteren tarayıcının da tasarlandığı gibi çalışması gibi, bu yüzden yöntemin açık kalacağını belirtiyor.
Öneriler
Forever Security’nin ve BleepingComputer’ın aktardığı öneriler:
- Kodlama ajanlarını İndirilenler klasöründe başlatmayın. OpenAI ve Anthropic de ajanların, üzerinde çalışılacak projenin kendi klasöründe başlatılmasını öneriyor.
- Yazmadığınız AGENTS.md ya da CLAUDE.md dosyalarına dikkat edin. İndirilenler’de ya da yeni klonladığınız bir depoda böyle bir dosya varsa, ajanı çalıştırmadan önce okuyun.
- Ajanın kendi ayarlarını kontrol edin. Forever Security, ~/.codex/config.toml dosyasında beklenmeyen bir [mcp_servers.*] bölümüne ya da değişmiş bir chatgpt_base_url ayarına, projelerdeki .claude/settings.json dosyasında ise sizin eklemediğiniz bir ANTHROPIC_BASE_URL, vekil sunucu ya da API adresine bakılmasını öneriyor.
- Onay adımlarını ve sanal alanı (sandbox) açık tutun. Ajana bunları atlamasını söyleyen her talimattan şüphelenin.
- Böyle bir dosya bulursanız oturum anahtarının sızdığını varsayın ve anahtarları yenileyin. function-color paketinin kurulu olduğu bir makine ele geçirilmiş sayılmalı. Paket npm’den kaldırıldı.