← Quay lại danh sách

Nhật ký triển khai CyberStrikeAI: Công cụ đơn giản triển khai cũng phải chú trọng chi tiết

itadol5j

Gần đây tôi đang mò CyberStrikeAI, một nền tảng kiểm thử an toàn AI native viết bằng Go. Tưởng “triển khai một chạm” chỉ cần clone về chạy script là xong, ai ngờ dẫm phải mấy cái hố không lớn không nhỏ. Nhân trí nhớ còn mới, ghi lại toàn bộ quá trình — nhiều cái hố thực ra không phải lỗi của công cụ, mà là chi tiết chưa để ý.

Triển khai CyberStrikeAI

Trước hết, đây là công cụ gì

CyberStrikeAI định vị là “hệ thống hành động an ninh mạng AI native”, viết bằng Go, gói planning, thực thi, giám sát của con người, lưu bằng chứng, replay vào một bàn làm việc có thể kiểm toán. Thành phần lõi gồm Agent dẫn động bởi Eino, công cụ MCP native, kho tri thức RAG, workflow trực quan và mô hình hóa phân tích chuỗi tấn công.

Nó tích hợp sẵn hơn 100 công thức công cụ, phủ khắp chuỗi tấn công hoàn chỉnh: quét mạng kiểu nmap, masscan, rustscan; quét Web kiểu sqlmap, nikto, gobuster, ffuf; quét lỗ hổng kiểu nuclei, wpscan, dalfox; còn có liệt kê subdomain, an toàn API, an toàn container, an toàn cloud, phân tích binary, khai thác, bẻ mật khẩu, forensics, post-exploitation v.v. Về cơ bản, thứ cần cho kiểm thử thâm nhập có ủy quyền, nó đã dàn sẵn cho bạn.

Ngoài ra còn có plugin Burp Suite và tiện ích mở rộng trình duyệt, có thể ném lưu lượng bắt được thẳng vào nền tảng để phân tích có AI hỗ trợ. Thiết kế này khá khôn — không phải đổi workflow hiện có của bạn.

Chuẩn bị môi trường trước khi triển khai

Chính thức yêu cầu hai điều kiện tiên quyết, chú ý phiên bản đừng chạm ngưỡng:

  • Go 1.25+(phiên bản yêu cầu rõ ràng trong go.mod, thấp hơn phiên bản này biên dịch sẽ báo lỗi ngay)
  • Python 3.10+(một số công cụ cần, ví dụ api-fuzzer, http-framework-test)

Hố thứ nhất: phiên bản Go. Lần đầu tôi dùng bản Go cũ có sẵn trong hệ thống, chạy đến giai đoạn biên dịch mới báo lỗi. Khuyên bạn nên go version xác nhận trước, chưa đủ thì vào trang chủ cài bản mới trước. Loại “điều kiện tiên quyết” này dễ bị bỏ qua nhất, vì báo lỗi xảy ra rất muộn.

Triển khai một chạm: script đã giúp bạn làm gì

Lệnh triển khai một chạm chính thức rất gọn:

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

Nhưng run.sh thực ra làm nhiều hơn bạn nghĩ, nó thực hiện theo thứ tự:

  • ✅ Kiểm tra và xác thực môi trường Go và Python
  • ✅ Tạo môi trường ảo Python
  • ✅ Cài đặt các phụ thuộc Python
  • ✅ Tải các phụ thuộc Go
  • ✅ Build dự án
  • ✅ Khởi động dịch vụ

Chi tiết một: venv do script tự quản. Thư mục venv/ được run.sh tự tạo và duy trì, những công cụ cần Python (api-fuzzer, http-framework-test v.v.) sẽ tự dùng môi trường này. Đừng tự tay tạo một cái, dễ xung đột.

Xác minh khởi động: vài điểm phải xác nhận

Sau khi script chạy xong, đừng vội mở trình duyệt, hãy nhìn terminal trước:

  • Xác nhận terminal hiển thị ● ONLINE, phía sau là địa chỉ Web UI thực tế
  • Mở địa chỉ đó: chế độ HTTPS mặc định dùng chứng chỉ tự ký cục bộ, trình duyệt sẽ cảnh báo, chấp nhận một lần là được
  • Cài mới sẽ có mật khẩu quản trị dùng một lần: terminal hiển thị dưới mục ADMIN SETUP REQUIRED, đăng nhập xong đổi ngay

Chi tiết hai: HTTPS hay HTTP. run.sh mặc định khởi động với tham số –https (TLS tự ký cục bộ, chính thức nói như vậy thân thiện hơn với luồng đồng thời). Nếu muốn HTTP thuần, phải tường minh dùng ./run.sh --http. Khởi động thủ công thì thêm –https hoặc đặt biến môi trường CYBERSTRIKE_HTTPS=1.

Môi trường production đừng dùng chứng chỉ tự ký, vào config.yaml cấu hình server.tls_cert_path và server.tls_key_path.

Hố thứ hai: báo lỗi giao thức không khớp. Nếu trong log bạn thấy “client sent an HTTP request to an HTTPS server”, nghĩa là còn client đang dùng http:// truy cập cổng TLS. Sửa URL là xong, đừng mò cấu hình phía server.

Nền tảng kiểm thử an toàn AI native

Cấu hình lần đầu: kênh AI là bắt buộc

Bước này mà không cấu hình thì cài cũng như chưa cài nền tảng. Sau lần khởi động đầu, truy cập https://127.0.0.1:8080/ (cổng theo server.port trong config.yaml), vào System Settings → Basic Settings → AI Channel Configuration, thêm kênh, điền provider, Base URL, API key, model và giới hạn token.

Cũng có thể sửa thẳng config.yaml, định dạng đại khái như sau:

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”

Chi tiết ba: phạm vi tác dụng của kênh mặc định. ai.default_channel dùng cho phiên làm việc mới và các tác vụ chưa chọn kênh rõ ràng; trong trang chat còn có thể chọn riêng bất kỳ kênh đã lưu nào cho từng phiên. Nên khi bạn có nhiều mô hình, không cần chỉ cấu hình một.

provider điền openai_compatible là nối được phần lớn dịch vụ tương thích giao diện OpenAI, base_url đổi thành https://api.deepseek.com/v1, model đổi thành deepseek-chat cũng được, qwen3-max tương tự. Mô hình nội địa Trung Quốc nối thoải mái, điểm này rất thân thiện.

⚠️ Nhắc nhở an toàn: trong config.yaml đừng commit khóa thật. Chính thức nói rõ đừng commit thông tin xác thực thật, dùng biến môi trường để tiêm vào.

Nâng cấp cũng phải có phương pháp

Chính thức cung cấp script nâng cấp một chạm, nhưng lần đầu phải cấp quyền thực thi trước:

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

Việc nó làm: sao lưu config.yaml và thư mục data/ → kéo mã mới từ GitHub Release → cập nhật số phiên bản trong config.yaml → khởi động lại dịch vụ.Các thư mục tools/, roles/, skills/ cục bộ luôn luôn được giữ lại— điểm này rất then chốt, công thức công cụ bạn tùy biến sẽ không bị ghi đè.

Hố thứ ba: phụ thuộc của script nâng cấp. Nó cần curl hoặc wget để tải gói Release, rsync dùng cho đồng bộ mã an toàn (chính thức nói khuyên dùng/bắt buộc). Nếu GitHub API bị giới hạn tần suất, trước hết export GITHUB_TOKEN="..." rồi mới chạy.

Nếu có vấn đề có thể khôi phục từ .upgrade-backup/, hoặc tự tay copy lại data và config.yaml rồi chạy run.sh.

Nguyên tắc quan trọng: trước khi nâng cấp nhất định phải đọc release notes của phiên bản đích, nhất là cẩn trọng khi liên quan thay đổi cấu hình, cơ sở dữ liệu, API. Chính thức có câu nói rất thật — “Sao lưu là bắt buộc, kể cả chỉ là nâng cấp bản vá; số phiên bản tự nó không phải bảo đảm tương thích.”

Xem nhanh cấu trúc thư mục

Nắm rõ từng thư mục làm gì, bảo trì về sau mới không lạc đường:

  • cmd/ — máy chủ, lối vào MCP stdio, công cụ
  • internal/ — Agent, lõi MCP, bộ xử lý, C2, bộ thực thi an toàn
  • web/ — SPA tĩnh và template
  • tools/ — công thức công cụ YAML (100+ ví dụ)
  • roles/ — cấu hình vai trò (12+ vai trò kiểm thử an toàn có sẵn)
  • skills/ — thư mục Agent Skills (SKILL.md + tệp tùy chọn)
  • agents/ — Markdown đa Agent (orchestrator.md + Agent con)
  • config.yaml — cấu hình runtime
  • run.sh / upgrade.sh — script khởi động / nâng cấp

Chuyện an toàn, công cụ không thay được bạn

Nền tảng này tích hợp những năng lực rủi ro cao như quản lý WebShell, C2 tích hợp sẵn (listener, beacon mã hóa, phiên, hàng đợi tác vụ). Thái độ chính thức rất rõ ràng:chỉ được dùng trên hệ thống bạn sở hữu hoặc được ủy quyền kiểm thử rõ ràng.

Trước khi bật công cụ rủi ro cao trong môi trường dùng chung hoặc production, nhất định phải đọc mô hình an toàn và hướng dẫn gia cố trước. Nó còn tích hợp chặn gọi công cụ — kiểm tra regex có thể cấu hình trước khi MCP thực thi, mặc định bật bảo vệ tên miền chính phủ.

Ngoài ra mặc định chỉ nghe trên 127.0.0.1, nếu muốn phơi dịch vụ ra ngoài, nhất định phải gia cố trước. Đây không phải lời khách sáo, mà là lời nhắc chỉ những người từng dẫm hố đẫm máu mới viết vào tài liệu.

Cấu hình nền tảng kiểm thử thâm nhập

Lời cuối

Nhìn lại, lần triển khai này bản thân không có vấn đề gì lớn, script đã làm xong 90% việc. Những thứ thật sự khiến tôi dừng lại tra tài liệu, toàn là chi tiết “không để ý”: ngưỡng phiên bản Go, venv không tạo tay được, HTTPS bật mặc định dẫn đến giao thức không khớp, nâng cấp phải sao lưu, khóa đừng ghi vào cấu hình.

Những chi tiết này nhìn riêng đều không khó, nhưng sót một cái có thể kẹt bạn nửa tiếng. Công cụ càng chín, lợi ích của “đọc tài liệu” càng cao — nó gói độ phức tạp vào script, độ phức tạp còn lại nằm hết trong chi tiết cấu hình.

Dự án đã gia nhập knownsec 404Starlink, mã nguồn mở theo giấy phép Apache 2.0. Bạn nào làm kiểm thử an toàn có ủy quyền có thể thử.

Triển khai một chạm không đồng nghĩa hiểu một chạm, chi tiết mới là chìa khóa thật sự để tiết kiệm thời gian.

Địa chỉ dự án: github.com/Ed1s0nZ/CyberStrikeAI (đã chuyển sang github.com/AIPentest/CyberStrikeAI)
Yêu cầu môi trường: Go 1.25+ / Python 3.10+
Giấy phép: Apache License 2.0
⚠️ Chỉ dùng cho kiểm thử có ủy quyền