Trong thế giới an ninh mạng, Capture The Flag (CTF) luôn là một cuộc chiến giữa trí tuệ, kỹ thuật và tốc độ. Nhưng điều gì sẽ xảy ra khi nhiều mô hình AI cùng lúc tấn công một thử thách, chạy đua với nhau để tìm ra flag? Đó chính xác là những gì CTF Agent — một dự án mã nguồn mở từ Veria Labs — đã thực hiện. Kết quả? Giải quyết toàn bộ 52/52 thử thách và giành hạng nhất tại BSidesSF 2026 CTF.
Giới thiệu tổng quan
CTF Agent là một bộ giải CTF tự chủ chạy đua nhiều mô hình AI (AI models racing) song song. Dự án được xây dựng chỉ trong một cuối tuần bởi đội ngũ Veria Labs — công ty được sáng lập bởi các thành viên của đội .;,;. (smiley), đội hạng 1 Mỹ trên CTFTime trong năm 2024 và 2025.
Repo hiện có 361+ stars, 50 forks trên GitHub, được viết hoàn toàn bằng Python (100%) và phát hành dưới giấy phép MIT.
Kết quả thi đấu
| Cuộc thi | Thử thách đã giải | Kết quả |
|---|---|---|
| BSidesSF 2026 | 52/52 (100%) | Hạng nhất — $1,500 |
Agent có khả năng giải quyết các thử thách ở mọi thể loại: pwn, rev (reverse engineering), crypto, forensics, web và misc. Tỷ lệ giải quyết 100% là một thành tựu đặc biệt ấn tượng đối với bất kỳ CTF nào.
Kiến trúc hoạt động — Cách CTF Agent hoạt động
Kiến trúc của CTF Agent xoay quanh một mô hình Coordinator + Solver Swarms:
- Một Coordinator LLM quản lý toàn bộ cuộc thi
- Các Solver Swarms tấn công từng thử thách riêng lẻ
- Mỗi swarm chạy nhiều mô hình AI đồng thời — mô hình nào tìm ra flag trước sẽ thắng
Sơ đồ kiến trúc:
+-----------------+
| CTFd Platform |
+--------+--------+
|
+--------v--------+
| Poller (5s) |
+--------+--------+
|
+--------v--------+
| Coordinator LLM |
| (Claude/Codex) |
+--------+--------+
|
+------------------+------------------+
| | |
+--------v--------+ +------v---------+ +------v---------+
| Swarm: | | Swarm: | | Swarm: |
| challenge-1 | | challenge-2 | | challenge-N |
| | | | | |
| Opus (med) | | Opus (med) | | |
| Opus (max) | | Opus (max) | | ... |
| GPT-5.4 | | GPT-5.4 | | |
| GPT-5.4-mini | | GPT-5.4-mini | | |
| GPT-5.3-codex | | GPT-5.3-codex | | |
+--------+--------+ +--------+-------+ +----------------+
| |
+--------v--------+ +-------v--------+
| Docker Sandbox | | Docker Sandbox |
| (isolated) | | (isolated) |
| | | |
| pwntools, r2, | | pwntools, r2, |
| gdb, python... | | gdb, python... |
+-----------------+ +----------------+
Luồng hoạt động chi tiết:
- Poller polling nền tảng CTFd mỗi 5 giây để phát hiện thử thách mới
- Coordinator LLM nhận thông tin thử thách, phân tích và điều phối các solver swarm
- Mỗi Solver Swarm gán cho một thử thách cụ thể, chạy 5 mô hình song song:
- Claude Opus (medium effort)
- Claude Opus (max effort)
- GPT-5.4
- GPT-5.4-mini
- GPT-5.3-codex
- Mỗi solver chạy trong một Docker container cách ly với đầy đủ công cụ CTF
- Solver không bao giờ bỏ cuộc — chúng liên tục thử các cách tiếp cận khác nhau cho đến khi tìm thấy flag
Các tính năng chính
Dưới đây là 6 tính năng cốt lõi được liệt kê chính thức trong README của dự án:
1. Multi-model racing — Chạy đua nhiều mô hình
Nhiều mô hình AI tấn công cùng một thử thách đồng thời. Mô hình nào giải quyết trước sẽ trả kết quả ngay lập tức. Đây là một chiến lược “đặt trứng vào nhiều giỏ” — tốc độ tổng thể được tối đa hóa vì không cần dựa vào một mô hình duy nhất.
2. Auto-spawn — Tự động phát hiện và tấn công thử thách mới
Hệ thống tự động polling CTFd platform mỗi 5 giây. Khi có thử thách mới được đăng, solver swarm sẽ ngay lập tức được tạo ra và bắt đầu tấn công. Không cần bất kỳ thao tác thủ công nào.
3. Coordinator LLM — Điều phối thông minh
Coordinator LLM đọc solver traces (lịch sử các bước thử nghiệm) từ các solver đang chạy, phân tích những gì đã thử và thất bại, sau đó tạo ra hướng dẫn kỹ thuật cụ thể để giúp solver tiếp cận đúng hướng. Điều này giúp tránh việc các solver mắc kẹt trong vòng lặp sai.
4. Cross-solver insights — Chia sẻ kết quả giữa các solver
Các phát hiện quan trọng được chia sẻ giữa các mô hình thông qua message bus. Nếu một solver phát hiện ra manh mối quan trọng (ví dụ: dạng mã hóa, cấu trúc file), thông tin đó sẽ được truyền cho các solver khác, tạo ra hiệu ứng cộng hưởng trong việc giải quyết.
5. Docker sandboxes — Sandbox cách ly
Mỗi solver chạy trong một Docker container riêng biệt, cách ly hoàn toàn với đầy đủ công cụ CTF được cài đặt sẵn. Điều này đảm bảo:
- Không có xung đột giữa các solver
- Môi trường thực thi nhất quán
- An toàn khi xử lý các file binary độc hại
6. Operator messaging — Gửi tin nhắn hướng dẫn giữa trận
Người vận hành có thể gửi hints/gợi ý trực tiếp đến các solver đang chạy giữa cuộc thi. Tính năng này cho phép kết hợp trí tuệ con người với sức mạnh AI — người chơi có thể cung cấp manh mối mà họ biết, giúp solver tìm ra flag nhanh hơn.
Mô hình Solver được sử dụng
Dưới đây là danh sách các mô hình AI mặc định (có thể cấu hình trong backend/models.py):
| Mô hình | Nhà cung cấp | Ghi chú |
|---|---|---|
| Claude Opus 4.6 (medium) | Claude SDK | Cân bằng giữa tốc độ và chất lượng |
| Claude Opus 4.6 (max) | Claude SDK | Suy luận sâu (deep reasoning) |
| GPT-5.4 | Codex | Solver tổng thể tốt nhất |
| GPT-5.4-mini | Codex | Nhanh, phù hợp cho thử thách dễ |
| GPT-5.3-codex | Codex | Mô hình reasoning (xhigh effort) |
Coordinator Backends
Hệ thống hỗ trợ hai backend điều phối:
# Claude SDK coordinator (mặc định)
uv run ctf-solve --coordinator claude ...
# Codex coordinator (GPT-5.4 qua JSON-RPC)
uv run ctf-solve --coordinator codex ...
Công cụ trong Sandbox
Mỗi solver nhận được một Docker container cách ly được cài đặt sẵn các công cụ CTF chuyên dụng theo từng lĩnh vực:
| Lĩnh vực | Công cụ |
|---|---|
| Binary (Reverse Engineering) | radare2, GDB, objdump, binwalk, strings, readelf |
| Pwn (Khai thác nhị phân) | pwntools, ROPgadget, angr, unicorn, capstone |
| Crypto (Mật mã) | SageMath, RsaCtfTool, z3, gmpy2, pycryptodome, cado-nfs |
| Forensics (Pháp y số) | volatility3, Sleuthkit (mmls/fls/icat), foremost, exiftool |
| Stego (Giấu tin) | steghide, stegseek, zsteg, ImageMagick, tesseract OCR |
| Web | curl, nmap, Python requests, flask |
| Misc (Tổng hợp) | ffmpeg, sox, Pillow, numpy, scipy, PyTorch, podman |
Danh sách công cụ này thực sự đầy đủ — bao phủ từ phân tích nhị phân, khai thác lỗi bộ nhớ, phân tích mật mã, pháp y số, đến giấu tin và web exploitation. Đặc biệt值得注意的是 việc có SageMath (hệ thống toán học mạnh mẽ cho crypto) và angr (framework phân tích nhị phân tự động).
Cài đặt và sử dụng (Quick Start)
Yêu cầu hệ thống
- Python 3.14+
- Docker
- API keys cho ít nhất một nhà cung cấp: Anthropic, OpenAI, hoặc Google
codexCLI (cho Codex solver/coordinator)claudeCLI (đi kèm với claude-agent-sdk)
Các bước cài đặt
# Cài đặt dependencies
uv sync
# Build Docker image cho sandbox
docker build -f sandbox/Dockerfile.sandbox -t ctf-sandbox .
# Cấu hình credentials
cp .env.example .env
# Sau đó chỉnh sửa .env với API keys và CTFd token của bạn
# Chạy chống lại một CTFd instance
uv run ctf-solve \
--ctfd-url https://ctf.example.com \
--ctfd-token ctfd_your_token \
--challenges-dir challenges \
--max-challenges 10 \
-v
Cấu hình
Sao chép .env.example thành .env và điền các thông tin sau:
CTFD_URL=https://ctf.example.com
CTFD_TOKEN=ctfd_your_token
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
Tất cả cài đặt cũng có thể được truyền dưới dạng biến môi trường hoặc CLI flags.
Cấu trúc thư mục dự án
Dự án có cấu trúc đơn giản và rõ ràng:
ctf-agent/
├── backend/ # Backend logic chính
├── sandbox/ # Docker sandbox configuration
├── .env.example # Template file cấu hình
├── .gitignore
├── LICENSE # MIT License
├── README.md
├── pull_challenges.py # Script kéo thử thách từ CTFd
├── pyproject.toml # Python project configuration
File pull_challenges.py sử dụng một phần code từ dự án es3n1n/Eruditus cho tương tác CTFd và xử lý HTML.
Phân tích sâu về ý nghĩa kỹ thuật
Tại sao “racing” model lại hiệu quả?
Ý tưởng cốt lõi của CTF Agent là không dựa vào một mô hình AI duy nhất. Thay vào đó, nó sử dụng chiến lược “ensemble racing”:
- Mỗi mô hình có điểm mạnh khác nhau: GPT-5.4 có thể giỏi ở web exploitation, trong khi Claude Opus có thể mạnh hơn ở reverse engineering
- Chất lượng suy luận khác nhau: medium effort cho thử thách đơn giản (nhanh hơn), max effort cho thử thách khó (sâu hơn)
- Chi phí tối ưu: GPT-5.4-mini rẻ hơn nhiều để chạy, phù hợp cho các thử thách dễ — nếu nó giải được, không cần浪费 chi phí trên mô hình đắt tiền hơn
- Phân tán rủi ro: Nếu một mô hình bị hallucination (ảo giác) hoặc đi sai hướng, mô hình khác vẫn có thể tìm ra đáp án
Message Bus — Trí tuệ tập thể
Tính năng Cross-solver insights đặc biệt đáng chú ý. Khi một solver phát hiện manh mối (ví dụ: “File này sử dụng XOR cipher với key 0x42”), thông tin đó được phát tới tất cả solver khác qua message bus. Điều này biến hệ thống từ nhiều agent riêng lẻ thành một tập thể thông minh — có thể kết hợp các phát hiện từ nhiều hướng tiếp cận khác nhau.
Coordinator đóng vai trò “trưởng nhóm”
Coordinator LLM không trực tiếp giải quyết thử thách. Thay vào đó, nó đóng vai trò như một trưởng nhóm kỹ thuật:
- Đọc output từ solver đang bị mắc kẹt
- Phân tích sai lầm trong cách tiếp cận
- Đưa ra hướng dẫn kỹ thuật cụ thể (ví dụ: “Thử kiểm tra buffer overflow tại offset 0x80 thay vì 0x40”)
- Phối hợp chiến lược tổng thể
Tổng kết
CTF Agent là một minh chứng mạnh mẽ cho sức mạnh của việc kết hợp nhiều mô hình AI chạy song song trong lĩnh vực an ninh mạng. Với kiến trúc Coordinator + Solver Swarms, hệ thống không chỉ tận dụng được điểm mạnh của từng mô hình mà còn tạo ra hiệu ứng cộng hưởng thông qua cross-solver insights và coordinator guidance.
Thành tích 52/52 (100%) tại BSidesSF 2026 cho thấy AI đã đạt đến mức có thể cạnh tranh — và thậm chí vượt trội — so với con người trong các cuộc thi CTF, ít nhất ở các thử thách truyền thống. Đối với cộng đồng an ninh mạng, dự án này mở ra một hướng đi mới: sử dụng AI như một công cụ hỗ trợ mạnh mẽ trong penetration testing và vulnerability research.
Dự án mã nguồn mở, được phát hành dưới giấy phép MIT, hoàn toàn có thể được sử dụng và tùy chỉnh cho mục đích học tập và nghiên cứu.
Source link: verialabs/ctf-agent – GitHub






