Security Audit Skill là skill mã nguồn mở (giấy phép MIT) của Cloudflare, biến coding agent thành một quy trình audit bảo mật 6 giai đoạn: khảo sát kiến trúc, săn lỗ hổng theo phạm vi, kiểm chứng, xuất dữ liệu có cấu trúc, xác minh độc lập và lập báo cáo. Bạn cài skill bằng 1 lệnh npx, kích hoạt bằng 1 câu prompt và nhận về 6 tệp kết quả, trong đó mỗi phát hiện mang 1 trong 3 trạng thái confirmed, needs_validation hoặc rejected.
Bài viết này An Trần Digital hướng dẫn 7 bước từ cài đặt, chạy audit, đọc báo cáo, sửa lỗi đến audit lại; cách gắn skill vào workflow vibe coding; và 3 nguyên tắc an toàn khi giao mã nguồn cho AI kiểm tra. Mục tiêu cuối cùng: chặn các lỗi phân quyền, injection, lộ API key trước khi ứng dụng do AI viết được đưa lên production.
Security Audit Skill là gì?
Security Audit Skill là bộ chỉ dẫn (skill) giúp coding agent kiểm tra mã nguồn theo một quy trình audit nhiều bước, thay vì đọc lướt rồi đoán lỗi. Cloudflare công bố skill này trên GitHub tại repo cloudflare/security-audit-skill.
Để duy trì blog ngoài link rút gọn & mình có làm aff cho 1 số bên hosting.
Các nhà cung cấp uy tín về mặt chất lượng & đội ngũ support nên mọi người cứ yên tâm.
Nếu bạn đang có ý định mua Hosting, VPS mình có list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều
- Azdigi: Giá rẻ thì dùng gói Pro Gold Hosting còn chất lượng hơn thì em khuyên dùng Business Hosting. Có điều kiện thì lên VPS nhé
- Tino: Business Hosting, NVMe Hosting và NVMe VPS
- iNet: Cloud VPS và Web Hosting
- Tenten: Wordpress Hosting, SSD Hosting, Cloud Server và Tên miền .VN
- Nước ngoài có: Vultr và Hawk Host
Nguyên tắc cốt lõi của skill là “có bằng chứng mới ghi nhận”: một nghi vấn chỉ được xếp vào nhóm lỗ hổng khi agent truy vết được đường đi của dữ liệu trong mã nguồn và chỉ ra tác động cụ thể. Cách làm này cắt giảm cảnh báo sai (false positive) — điểm yếu lớn nhất khi nhờ AI “tìm lỗi bảo mật” một cách chung chung.
Skill không gắn với một công cụ cụ thể. README chỉ yêu cầu coding agent chạy model hỗ trợ gọi công cụ (tool use) và chạy song song nhiều agent con (sub-agent), kèm Node.js để chạy các trình kiểm tra schema.
Repository chính thức: https://github.com/cloudflare/security-audit-skill
Vì sao người làm vibe coding cần audit bảo mật?
Người làm vibe coding cần audit vì tốc độ sinh mã bằng AI thường đến cùng việc bỏ qua khâu kiểm tra phân quyền, xác thực đầu vào và bảo vệ API trước khi lên production. Mã chạy được chưa có nghĩa là mã an toàn.
6 nhóm lỗi hay xuất hiện trong ứng dụng do AI viết:
- Phân quyền sai: tài khoản thường gọi được API dành cho quản trị viên.
- SQL Injection: truy vấn ghép chuỗi trực tiếp từ dữ liệu người dùng nhập.
- Lộ thông tin bí mật: API key, mật khẩu nằm trong mã nguồn hoặc bị ghi ra log.
- Upload tệp không an toàn: không giới hạn loại tệp, kích thước, nơi lưu.
- Lỗi logic nghiệp vụ: bỏ qua bước thanh toán, không kiểm tra quyền sở hữu tài nguyên.
- API thiếu lớp bảo vệ: không xác thực, không giới hạn tần suất (rate limit), không kiểm tra dữ liệu đầu vào.
Security Audit Skill khác gì so với việc tự nhờ AI “tìm lỗi bảo mật”?
Security Audit Skill khác ở chỗ mỗi kết luận phải qua nhiều agent độc lập kiểm tra chéo, còn một prompt thông thường chỉ cho 1 lượt đọc và 1 danh sách “có thể có lỗi”.
| Tiêu chí | Prompt “tìm lỗi bảo mật” thông thường | Security Audit Skill |
|---|---|---|
| Cách đọc mã | 1 lượt, thường dừng ở vài tệp nổi bật | Lập bản đồ kiến trúc rồi quét theo từng nhóm rủi ro |
| Kiểm chứng | Không có | Verifier mới cố bác bỏ từng nghi vấn |
| Theo dõi phạm vi đã quét | Không | Có tệp coverage-ledger.json |
| Định dạng kết quả | Văn bản tự do | findings.json theo schema + 3 báo cáo Markdown |
| Phân loại độ tin cậy | Không | 3 trạng thái confirmed / needs_validation / rejected |
| Nguy cơ cảnh báo sai | Cao | Giảm nhờ xác minh chéo, nhưng không về 0 |
Bảng trên cho thấy đánh đổi: skill tốn nhiều lượt gọi model hơn, bù lại kết quả có cấu trúc và đáng tin hơn để đưa vào quyết định deploy.
Quy trình audit 6 giai đoạn của Security Audit Skill hoạt động thế nào?
Quy trình audit của Security Audit Skill gồm 6 giai đoạn nối tiếp, mỗi giai đoạn giao cho agent con riêng để kết luận của bước sau không bị “ăn theo” bước trước.
| # | Giai đoạn | Việc agent làm | Đầu ra |
|---|---|---|---|
| 1 | Reconnaissance — khảo sát | Vẽ bản đồ kiến trúc, ranh giới tin cậy (trust boundary) và điểm nhận dữ liệu từ bên ngoài, chẳng hạn API route, luồng đăng nhập, trang quản trị, dịch vụ bên thứ ba | architecture.md |
| 2 | Coverage-led Hunting — săn lỗi theo phạm vi | Nhiều agent “hunter” độc lập quét theo nhóm rủi ro: injection, xác thực, phân quyền, mật mã, logic nghiệp vụ, chuỗi khai thác kết hợp; 1 agent “critic” chỉ ra vùng còn sót | Danh sách nghi vấn, coverage-ledger.json |
| 3 | Candidate Validation — kiểm chứng | Mỗi nghi vấn được giao cho 1 verifier mới với nhiệm vụ cố bác bỏ nó; xác định đường khai thác, điều kiện cần và tác động thực tế | Nghi vấn đã lọc |
| 4 | Structured Output — xuất dữ liệu | Ghi kết quả vào JSON và kiểm tra đúng schema | findings.json |
| 5 | Independent Verification — xác minh độc lập | 1 agent mới đối chiếu lại từng khẳng định với mã nguồn để chặn suy luận sai về luồng dữ liệu hoặc tác động | Bản ghi đã xác minh |
| 6 | Reporting — lập báo cáo | Viết báo cáo từ bản ghi đã xác minh và sổ phạm vi | REPORT.md, FINDINGS-DETAIL.md, NEEDS-VALIDATION.md |
3 trạng thái của một phát hiện
Mỗi phát hiện trong findings.json mang đúng 1 trong 3 trạng thái:
confirmed— đã truy vết đầy đủ trong mã nguồn và có hậu quả quan sát được, giới hạn rõ ràng.needs_validation— còn ít nhất 1 dữ kiện chưa làm rõ, nên chưa được gán mức độ nghiêm trọng.rejected— nghi vấn đã bị verifier bác bỏ.
Tên tệp và trạng thái có thể đổi theo phiên bản, nên hãy đối chiếu README của repo trước khi viết script đọc kết quả tự động.
Cách cài đặt và chạy Security Audit Skill qua 7 bước
Để cài đặt và chạy Security Audit Skill, bạn cần Node.js, một coding agent hỗ trợ sub-agent song song và quyền truy cập thư mục dự án; toàn bộ quy trình gồm 7 bước dưới đây.
Bước 1: Chuẩn bị Node.js, coding agent và sandbox
Kiểm tra Node.js đã cài bằng 2 lệnh:
node -v
npm -v
Có Node.js chưa đủ: agent phải hỗ trợ gọi công cụ và điều phối nhiều agent con cùng lúc, nếu không quy trình 6 giai đoạn sẽ không chạy trọn vẹn.
README của repo còn khuyến nghị một sandbox do hệ điều hành cưỡng chế: tắt mạng ra ngoài, lọc biến môi trường, giới hạn tài nguyên và chỉ cho ghi vào thư mục được giao. Thiếu sandbox, skill sẽ không thực thi mã mục tiêu, nên các nghi vấn cần chạy thử sẽ dừng ở trạng thái needs_validation.
Bước 2: Cài skill bằng lệnh npx
Cài Security Audit Skill vào dự án hiện tại bằng lệnh:
npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit
- Thêm cờ
--globalnếu muốn dùng skill cho mọi dự án trên máy. - Ưu tiên cài theo từng dự án nếu bạn muốn kiểm soát phạm vi skill được kích hoạt.
- Chạy
npx skills --helpđể xem các tùy chọn khác.
Bước 3: Mở dự án và tạo điểm khôi phục
Chuyển vào thư mục dự án cần kiểm tra, ví dụ D:\Projects\my-ai-app trên Windows hoặc ~/Projects/my-ai-app trên macOS/Linux, rồi chạy git status để biết trạng thái hiện tại.
- Commit hoặc tạo nhánh mới trước khi audit để có điểm quay lại.
- Xác nhận
.envvà các tệp chứa bí mật đã nằm trong.gitignore.
Bước 4: Ra lệnh audit cho coding agent
Kích hoạt audit bằng một câu yêu cầu trực tiếp trong coding agent:
security audit this codebasefind security vulnerabilities in ./srcdo a security review, output to ~/audits/my-project
Yêu cầu audit trực tiếp sẽ chạy chế độ full audit; câu hỏi chung về bảo mật chỉ kích hoạt chế độ tư vấn (guidance), trừ khi bạn đòi báo cáo. Kết quả mặc định nằm ở ~/security-audit-skill/<tên-repo>/run-<N>.
Prompt chi tiết hơn giúp agent tập trung đúng chỗ:
Security audit this codebase. Tập trung vào xác thực, phân quyền,
API routes, upload tệp và truy cập database. Truy vết mỗi lỗ hổng
về đúng tệp và dòng mã. Tách riêng lỗi đã xác nhận với vấn đề
cần kiểm tra thêm. Không chỉnh sửa mã nguồn ứng dụng.
Câu “không chỉnh sửa mã nguồn” chỉ là ý định gửi cho model. Muốn chắc chắn agent không ghi đè mã, hãy khóa quyền ghi ở cấp công cụ hoặc hệ điều hành.
Bước 5: Đọc báo cáo và đánh giá từng phát hiện
Một lần full audit trả về 6 tệp:
| Tệp | Dùng để |
|---|---|
REPORT.md |
Đọc tổng quan kết quả audit |
FINDINGS-DETAIL.md |
Xem chi tiết từng lỗ hổng đã xác nhận |
NEEDS-VALIDATION.md |
Xem các vấn đề còn cần kiểm chứng |
findings.json |
Đưa kết quả vào script, dashboard hoặc issue tracker |
coverage-ledger.json |
Kiểm tra khu vực nào đã và chưa được quét |
architecture.md |
Xem bản đồ kiến trúc agent đã dựng |
Với mỗi lỗi, trả lời đủ 6 câu hỏi trước khi quyết định sửa:
- Lỗi nằm ở tệp nào, dòng nào?
- Đầu vào nào kích hoạt được lỗi?
- Cơ chế xác thực hoặc phân quyền nào bị thiếu?
- Kẻ tấn công đạt được gì nếu khai thác thành công?
- Bằng chứng trong báo cáo đã đủ thuyết phục chưa?
- Cách sửa và bài kiểm thử hồi quy (regression test) tương ứng là gì?
Đừng chỉ dựa vào nhãn mức độ nghiêm trọng do AI gán; bối cảnh nghiệp vụ của bạn mới quyết định mức độ thật.
Bước 6: Sửa lỗ hổng đã xác nhận theo thứ tự ưu tiên
Sửa trước 4 nhóm lỗi gây hậu quả nặng nhất: phân quyền sai, truy cập dữ liệu trái phép, thực thi mã từ xa và lộ thông tin xác thực.
- Yêu cầu agent đề xuất phương án trước, bạn duyệt rồi mới cho sửa.
- Sửa theo từng nhóm lỗi nhỏ, không để AI viết lại toàn bộ ứng dụng.
- Thêm test hồi quy cho mỗi lỗi đã vá.
Bước 7: Audit lại sau khi sửa
Chạy audit lần 2 để xác nhận lỗi cũ đã được vá và bản sửa không sinh lỗi mới. Cloudflare ghi nhận trong thử nghiệm của họ rằng 1 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 phát hiện, nên với dự án quan trọng, hãy chạy nhiều lượt.
Cách đưa Security Audit Skill vào workflow vibe coding
Security Audit Skill đạt hiệu quả cao nhất khi trở thành một chốt chặn cố định giữa khâu kiểm thử và khâu deploy, thay vì chạy một lần rồi bỏ. Chu trình khuyến nghị gồm 7 bước:
- Viết tính năng mới cùng AI.
- Chạy bộ kiểm thử tự động.
- Chạy audit bảo mật bằng Security Audit Skill.
- Xử lý các phát hiện
confirmedvà xem xétneeds_validation. - Audit lại để xác nhận bản sửa.
- Rà soát trước triển khai: secrets, dependency, cấu hình máy chủ, quyền truy cập.
- Deploy lên production.
Với nhóm nhiều người, bạn có thể gắn bước audit vào pipeline CI/CD, ví dụ chạy khi mở pull request qua GitHub Actions. Trước khi bật cho toàn repo, hãy chạy thử trên 1 repo nhỏ để ước lượng chi phí gọi model, thời gian chạy và kiểm tra quyền truy cập secrets của runner.
Audit xong và vá lỗi rồi, câu hỏi còn lại là: chính việc giao mã nguồn cho AI audit có tạo ra rủi ro mới không?
3 lưu ý an toàn khi để AI audit mã nguồn
Giao mã nguồn cho AI audit có tạo thêm rủi ro, vì agent được đọc toàn bộ repo, đôi khi được chạy mã và gọi mạng. 3 nguyên tắc dưới đây giữ rủi ro đó trong tầm kiểm soát.
1. Chạy audit trong môi trường bị giới hạn quyền
Không chạy mã nguồn không tin cậy ở môi trường có quyền cao. Dùng sandbox hoặc container, chỉ cấp quyền ghi vào thư mục kết quả và chặn kết nối mạng ra ngoài nếu không cần.
2. Giữ bí mật ngoài tầm với của agent
Kiểm tra agent có đọc được những dữ liệu nhạy cảm nào, chẳng hạn tệp .env, API key, chuỗi kết nối database và dữ liệu khách hàng. Không dán bí mật vào prompt, và xóa mọi giá trị bí mật khỏi báo cáo trước khi chia sẻ công khai.
3. Không xem nhẹ trạng thái needs_validation
needs_validation nghĩa là chưa đủ bằng chứng, không có nghĩa là an toàn. Với hệ thống xử lý thanh toán hoặc dữ liệu cá nhân, hãy kiểm tra thủ công từng mục thuộc trạng thái này trước khi deploy.
Ngược lại, một báo cáo không có lỗi confirmed cũng chưa phải giấy chứng nhận an toàn. Audit tự động bằng AI bổ sung, chứ không thay thế, kiểm thử xâm nhập (pentest) và code review thủ công đối với ứng dụng có rủi ro cao.
Câu hỏi thường gặp về Security Audit Skill
Security Audit Skill có miễn phí không?
Security Audit Skill miễn phí về bản quyền vì được phát hành theo giấy phép MIT. Bạn vẫn trả chi phí gọi model AI và hạ tầng chạy agent; chạy nhiều agent con và nhiều lượt thì chi phí tăng theo.
Security Audit Skill có tự động sửa lỗ hổng không?
Không. Skill tập trung vào tìm kiếm, xác minh và báo cáo. Bạn có thể nhờ agent đề xuất bản sửa sau đó, nhưng mọi thay đổi cần được review và kiểm thử.
Skill có loại bỏ hoàn toàn cảnh báo sai không?
Không. Xác minh chéo qua nhiều agent giảm đáng kể false positive nhưng không đưa về 0, nên bạn vẫn cần tự đánh giá từng phát hiện.
Security Audit Skill dùng được cho mọi công cụ AI coding không?
Skill dùng được với coding agent hỗ trợ tool use và sub-agent song song; README không liệt kê danh sách công cụ cụ thể. Hãy chạy thử trên 1 repo nhỏ trước khi áp dụng rộng.
Hỏi agent một câu chung về bảo mật có kích hoạt full audit không?
Không. Câu hỏi chung chỉ kích hoạt chế độ tư vấn (guidance); full audit chỉ chạy khi bạn yêu cầu audit trực tiếp hoặc đòi báo cáo.
Audit xong có nghĩa là ứng dụng đã an toàn để deploy chưa?
Chưa. Ứng dụng chỉ sẵn sàng deploy khi cấu hình máy chủ, phân quyền, dependency, secrets và môi trường chạy cũng đã được rà soát, không chỉ mã nguồn.
Kết luận
Security Audit Skill biến việc “nhờ AI xem giúp có lỗi bảo mật không” thành một quy trình audit có cấu trúc, có bằng chứng và có sổ theo dõi phạm vi, phù hợp để đặt làm chốt chặn trước mỗi lần deploy ứng dụng vibe coding. Để đạt hiệu quả thật, hãy kết hợp skill với kiểm thử tự động, quản lý secrets, cập nhật dependency và rà soát cấu hình máy chủ.









