0

Kỷ Nguyên Của AI Pentesting Agents: Khi AI Không Còn Chỉ Là "Trợ Lý"

Trong khoảng 2 năm trở lại đây, chúng ta đã chứng kiến sự bùng nổ của các công cụ Security tích hợp AI. Tuy nhiên, nếu như trước đây AI chỉ đơn thuần đóng vai trò "copilot" (hỗ trợ giải thích mã lỗi, viết script) thì hiện tại, cộng đồng mã nguồn mở trên GitHub đang dịch chuyển sang một mô thức mạnh mẽ hơn rất nhiều: Autonomous AI Pentesting Agents (Đặc vụ AI tự hành bảo mật).

Trong bài blog này, chúng ta sẽ cùng điểm qua một số dự án AI Pentesting Agent nổi bật nhất trên GitHub, phân tích kiến trúc của chúng để hiểu xem AI đang làm gì dưới mui xe, và cuối cùng, so sánh xem Strix – một hệ thống AI Pentest tự hành thế hệ mới – giải quyết các bài toán hóc búa nhất của lĩnh vực này như thế nào.


1. Điểm Tên Các "Anh Hài" Nổi Bật Trong Làng AI Pentest Open-Source

Dạo qua GitHub, không khó để bắt gặp những dự án ngàn sao tập trung vào việc tự động hóa quá trình tấn công mạng. Một số cái tên đáng chú ý có thể kể đến:

1️⃣ PentestGPT (GreyDGL)

https://github.com/GreyDGL/PentestGPT

  • Tóm tắt: Là một trong những dự án tiên phong và nổi tiếng nhất. Ban đầu là một bản nguyên mẫu (prototype) để giải CTF, nay đã phát triển thành một framework.
  • Kiến trúc & Đặc điểm: Nó dựa nhiều vào sức mạnh lý luận trực tiếp của LLM (thường là GPT-4). Nó hoạt động như một cỗ máy trạng thái (state machine), ghi nhận dữ liệu từ các công cụ bảo mật và đưa ra các "task" tiếp theo. Nó có thể cấu hình để định tuyến các request đến local LLM servers.
  • Hạn chế: Thường yêu cầu sự tương tác cao của con người để cung cấp input (interactive), chưa hoàn toàn tự hành 100% trong các kịch bản phức tạp mà không có sự dẫn dắt.

2️⃣ PentAGI (vxcontrol)

https://github.com/vxcontrol/pentagi

  • Tóm tắt: Một hệ thống Multi-Agent hoàn toàn tự hành để thực thi các tác vụ pentest phức tạp.
  • Kiến trúc & Đặc điểm: PentAGI sử dụng đồ thị tri thức (Knowledge Graph - Graphiti và Neo4j) để lưu trữ ngữ cảnh. Nó đóng gói hơn 20 công cụ bảo mật chuyên nghiệp vào trong một môi trường Docker Sandbox.
  • Điểm mạnh: Giữ được ngữ cảnh rất tốt nhờ Knowledge Graph, và cô lập rủi ro qua Sandbox. Thể hiện một bước tiến lớn sang quy mô tự động hóa.

3️⃣ NeuroSploit (CyberSecurityUP)

https://github.com/CyberSecurityUP/NeuroSploit

  • Tóm tắt: Framework tự động hóa và tăng cường hoạt động bảo mật tấn công (Offensive Security) bằng LLMs.
  • Kiến trúc & Đặc điểm: Nó cũng chạy trên isolated Kali Linux containers. Phiên bản v3 có hệ thống Anti-Hallucination để khắc phục nhược điểm "ảo giác" của AI, hỗ trợ phát hiện hàng trăm loại lỗ hổng.

2. Bài Toán Khó Nhất Của AI Pentesting: Ảo Giác và Giới Hạn Ngữ Cảnh

Nếu nhìn vào sự tiến hóa từ PentestGPT sang PentAGI hay NeuroSploit, các kỹ sư bảo mật đều nhận ra hai trở ngại lớn cốt lõi:

  1. Rủi ro trên thiết bị thật (Safety): Các Agent khi được cấp quyền thực thi (RCE) có thể gây hỏng hóc hoặc tự phá hủy chính máy chủ cấp phát nếu đánh nhầm mục tiêu. Đó là lý do xu hướng chung bắt buộc phải dùng Docker Sandbox / Isolated Containers (như PentAGI hay NeuroSploit).
  2. Ảo Giác (Hallucination) do Tràn Context: Khi chạy nmap -p- hay dirb/gobuster, lượng output trả về khổng lồ. Việc bơm tất cả đống text thô này vào chung một System Prompt và bắt AI "hãy tìm lỗi SQL Injection đi" sẽ khiến mô hình bị ngộp (context window overflow) và bắt đầu bịa đặt kết quả (hallucinate).

3. Kiến Trúc Của Strix: Giải Pháp Từ Cấu Trúc Đa Tác Vụ (Orchestration)

Vậy Strix được định vị và giải quyết các bài toán trên như thế nào so với các dự án GitHub kia? Nó kế thừa mô hình Sandbox an toàn, nhưng vươn lên nhờ triết lý cấu trúc Multi-Agent Tree-based.

🌟 Kỹ Thuật "Micro-Task Spawning" & Quản Lý Đồ Thị State (Agent Graph Tracker)

Khác với PentestGPT cố gắng nhồi nhét mọi suy luận vào một luồng hội thoại chặn (blocking), Strix quản lý các luồng tác vụ như một đồ thị có hướng (Directed Graph). Mỗi khi thấy một "bề mặt tấn công", hệ thống API Runtime lập tức rẽ nhánh bằng cách spawn ra một Sub-Agent chạy trên Thread độc lập.

Bạn có thể thấy rõ "điểm ăn tiền" này trong mã nguồn cốt lõi strix/tools/agents_graph/agents_graph_actions.py – nơi Strix trực tiếp quản lý vòng đời của Sub-Agent:

# Trích xuất từ agents_graph_actions.py: Hàm tạo Sub-Agent
@register_tool(sandbox_execution=False)
def create_agent(agent_state, task, name, inherit_context=True, skills=None):
    # Khởi tạo một Node/State hoàn toàn mới cho Agent con
    state = AgentState(task=task, agent_name=name, parent_id=agent_state.agent_id, ...)
    
    # Kế thừa context nhưng GIỚI HẠN tối đa 5 skill để tránh ảo giác LLM
    llm_config = LLMConfig(skills=skill_list, ...)
    agent = StrixAgent({"llm_config": llm_config, "state": state})

    # Đưa vào Thread chạy ngầm (Asynchronous Execution)
    thread = threading.Thread(
        target=_run_agent_in_thread,
        args=(agent, state, inherited_messages),
        daemon=True
    )
    thread.start()
    _running_agents[state.agent_id] = thread

Cách tạo Thread tách biệt này đặc biệt quan trọng. Khi chạy logic ở một Thread mới (với Event Loop riêng cho LLM), Sub-Agent không hề block Agent mẹ. Agent mẹ có thể tiếp tục rà quét các endpoint khác, còn Agent con thì "đào sâu" vào một form đăng nhập nghi ngờ SQLi.

🌟 Triệt Tiêu Ảo Giác Bằng Prompt Cắt Cảnh (Context Isolation)

Một kỹ thuật rất "đắt" được áp dụng bên trong hàm _run_agent_in_thread của Strix là cách ép ngữ cảnh. Ngay khi Sub-Agent sống dậy, Strix chèn ngay một XML Block vào đầu lịch sử prompt để "nhắc nhở" cương vị của con Bot này, cấm nó bị lay động bởi đống log cũ của Parent:

# Trích đoạn mã "Tẩy não" Sub-Agent trong agents_graph_actions.py
task_xml = f"""<agent_delegation>
    <identity>
        ⚠️ You are NOT your parent agent. You are a NEW, SEPARATE sub-agent.
        Your Info: {state.agent_name} ({state.agent_id})
    </identity>
    <your_task>{state.task}</your_task>
    <instructions>
        - Inherited context is for BACKGROUND ONLY - don't continue parent's work
        - Maintain strict self-identity: never speak as or for your parent
        - Focus EXCLUSIVELY on your delegated task above
        - You are a SPECIALIST for this specific task
    </instructions>
</agent_delegation>"""
state.add_message("user", task_xml)

Với task_xml này, mô hình LLM ngay lập tức chuyển sang chế độ "Chuyên gia tác vụ hẹp" (Specialist). Sự tách bạch này triệt tiêu hoàn toàn sự "ảo giác" (hallucination) thường thấy ở việc xử lý hỗn loạn nhiều loại file log bảo mật cùng lúc. Khi làm xong, Agent dùng tool agent_finish để bắn một <agent_completion_report> tổng hợp kết quả lên thẳng hàng đợi Message của Agent Mẹ (thông qua Graph Edges), hoàn tất vòng đời của một Micro-task.

🌟 Môi Trường Tool Server Trong Sandbox

Tương tự PentAGI, Strix chạy các luồng tấn công bên trong container (Kali Linux Docker). Nhưng Strix tích hợp sẵn một Tool Server sử dụng FastAPI bên trong Sandbox, đóng vai trò như một gateway HTTP. Trí tuệ của Agent ở bên ngoài (Host) sẽ gửi các JSON Payload vào Tool Server, và Tool Server gọi thẳng xuống subprocess của container. Thiết kế này tách bạch hoàn toàn não bộ LLM ra khỏi môi trường nhạy cảm, dễ dàng scale và swap các Runtime (như chạy trên AWS, K8s) mà không cần viết lại Logic Agent.

🌟 Mindset Dẻo Dai: Ép AI "Cày" Thay Vì "Báo Cáo Sớm"

Phần lõi Prompt của Strix có một luật rất hay: "Bạn là một Bug Bounty Hunter, đừng báo cáo những thứ lặt vặt. Một lỗ hổng thực tế cần thử qua hàng ngàn test cases". Strix buộc Agent phải sử dụng Tool think để lý luận, liên tục retry, thay đổi payload qua hàng vạn vòng lặp. Nó sinh ra để cày ải (brute-forcing logic) chứ không phải để đọc output và phán một câu xanh rờn.

Lời Kết

Kỷ nguyên AI hỗ trợ Pentest (Copilot) đã khép lại, chúng ta đang thực sự bước vào kỷ nguyên của những "Autonomous Actor". Sự phát triển từ những đoạn chat tương tác của PentestGPT cho đến những kiến trúc phức tạp, phân mảnh Multi-Agent, chạy Sandbox Docker như PentAGI, NeuroSploit và Strix cho thấy rõ điều đó.

Đối với cộng đồng Open-Source, đây là một mảnh đất màu mỡ. Đọc hiểu mã nguồn của Strix hay PentAGI sẽ giúp các Developer nắm được cơ chế Agent OrchestrationSandboxed Tool Execution - hai chìa khóa không thể thiếu cho sự tiến hóa của AI hiện đại!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí