July 14, 2026
Tahmine Değil Kanıta Dayanan Çoklu Ajanlı “AI Recon” Aracını Nasıl İnşa Ettim
Biraz ara verdikten sonra yine heyecan verici bir konuyla karşınızdayız. Bu kez konumuz, yapay zekâyı siber güvenlikte nasıl verimli…
By Gultekin Butun
2 min read
Biraz ara verdikten sonra yine heyecan verici bir konuyla karşınızdayız. Bu kez konumuz, yapay zekâyı siber güvenlikte nasıl verimli kullanabileceğimiz. Merak etmeyin, bu yazı süslü bir yapay zekâ blog yazısı değil.
Benim gibi siz de muhtemelen yapay zekânın tüm pentest sürecini tek başına yaptığı iddia edilen paylaşımları gördünüz. Bazıları fazla iyi, hatta "fazla fantastik". Bu yazıda size gerçekçi bir çözüm göstereceğim.
Her Pentest Aynı Başlar: Nmap. Bekle. Nikto. Bekle. WhatWeb, Gobuster, FFUF, WPScan, SSLScan…
Yedi araç, yedi terminal çıktısı… Sonra bir saat boyunca hepsini okuyup risk tablosu ve aksiyon notlarıyla bir rapora dönüştürmek. Hep aynı, tekrar tekrar. Otomasyon çağında bu süreci kolaylaştırmak için elimizdeki imkânları kullanmak mantıklı.
Zor değil. Sadece mekanik. Ben de otomatikleştirdim.
Ama bunu "ağınızın muhtemelen şöyle olduğunu tahmin eden" bir sohbet botuyla değil; araçları gerçekten çalıştıran ve yalnızca ürettikleri çıktılar üzerinde akıl yürüten bir pipeline ile yaptım.
Ne Çözüyor ve Size Ne Sağlıyor?
Sorun "tarama araç gerektiriyor" değil. Sorun, tarama araç gerektiriyor ve sonra birinin yedi farklı çıktı formatını okuyup bunları tutarlı bir rapora dönüştürmesi. Bu kısım, araçlar ne kadar hızlı olursa olsun sıkışmıyor.
Bu çözüm size şunları sağlıyor:
- Angarya işlerin bitmiş hâli. Tek komutla planlama, gerçek tarama ve bitmiş rapor.
- Kanıta dayalı rapor. Her bulgu, bir komutun ürettiği gerçek bir satıra dayanıyor. "Model öyle tahmin etti" yok.
- Belirsizlikte dürüstlük. CVE'ler "Confirmed", "Candidate" veya "Needs-lookup" olarak işaretleniyor.
- Güvenlik bariyeri. Araçlar sadece sıkı bir allowlist içinden çalışıyor ve yalnızca izin verdiğiniz hedeflere yönlendiriliyor.
- Çalışan bir mimari. Gerçek komut çıktısını LLM'e verip yapılandırılmış veri almak isteyen herkes için yeniden kullanılabilir bir yaklaşım.
Nasıl Çalışıyor? (Detay olmadan)
Ben de çok derine dalınca sıkılanlardanım, o yüzden basit tutalım. Bu çözümü geliştirirken bir YouTube videosundan ilham aldım ama oradaki yaklaşımın bazı eksikleri vardı.
Sistem üç aşamadan oluşuyor:
1. Planlama
Hedefe göre bir tarama planı oluşturuyor: hangi araçlar, hangi sırayla. Model komutların tam sentaksına karar vermiyor; sabit bir komut şablonu gerçek hedefe uygulanıyor.
2. Çalıştırma (Güvenlik Kapısıyla)
Her komut çalışmadan önce iki kurala göre kontrol ediliyor:
- Binary allowlist'te mi? (nmap, nikto, whatweb, gobuster, ffuf, wpscan, sslscan)
- Hedef özel/lab/izinli mi? Herhangi biri geçmezse tarama başlamadan duruyor.
3. Analiz ve Raporlama
Her aracın gerçek stdout/stderr çıktısı modele veriliyor. Önceden özetlenmiş bilgilerle birlikte (portlar, versiyonlar, TLS bulguları, keşfedilen yollar). Model yapılandırılmış bulgular döndürüyor, ikinci aşama ise bunu rapora dönüştürüyor: özet, risk tablosu, detaylı bulgular, aksiyon planı.
Hepsi bu. Plan ağınıza dokunmuyor. Çalıştırma kilitli. Rapor sadece olanı anlatıyor.
İki Farklı Yapay Zekâ Sistemi Kullanılıyor
Bunu açıkça söylemekte fayda var: iki farklı yapay zekâ görev yapıyor.
- Claude Code: Aracı geliştirirken mimariyi, guardrail'leri ve testleri yazmama yardımcı oldu.
- GPT-4o: Aracı çalıştırdığınızda tarama çıktısını okuyup raporu oluşturan model.
Kod yazarken biri, çalışırken diğeri. Konsept her modelle uygulanabilir.
Nasıl Kurulur?
Çözüm burada: https://github.com/gbutun/multi_agent_ai_cyber_code
Kurulum:
bash
pip install ankacore-attack-chain
export OPENAI_API_KEY="sk-..."
attack-chain --target dvwa.localpip install ankacore-attack-chain
export OPENAI_API_KEY="sk-..."
attack-chain --target dvwa.localHepsi bu. Planı oluşturur, komutları doğrular, araçları çalıştırır ve dört dosya üretir: plan, ham çıktılar, AI analizi, final rapor.
Araçlar yoksa setup_req.sh ile kurabilirsiniz.
İki Faydalı Parametre
--dry-run: Ağa dokunmadan planı ve doğrulamayı yürütür.--report-only: Mevcut tarama verisini kullanarak sadece AI analizini yeniden çalıştırır.
Gereksinimler
- Python 3.9+
- OpenAI API anahtarınız
- Yedi araç (nmap, nikto, whatweb, gobuster, ffuf, wpscan, sslscan)
- Yetkili bir hedef
Bir Sorun ve Öğrettiği Şey
ffuf başarıyla çalışsa bile ASCII banner'ını stderr'e basıyor. İlk sürümde stderr doluysa onu özetlemeye çalışıyordum. Banner'daki ters eğik çizgiler JSON'a yanlış kaçtı, model yapılandırılmış veri yerine düz metne döndü — sessiz bir hata.
Ders: LLM'e ham araç çıktısı verip yapılandırılmış veri bekliyorsanız, parsing'i test edin. Hata sessiz olur, sonuç boş döner.
Sonuç
Özetle, klasik tarama araçlarını çalıştıran bir plan üretiyoruz ve çıktıları yapay zekâya analiz ettiriyoruz. Parametre üretmek sihir değil; sihir, çıktıların doğru zamanda ve doğru şekilde AI tarafından değerlendirilmesi. Sonuçta riskler, zafiyetler ve CVE'lerle dolu bir rapor elde ediyoruz. Mükemmel değil ama birçok şeyi çözüyor.
Umarım faydalı bulursunuz. Güvende kalın.