Agentic Malware Analysis là môi trường Docker tự động triage mã độc, kết nối MCP với Binary Ninja hoặc Ghidra, giúp chuyển một file nhị phân thô thành bộ hồ sơ có cấu trúc mà không cần thao tác tay. Thay vì chạy từng lệnh, một AI agent điều phối toàn bộ quy trình và lưu trạng thái liên tục.
Thank you for reading this post, don't forget to subscribe!Bài viết hướng dẫn cách vận hành repo Agentic Malware Analysis: container Kali Linux có sẵn hơn 50 công cụ reverse engineering, skill orchestrator dành cho Claude Code và Codex CLI, pipeline 8 pha, và đầu ra gồm 13 tệp trong thư mục status/. Bạn sẽ hiểu cách chọn MCP back-end giữa Binary Ninja và Ghidra, cách đọc bằng chứng để phân biệt dữ liệu thật với suy luận AI, cũng như cách giảm rủi ro bảo mật khi chạy container –privileged. Đây không phải công cụ thay thế kỹ năng reverse engineering, mà là trợ lý tự động hóa phần triage lặp lại và tạo hồ sơ mẫu để chuyên gia đào sâu. Nếu bạn đang cân nhắc áp dụng AI agent vào quy trình phân tích mã độc, bài viết sẽ giúp bạn quyết định thời điểm, chi phí và rủi ro trước khi chạy lệnh đầu tiên.

Vì sao triage thủ công không theo kịp lượng mẫu hiện nay?
Vì triage thủ công buộc analyst chạy đi chạy lại các lệnh strings, file, YARA, capa và ghi chú bằng tay. Với một họ malware có hàng trăm biến thể, công việc này chiếm phần lớn thời gian trong khi giá trị nằm ở suy luận hành vi và viết báo cáo.
Một container Kali Linux trong repo gói sẵn hơn 50 công cụ RE như file, ssdeep, diec, yara, capa, floss, radare2, rabin2, binwalk, gdb, strace, qemu-user, upx, unblob, ropper – theo README của dự án. Container cài sẵn Python và Node.js 22, theo cùng danh sách phụ thuộc trong README. Bộ YARA rules gồm 4 nhóm: crypto, anti-debug/anti-VM, capabilities, packer, dưới giấy phép GPL-2.0.
Pipeline 8 pha bên trong Docker xử lý PE, ELF và Mach-O như thế nào?
Pipeline nhận diện định dạng file bằng hash và magic bytes, sau đó tự động chọn nhánh xử lý cho 3 định dạng PE, ELF hoặc Mach-O. Dù định dạng nào, tiến trình vẫn đi qua đúng 8 pha: fingerprint, thu thập strings, import, lọc tín hiệu, sinh giả thuyết, kiểm kê component, mô hình tương tác dữ liệu, và lập kế hoạch đào sâu.
Mỗi pha ghi trạng thái vào CURRENT_STATE.json và cập nhật các tệp như 00_sample_profile.md, 05_behavior_hypotheses.md. Nhờ vậy, agent có thể nhớ tiến trình ngay cả khi cửa sổ ngữ cảnh bị nén.
Với mỗi định dạng file, orchestrator tự điều chỉnh lệnh phù hợp. Ví dụ, khi gặp Mach-O, agent ưu tiên objdump và nm thay vì pefile. Còn với PE, nó dùng pefile, floss và pedump.

Binary Ninja hay Ghidra – MCP back-end nào cho chất lượng phân tích cao hơn?
Binary Ninja cho kết quả tốt hơn nhờ API Python và khả năng trả về địa chỉ code cụ thể. Ghidra là phương án miễn phí nhưng MCP server hạn chế hơn. Nếu có file binaryninja.zip, repo tự cài headless; nếu không, hệ thống tự rơi về Ghidra.
Trong cấu hình MCP, Binary Ninja dùng binary-ninja-headless-mcp, còn Ghidra dùng ghidra-headless-mcp. Cả hai cho phép agent gọi hàm, kiểm tra cross-reference và gắn kết luận vào code location cụ thể.
Binary Ninja được giới thiệu tại binary.ninja, còn Ghidra là framework mã nguồn mở tại ghidra-sre.org.
Làm sao cài đặt và chạy pipeline với Claude Code hoặc Codex CLI?
Chỉ cần clone repo, chạy ./run_docker.sh, rồi mở container và gõ lệnh claude hoặc codex kèm prompt phân tích mẫu. Script đảm nhận việc build image, cài MCP server, seed license và mount thư mục hiện tại vào /agent.
- Clone repo: git clone https://github.com/mrphrazer/agentic-malware-analysis.git và copy binaryninja.zip vào thư mục gốc.
- Chạy ./run_docker.sh, chờ build image có cache theo content hash.
- Giải nén mẫu ví dụ: cd examples && unzip -P infected samples.zip.
- Khởi chạy phân tích: gõ claude hoặc codex, kèm prompt chỉ định skill malware-analysis-orchestrator.
- Mở thư mục status/ trên host để xem 13 tệp kết quả.
Repo cung cấp 2 wrapper script là claude và codex, theo GitHub repository. Claude Code được giải thích chi tiết trong tài liệu Anthropic, còn Codex CLI là mã nguồn mở tại github.com/openai/codex.
Nếu dùng Codex thay vì Claude, chạy ./run_docker.sh codex. Cả hai wrapper đều mặc định model mạnh nhất và bỏ qua bước xác nhận quyền để pipeline không bị dừng giữa chừng.

13 tệp trong status/ phân biệt bằng chứng và suy luận AI như thế nào?
Các tệp 00–04 lưu dữ liệu thô từ công cụ, còn từ 05 trở đi là giả thuyết, mô hình tương tác và kế hoạch do AI tổng hợp. Sự tách biệt này giúp bạn đối chiếu đâu là bằng chứng và đâu là phỏng đoán. Vì vậy, bạn không nên tin bất kỳ kết luận nào chưa được đối chiếu với dữ liệu gốc.
Thư mục status/<NNN>-<filename>/ chứa 13 tệp, từ 00_sample_profile.md đến 05_behavior_hypotheses.md và các tệp kế hoạch. Dữ liệu thô như hash, strings, import nằm ở nhóm đầu; giả thuyết hành vi kèm độ tin cậy nằm ở nhóm sau.
Khi review, hãy bắt đầu từ tệp dữ liệu thô trước, sau đó mới đọc giả thuyết của AI. Nếu một nhận định không có dẫn chứng từ tool, hãy coi nó là suy luận và cần kiểm chứng thủ công.
Container –privileged tiềm ẩn rủi ro gì và làm sao giảm thiểu?
Container này chạy với –privileged tương đương, kèm SYS_PTRACE và seccomp=unconfined, nên nó có quyền rất lớn trên host. Nếu mã độc thoát container hoặc bạn mount nhầm thư mục nhạy cảm, hậu quả có thể vượt ngoài phạm vi phân tích.
Để giảm thiểu, chỉ mount đúng thư mục chứa mẫu, không dùng máy dùng chung, không expose port ra mạng. Các MCP server có thể truy cập tệp cục bộ, nên bạn cần đọc Model Context Protocol specification để hiểu phạm vi quyền.
Wrapper dùng flag –dangerously-skip-permissions cho Claude và –dangerously-bypass-approvals-and-sandbox cho Codex. Điều này chấp nhận được trong sandbox chuyên dụng, nhưng không bao giờ được bật trên hệ thống production.
Khi nào nên dùng Agentic Malware Analysis và khi nào tránh?
Nên dùng khi bạn cần triage nhanh một loạt mẫu, có kiến thức nền về PE/ELF/Mach-O, và muốn tái sử dụng hồ sơ để viết báo cáo. Tránh dùng khi bạn mới chập chững reverse engineering hoặc cần automatic dynamic analysis, vì pipeline này chủ yếu là static.
Một SOC team lead có thể dùng công cụ này để sàng lọc mẫu trước, rồi chuyển cho chuyên gia phân tích sâu. Ngược lại, nếu bạn làm việc với tài liệu Office hoặc PDF, hãy xây dựng thêm bước giải nén macro trước khi đưa vào pipeline.

Ba hướng triển khai phân tích mã độc: nhanh hay bền?
Mỗi hướng có đánh đổi riêng: làm thủ công thì linh hoạt, dùng repo Agentic Malware Analysis thì nhanh nhất, còn tự build MCP pipeline thì tốn công nhưng bền vững. Nếu bạn chỉ cần kết quả nhanh, hãy chọn hướng thứ hai; nếu muốn kiểm soát sâu, hãy tính chuyện tự build.
| Tiêu chí | Phân tích thủ công | Agentic Malware Analysis | Tự build MCP pipeline |
|---|---|---|---|
| Thời gian bắt đầu | Không cần cài đặt | Vài phút | Nhiều ngày |
| Hồ sơ đầu ra | Ghi chú tự do | 13 tệp có cấu trúc | Tùy thiết kế |
| Độ tin cậy | Phụ thuộc analyst | Cần review giả thuyết AI | Tùy pha review |
| Chi phí | Nhân lực cao | API key + Docker | Chi phí code + hạ tầng |
Nếu tự build, hãy bắt đầu từ tài liệu MCP official docs để hiểu rõ 3 loại nguyên thủy: tools, resources và prompts. Cách tổ chức này giúp bạn kiểm soát quyền truy cập tốt hơn so với dùng repo có sẵn.
Câu hỏi thường gặp
Tôi có bắt buộc dùng Binary Ninja không?
Không. Repo tự dùng Ghidra nếu không có binaryninja.zip. Binary Ninja thường trả về code location chính xác hơn, nên nếu phân tích chuyên nghiệp, bạn nên đầu tư license. Không có Binary Ninja, pipeline vẫn chạy đủ 8 pha.
Kết quả AI đưa ra có chính xác hoàn toàn không?
Không. Các giả thuyết trong nhóm tệp từ 05 có thể quá tự tin, vì agent không hiểu ngữ cảnh như con người. Bạn phải đối chiếu với dữ liệu thô ở nhóm tệp đầu và xác nhận trước khi đưa vào báo cáo.
Tôi có phân tích được tài liệu Office hoặc PDF không?
Pipeline nhận diện định dạng thay vì ép một loại file. Tuy nhiên, repo tối ưu cho PE/ELF/Mach-O. Với docx hoặc pdf, agent có thể dùng script ngoài, nhưng bạn cần mở rộng toolset và hướng dẫn thêm cho orchestrator.
Claude Code và Codex CLI khác nhau ra sao trong repo này?
Cả hai đều dùng chung skill orchestrator và pipeline 8 pha. Khác biệt chính là wrapper: claude mặc định model Opus, còn codex dùng mô hình OpenAI. Bạn chọn theo API key và quy trình nội bộ của đội ngũ.
Kết luận
Agentic Malware Analysis không thay thế chuyên gia reverse engineering, nhưng loại bỏ phần lớn thao tác triage lặp lại. Với container chứa hơn 50 công cụ, kết nối MCP tới Binary Ninja/Ghidra, và hồ sơ 13 tệp, bạn có thể tập trung vào suy luận hành vi và viết báo cáo.
Bắt đầu bằng cách clone repository, chạy quick start, rồi để AI lo phần việc nền. Bạn vẫn là người giữ quyền quyết định cuối cùng trước khi công bố kết luận.

