Cloudflare Security Audit: Rà soát bảo mật mã nguồn cho coding agent
Khi dùng Cursor hay Claude Code để lập trình, lượng code sinh ra mỗi ngày rất lớn. Nếu chỉ dùng các câu prompt nhờ AI review chung chung, bạn sẽ gặp hai phiền toái quen thuộc: cảnh báo giả tràn lan, hoặc AI tự vẽ ra những lỗ hổng không có thật rồi khăng khăng bảo vệ giả thuyết đó.
Security Audit Skill là công cụ do nhóm nghiên cứu bảo mật tại Cloudflare (Dan Jones, Alexandra Godoi, Grant Bourzikas) phát triển. Ban đầu dự án chỉ là một skill khoảng 450 dòng mã chạy trên từng repo riêng lẻ, sau đó được mở rộng và áp dụng trên hơn 140 dịch vụ nội bộ của Cloudflare (từ proxy mạng, DNS cho đến backend phân tán), phát hiện hơn 13.000 vấn đề bảo mật thực tế.
Bộ kit giúp coding agent tự động rà soát và phát hiện các lỗi bảo mật trên toàn bộ codebase trước khi bạn merge code hoặc đưa lên production.
1. Các nhóm lỗ hổng được rà soát
Bộ skill không chỉ kiểm tra vài lỗi bề mặt mà phân chia kiểm tra theo từng module cụ thể trong ATTACK-CLASSES.md:
| Nhóm kiểm tra | Vấn đề trọng tâm | Tài liệu quy chuẩn |
|---|---|---|
| Web & API | Xử lý header HTTP, request smuggling, xác thực JWT/session, SSRF, IDOR, phân quyền. | WEB-PROTOCOL-AND-AUTH.md |
| Bộ nhớ & Hệ thống | Quản lý bộ nhớ trong C/C++/Rust/Go, tràn bộ đệm, con trỏ treo, tương tác kernel. | MEMORY-SAFETY-AND-BINARY.md |
| Client-side | DOM XSS, prototype pollution, kiểm tra origin postMessage, lộ secret trong bundle trình duyệt. | CLIENT-SIDE.md |
| Hạ tầng & CI/CD | Cấu hình pipeline CI/CD, dependency injection, phân quyền IAM, rò rỉ secret trong file IaC. | SUPPLY-CHAIN-AND-RELEASE.md |
| Ứng dụng AI & MCP | Lỗi tiêm nhiễm gián tiếp qua tool/RAG, lệch pha schema của tool, rò rỉ dữ liệu giữa các tenant, nhầm lẫn máy chủ MCP. | AI-AND-LLM.md |
2. Quy trình rà soát đối kháng
Điểm khác biệt trong thiết kế của Cloudflare là quy tắc: agent tìm ra lỗ hổng không bao giờ là agent thẩm định lại lỗ hổng đó.
[!NOTE] Bài viết nghiên cứu ban đầu của Cloudflare mô tả quy trình 7 pha vì có thêm bước nạp dữ liệu lên dashboard nội bộ. Bản mã nguồn mở này đã tinh gọn thành 6 pha chạy cục bộ độc lập, không phụ thuộc dịch vụ ngoài.
Quy trình phối hợp qua 4 bước:
- Trinh sát và lập sổ cái: Quét cấu trúc repo, xác định ranh giới tin cậy và lập danh mục kiểm thử xác định trong file
coverage-ledger.json. - Săn lỗi độc lập (Hunter): Mỗi Hunter chỉ nhận một phạm vi hẹp từ sổ cái, kiểm tra mã nguồn và ghi nhận các điểm nghi vấn vào thư mục
scratch/. - Phản biện độc lập (Verifier): Một agent Verifier mới toanh vào cuộc với mục tiêu tìm cách bác bỏ phát hiện của Hunter bằng code thực tế, giúp loại bỏ cảnh báo giả.
- Phân loại và xuất báo cáo: Kết quả được chia rõ thành
confirmed(đã xác thực kèm test case),needs_validation(cần môi trường staging kiểm tra thêm), vàrejected(đã bị bác bỏ).
3. Cơ chế sandbox cách ly
Khi để coding agent tự động chạy test hoặc dựng kịch bản tái hiện lỗi, nếu không có cơ chế cách ly thì rủi ro làm hỏng máy dev hoặc lộ secret là rất lớn. Bộ skill áp dụng 3 quy tắc an toàn:
- Khóa hoàn toàn mạng ngoài: Môi trường test không có kết nối Internet, chỉ cho phép kết nối loopback nội bộ khi cần kiểm tra giao tiếp client-server.
- Mã nguồn chỉ đọc, file tạm ghi vào scratch: Repository gốc luôn ở chế độ read-only. Agent chỉ được tạo file tạm trong
scratch/<agent-id>/. Thư mục lưu kết quả chính thứcartifacts/do tiến trình cha quản lý độc quyền. - Kiểm định file trước khi lưu kết quả: Để chuyển file bằng chứng từ
scratch/sangartifacts/, hệ thống kiểm tra qua file descriptor (fstat), từ chối symlink, giới hạn dung lượng và chặn hoàn toàn các socket hay đường ống FIFO.
4. Cài đặt và sử dụng
Bạn có thể dùng bộ skill này với Cursor, Claude Code, Windsurf hoặc bất kỳ công cụ nào hỗ trợ chuẩn SKILL.md.
Cách 1: Cài đặt qua Skills CLI
Cài đặt bằng URL kho mã nguồn và tham số --skill:
# Cài đặt cho workspace hiện tại
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
# Hoặc cài đặt dùng chung cho toàn máy
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit --global
Cách 2: Tải thủ công vào dự án
git clone https://github.com/cloudflare/security-audit-skill.git .agents/skills/security-audit
[!IMPORTANT] Mặc định skill sẽ lưu kết quả ra ngoài thư mục dự án tại
~/security-audit-skill/<repo-name>/run-<N>. Nếu muốn ghi trực tiếp trong repo, bạn cần thêm đường dẫn đó vào.gitignoređể tránh agent quét lại chính những file báo cáo vừa tạo.
Câu lệnh chạy rà soát
Trong cửa sổ chat với coding agent, bạn chạy câu lệnh:
Run a comprehensive security audit on this repository using the security-audit-skill workflow.
Focus on:
1. Input surfaces, trust boundaries, and deterministic ledger creation (Phase 1 Recon).
2. Relevant attack classes based on our tech stack (web APIs, memory safety, auth, dependencies).
3. Validate all candidate findings adversarially before generating final reports.
Kết quả sau khi chạy
Hệ thống sẽ tạo 3 tài liệu chính:
REPORT.md: Báo cáo tóm tắt phạm vi kiểm thử và tỷ lệ bao phủ code.FINDINGS-DETAIL.md: Danh sách lỗ hổng đã xác thực (confirmed) kèm đoạn mã nguồn và phương án sửa lỗi.NEEDS-VALIDATION.md: Các điểm nghi vấn cần kiểm tra lại trên môi trường staging hoặc production.