← Kembali ke daftar

Catatan Deployment CyberStrikeAI: Deployment Alat yang Sederhana Pun Butuh Perhatian pada Detail

itadol5j

Belum lama ini saya iseng mencoba CyberStrikeAI, platform pengujian keamanan berbasis AI yang ditulis dengan Go. Kuduga "deployment satu klik" kan tinggal clone lalu jalankan skrip, ternyata saya menabrak beberapa jebakan kecil-menengah. Sambil ingatannya masih segar, saya catat seluruh prosesnya — banyak jebakan sebenarnya bukan karena alatnya, tapi karena detail yang terlewat.

Deployment CyberStrikeAI

Dulu, alat sebenarnya apa ini

CyberStrikeAI diposisikan sebagai "sistem operasi aksi untuk keamanan siber berbasis AI", ditulis dengan Go, dan mengumpulkan perencanaan, eksekusi, pengawasan manusia, penyimpanan bukti, serta replay dalam satu meja kerja yang bisa diaudit. Komponen intinya mencakup Agent berbasis Eino, alat native MCP, basis pengetahuan RAG, alur kerja visual, dan analisis pemodelan rantai serangan.

Alat ini membawa lebih dari 100 resep alat yang mencakup seluruh kill chain: pemindaian jaringan seperti nmap, masscan, rustscan; pemindaian web seperti sqlmap, nikto, gobuster, ffuf; pemindaian kerentanan seperti nuclei, wpscan, dalfox; ditambah enumerasi subdomain, keamanan API, keamanan kontainer, keamanan cloud, analisis biner, exploitation, cracking kata sandi, forensik, post-exploitation, dan lain-lain. Hampir semua perlengkapan yang dibutuhkan untuk pengujian penetrasi yang sah sudah diorkestrasi lengkap di sini.

Ada juga plugin Burp Suite dan ekstensi browser, sehingga trafik yang ditangkap bisa langsung dilempar ke platform untuk dianalisis dengan bantuan AI. Desainnya pintar — alur kerja kamu yang sekarang tidak perlu diubah.

Persiapan lingkungan sebelum deployment

Pihak resmi menetapkan dua prasyarat, perhatikan versinya jangan sampai di bawah batas:

  • Go 1.25+(versi yang dipinta eksplisit di go.mod; versi di bawahnya langsung error saat kompilasi)
  • Python 3.10+(dibutuhkan sebagian alat, misalnya api-fuzzer dan http-framework-test)

Jebakan pertama: versi Go. Percobaan pertama saya memakai Go versi lama bawaan sistem, dan error baru muncul saat tahap kompilasi. Sarannya, cek dulu go version versinya; kalau kurang, langsung pasang versi baru dari situs resmi. "Prasyarat" semacam ini paling sering diabaikan, karena errornya muncul jauh di belakang.

Deployment satu klik: apa yang sebenarnya dikerjakan skrip

Perintah deployment satu klik dari pihak resmi sangat ringkas:

git clone https://github.com/Ed1s0nZ/CyberStrikeAI.git
cd CyberStrikeAI
chmod +x run.sh && ./run.sh

Tapi run.sh sebenarnya mengerjakan lebih banyak dari yang kamu bayangkan, ia mengeksekusi langkah-langkah berikut secara berurutan:

  • ✅ Memeriksa dan memvalidasi lingkungan Go dan Python
  • ✅ Membuat virtual environment Python
  • ✅ Memasang dependensi Python
  • ✅ Mengunduh dependensi Go
  • ✅ Membangun proyek
  • ✅ Menjalankan layanan

Detail pertama: venv dikelola otomatis oleh skrip. Direktori venv/ dibuat dan dirawat otomatis oleh run.sh, dan alat-alat yang butuh Python (api-fuzzer, http-framework-test, dll.) otomatis memakai environment ini. Jangan membuatnya manual sendiri, nanti bentrok.

Verifikasi startup: beberapa hal yang wajib dipastikan

Setelah skrip selesai, jangan buru-buru membuka browser, cek dulu terminalnya:

  • Pastikan terminal menampilkan ● ONLINE, diikuti alamat Web UI yang sebenarnya
  • Buka alamat tersebut: mode HTTPS default memakai sertifikat self-signed lokal, browser akan memperingatkan, cukup terima sekali saja
  • Pemasangan baru memiliki kata sandi admin sekali pakai: ditampilkan di terminal di bawah ADMIN SETUP REQUIRED, segera ganti setelah login

Detail kedua: HTTPS atau HTTP. run.sh secara default berjalan dengan parameter –https (TLS self-signed lokal, pihak resmi bilang ini lebih ramah untuk koneksi bersamaan). Kalau ingin HTTP murni, kamu harus eksplisit memakai ./run.sh --http. Kalau menjalankan manual, tambahkan –https atau set variabel lingkungan CYBERSTRIKE_HTTPS=1.

Untuk lingkungan produksi, jangan pakai sertifikat self-signed; konfigurasikan server.tls_cert_path dan server.tls_key_path di config.yaml.

Jebakan kedua: error ketidakcocokan protokol. Kalau di log muncul "client sent an HTTP request to an HTTPS server", artinya ada klien yang masih mengakses port TLS dengan http://. Cukup perbaiki URL-nya, jangan pusing mengutak-atik konfigurasi sisi server.

Platform pengujian keamanan berbasis AI

Konfigurasi awal: jalur AI wajib diatur

Tanpa langkah ini, platform ibarat belum terpasang. Setelah startup pertama, buka https://127.0.0.1:8080/ (port mengikuti server.port di config.yaml), masuk ke System Settings → Basic Settings → AI Channel Configuration, tambahkan channel, isi provider, Base URL, API key, model, dan batas token.

Bisa juga langsung mengedit config.yaml, formatnya kurang lebih seperti ini:

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”

Detail ketiga: cakupan channel default. ai.default_channel dipakai untuk sesi baru dan tugas yang tidak memilih channel secara eksplisit; di halaman chat, setiap sesi masih bisa memilih channel tersimpan mana pun secara terpisah. Jadi kalau punya banyak model, tak perlu mengisi hanya satu.

Dengan mengisi provider openai_compatible, hampir semua layanan yang kompatibel dengan antarmuka OpenAI bisa tersambung; base_url tinggal diganti https://api.deepseek.com/v1 dan model diganti deepseek-chat, begitu juga dengan qwen3-max. Model lokal mana pun bisa disambung, ini sangat ramah.

⚠️ Pengingat keamanan: jangan menyimpan kredensial asli di config.yaml. Pihak resmi dengan tegas melarang commit kredensial asli, gunakan injeksi variabel lingkungan.

Upgrade pun punya caranya sendiri

Pihak resmi menyediakan skrip upgrade satu klik, tapi saat pertama kali harus diberi izin eksekusi dulu:

chmod +x upgrade.sh && ./upgrade.sh –yes

Yang dikerjakannya: mencadangkan config.yaml dan direktori data/ → menarik kode baru dari GitHub Release → memperbarui nomor versi di config.yaml → memulai ulang layanan.Direktori lokal tools/, roles/, dan skills/ selalu dipertahankan — poin ini sangat penting, resep alat kustom kamu tidak akan tertimpa.

Jebakan ketiga: dependensi skrip upgrade. Skrip ini butuh curl atau wget untuk mengunduh paket Release, dan rsync untuk sinkronisasi kode yang aman (menurut pihak resmi: direkomendasikan/wajib). Kalau GitHub API kena rate limit, cek dulu export GITHUB_TOKEN="..." sebelum menjalankannya lagi.

Kalau ada masalah, bisa dipulihkan dari .upgrade-backup/, atau salin manual data dan config.yaml lalu jalankan lagi run.sh.

Prinsip penting: sebelum upgrade, pastikan membaca release notes versi tujuan, terutama kalau ada perubahan konfigurasi, database, atau API. Ada kalimat resmi yang sangat nyata — "cadangan itu wajib, sekalipun hanya upgrade patch; nomor versi sendiri bukan jaminan kompatibilitas."

Gambaran singkat struktur direktori

Memahami fungsi tiap direktori membuat pemeliharaan selanjutnya tidak tersesat:

  • cmd/ — sisi server, pintu masuk MCP stdio, alat
  • internal/ — Agent, inti MCP, handler, C2, security executor
  • web/ — SPA statis dan templat
  • tools/ — resep alat YAML (100+ contoh)
  • roles/ — konfigurasi peran (12+ peran pengujian keamanan siap pakai)
  • skills/ — direktori Agent Skills (SKILL.md + file opsional)
  • agents/ — Markdown multi-Agent (orchestrator.md + sub-Agent)
  • config.yaml — konfigurasi runtime
  • run.sh / upgrade.sh — skrip startup / upgrade

Soal keamanan, alat tidak bisa menggantikan kamu

Platform ini mengintegrasikan kemampuan berisiko tinggi seperti manajemen WebShell dan C2 bawaan (listener, beacon terenkripsi, sesi, antrean tugas). Sikap pihak resmi sangat jelas:hanya boleh digunakan pada sistem yang kamu miliki atau yang secara eksplisit mendapat izin pengujian.

Sebelum mengaktifkan alat berisiko tinggi di lingkungan bersama atau produksi, wajib membaca dulu security model dan hardening guide. Platform ini juga punya interception pemanggilan alat — pemeriksaan regex yang bisa dikonfigurasi sebelum eksekusi MCP, dengan proteksi domain pemerintah aktif secara default.

Selain itu, secara default hanya memantau 127.0.0.1; kalau layanannya mau diekspos ke luar, wajib melakukan hardening dulu. Ini bukan basa-basi, melainkan pengingat yang hanya ditulis orang yang pernah jatuh di lubang yang sama.

Konfigurasi platform pengujian penetrasi

Penutup

Kalau dilihat kembali, deployment kali ini sendiri tidak ada masalah besar — skrip sudah mengerjakan 90% pekerjaan. Yang benar-benar membuat saya berhenti membuka dokumentasi, semuanya adalah detail yang "tidak terpikir": batas versi Go, venv tidak boleh dibuat manual, HTTPS aktif secara default sehingga protokol tidak cocok, upgrade harus dicadangkan, kredensial jangan ditulis di konfigurasi.

Detail-detail ini kalau dilihat satu per satu tidak sulit, tapi melewatkan satu saja bisa menghambatmu setengah jam. Semakin matang sebuah alat, semakin besar manfaat "membaca dokumentasi" — ia membungkus kompleksitas ke dalam skrip, dan sisanya yang kompleks justru tersimpan di detail konfigurasi.

Proyek ini sudah masuk knownsec 404Starlink dan open source dengan lisensi Apache 2.0. Rekan yang melakukan pengujian keamanan resmi boleh mencobanya.

Deployment satu klik tidak sama dengan pemahaman satu klik; detail-lah kunci sebenarnya untuk menghemat waktu.

Alamat proyek: github.com/Ed1s0nZ/CyberStrikeAI (telah dipindahkan ke github.com/AIPentest/CyberStrikeAI)
Persyaratan lingkungan: Go 1.25+ / Python 3.10+
Lisensi: Apache License 2.0
⚠️ Hanya untuk pengujian resmi