security-audit-skill: skill kiểm tra bảo mật cho coding agent
security-audit-skill của Cloudflare biến coding agent thành người kiểm tra bảo mật, chạy sáu giai đoạn với phát hiện được xác minh độc lập và xuất ra dạng máy đọc được.
Cập nhật lúc
security-audit-skill là gì
Nếu bạn đang dùng coding agent để viết và sửa code, có lẽ bạn từng nghĩ: liệu agent có thể giúp mình rà soát lỗ hổng bảo mật một cách bài bản không? cloudflare/security-audit-skill là câu trả lời mà Cloudflare đưa ra. Đây là một skill dành cho coding agent, giúp agent của bạn trở thành một người kiểm tra bảo mật (security auditor).
Skill này điều phối nhiều agent tách biệt qua các bước: trinh sát, săn lỗi theo độ phủ, kiểm chứng ứng viên, xuất kết quả có cấu trúc, xác minh độc lập từng bản ghi và viết báo cáo trung lập. Các phát hiện được xuất ra ở dạng máy đọc được, kèm bộ kiểm tra schema riêng.
Theo README, đây chính là skill khởi nguồn cho hệ thống tìm lỗ hổng của Cloudflare, được mô tả trong bài viết Build your own vulnerability harness. Hệ thống đó sau này phát triển thành một nền tảng nhiều tầng chạy trên quy mô lớn, còn skill này là điểm xuất phát cho một repository đơn lẻ. Dự án phù hợp với lập trình viên, kỹ sư bảo mật và những ai muốn thử nghiệm công cụ bảo mật dựa trên AI.
Quy trình kiểm tra sáu giai đoạn
Điểm nổi bật nhất của skill là quy trình rõ ràng gồm sáu giai đoạn:
- Trinh sát (Reconnaissance): lập bản đồ kiến trúc, ranh giới tin cậy, các bề mặt đầu vào, bằng chứng có sẵn và độ phủ, ghi vào
architecture.mdvàcoverage-ledger.json. - Săn lỗi theo độ phủ: giao cho các agent săn lỗi tách biệt từng đơn vị trong sổ độ phủ, ghi lại những gì đã kiểm tra, và dùng các agent phản biện độ phủ để tìm chỗ còn sót.
- Kiểm chứng ứng viên: mỗi ứng viên lỗ hổng được giao cho một agent kiểm chứng mới, có nhiệm vụ cố gắng bác bỏ nó.
- Xuất kết quả có cấu trúc: ghi các bản ghi
confirmed,needs_validationvàrejectedvàofindings.json, rồi kiểm tra theoreport-schema.json. - Xác minh độc lập bản ghi: các agent mới xác minh lại những khẳng định cuối cùng về mã nguồn. Nếu có thay thế đáng kể, một agent độc lập khác sẽ xác minh tiếp.
- Báo cáo trung lập: tạo
REPORT.md,FINDINGS-DETAIL.mdvàNEEDS-VALIDATION.mdtừ các bản ghi đã xác minh và sổ độ phủ.
Trong suốt quá trình, agent chính chạy validate-coverage-ledger.cjs sau khi tạo sổ độ phủ và sau mỗi lần cập nhật. Còn validate-findings.cjs được chạy ở giai đoạn 4 và sau mỗi lần thay thế ở giai đoạn 5.
Ba loại kết luận rõ ràng
Skill phân biệt rõ ba loại kết luận:
- confirmed: có dấu vết mã nguồn đầy đủ và kết quả quan sát được trong giới hạn xác định.
- needs_validation: còn một dữ kiện cụ thể chưa được giải quyết, và không gán mức độ nghiêm trọng.
- rejected: ứng viên đã bị bác bỏ.
Cách phân loại này giúp bạn biết chính xác đâu là lỗi thật, đâu là manh mối cần kiểm tra thêm, thay vì nhận về một danh sách cảnh báo lẫn lộn.
Bộ hướng dẫn săn lỗi theo từng lĩnh vực
Repository đi kèm nhiều tệp Markdown chứa hướng dẫn và các lớp tấn công cho từng loại mục tiêu, ví dụ:
ATTACK-CLASSES.md: các lớp tấn công cốt lõi và những thứ hiển nhiên dễ bỏ qua.MEMORY-SAFETY-AND-BINARY.md: an toàn bộ nhớ, binary và kernel cho mục tiêu native.AI-AND-LLM.md: prompt injection, agent và công cụ, xử lý đầu ra cho ứng dụng dùng LLM.WEB-PROTOCOL-AND-AUTH.mdvàCLIENT-SIDE.md: giao thức HTTP, cache, xác thực, DOM injection, prototype pollution.SUPPLY-CHAIN-AND-RELEASE.mdvàCLOUD-AND-DEPLOYMENT.md: phụ thuộc, CI, phát hành, IAM, container, serverless.- Các tệp khác về RPC và messaging, cạn kiệt tài nguyên, cô lập dữ liệu, ứng dụng desktop, mobile và IPC cục bộ.
Ngoài ra còn có các tệp validator viết bằng JavaScript không cần phụ thuộc, kèm bộ test riêng.
Chạy nhiều lần để tăng độ phủ
Nhiều lần chạy trên cùng một repository sẽ cộng dồn kết quả. Skill dùng sổ độ phủ và phát hiện cũ để nhắm vào chỗ còn thiếu, kiểm tra lại mã nguồn đã thay đổi, đồng thời không coi các phần cũ hoặc chưa giải quyết là đã được phủ.
README cho biết trong các lần chạy thử của nhóm, một lần chạy đơn lẻ tìm được khoảng một nửa số lỗ hổng so với tổng số tìm được qua nhiều lần chạy.
Nguyên tắc thiết kế
- Chỉ xác nhận lỗi ranh giới đã được chứng minh. Manh mối bị chặn sẽ giữ ở trạng thái
needs_validation. - Kiểm chứng đối kháng. Agent kiểm tra một phát hiện không bao giờ là agent đã tìm ra nó.
- Mức độ nghiêm trọng cần có tác động. Dựa trên khả năng xảy ra nhân với tác động, không phải chỉ lệch khỏi checklist.
- Thiếu lớp phòng thủ bổ sung không phải lỗ hổng. Nếu lớp A đã chặn tấn công, việc thiếu lớp B chỉ là ghi chú gia cố.
Cách bắt đầu
- Chuẩn bị một coding agent dùng model hỗ trợ tool use và sub-agent song song, cùng Node.js cho các validator.
- Cài skill bằng Skills CLI:
npx skills add https://github.com/cloudflare/security-audit-skill \ --skill security-audit - Nếu muốn cài ở cấp người dùng, thêm cờ
--global:npx skills add https://github.com/cloudflare/security-audit-skill \ --skill security-audit \ --global - Chạy
npx skills --helpđể xem tùy chọn chọn agent và chế độ không tương tác. - Mở coding agent trong codebase cần kiểm tra và yêu cầu, ví dụ:
security audit this codebasedo a security review, output to ~/audits/my-project
Skill tự kích hoạt khi yêu cầu khớp với từ khóa như security audit hay find vulnerabilities. Yêu cầu kiểm tra toàn bộ codebase dùng chế độ audit đầy đủ, còn câu hỏi bảo mật cụ thể dùng chế độ hướng dẫn. Nếu không chỉ định thư mục, kết quả mặc định nằm ở ~/security-audit-skill/<repo-name>/run-<N>.
Lưu ý khi sử dụng
- Bạn cần một sandbox do hệ điều hành cưỡng chế để chạy build, test và các tiến trình của mục tiêu: tắt mạng ra ngoài, môi trường đã làm sạch, giới hạn tài nguyên, chỉ cho ghi vào thư mục tạm được chỉ định. Nếu thiếu, skill sẽ giữ manh mối ở
needs_validationthay vì chạy code của mục tiêu. - Skill chỉ ghi vào repository mục tiêu khi bạn chọn rõ một thư mục đã được version control bỏ qua.
- Dự án dùng giấy phép MIT, viết bằng JavaScript và đang có hơn 34.000 sao trên GitHub.
Kết luận
security-audit-skill mang đến một quy trình kiểm tra bảo mật có kỷ luật cho coding agent, với điểm mạnh là kiểm chứng đối kháng và kết quả có cấu trúc rõ ràng. Nếu bạn muốn thử dùng AI để rà soát lỗ hổng một cách nghiêm túc, hãy xem chi tiết tại github.com/cloudflare/security-audit-skill.