Đến nội dung chính
Phạm Nam

Tìm kiếm

Nhập từ khoá để tìm trong các bài viết.

Quay lại

Security Audit Skill: Cho AI Agent Tự Audit Code

Security Audit Skill của Cloudflare biến coding agent thành auditor: quét 6 giai đoạn, xác minh chéo, xuất báo cáo JSON. Hướng dẫn cài đặt và dùng thực tế.

9 phút đọc—

AI viết code ngày càng nhanh, vậy ai soát code?

Năm nay, chuyện một dev dùng AI agent viết cả tính năng trong một buổi chiều đã không còn lạ. Nhưng có một câu hỏi ít người trả lời thẳng: đoạn code AI vừa viết, ai đã soát bảo mật cho nó?

Thực tế phũ phàng là: bảo AI “soát giúp anh đoạn code này có lỗ hổng không”, nó sẽ trả lời rất tự tin — và một phần trong đó là phát hiện ảo. Đó là lý do audit bảo mật bằng AI agent cần một quy trình chặt chẽ, chứ không phải chỉ một câu prompt.

Ngày 25/10/2026, repo cloudflare/security-audit-skill leo lên #1 GitHub Trending với hơn 2.200 sao chỉ trong một ngày. Đây không phải một scanner mới. Nó là một skill — tức một bộ quy trình, prompt và công cụ kiểm chứng — biến coding agent của bạn thành một auditor làm việc có phương pháp. Và quan trọng nhất: nó được sinh ra từ chính hệ thống săn lỗ hổng nội bộ của Cloudflare. Trước đó mình từng viết về Heldkeys — công cụ quét xem AI agent đang cầm những khóa nào; skill này đi tiếp một bước: cho agent tự audit code.

Minh họa AI agent đang quét mã nguồn để tìm lỗ hổng bảo mật, với khiên chắn và bảng báo cáo
Trước khi tin AI agent, hãy để một quy trình audit có phản biện kiểm chứng lại nó.

Security Audit Skill là gì?

Theo repo chính thức, security-audit là một coding-agent skill do Cloudflare phát hành (giấy phép MIT, tạo ngày 18/06/2026). Nó là đáp án thực tế cho bài toán audit bảo mật bằng AI agent: thay vì hỏi AI một câu và nhận một câu trả lời, nó điều phối các agent độc lập qua các giai đoạn: trinh sát, săn lỗ hổng theo coverage, xác minh ứng viên, xuất kết quả có cấu trúc, kiểm chứng độc lập và báo cáo trung lập.

Nói cách dễ hiểu: thay vì bạn hỏi agent một câu và nhận một câu trả lời, skill này bắt agent làm theo quy trình của một đội audit thật — có người trinh sát, có người săn, có người phản biện, có người kiểm chứng độc lập. Agent tìm ra lỗ hổng không được tự xác nhận phát hiện của chính mình.

Skill bao gồm các file hướng dẫn theo từng lớp tấn công: web, auth, client-side, supply chain, cloud/IAM, container, serverless, protocol/RPC, memory-safety, và cả lớp tấn công riêng cho hệ thống AI/LLM như prompt injection. Nghĩa là nó không chỉ soi code web thông thường, mà còn soi cả những chỗ AI agent hay “hớ” nhất.

Cách nó hoạt động: 6 giai đoạn, không bỏ bước

Theo repo chính thức, quy trình gồm 6 giai đoạn:

Giai đoạn 1 — Reconnaissance (Trinh sát). Agent vẽ bản đồ kiến trúc, ranh giới tin cậy, các bề mặt nhận input và bằng chứng đã có, ghi vào architecture.md và coverage-ledger.json. Đây là bước nhiều người bỏ qua nhất khi audit thủ công — và cũng là bước quyết định audit có sót hay không.

Giai đoạn 2 — Coverage-led hunting (Săn theo coverage). Các “hunter” độc lập được giao từng đơn vị trong ledger để săn, kèm “coverage critic” chuyên đi tìm chỗ chưa được soi tới. Mục tiêu: không còn vùng mù.

Giai đoạn 3 — Candidate validation (Xác minh ứng viên). Mỗi ứng viên lỗ hổng được giao cho một verifier hoàn toàn mới, với nhiệm vụ cố gắng bác bỏ nó. Đây là điểm khác biệt lớn nhất so với việc hỏi AI một câu: có một bên phản biện chuyên nghiệp.

Giai đoạn 4 — Structured output (Kết quả có cấu trúc). Mọi phát hiện được ghi vào findings.json với 3 trạng thái rõ ràng, và được kiểm tra bằng validator validate-findings.cjs (không cần cài thêm dependency, chạy bằng Node.js).

Giai đoạn 5 — Independent record verification (Kiểm chứng độc lập). Một lượt agent mới kiểm chứng lại từng khẳng định về mã nguồn trong báo cáo cuối. Nếu có chỗ nào bị thay thế, chỗ đó lại qua thêm một verifier độc lập nữa.

Giai đoạn 6 — Target-neutral reporting (Báo cáo trung lập). Từ các bản ghi đã kiểm chứng, skill sinh ra REPORT.md, FINDINGS-DETAIL.md và NEEDS-VALIDATION.md. Báo cáo chỉ nói những gì đã xác lập, không suy diễn thêm.

Một chi tiết đáng chú ý: chạy nhiều lần lên cùng một repo thì kết quả cộng dồn — lần sau tận dụng ledger cũ để nhắm vào chỗ chưa soi và kiểm tra lại code đã thay đổi. Chính README cũng thừa nhận: một lần chạy chỉ tìm được khoảng một nửa số lỗ hổng mà nhiều lần chạy cộng lại tìm được. Nghĩa là đừng audit một lần rồi kết luận “sạch”.

Cài đặt trong 2 phút

Theo README, cài bằng Skills CLI:

npx skills add https://github.com/cloudflare/security-audit-skill \
  --skill security-audit

Cài ở cấp user (dùng cho mọi project) thì thêm --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.

Yêu cầu hệ thống (theo README):

  • Một coding agent có model hỗ trợ tool use và chạy sub-agent song song.
  • Node.js (để chạy các validator không cần dependency).
  • Một sandbox do hệ điều hành ép buộc khi chạy code của target (build, test, fuzzer…): tắt network ngoài, môi trường allowlist đã làm sạch, giới hạn tài nguyên, chỉ được ghi vào thư mục scratch chỉ định. Không có sandbox này, workflow sẽ giữ phát hiện ở trạng thái needs_validation thay vì thực thi code target.

Cách dùng thực tế

Mở coding agent tại (hoặc trỏ tới) codebase cần audit, rồi ra lệnh như bình thường:

security audit this codebase
find security vulnerabilities in ./src
do a security review, output to ~/audits/my-project

Skill tự kích hoạt khi yêu cầu khớp trigger (security audit, find vulnerabilities, pen-test…). Yêu cầu audit trực tiếp dùng full audit mode; câu hỏi bảo mật lẻ hoặc soi một lỗ hổng cụ thể dùng guidance mode trừ khi bạn yêu cầu xuất báo cáo. Ở full audit mode, nếu không chỉ định thư mục output, mặc định là ~/security-audit-skill/<tên-repo>/run-<N>. Workflow chỉ ghi vào trong repo target khi bạn explicitly chọn một thư mục mà version control bỏ qua.

Đọc output: 3 trạng thái verdict

Trạng tháiÝ nghĩaBạn nên làm gì
confirmedCó đầy đủ dấu vết mã nguồn và kết quả quan sát được, đã xác lập là lỗi vượt ranh giớiƯu tiên sửa ngay, đánh severity theo impact
needs_validationCòn một dữ kiện chưa xác minh được chính xác, không gắn severityĐừng vội kết luận, đi xác minh nốt dữ kiện đó
rejectedỨng viên đã bị bác bỏBỏ qua, nhưng giữ bản ghi để lần sau khỏi săn lại

⚠️ LƯU Ý QUAN TRỌNG: needs_validation không phải là “nghi ngờ có lỗi” để bạn cộng vào báo cáo cho oai. Theo nguyên tắc thiết kế của skill, severity chỉ được gắn khi có impact thật — lệch khỏi checklist chưa chắc đã là lỗ hổng. Đọc kỹ trạng thái trước khi báo cáo lên sếp.

Ưu điểm và nhược điểm

Phần dưới đây là nhận định của mình dựa trên thông tin từ repo — không phải tuyên bố chính thức của Cloudflare.

Ưu điểm

  • Chống ảo giác bằng cấu trúc, không bằng lời hứa. Cơ chế “người tìm không được tự xác nhận” là cách đúng để trị bệnh AI tự tin thái quá. Scanner AI thông thường không có lớp này.
  • Output máy đọc được. findings.json có schema, có validator, có thể đưa vào pipeline CI hoặc đối chiếu giữa các lần chạy — thay vì một đoạn chat dài khó đối soát.
  • Coverage ledger trị bệnh sót. Audit thủ công hay hỏi AI tự do đều dễ sót vùng code ít ai để ý. Ledger ép phải soi hết rồi mới kết luận.
  • Mã nguồn mở, MIT. Team nhỏ, cá nhân đều dùng được, không bị khóa nhà cung cấp.
  • Biết giới hạn của chính mình. Việc README nói thẳng “một lần chạy chỉ được khoảng một nửa” và giữ needs_validation thay vì đoán mò là dấu hiệu của công cụ đáng tin.

Nhược điểm và giới hạn

  • Đắt token và đắt thời gian. Nhiều agent độc lập, nhiều vòng xác minh đồng nghĩa chi phí model cao hơn hẳn một lần hỏi. Team nhỏ cần cân nhắc chạy full audit theo đợt, không phải mỗi commit.
  • Đòi hỏi agent mạnh. Model phải hỗ trợ tool use và sub-agent song song — không phải agent nào cũng chạy được. Danh sách agent tương thích cụ thể ngoài các agent phổ biến cần kiểm tra thêm trong docs của skill.
  • Sandbox là yêu cầu cứng, không phải khuyến nghị. Nếu bạn cho agent chạy code không tin cậy mà không có sandbox đúng chuẩn, bạn đang tự mở cửa cho rủi ro mới.
  • Chưa thay thế pentest chuyên nghiệp. Skill tìm lỗi code, nhưng logic nghiệp vụ phức tạp, chuỗi tấn công đa bước ngoài code vẫn cần người có kinh nghiệm. Đừng dùng báo cáo confirmed để tuyên bố “hệ thống đã an toàn tuyệt đối”.
  • Chưa test chạy thực tế trên repo thật — các con số về thời gian chạy, tỷ lệ false positive thực tế cần test tay trước khi đưa vào quy trình chính thức.

So sánh nhanh

Tiêu chíSecurity Audit SkillScanner SAST truyền thốngAudit thủ công bởi chuyên gia
Cách phát hiệnAgent suy luận theo ngữ cảnh + xác minh chéoRule có sẵn, quét theo mẫuKinh nghiệm + suy luận con người
False positiveThấp hơn nhờ lớp phản biệnCao với rule chung chungThấp nhất, nhưng chậm
Tốc độTrung bình (nhiều vòng agent)Rất nhanhChậm nhất
Hiểu logic nghiệp vụCó, ở mức nhất địnhGần như khôngTốt nhất
Chi phíToken modelLicense/thấpNhân sự cao
OutputJSON có cấu trúc + báo cáoBáo cáo rule-basedBáo cáo tùy người viết

Nhận định của mình: ba công cụ này không thay thế nhau mà bổ sung cho nhau. Scanner SAST chạy nhanh mỗi commit, Security Audit Skill chạy sâu theo đợt release, chuyên gia vào những chỗ nhạy cảm nhất.

Use-case thực tế cho sysadmin và team nhỏ

  1. Audit trước release lớn. Chạy full audit lên repo trước khi deploy bản có thay đổi về auth, thanh toán, phân quyền. Đọc confirmed trước, needs_validation sau.
  2. Soi dependency và CI. Skill có hẳn lớp supply-chain: dependency, CI, release, signing, plugin — đúng chỗ sysadmin hay bị “ngủ quên”.
  3. Audit hạ tầng dưới dạng code. Lớp cloud/deployment soi IAM, IaC, container, serverless, ingress — rất hợp với team đang chạy Docker/Kubernetes mà chưa có chuyên gia bảo mật riêng.
  4. Rà soát code AI viết. Team đang để AI agent viết code thì dùng chính AI agent (có quy trình) để soát lại — nhưng nhớ giữ sandbox và đừng để agent audit tự sửa code production mà không qua review người.
  5. Làm tài liệu bàn giao. REPORT.md và FINDINGS-DETAIL.md có cấu trúc rõ ràng, dùng được luôn làm bằng chứng audit nội bộ.

💡 MẸO DÙNG AI: Chạy audit 2–3 lần lên cùng repo vào các đợt khác nhau thay vì một lần duy nhất, vì kết quả cộng dồn theo coverage ledger. Lần đầu để lấy khung, các lần sau để lấp vùng mù và kiểm tra lại code mới đổi.

Kết luận: có nên dùng không?

Nếu bạn đang dùng coding agent và từng bực mình vì nó báo lỗ hổng ảo, Security Audit Skill là thứ đáng thử nhất trong tuần này. Nó cho thấy audit bảo mật bằng AI agent hoàn toàn có thể làm nghiêm túc — không phải bằng lời hứa “AI thay pentester”, mà bằng quy trình, phản biện và bằng chứng.

Bắt đầu từ repo nhỏ, chạy thử một lần, đọc kỹ findings.json trước khi tin bất kỳ phát hiện nào. Và nhớ: sandbox trước, audit sau — đừng để công cụ bảo mật trở thành lỗ hổng mới.

Link repo gốc: https://github.com/cloudflare/security-audit-skill Giấy phép: MIT — dùng, sửa, chia sẻ thoải mái, nhớ giữ lại ghi nhận bản quyền của tác giả gốc.


Bài viết liên quan

  • 10 phút đọc—

    Superpowers AI coding agent: spec trước, test trước

    Superpowers giúp AI coding agent làm việc kỷ luật hơn: hỏi rõ ý đồ, viết plan task 2–5 phút, TDD và review hai vòng trước khi merge. Cách cài cho từng harness.

  • 10 phút đọc—

    REA: Reverse Engineer Ứng Dụng Bằng AI Agent

    REA kết nối AI agent qua MCP để phân tích ứng dụng không cần source code: từ app JavaScript/Electron xuống tới native binary, kèm evidence và giới hạn.

Bình luận

Bình luận được duyệt trước khi hiển thị.

Đang tải bình luận…

Để lại bình luận