Vì sao Anthropic xây dựng công cụ này
Trong hơn sáu tháng, các mô hình của Anthropic đã tìm thấy hơn 29,000 lỗ hổng tiềm ẩn trong các phần mềm mã nguồn mở quan trọng, nhưng đội ngũ bảo mật của hãng chỉ có thể xem xét thủ công khoảng 6,000. Nhiều người duy trì dự án nhận được những báo cáo đầu tiên đã được con người xác minh đề nghị gửi tất cả phát hiện, kể cả khi chưa xác minh, kèm các bản vá đề xuất — gần 5,000 báo cáo đã được gửi theo cách đó.
OSS Scanner biến cách làm đó thành một luồng xử lý nhanh theo hình thức tự nguyện tham gia. Các báo cáo đã được con người xác minh tiếp tục được xử lý theo quy trình phối hợp công bố lỗ hổng (CVD) của Anthropic; các dự án đã đăng ký còn nhận được đầu ra thô của mô hình ngay khi sẵn sàng. Anthropic cho biết ý tưởng này lấy cảm hứng từ OSS-Fuzz của Google.
Người duy trì dự án sẽ nhận được gì
Sau khi đăng ký, dự án sẽ được quét và các maintainer nhận một gói báo cáo qua email. Quy trình của Anthropic bao gồm các tác nhân kiểm tra lại lỗi, đề xuất bản vá và phân tích nguyên nhân gốc rễ. Mỗi báo cáo gồm:
- một reproducer độc lập
- giải thích về lỗ hổng, bao gồm việc phân tích chia đôi để xác định thời điểm lỗi được đưa vào, nếu có thể
- bản vá đề xuất nếu có
Các dự án được quét lại thường xuyên để phát hiện lỗi mới được đưa vào và những lỗi đã bị bỏ sót trước đó. Tần suất phụ thuộc vào số lượng dự án trong quy trình, mức độ phổ biến của dự án và các yếu tố khác.
Độ chính xác ra sao?
Trước khi ra mắt, các chuyên gia kiểm thử xâm nhập của Anthropic đã kiểm tra 97 phát hiện mức độ nghiêm trọng nghiêm trọng và cao trên 48 dự án. Có 85 phát hiện (88%) đáp ứng tiêu chí của quy trình CVD của Anthropic; 11 trong số 12 phát hiện còn lại là lỗi có thật nhưng trùng với các vấn đề đã biết, và chỉ có một trường hợp dương tính giả. Anthropic kỳ vọng tỷ lệ dương tính thật trên 90% và cảnh báo rằng mức độ nghiêm trọng có thể bị đánh giá quá cao, hoặc trình quét có thể hiểu sai threat model của dự án.
Những người tham gia ban đầu có phản hồi tích cực. wolfSSL cho biết trong 74 báo cáo, tất cả trừ hai báo cáo đều hợp lệ và năm báo cáo dẫn đến CVE. Daniel Stenberg nói rằng công cụ đã tìm ra một trong những lỗ hổng nghiêm trọng nhất của curl trong nhiều năm; các maintainer của PostgreSQL, OpenSSL và HotCRP cũng đánh giá cao các báo cáo.
Ai đủ điều kiện
Anthropic áp dụng các tiêu chí tương tự OSS-Fuzz: dự án đã có vị thế vững chắc, có ảnh hưởng nghiêm trọng đến hạ tầng và bảo mật người dùng, được đánh giá theo từng trường hợp. Các yếu tố quan trọng gồm khả năng bị tấn công từ xa (ví dụ: thư viện xử lý đầu vào không đáng tin cậy) và số lượng người dùng cùng các dự án phụ thuộc. Nếu tầm quan trọng của dự án chưa rõ ràng, hãy thêm một câu ngắn giải thích lý do.
Anthropic xác minh thủ công rằng người đăng ký là maintainer cốt lõi và có thể liên hệ với dự án qua các kênh khác. Dịch vụ này dành cho các dự án vốn đã xử lý được các báo cáo mức độ nghiêm trọng cao và nghiêm trọng đã được xác minh — nếu hộp thư đến của bạn đã quá tải, có thể hiện chưa phù hợp để tham gia.
Cách đăng ký
Maintainer cốt lõi tạo pull request đến github.com/anthropics/oss-scanner để thêm projects/your-project/project.yaml, dựa trên mẫu trong kho lưu trữ đó.
Các trường bắt buộc:
- repo — URL git để sao chép, có thể kèm #branch; không nhất thiết phải lưu trữ trên GitHub
- primary_contact — email nhận mọi báo cáo
- Dockerfile — đường dẫn tương đối với repo đến Dockerfile cài đặt các phần phụ thuộc và build dự án; hoặc đặt tệp tên Dockerfile cạnh project.yaml và bỏ qua trường này
Các trường tùy chọn:
- auto_ccs — các địa chỉ bổ sung được gửi bản sao trong mọi báo cáo
- homepage — trang web của dự án
- threat_model — đường dẫn đến threat model của bạn, mặc định là .oss-scanner/threat_model.md
- pgp — khóa công khai để mã hóa email báo cáo; nếu đặt trường này, không được dùng CC
- disabled — đặt thành true để tạm dừng báo cáo
Chạy tools/validate.py và build Dockerfile trên máy cục bộ trước khi mở PR. Sau khi được chấp nhận, Anthropic sẽ build image trên hạ tầng của mình và gửi email cho bạn nếu quá trình thất bại.
Dockerfile và quá trình kiểm tra ngoại tuyến
Dockerfile được build khi có quyền truy cập mạng. Sau đó, mọi thứ — bao gồm quá trình kiểm tra của các tác nhân — đều chạy trong sandbox được gia cố, hoàn toàn không có quyền truy cập internet. Vì vậy, image phải cài đặt sẵn mọi phần phụ thuộc và build dự án. Anthropic khuyến nghị đảm bảo các bài kiểm thử chạy thành công trong container: nhờ đó, các tác nhân có thể biên dịch và chạy mã để xác nhận lỗi.
Tệp threat model
threat_model.md là tùy chọn và không có định dạng bắt buộc. Đây là cơ hội để bạn cho các tác nhân biết những điều chưa được ghi lại ở nơi khác:
- phần mã nào cần được kiểm thử, đầu vào nào có thể do đối thủ kiểm soát và những gì nằm ngoài phạm vi
- tiêu chí đánh giá mức độ nghiêm trọng thấp, trung bình, cao và nghiêm trọng
- báo cáo nên có định dạng ra sao, bản vá nên ở mức tối thiểu hay sẵn sàng để hợp nhất, những bằng chứng khái niệm nào hữu ích
- mức độ chi tiết cần thiết khi loại bỏ báo cáo trùng lặp
Nếu không có tệp này, trình quét sẽ tự suy đoán. Bạn có thể thay đổi tệp giữa các lần quét để điều chỉnh báo cáo. Công cụ tạo threat model của chúng tôi sẽ tạo một tệp sẵn dùng.
Công bố, tạm dừng và ghi nhận đóng góp
Không có hạn chót 90 ngày đối với các phát hiện chưa được xác minh này. Nếu sau đó Anthropic xác minh một báo cáo thông qua chương trình CVD, họ có thể công bố thông tin sau 90 ngày kể từ khi thông báo với bạn rằng chuyên gia đã xác minh báo cáo. Anthropic cho biết trong tương lai có thể đưa ra thời hạn cho một số báo cáo mức độ nghiêm trọng cao, kèm thông báo và lựa chọn từ chối.
Để tạm dừng, thêm disabled: true vào project.yaml trong một PR; để rời chương trình, xóa thư mục projects/ của bạn. Hãy gửi phản hồi bằng cách trả lời email báo cáo; nếu bạn chưa đăng ký, hãy viết thư đến oss-scanner-questions@anthropic.com.
Việc ghi nhận đóng góp là tùy chọn. Anthropic gợi ý thêm một dòng vào thông điệp commit, chẳng hạn “Phát hiện bởi OSS Scanner của Anthropic, với tư cách lỗ hổng ANT-2026-ABCD1234”.
Bảo mật dữ liệu
Các báo cáo được xử lý giống như những phát hiện CVD tiêu chuẩn của Anthropic: lưu trữ trong một dự án đám mây biệt lập, được khóa chặt và chỉ nhân viên bảo mật vận hành chương trình mới có quyền truy cập.
OSS Scanner và Claude Security
Claude Security là sản phẩm thương mại của Anthropic dành cho doanh nghiệp, giúp tìm và khắc phục lỗ hổng trong mã của chính họ. OSS Scanner dành cho maintainer mã nguồn mở: công cụ bổ sung các harness thử nghiệm tiêu tốn nhiều token để tìm lỗi sâu hơn, và Anthropic chi trả toàn bộ chi phí. Maintainer cũng có thể nhận miễn phí Claude Max 20x thông qua Claude for OSS; chuyên gia bảo mật có thể đăng ký Cyber Verification Program.
Trình tạo project.yaml
Điền các trường để tạo project.yaml theo định dạng được mô tả trong phần FAQ của Anthropic, kèm theo các lệnh để mở pull request. Luôn kiểm tra mẫu hiện tại trong kho lưu trữ trước khi gửi.
Mọi máy chủ git công khai đều được chấp nhận. Nhánh sẽ được nối thêm dưới dạng #branch.
Thư mục bên trong projects/ trong kho lưu trữ của Anthropic.
Thường là email của chính bạn. Nhận mọi báo cáo.
Tính tương đối với repo. Xóa mục này nếu bạn đặt Dockerfile cạnh project.yaml.
Không bắt buộc, phân tách bằng dấu phẩy.
Giữ mặc định, trừ khi tệp của bạn nằm ở nơi khác.
Không bắt buộc. Báo cáo sẽ được mã hóa; khi đó không thể thêm người nhận CC.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Mở pull request
gh repo fork anthropics/oss-scanner --clone cd oss-scanner mkdir -p projects/my-project cp ~/Downloads/project.yaml projects/my-project/project.yaml python3 tools/validate.py git checkout -b enroll-my-project git add projects/my-project git commit -m "Enroll my-project in OSS Scanner" git push -u origin enroll-my-project gh pr create --repo anthropics/oss-scanner --fill
Yêu cầu GitHub CLI (gh) và Python 3. Anthropic sẽ xác minh thủ công rằng bạn là maintainer chủ chốt trước khi chấp nhận.
Dockerfile mẫu
Điểm khởi đầu cho một dự án C/C++ được xây dựng bằng CMake. Điều chỉnh các gói và lệnh dựng cho phù hợp với dự án của bạn; điều quan trọng là mọi thứ đều được cài đặt và dựng bên trong image, vì quá trình kiểm tra chạy ngoại tuyến.
FROM debian:bookworm
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential cmake git ca-certificates pkg-config \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src
COPY . .
# Build everything and fetch all dependencies now:
# the audit itself runs with no network access.
RUN cmake -B build -DCMAKE_BUILD_TYPE=Debug && cmake --build build -j"$(nproc)"
# Optional, but recommended: make sure tests pass inside the image.
RUN ctest --test-dir build --output-on-failureCâu hỏi về OSS Scanner của Anthropic
OSS Scanner của Anthropic có miễn phí không?
Có. Anthropic chi trả toàn bộ chi phí quét cho các dự án đã đăng ký.
Dự án của tôi có phải nằm trên GitHub không?
Không. Trường repo có thể trỏ đến bất kỳ máy chủ git nào. Chỉ pull request đăng ký mới được gửi đến GitHub.
Báo cáo có được con người xem xét không?
Không. Báo cáo xử lý nhanh hoàn toàn do mô hình tạo. Các báo cáo đã được con người xác minh vẫn được gửi riêng qua quy trình CVD của Anthropic.
Nếu dự án của tôi không được chấp nhận thì sao?
Bạn có thể quét bất cứ lúc nào trên ossscanner.org và đăng ký tại đây để nhận các lượt quét chuyên sâu hàng tuần — mọi repo công khai đều đủ điều kiện.
Làm thế nào để ngừng nhận báo cáo?
Tạo PR thêm disabled: true vào project.yaml hoặc xóa thư mục dự án của bạn. Bạn sẽ chỉ nhận lại các báo cáo CVD đã được con người xác minh.