Cloudflare Security Audit Skill – Biến AI Coding Agent thành chuyên gia kiểm toán bảo mật source code

 

Cloudflare Security Audit Skill – Biến AI Coding Agent thành chuyên gia kiểm toán bảo mật source code



Trong quá trình phát triển phần mềm, chúng ta thường sử dụng AI Coding Agent như Claude Code, Codex hay các công cụ AI khác để đọc source code, viết tính năng, sửa bug và tối ưu hệ thống.

Nhưng có một câu hỏi quan trọng: Liệu AI có thể giúp chúng ta tìm ra những lỗ hổng bảo mật thực sự trong toàn bộ dự án, thay vì chỉ review một vài đoạn code được yêu cầu?

Cloudflare đã phát triển một dự án mã nguồn mở mang tên Security Audit Skill để giải quyết bài toán này.

Đây là một AI Agent Skill giúp biến coding agent thành một hệ thống kiểm toán bảo mật source code có quy trình rõ ràng. Thay vì để một AI duy nhất đọc toàn bộ dự án rồi đưa ra nhận xét, công cụ điều phối nhiều agent độc lập để khảo sát kiến trúc, tìm kiếm lỗ hổng, kiểm chứng phát hiện và tạo báo cáo có cấu trúc.

GitHub: https://github.com/cloudflare/security-audit-skill

1. Security Audit Skill là gì?

cloudflare/security-audit-skill là một bộ hướng dẫn và công cụ hỗ trợ AI Coding Agent thực hiện security audit cho các dự án phần mềm.

Có thể hiểu đơn giản:

  • Bạn cung cấp cho AI quyền truy cập source code của dự án.

  • Yêu cầu AI thực hiện security audit.

  • Skill hướng dẫn AI phân tích kiến trúc và xác định các khu vực cần kiểm tra.

  • Nhiều agent độc lập lần lượt tìm kiếm và kiểm chứng các vấn đề bảo mật.

  • Kết quả được lưu thành dữ liệu JSON và báo cáo Markdown.

Điểm đặc biệt là skill không chỉ tìm những đoạn code có vẻ đáng ngờ. Một lỗ hổng muốn được xác nhận phải có bằng chứng từ source code, xác định được ranh giới bảo mật bị vượt qua và chứng minh được tác động cụ thể.

Dự án được Cloudflare mô tả là nền tảng khởi đầu cho hệ thống vulnerability discovery harness lớn hơn mà họ phát triển nội bộ.

2. Tại sao developer nên quan tâm?

Hãy tưởng tượng bạn đang phát triển một hệ thống SaaS bằng NestJS, Next.js và PostgreSQL.

Dự án có hàng trăm API, nhiều module nghiệp vụ, authentication, phân quyền, upload file, xử lý thanh toán và cơ chế phân tách dữ liệu giữa các tenant.

Một số lỗi bảo mật có thể xuất hiện như:

  • API cho phép người dùng truy cập dữ liệu của tenant khác.

  • Endpoint thiếu kiểm tra quyền sở hữu tài nguyên.

  • JWT được xác thực nhưng không kiểm tra đúng role hoặc permission.

  • API nhận dữ liệu đầu vào nhưng thiếu kiểm soát dẫn đến SQL Injection.

  • Upload file không kiểm soát loại file hoặc đường dẫn lưu trữ.

  • Webhook không xác thực nguồn gửi.

  • Lộ thông tin nhạy cảm trong log hoặc API response.

  • Dependency hoặc quy trình CI/CD tồn tại rủi ro bảo mật.

Nếu chỉ yêu cầu AI review một file controller, chúng ta có thể bỏ sót những vấn đề cần đối chiếu giữa controller, service, repository, middleware và cấu hình triển khai.

Security Audit Skill giải quyết vấn đề này bằng cách chia quá trình kiểm toán thành nhiều giai đoạn, có phân công nhiệm vụ và kiểm chứng độc lập.

3. Quy trình kiểm toán gồm 6 giai đoạn

Đây là phần quan trọng nhất của dự án.

Giai đoạn 1: Reconnaissance – Khảo sát kiến trúc

AI bắt đầu bằng việc tìm hiểu tổng thể dự án:

  • Cấu trúc thư mục và các module.

  • Các ranh giới tin cậy (trust boundaries).

  • Những điểm tiếp nhận dữ liệu đầu vào.

  • Các cơ chế authentication và authorization.

  • Những khu vực có thể ảnh hưởng đến dữ liệu hoặc tài nguyên quan trọng.

Kết quả được tổng hợp thành hai tài liệu chính:

  • architecture.md: mô tả kiến trúc và các ranh giới bảo mật.

  • coverage-ledger.json: danh sách các khu vực và hạng mục cần kiểm tra.

Thay vì đọc code ngẫu nhiên, AI có một bản đồ để biết cần kiểm tra những gì và phần nào đã được khảo sát.

Giai đoạn 2: Coverage-led Hunting – Săn tìm lỗ hổng

Sau khi có bản đồ kiến trúc, hệ thống phân chia các khu vực cần kiểm tra cho những agent độc lập.

Mỗi agent tập trung vào một nhóm vấn đề cụ thể, chẳng hạn:

  • Authentication và Authorization.

  • SQL Injection và các dạng Injection khác.

  • Kiểm soát quyền truy cập dữ liệu.

  • Business Logic Vulnerabilities.

  • Xử lý file và dữ liệu đầu vào.

  • API và HTTP Protocol.

  • Dependency, CI/CD và Supply Chain.

  • Cloud Infrastructure và Deployment.

  • Lỗ hổng liên quan đến AI/LLM.

Các agent ghi lại những gì đã kiểm tra. Những agent đóng vai trò critic tiếp tục tìm kiếm các khu vực còn bị bỏ sót.

Mục tiêu là tránh tình trạng AI chỉ kiểm tra một vài file quen thuộc rồi kết luận toàn bộ dự án an toàn.

Giai đoạn 3: Candidate Validation – Kiểm chứng phát hiện

Đây là một trong những điểm thiết kế đáng chú ý nhất.

Khi một agent tìm thấy vấn đề, kết quả đó chưa được xem ngay là lỗ hổng đã xác nhận.

Một agent khác, chưa tham gia tìm ra phát hiện ban đầu, sẽ nhận nhiệm vụ kiểm chứng và cố gắng bác bỏ giả thuyết đó.

Ví dụ:

Agent A phát hiện một API có vẻ thiếu kiểm tra quyền truy cập.

Agent B sẽ kiểm tra lại:

  • Có middleware hoặc guard nào xử lý quyền trước đó không?

  • Service có kiểm tra quyền sở hữu dữ liệu không?

  • Có ranh giới bảo mật nào thực sự bị vượt qua không?

  • Có thể chứng minh được người dùng không đủ quyền truy cập tài nguyên hay không?

Nếu không chứng minh được tác động thực tế, phát hiện không được tự động nâng thành lỗ hổng đã xác nhận.

Giai đoạn 4: Structured Output – Chuẩn hóa kết quả

Các phát hiện được lưu trong findings.json và phân loại thành ba trạng thái:

Trạng tháiÝ nghĩa
confirmedĐã xác nhận có vấn đề bảo mật với bằng chứng và tác động cụ thể
needs_validationCó giả thuyết dựa trên source code nhưng còn thiếu dữ kiện để xác nhận
rejectedPhát hiện đã bị bác bỏ sau quá trình kiểm chứng

Dữ liệu được kiểm tra bằng report-schema.json và script validate-findings.cjs.

Việc sử dụng JSON giúp kết quả dễ dàng được xử lý tiếp bằng công cụ khác, thay vì chỉ có một đoạn văn bản dài do AI tạo ra.

Giai đoạn 5: Independent Record Verification – Xác minh độc lập

Sau khi có danh sách kết quả, các agent mới tiếp tục kiểm tra lại những phát hiện cuối cùng.

Mục tiêu là xác nhận:

  • Đường dẫn source code có chính xác không?

  • Nhận định có đúng với code hiện tại không?

  • Bằng chứng có đủ để chứng minh vấn đề không?

  • Mức độ nghiêm trọng có phù hợp với tác động thực tế không?

Nếu phát hiện bị thay đổi đáng kể trong quá trình xử lý, nó cần được kiểm chứng độc lập thêm.

Giai đoạn 6: Target-neutral Reporting – Tạo báo cáo

Cuối cùng, hệ thống tổng hợp kết quả thành các tài liệu Markdown:

  • REPORT.md: báo cáo tổng quan.

  • FINDINGS-DETAIL.md: chi tiết các phát hiện.

  • NEEDS-VALIDATION.md: những vấn đề cần thêm dữ kiện để xác minh.

Developer có thể sử dụng các báo cáo này để phân loại công việc, giao nhiệm vụ sửa lỗi và theo dõi các rủi ro bảo mật.

4. Cách cài đặt Security Audit Skill

Bạn cần một coding agent có khả năng sử dụng tools và hỗ trợ parallel sub-agents, cùng với Node.js để chạy các script kiểm tra dữ liệu.

Mở terminal và chạy:

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

Nếu muốn cài đặt ở phạm vi người dùng để sử dụng trong nhiều dự án:

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

Sau khi cài đặt, mở coding agent trong thư mục dự án cần kiểm tra.

5. Cách sử dụng thực tế

Bạn không cần tự viết một quy trình kiểm toán phức tạp. Chỉ cần yêu cầu coding agent thực hiện công việc.

Ví dụ:

Kiểm toán toàn bộ dự án:

Security audit this codebase.
Find security vulnerabilities across the entire project.
Generate a complete security audit report.

Kiểm tra một thư mục cụ thể:

Find security vulnerabilities in ./src

Yêu cầu xuất báo cáo vào thư mục riêng:

Do a security review and output to ~/audits/my-project

Với yêu cầu audit toàn bộ hoặc yêu cầu tạo báo cáo, skill sẽ kích hoạt quy trình đầy đủ gồm sáu giai đoạn.

Lưu ý: nếu chỉ hỏi một câu hỏi bảo mật hoặc muốn review một khu vực nhỏ, skill có thể hoạt động ở chế độ guidance. Nó không tự động chạy toàn bộ quy trình audit trong mọi trường hợp.

6. Ví dụ ứng dụng với dự án NestJS và Next.js

Giả sử bạn đang phát triển một hệ thống SaaS gồm:

  • Backend: NestJS.

  • Frontend: Next.js.

  • Database: PostgreSQL.

  • Authentication: JWT.

  • ORM: TypeORM.

  • Kiến trúc: Multi-tenant.

Bạn có thể yêu cầu AI kiểm tra các nhóm vấn đề sau:

Authentication và Authorization

  • Các API có được bảo vệ đúng cách không?

  • Endpoint public có vô tình truy cập được dữ liệu riêng tư không?

  • Có trường hợp user thay đổi ID để truy cập dữ liệu của người khác không?

Multi-tenant Data Isolation

  • Repository có luôn giới hạn dữ liệu theo tenant không?

  • Có API nào truy vấn dữ liệu mà thiếu tenant condition không?

  • Cache key có phân biệt tenant không?

  • Có thể truy cập tài nguyên của tenant khác thông qua ID được truyền từ client không?

Input Validation và Database

  • DTO có kiểm tra dữ liệu đầu vào không?

  • Query có sử dụng parameterized query đúng cách không?

  • Có trường hợp sử dụng dữ liệu client trực tiếp trong câu SQL không?

File Upload

  • Có giới hạn loại file và kích thước file không?

  • Có thể ghi file ra ngoài thư mục được phép không?

  • Có kiểm tra quyền truy cập file khi tải xuống không?

API và Business Logic

  • Có thể gọi API theo trình tự bất thường để vượt qua quy tắc nghiệp vụ không?

  • Có thể sửa giá trị hoặc trạng thái giao dịch trái phép không?

  • Có thiếu kiểm tra quyền khi cập nhật hoặc xóa dữ liệu không?

Đây là những ví dụ về phạm vi kiểm tra phù hợp, không phải cam kết rằng skill sẽ tự động phát hiện được tất cả các lỗi trên.

7. Một điểm rất quan trọng: An toàn khi chạy security audit

Security audit không chỉ là đọc source code. Một số bài kiểm tra có thể cần chạy build, test, browser, emulator hoặc xử lý fixture do chính dự án cung cấp.

Nếu mã nguồn được kiểm tra là không đáng tin cậy, việc chạy trực tiếp các lệnh đó trên máy developer có thể gây rủi ro.

Cloudflare đưa ra yêu cầu về môi trường sandbox có khả năng:

  • Chặn kết nối mạng bên ngoài.

  • Sử dụng environment đã được làm sạch và chỉ cho phép các biến cần thiết.

  • Giới hạn quyền ghi file vào thư mục scratch được chỉ định.

  • Giới hạn CPU, RAM, process, dung lượng và thời gian chạy.

  • Không cho phép target code truy cập credentials, socket hoặc tài nguyên dùng chung.

Nếu không thể đảm bảo các điều kiện cần thiết, workflow phải giữ kết quả ở trạng thái needs_validation thay vì chạy code không an toàn để cố chứng minh giả thuyết.

Ngoài ra, chỉ nên kiểm tra hệ thống mà bạn sở hữu hoặc được cấp quyền kiểm thử. Không sử dụng công cụ này để tự ý kiểm tra hệ thống production, tài khoản hoặc dữ liệu của bên thứ ba.

8. Ưu điểm và hạn chế

Ưu điểm

  • Có quy trình security audit rõ ràng, không chỉ dựa vào một lượt đọc code.

  • Phân chia nhiệm vụ cho nhiều agent độc lập.

  • Có bước kiểm chứng nhằm hạn chế false positive.

  • Chuẩn hóa kết quả bằng JSON Schema.

  • Hỗ trợ nhiều nhóm mục tiêu: web, API, cloud, desktop, mobile, LLM và supply chain.

  • Có thể chạy nhiều lần để tiếp tục kiểm tra những khu vực còn thiếu hoặc xác minh lại code đã thay đổi.

  • Mã nguồn mở theo giấy phép MIT.

Hạn chế

  • Cần coding agent hỗ trợ tool use và parallel sub-agents.

  • Chất lượng kết quả vẫn phụ thuộc vào model, khả năng đọc hiểu code và môi trường thực thi.

  • Không thể tự suy ra những cấu hình triển khai không có trong source code.

  • Một số vấn đề cần kiểm tra trong sandbox hoặc cần chủ hệ thống cung cấp dữ kiện để xác minh.

  • Một lần audit không thể đảm bảo tìm thấy toàn bộ lỗ hổng.

Đáng chú ý, Cloudflare cũng nhấn mạnh rằng các lần chạy audit lặp lại có thể tìm thấy thêm vấn đề mà lần chạy đầu tiên bỏ sót.

9. Có nên sử dụng Security Audit Skill trong quy trình phát triển phần mềm?

Theo mình, đây là một công cụ rất đáng thử đối với developer đang sử dụng AI Coding Agent để phát triển các dự án có nhiều API và xử lý dữ liệu nhạy cảm.

Đặc biệt với những hệ thống SaaS, ERP, CRM, quản lý thành viên hoặc nền tảng multi-tenant, việc kiểm tra các ranh giới phân quyền và cách dữ liệu được truy cập là rất quan trọng.

Bạn có thể đưa security audit vào quy trình phát triển theo hướng:

  1. Developer hoàn thành một tính năng hoặc một sprint.
  2. AI Coding Agent thực hiện security audit.
  3. Developer xem xét REPORT.md và các phát hiện đã được xác nhận.
  4. Sửa những vấn đề có mức độ ưu tiên cao.
  5. Chạy lại audit để kiểm tra các thay đổi.
  6. Kết hợp với unit test, integration test, dependency scanning và kiểm thử bảo mật chuyên biệt trước khi release.

Lưu ý: Security Audit Skill không thay thế hoàn toàn pentest chuyên nghiệp, SAST/DAST hoặc quy trình kiểm thử bảo mật trước khi đưa hệ thống lên production. Nên xem nó là một lớp hỗ trợ bổ sung trong quy trình phát triển.

Kết luận

Cloudflare Security Audit Skill cho thấy một hướng ứng dụng AI rất thực tế trong ngành phát triển phần mềm: không chỉ dùng AI để viết code nhanh hơn mà còn dùng AI để kiểm tra chất lượng và bảo mật của chính code đó.

Điểm đáng học hỏi nhất không nằm ở việc có bao nhiêu agent, mà là cách thiết kế quy trình: một agent tìm lỗi, một agent khác cố gắng bác bỏ, dữ liệu được chuẩn hóa và kết quả cuối cùng được xác minh độc lập.

Nếu bạn đang sử dụng Claude Code, Codex hoặc một coding agent có hỗ trợ sub-agents, đây là một repository đáng để thử nghiệm trong các dự án cá nhân và hệ thống nội bộ.

GitHub: https://github.com/cloudflare/security-audit-skill

Một công cụ hữu ích để developer không chỉ xây dựng phần mềm nhanh hơn, mà còn có thêm một lớp kiểm tra bảo mật ngay trong quy trình làm việc hằng ngày.


Đăng nhận xét

Mới hơn Cũ hơn