Các codebase hiện đại có hàng triệu dòng mã, thay đổi mỗi ngày và được phát hành nhanh hơn bất kỳ nhóm nào có thể kiểm tra thủ công. Trong một ngôn ngữ không an toàn về bộ nhớ như C, một lỗi bị bỏ sót duy nhất như tràn bộ đệm hoặc sử dụng sau khi giải phóng bộ nhớ có thể trở thành một lỗ hổng có thể khai thác từ xa, và việc xem xét thủ công không thể bao quát hết bề mặt đó. Gần đây, Anthropic đã chứng minh rằng các LLM hiện đủ khả năng tìm và sửa các lỗ hổng trên quy mô lớn, và việc phát hiện giờ đây có thể dễ dàng song song hóa , vì vậy nỗ lực đã chuyển sang chứng minh một phát hiện có thể bị khai thác, phân loại nó và vá lỗi.

Anthropic gọi toàn bộ quy trình này là mộtvòng lặp tìm và sửa lỗi gồmsáu bước , và chúng tôi sẽ xây dựng từng bước trong đó.
- Mô hình mối đe dọa: xác định điều gì được coi là lỗ hổng trước khi chúng ta quét bất cứ thứ gì.
- Sandbox: một môi trường khép kín để chạy các dữ liệu đầu vào không đáng tin cậy và chứng minh lỗ hổng một cách an toàn.
- Khám phá: các tác nhân săn lùng lỗi song song, được tinh chỉnh để ghi nhớ.
- Kiểm chứng: xác nhận độc lập rằng mỗi kết quả đều có thể tái tạo được, được điều chỉnh để đạt độ chính xác cao.
- Phân loại ban đầu: loại bỏ các trường hợp trùng lặp theo nguyên nhân gốc, xác định mức độ nghiêm trọng và xếp hạng.
- Vá lỗi: khắc phục nguyên nhân gốc, xác nhận lỗi đã biến mất và tìm kiếm các biến thể khác.
Việc tách biệt giai đoạn tìm kiếm và xác minh là bước quan trọng, bởi vì một bước duy nhất yêu cầu cả hai việc sẽ trở nên thận trọng và bắt đầulọc bỏ những kết quả tích cực thực sự.
Điểm độc đáo trong bản dựng này nằm ở mô hình. Thay vì sử dụng mô hình tiên tiến, chúng tôi chạy toàn bộ vòng lặp trên một mô hình 7B nhỏ gọn, mã nguồn mở trên một GPU duy nhất, hoàn toàn không sử dụng bất kỳ lệnh gọi API nào. Chúng tôi đảm bảo tính đáng tin cậy bằng một quy tắc duy nhất: một chương trình bị lỗi khi chạy qua trình kiểm tra lỗi là bằng chứng, còn ý kiến của mô hình thì không.
Chúng tôi nhắm mục tiêu vào các lỗi an toàn bộ nhớ trong ngôn ngữ C vì đối với những lỗi đó, công cụ kiểm tra sẽ đưa ra câu trả lời khách quan là có hay không. Trên một môi trường thử nghiệm (canary) với ba lỗi C được cài đặt sẵn, quy trình sẽ tìm, chứng minh và vá cả ba lỗi, sau đó chúng tôi áp dụng cùng một vòng lặp cho một thư viện C mã nguồn mở. Đây là toàn bộ hệ thống, một mô hình nhỏ ở giữa và công cụ kiểm tra đóng vai trò là người phán xét.
//github.com/FareedKhan-dev/agentic-security-pipeline
//ai.gopubby.com/building-an-agentic-security-pipeline-that-finds-proves-and-patches-vulnerabilities-6156aeb4b46f

Bài viết liên quan: