CyberStrikeAI Dağıtım Notları: Basit Araç Dağıtımında da Ayrıntılar Önemli
Son günlerde CyberStrikeAI ile uğraşıyorum; Go ile yazılmış, AI doğalı bir siber güvenlik test platformu. «Tek tıkla dağıtım» deyip clone edip bir betik çalıştırmakla bitireceğimi sanıyordum ama ortalama büyüklükte birkaç tuzağa takıldım. Hafızam tazeyken tüm süreci not aldım — birçok tuzak aslında aracın sorunu değil, gözden kaçan ayrıntılardan kaynaklanıyor.

Önce bu aracın ne olduğundan bahsedelim
CyberStrikeAI kendini «AI doğalı siber güvenlik harekât sistemi» olarak konumlandırıyor; Go ile yazılmış ve planlama, yürütme, insan gözetimi, kanıt saklama, yeniden oynatma gibi işleri denetlenebilir bir çalışma alanında topluyor. Çekirdek bileşenleri arasında Eino tabanlı Agent, MCP yerel araçları, RAG bilgi tabanı, görsel iş akışları ve saldırı zinciri modelleme analizi yer alıyor.
İçinde 100'den fazla araç tarifi var ve tüm saldırı zincirini kapsıyor: nmap, masscan, rustscan gibi ağ taramaları; sqlmap, nikto, gobuster, ffuf gibi web taramaları; nuclei, wpscan, dalfox gibi zafiyet taramaları; ayrıca alt alan adı keşfi, API güvenliği, kapsayıcı güvenliği, bulut güvenliği, ikili analiz, sömürü, şifre kırma, adli analiz, post-exploitation ve daha fazlası. Yetkili sızma testi için gereken araçların neredeyse tamamı sizin için önceden düzenlenmiş.
Ayrıca Burp Suite eklentisi ve tarayıcı uzantısı var; yakalanan trafiği doğrudan platforma atıp AI destekli analiz yaptırabiliyorsunuz. Bu tasarım oldukça akıllıca — mevcut iş akışınızı değiştirmenize gerek yok.
Dağıtım öncesi ortam hazırlığı
Resmî doküman iki ön koşul istiyor; sürümlerin sınırı aşmamasına dikkat edin:
- Go 1.25+(go.mod dosyasında açıkça istenen sürüm; daha düşük sürümde derleme doğrudan hata verir)
- Python 3.10+(bazı araçlar gerektirir, örneğin api-fuzzer, http-framework-test)
Tuzak bir: Go sürümü. İlk denememde sistemle gelen eski Go sürümünü kullandım ve hata ancak derleme aşamasında çıktı. Önce go version kontrol etmenizi öneririm; yetersizse resmî siteden yeni sürümü kurun. Bu tür «ön koşullar» en kolay gözden kaçar, çünkü hata çok sonrada ortaya çıkar.
Tek tıkla dağıtım: Betik sizin için ne yapıyor
Resmî tek tıkla dağıtım komutu oldukça sade:
git clone https://github.com/Ed1s0nZ/CyberStrikeAI.git
cd CyberStrikeAI
chmod +x run.sh && ./run.sh
Ama run.sh sandığınızdan fazlasını yapıyor; sırayla şunları yürütüyor:
- ✅ Go ve Python ortamlarını kontrol eder ve doğrular
- ✅ Python sanal ortamı oluşturur
- ✅ Python bağımlılıklarını kurar
- ✅ Go bağımlılıklarını indirir
- ✅ Projeyi derler
- ✅ Hizmeti başlatır
Ayrıntı bir: venv'i betik otomatik yönetiyor. venv/ dizinini run.sh otomatik oluşturur ve bakımını yapar; Python gerektiren araçlar (api-fuzzer, http-framework-test vb.) bu ortamı otomatik kullanır. Kendiniz elle oluşturmayın, çakışma yaşanabilir.
Başlatmayı doğrulama: Mutlaka teyit edilmesi gereken noktalar
Betik bittikten sonra hemen tarayıcıyı açmayın, önce terminale bakın:
- Terminalde ● ONLINE yazdığını doğrulayın, ardından gerçek Web UI adresi geliyor
- O adresi açın: Varsayılan HTTPS modu yerel, kendinden imzalı sertifika kullanır; tarayıcı uyarır, bir kez kabul etmeniz yeterli
- Yeni kurulumda tek kullanımlık yönetici şifresi olur: Terminalde ADMIN SETUP REQUIRED altında gösterilir; giriş yaptıktan sonra hemen değiştirin
Ayrıntı iki: HTTPS mi HTTP mi. run.sh varsayılan olarak –https parametresiyle başlar (yerel kendinden imzalı TLS; resmî beyana göre eşzamanlı bağlantılara daha dost). Saf HTTP istiyorsanız açıkça ./run.sh --http kullanmanız gerekir. Manuel başlatmada –https ekleyin veya CYBERSTRIKE_HTTPS=1 ortam değişkenini ayarlayın.
Üretim ortamında kendinden imzalı sertifika kullanmayın; config.yaml içinde server.tls_cert_path ve server.tls_key_path değerlerini yapılandırın.
Tuzak iki: Protokol uyuşmazlığı hatası. Günlüklerde «client sent an HTTP request to an HTTPS server» görüyorsanız, bir istemcinin TLS portuna hâlâ http:// ile eriştiği anlamına gelir. URL'yi değiştirmeniz yeterli; sunucu yapılandırmasıyla uğraşmayın.

İlk yapılandırma: AI kanalı zorunlu
Bu adımı yapılandırmazsanız platform kurulmamış sayılır. İlk başlatmadan sonra https://127.0.0.1:8080/ adresine gidin (port için config.yaml içindeki server.port geçerlidir) ve System Settings → Basic Settings → AI Channel Configuration bölümüne gidin, kanal ekleyin ve provider, Base URL, API key, model ile token sınırını doldurun.
İsterseniz config.yaml'ı doğrudan da düzenleyebilirsiniz; format kabaca şöyle:
ai:
default_channel: openai-main
channels:
openai-main:
provider: openai_compatible
api_key: "${OPENAI_API_KEY}"
base_url: "https://api.openai.com/v1"
model: "gpt-4o"
Ayrıntı üç: Varsayılan kanalın etki alanı. ai.default_channel yeni oturumlar ve kanal açıkça seçilmemiş görevler için kullanılır; sohbet sayfasında oturum başına kayıtlı herhangi bir kanal ayrıca seçilebilir. Yani birden fazla modeliniz varsa tek kanalla sınırlı kalmazsınız.
provider alanına openai_compatible yazdığınızda OpenAI arayüzüyle uyumlu hizmetlerin çoğunu bağlayabilirsiniz; base_url'i https://api.deepseek.com/v1 yapıp modeli deepseek-chat yapmak da mümkün, qwen3-max için de aynısı geçerli. Farklı modelleri rahatça bağlayabiliyorsunuz, bu epey kullanışlı bir detay.
⚠️ Güvenlik uyarısı: config.yaml içine gerçek anahtarları koymayın. Resmî taraf gerçek kimlik bilgilerinin commit edilmemesini açıkça söylüyor; ortam değişkenleriyle enjekte edin.
Güncellemede de yöntem gerekir
Resmî taraf tek tıkla güncelleme betiği sunuyor ama ilk seferde önce çalıştırma izni vermeniz gerekiyor:
chmod +x upgrade.sh && ./upgrade.sh –yes
Yaptığı işler: config.yaml ve data/ dizinini yedekler → GitHub Release'den yeni kodu çeker → config.yaml'daki sürüm numarasını günceller → hizmeti yeniden başlatır.Yerel tools/, roles/, skills/ dizinleri her zaman korunur — bu çok kritik; özel araç tariflerinizin üzerine yazılmaz.
Tuzak üç: Güncelleme betiğinin bağımlılıkları. Release paketini indirmek için curl veya wget, güvenli kod eşitlemesi için rsync gerekiyor (resmî beyan önerilen/zorunlu diyor). GitHub API hız sınırına takılırsa önce export GITHUB_TOKEN="..." durumu kontrol edip betiği tekrar çalıştırın.
Sorun çıkarsa .upgrade-backup/ dizininden geri yükleyebilir veya data ile config.yaml'ı elle kopyalayıp run.sh'ı tekrar çalıştırabilirsiniz.
Önemli ilke: Güncellemeden önce hedef sürümün release notes'larını mutlaka okuyun; özellikle yapılandırma, veritabanı ve API değişiklikleri söz konusuysa dikkatli olun. Resmî tarafın sözü çok yerinde — «Yedekleme zorunludur, yalnızca yama güncellemesi bile olsa; sürüm numarası başlı başına uyumluluk garantisi değildir.»
Dizin yapısına hızlı bakış
Her dizinin ne işe yaradığını bilirseniz sonraki bakımda kaybolmazsınız:
- cmd/ — Sunucu, MCP stdio girişi, araçlar
- internal/ — Agent, MCP çekirdeği, işleyiciler, C2, güvenli yürütücü
- web/ — Statik SPA ve şablonlar
- tools/ — YAML araç tarifleri (100+ örnek)
- roles/ — Rol yapılandırmaları (12+ hazır güvenlik testi rolü)
- skills/ — Agent Skills dizini (SKILL.md + isteğe bağlı dosyalar)
- agents/ — Çoklu Agent Markdown (orchestrator.md + alt Agent'lar)
- config.yaml — Çalışma zamanı yapılandırması
- run.sh / upgrade.sh — Başlatma / güncelleme betikleri
Güvenlik konusunda araçlar sizi ikame edemez
Bu platform WebShell yönetimi ve gömülü C2 (dinleyiciler, şifreli beacon, oturumlar, görev kuyruğu) gibi yüksek riskli yetenekler içeriyor. Resmî tutum çok net:yalnızca kendinizin sahip olduğu veya açıkça test için yetkili aldığınız sistemlerde kullanılabilir.
Paylaşımlı veya üretim ortamında yüksek riskli araçları etkinleştirmeden önce mutlaka güvenlik modeli ve sertleştirme rehberini okuyun. Platform ayrıca araç çağrısı engellemeyi gömülü getiriyor — MCP yürütülmeden önce yapılandırılabilir regex kontrolleri yapıyor ve varsayılan olarak hükümet alan adı koruması açık geliyor.
Ayrıca varsayılan olarak yalnızca 127.0.0.1 dinlenir; hizmeti dışarıya açacaksanız önce mutlaka sertleştirme yapın. Bu bir nezaket cümlesi değil, zor yoldan öğrenenlerin dokümana yazdığı bir uyarıdır.

Son söz
Geriye bakınca bu dağıtımda büyük bir sorun çıkmadı; işin %90'ını betik zaten halletti. Beni belgelere bakmak için durduran şey ise tamamen «fark etmemiş» olduğum ayrıntılardı: Go sürüm sınırı, venv'in elle oluşturulamaması, HTTPS'in varsayılan açık olmasının yol açtığı protokol uyuşmazlığı, güncellemede yedek alma gerekliliği, anahtarların yapılandırmaya yazılmaması.
Bu ayrıntıların her biri tek başına zor değil ama birini kaçırmak sizi yarım saat oyalayabilir. Araç olgunlaştıkça «doküman okumak» o kadar kazançlı hale gelir — karmaşıklığı betiğe paketler, kalan karmaşıklık yapılandırma ayrıntılarında birikir.
Proje knownsec 404Starlink'e eklendi ve Apache 2.0 lisansıyla açık kaynak. Yetkili güvenlik testi yapanlar deneyebilir.
Tek tıkla dağıtım, tek tıkla anlamak demek değildir; zaman kazandıran asıl şey ayrıntılardır.
Proje adresi: github.com/Ed1s0nZ/CyberStrikeAI (github.com/AIPentest/CyberStrikeAI adresine taşındı)
Ortam gereksinimleri: Go 1.25+ / Python 3.10+
Lisans: Apache License 2.0
⚠️ Yalnızca yetkili test kullanımı içindir