CWE-bench v2: 100 tác vụ để đánh giá AI agent vá lỗi bảo mật
CWE-bench v2 cung cấp 100 tác vụ từ kho mã nguồn mở để đo khả năng AI agent tìm và sửa điểm yếu bảo mật mà không làm hỏng chức năng. Với chấm điểm xác định và có thể tái lập, đây là dữ liệu hữu ích khi đánh giá agent cho SDLC.
Một AI agent có thể tạo bản vá và làm các kiểm thử hiện có “xanh”. Nhưng với AppSec, SOC, security engineering hay risk & compliance, câu hỏi quan trọng hơn là: năng lực đó có được đo bằng điều kiện rõ ràng, chạy lại được và kiểm tra được không?
CWE-bench v2 của Hugging Face và Collinear AI là một benchmark mở cho mục tiêu này. Agent nhận một bản checkout của kho mã nguồn mở thực tế cùng chỉ dẫn ngắn, sau đó phải tìm và sửa điểm yếu bảo mật mà không làm hỏng chức năng sẵn có. Kết quả được chấm hoàn toàn bằng kiểm tra lập trình, theo cách xác định và có thể tái lập.
Đây không phải căn cứ duy nhất để cấp quyền cho agent trong SDLC. Tuy nhiên, nó là một bài kiểm tra hữu ích trước khi tổ chức cân nhắc dùng agent cho phân tích hoặc đề xuất bản vá bảo mật.
CWE-bench v2 đo gì?
CWE là viết tắt của Common Weakness Enumeration, danh mục phân loại các kiểu điểm yếu phần mềm. CWE-bench v2 công khai 100 tác vụ từ các kho mã nguồn mở thực tế, bao phủ 91 loại CWE.
Mỗi tác vụ là một môi trường Harbor, gồm môi trường Docker, chỉ dẫn và verifier xác định. Agent cần xác định điểm yếu, tạo bản vá và duy trì chức năng ban đầu của phần mềm.
Theo nhóm phát triển, từng tác vụ được rà soát thủ công để kiểm tra các điểm như:
Chỉ dẫn có giống một yêu cầu công việc thực tế hay không;
Các hành vi cần chấm có thể suy ra từ chỉ dẫn hay không;
Verifier có kiểm tra hành vi đúng thay vì ép một cấu trúc bản vá cụ thể hay không;
Mã khởi đầu có thất bại và bản vá tham chiếu có vượt qua kiểm tra hay không;
Chức năng ban đầu có tiếp tục hoạt động sau khi áp dụng bản vá hay không;
Verifier có loại được các lời giải ghi nhớ bản vá upstream đã biết hay không.
Với đội phòng thủ, điểm đáng chú ý là benchmark không chỉ hỏi agent nhận diện một mẫu lỗi. Agent phải xử lý vấn đề trong ngữ cảnh repository và vượt qua các kiểm tra được định nghĩa sẵn.
Giá trị chính: khả năng tái lập
CWE-bench v2 công khai tập tác vụ, grader và harness. Việc chấm điểm bằng chương trình giúp kết quả có tính xác định; người khác có thể chạy lại cùng benchmark mà không phát sinh chi phí benchmark bổ sung.
Điều này hữu ích khi đánh giá công cụ AI nội bộ hoặc sản phẩm của nhà cung cấp. Thay vì chỉ dựa vào một kết quả demo hay bảng xếp hạng, nhóm đánh giá có thể tự chạy agent trong điều kiện xác định và lưu lại cấu hình, phiên bản cùng điểm số.
Tuy vậy, điểm benchmark không đồng nghĩa agent đã sẵn sàng được tự động sửa, merge hoặc phát hành mã trong môi trường doanh nghiệp. Đó là một chỉ số năng lực trên tập tác vụ cụ thể, không phải bằng chứng đầy đủ về an toàn vận hành.
Kết quả: tiến bộ đáng kể, khoảng trống vẫn lớn
Trong số 11 model được đánh giá, Gemini 4 Argon dẫn đầu với 67,8% pass@1 và 81,0% pass@4. Claude Opus 5.5 đạt 67,3% pass@1 và 78,0% pass@4.
Trong đó:
Pass@1 là tỷ lệ thành công trong một lần thử;
Pass@4 phản ánh kết quả khi chạy bốn lần thử cho mỗi tác vụ.
Có 95 trên 100 tác vụ được ít nhất một model giải thành công. Tuy nhiên, ngay cả model dẫn đầu cũng không giải được 19% tập tác vụ qua mọi lần thử. Đây là giới hạn quan trọng khi diễn giải kết quả: benchmark cho thấy năng lực sửa lỗi đang tăng, nhưng chưa hỗ trợ giả định rằng agent có thể tự xử lý mọi điểm yếu bảo mật.
Về chi phí được báo cáo, DeepSeek V4.1 Flash đạt 57,0% pass@1 với 0,04 USD mỗi rollout. Claude Opus 5.5 được báo cáo ở mức 1,83 USD, còn Gemini 4 Argon là 3,92 USD mỗi rollout. Các số liệu này là kết quả trong thiết lập đánh giá được công bố, không phải báo giá cho môi trường doanh nghiệp.
Cách chạy benchmark
Dataset CWE-bench v2 yêu cầu chấp nhận điều kiện truy cập trên trang dataset. Harbor lấy tác vụ qua Git, vì vậy cần lưu Hugging Face token vào credential helper của Git:
bash
hf auth login --token $HFTOKEN --add-to-git-credential
Sau đó có thể chạy benchmark từ repository trên Hugging Face:
bash
harbor run --repo \
"https://huggingface.co/datasets/collinear-ai/cwe-bench" \
-d cwe-bench@2.0 -k 4 \
--agent <agent> --model <model> -- \
env docker \
--allow-agent-host <model API host>
Tham số -k 4 chạy bốn lần thử cho mỗi tác vụ. Điểm được báo cáo là reward trung bình trên 400 lượt chạy.
Gợi ý dùng trong quy trình đánh giá agent
Với nhóm security engineering hoặc governance, CWE-bench v2 có thể là một lớp trong quy trình đánh giá, thay vì toàn bộ quy trình:
Chạy trong môi trường cô lập. Không dùng runner có secrets triển khai, khóa ký mã hoặc quyền truy cập production.
Ghi nhận cấu hình đầy đủ. Lưu phiên bản agent, model, tham số chạy và kết quả để có thể tái lập đánh giá.
Kiểm soát dữ liệu gửi ra ngoài. Nếu agent gọi API bên ngoài, cần xác định mã nguồn, secrets, PII và log nào có thể rời khỏi hạ tầng.
Duy trì review con người. Reviewer cần xem diff, tác động chức năng và lý do khắc phục trước khi merge.
Phân tích thất bại, không chỉ điểm tổng. Các tác vụ không vượt verifier có thể cho thấy loại tình huống mà quy trình SDLC vẫn cần kiểm soát bổ sung.
Vai trò của tập held-out
CWE-bench cũng duy trì một tập held-out để theo dõi năng lực trên các tác vụ mà model chưa thấy. Muốn đánh giá trên tập này, người dùng cần liên hệ Collinear AI.
Tập công khai có giá trị cho khả năng tái lập và so sánh rộng rãi, nhưng theo thời gian có thể trở thành dữ liệu mà model hoặc agent đã tiếp xúc. Vì vậy, tập held-out là một yếu tố đáng cân nhắc khi cần đánh giá nghiêm ngặt hơn.
Kết luận
CWE-bench v2 đưa việc đánh giá AI agent sửa lỗi bảo mật gần hơn với một quy trình có thể kiểm chứng: tác vụ thật, verifier xác định và kết quả có thể chạy lại.
Đối với đội an ninh, cách dùng thực dụng nhất là coi đây là bài đo năng lực đầu vào. Điểm cao có thể hỗ trợ quyết định thử nghiệm agent, nhưng không thay thế threat modeling, kiểm thử tích hợp, quản lý secrets, review mã hay giám sát vận hành. Một agent vượt benchmark vẫn cần được đặt trong các kiểm soát phù hợp trước khi tham gia quy trình sửa lỗi thực tế.