Giriş
Yapay zeka destekli kodlama ajanları (AI coding agents), otomatik olarak GitHub depolarını klonlayıp kurulumunu yaparken, görünüşte zararsız olan bu depoların içerisinde gizlenmiş malware (kötü amaçlı yazılım) payload'larını çalıştırabilmektedir. Bu saldırı vektörü, hem güvenlik tarayıcılarından hem de insan incelemesinden gizlenebilen invisible malware (görünmez kötü amaçlı yazılım) olarak adlandırılmaktadır. Bu makalede, saldırının teknik detayları, savunma mekanizmaları ve uygulamalı koruma adımları ele alınacaktır.
Saldırının Teknik Mekanizması
1. Saldırı Yüzeyinin Tanımlanması
AI ajanları, genellikle aşağıdaki senaryolarda hedef alınmaktadır:
- GitHub depolarını otomatik olarak klonlama ve kurulum yapma
- Bağımlılık yönetimi araçları (npm, pip, yarn vb.) üzerinden paket yükleme
- CI/CD pipeline'larında kod inceleme ve test süreçleri
Saldırganlar, bu süreçlerde sosyal mühendislik ve gizli payload'lar kullanarak ajanları kandırmaktadır.
2. Gizli Malware'in Çalıştırılması
Saldırganlar, aşağıdaki yöntemlerle malware'ı gizleyebilir:
- Dosya Adı ve Uzantı Manipülasyonu:
legitimate_script.py # Görünüşte normal bir Python betiği legitimate_script.py.exe # Windows sistemlerinde gizlenmiş executable - Metadata Gizleme:
Depo içerisinde yer alan
README.md,LICENSEveya.gitignoredosyalarına gizlenmiş komutlar. - Dependency Hijacking:
Popüler bir kütüphanenin (örn.
requests,numpy) yerine trojan versiyonunun yüklenmesi.pip install requests --upgrade # Normal komut gibi görünen saldırı - Pre-commit Hook'ları:
Depoya eklenen
.pre-commit-config.yamldosyası aracılığıyla yerel geliştirme ortamlarında komut çalıştırma.
3. Saldırının Gizliliği
Uyarı: Bu saldırı, aşağıdaki unsurlar nedeniyle tespit edilmesi zor hale gelmektedir:
- Depo içerisinde doğrudan executable dosya bulunmaması (sadece komut satırı komutları)
- AI ajanlarının güvenlik tarayıcılarını atlaması için tasarlanmış olması
- Malware'in sadece belirli koşullar altında (örn. belirli bir kullanıcı aracılığıyla) çalışması
Savunma ve Korunma Yöntemleri
1. AI Ajanlarının Güvenlik Politikalarının Ayarlanması
- Ajanın Yetkilerini Sınırlandırma:
Ajanların çalıştırdığı komutlara kısıtlamalar getirin. Örneğin, sadece okuma izinleri verin ve yazma/çalıştırma izinlerini devre dışı bırakın.
# Örnek: Docker container'ında çalışan bir ajan için güvenlik politikası version: '3.8' services: ai-agent: image: ai-coding-agent command: ["--no-write-access", "--no-execute"] volumes: - ./repos:/repos:ro # Salt okunur (read-only) mount - Beyaz Liste (Whitelisting) Kullanımı:
Ajanların sadece onaylanmış depoları ve güvenilir kaynakları klonlamasına izin verin.
# Örnek: AI ajanının sadece belirli organizasyonlardaki depoları klonlaması --allowed-repos=org:trusted-org1,org:trusted-org2 --blocked-extensions=.exe,.sh,.bat
2. Depo ve Bağımlılıkların Güvenlik Kontrolleri
- Depo İçeriğinin Elle İncelenmesi:
Klonlanan depoların içerisinde gizlenmiş komutlar olup olmadığını manuel olarak kontrol edin. Özel olarak dikkat edilmesi gereken dosyalar:
.git/hooks/dizinipackage.json,requirements.txtgibi bağımlılık dosyalarıDockerfilevedocker-compose.ymldosyaları
# Git hook'larını kontrol etme ls -la .git/hooks/ cat .git/hooks/pre-commit # Örnek: pre-commit hook'un içeriği - Bağımlılıkların Doğrulanması:
Yüklenen paketlerin orijinal kaynaklardan geldiğinden emin olun. Örneğin,
npmpaketleri için:npm audit --audit-level=moderate npm ls --depth=0 # Yüklenen paketlerin listesini görüntülemeİpucu: Paketlerin SHA-256 hash'lerini orijinal kaynaklarla karşılaştırın.
- CI/CD Pipeline'larında Güvenlik Tarama:
CI/CD pipeline'larına statik kod analizi ve malware taraması ekleyin. Örnek araçlar:
# GitHub Actions workflow örneği name: Security Scan on: [push] jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@master with: scan-type: 'fs' scan-ref: '.' - name: Run Snyk to check for vulnerabilities uses: snyk/actions/node@master with: args: --severity-threshold=high
3. Geliştirici Ortamının Güvenliği
- Sandbox Ortamlarında Test:
AI ajanlarının çalıştırıldığı ortamları izole edilmiş sandbox'larda oluşturun. Örnek:
# Docker container'ında sandbox oluşturma sudo docker run -it --rm --name ai-agent-sandbox -v $(pwd):/workspace ubuntu:22.04 apt update && apt install -y git python3 # Ajanı sandbox içinde çalıştır python3 ai-agent.py --sandbox-mode - Çalıştırma Log'larının İzlenmesi:
Ajanların çalıştırdığı tüm komutları detaylı log'lara kaydedin ve şüpheli aktiviteleri inceleyin.
# Komut çalıştırma log'larını kaydetme strace -f -o ai-agent.log python3 ai-agent.py # Log'ları analiz etme grep -i "exec\|system\|shell" ai-agent.log
Uygulamalı Adım Adım Koruma Rehberi
Adım 1: AI Ajanının Güvenlik Politikasını Yapılandırma
- Ajanın çalıştırıldığı ortamın (Docker, Kubernetes, yerel makine) güvenlik ayarlarını yapılandırın.
- Ajanın çalıştırma izinlerini ve erişim haklarını sınırlandırın.
- Ajanın sadece onaylı depoları klonlamasına izin verin.
Adım 2: Depo ve Bağımlılıkların Güvenlik Taramasını Otomatikleştirme
- Depo içerisinde
git hooks,Dockerfileve bağımlılık dosyalarını manuel olarak inceleyin. - CI/CD pipeline'larına Trivy, Snyk ve Bandit gibi güvenlik araçlarını entegre edin.
- Her yeni commit sonrasında otomatik güvenlik taraması gerçekleştirin.
Adım 3: Geliştirici Ortamını İzole Etme
- Ajanların çalıştırıldığı ortamları sandbox'larda oluşturun.
- Tüm komut çalıştırma aktivitelerini log'layın ve şüpheli aktiviteleri inceleyin.
- Geliştirici makinelerinde güvenlik duvarı ve antivirüs yazılımları kullanın.
Sonuç
AI destekli kodlama ajanları, gelişmiş saldırı vektörlerine karşı savunmasız hale gelebilmektedir. Bu makalede ele alınan güvenlik politikaları, otomasyon araçları ve izleme stratejileri sayesinde, ajanların güvenliği önemli ölçüde artırılabilir. Unutulmamalıdır ki, güvenlik bir süreçtir ve sürekli olarak güncellenmesi gerekmektedir. AI ajanlarının kullanımının yaygınlaşmasıyla birlikte, bu tür saldırılara karşı proaktif ve çok katmanlı savunma mekanizmaları geliştirmek kritik önem taşımaktadır.
Ek Kaynaklar
- OWASP Cheat Sheets (Güvenlik en iyi uygulamaları)
- Policy as Code (Güvenlik politikalarını kod olarak yönetme)
- Snyk: Software Supply Chain Attacks



