Dlaczego Anthropic stworzyła tę usługę
W ciągu ponad sześciu miesięcy modele Anthropic wykryły ponad 29 000 potencjalnych podatności w ważnym oprogramowaniu open source, ale zespół ds. bezpieczeństwa mógł ręcznie zweryfikować tylko około 6 000. Wielu maintainerów, którzy otrzymali pierwsze raporty zweryfikowane przez człowieka, poprosiło o przesłanie po prostu wszystkiego — bez weryfikacji, wraz z proponowanymi poprawkami. W ten sposób wysłano prawie 5 000 raportów.
OSS Scanner tworzy szybką ścieżkę dostępną po wyrażeniu zgody. Raporty zweryfikowane przez człowieka nadal są obsługiwane w ramach skoordynowanego procesu ujawniania podatności (CVD) Anthropic; projekty, które dołączą do programu, otrzymują dodatkowo surowe wyniki modeli, gdy tylko są gotowe. Anthropic informuje, że inspiracją było OSS-Fuzz od Google.
Co otrzymują maintainerzy
Po rejestracji projekt jest skanowany, a opiekunowie otrzymują pocztą elektroniczną pakiet raportów. Potok Anthropic obejmuje agentów, którzy ponownie sprawdzają błędy, proponują poprawki i przeprowadzają analizę przyczyn źródłowych. Każdy raport zawiera:
- samodzielny reproducer
- opis podatności, w tym — jeśli to możliwe — bisekcję pozwalającą ustalić, kiedy wprowadzono błąd
- proponowaną poprawkę, jeśli jest dostępna
Projekty są regularnie skanowane ponownie, aby wykrywać nowo wprowadzone błędy i te, które wcześniej przeoczono. Częstotliwość zależy od liczby projektów w potoku, powszechności użycia projektu i innych czynników.
Jaka jest jego dokładność?
Przed uruchomieniem testerzy penetracyjni Anthropic sprawdzili 97 ustaleń o krytycznym i wysokim poziomie istotności w 48 projektach. 85 (88%) spełniło kryteria procesu CVD Anthropic; 11 z pozostałych 12 było prawdziwych, ale stanowiło duplikaty znanych problemów, a tylko jeden przypadek był fałszywie pozytywny. Anthropic spodziewa się odsetka prawdziwie pozytywnych wyników powyżej 90% i ostrzega, że oceny poziomu istotności mogą być zawyżone lub skaner może błędnie interpretować model zagrożeń projektu.
Pierwsi uczestnicy wypowiadali się pozytywnie. wolfSSL poinformował, że z 74 raportów wszystkie poza dwoma były prawidłowe, a pięć uzyskało identyfikatory CVE. Daniel Stenberg powiedział, że skaner wykrył jedną z najpoważniejszych podatności w curl od lat; opiekunowie PostgreSQL, OpenSSL i HotCRP również pochwalili raporty.
Kto może się zgłosić
Anthropic stosuje kryteria podobne do OSS-Fuzz: w każdym przypadku ocenia ugruntowane projekty, których wpływ na infrastrukturę i bezpieczeństwo użytkowników jest krytyczny. Ważne czynniki to podatność na zdalne ataki (na przykład biblioteki przetwarzające niezaufane dane wejściowe) oraz liczba użytkowników i projektów zależnych. Jeśli znaczenie projektu nie jest oczywiste, dodaj krótkie zdanie z wyjaśnieniem.
Anthropic ręcznie weryfikuje, czy osoba składająca zgłoszenie jest głównym opiekunem projektu, i może skontaktować się z projektem innymi kanałami. Usługa jest przeznaczona dla projektów, które już nadążają z obsługą zweryfikowanych zgłoszeń o wysokim i krytycznym poziomie istotności — jeśli Twoja skrzynka odbiorcza jest już przeciążona, usługa może jeszcze nie być dla Ciebie odpowiednia.
Jak złożyć wniosek
Główni opiekunowie projektu otwierają pull request do github.com/anthropics/oss-scanner, dodając plik projects/your-project/project.yaml na podstawie szablonu z tego repozytorium.
Wymagane pola:
- repo — URL git do sklonowania, opcjonalnie z #branch; repo nie musi znajdować się na GitHub
- primary_contact — adres e-mail, na który trafia każdy raport
- Dockerfile — ścieżka względem repo do pliku Dockerfile, który instaluje zależności i buduje projekt; możesz też umieścić plik o nazwie Dockerfile obok project.yaml i pominąć to pole
Pola opcjonalne:
- auto_ccs — dodatkowe adresy otrzymujące kopię każdego raportu
- homepage — strona internetowa projektu
- threat_model — ścieżka do modelu zagrożeń; domyślnie .oss-scanner/threat_model.md
- pgp — klucz publiczny do szyfrowania wiadomości e-mail z raportami; po jego ustawieniu nie można używać CC
- disabled — ustaw na true, aby wstrzymać raporty
Uruchom tools/validate.py i lokalnie zbuduj Dockerfile przed otwarciem pull requestu. Po jego zaakceptowaniu Anthropic zbuduje obraz we własnej infrastrukturze i wyśle Ci e-mail, jeśli się to nie powiedzie.
Dockerfile i audyt offline
Dockerfile jest budowany z dostępem do sieci. Wszystko, co następuje później — audyt agentów — odbywa się w utwardzonych piaskownicach, z całkowicie wyłączonym dostępem do Internetu. Dlatego obraz musi zawierać wcześniej zainstalowane wszystkie zależności oraz zbudowany projekt. Anthropic zaleca sprawdzenie, czy testy przechodzą w kontenerze: dzięki temu agenci mogą kompilować i uruchamiać kod, aby potwierdzać błędy.
Plik modelu zagrożeń
Plik threat_model.md jest opcjonalny i nie ma wymaganego formatu. Możesz w nim przekazać agentom informacje, których nie ma w innej dokumentacji:
- który kod należy testować, które dane wejściowe są wrogie i co nie wchodzi w zakres
- kryteria oceny poziomów istotności: krytycznego, wysokiego, średniego i niskiego
- jak powinny wyglądać raporty, czy poprawki powinny być minimalne czy gotowe do scalenia oraz które dowody koncepcji są przydatne
- jak szczegółowa powinna być deduplikacja
Bez tych informacji skaner zgaduje. Możesz zmieniać plik między skanami, aby wpływać na raporty. Nasz kreator modelu zagrożeń generuje gotowy plik.
Ujawnianie, wstrzymywanie i przypisywanie autorstwa
Te niezweryfikowane ustalenia nie podlegają 90-dniowemu terminowi. Jeśli Anthropic później zweryfikuje raport w ramach swojego programu CVD, może go ujawnić 90 dni po poinformowaniu Cię, że został zweryfikowany przez człowieka. Anthropic informuje, że w przyszłości może wprowadzić terminy dla niektórych raportów o wysokim poziomie istotności, z odpowiednim wyprzedzeniem i możliwością rezygnacji.
Aby wstrzymać skanowanie, dodaj disabled: true do project.yaml w pull requeście; aby odejść z programu, usuń katalog projects/. Opinie można przesyłać w odpowiedziach na wiadomości e-mail z raportami; jeśli nie jesteś uczestnikiem programu, napisz na oss-scanner-questions@anthropic.com.
Podanie autorstwa jest opcjonalne. Anthropic sugeruje dodanie wiersza do komunikatu commita, na przykład: „Discovered by Anthropic's OSS Scanner, as vulnerability ANT-2026-ABCD1234”.
Bezpieczeństwo danych
Raporty są obsługiwane tak samo jak standardowe zgłoszenia CVD Anthropic: są przechowywane w odizolowanym, ściśle zabezpieczonym projekcie w chmurze, dostępnym wyłącznie dla pracowników zespołu bezpieczeństwa obsługujących program.
OSS Scanner a Claude Security
Claude Security to komercyjny produkt Anthropic dla przedsiębiorstw, służący do znajdowania i naprawiania podatności we własnym kodzie. OSS Scanner jest przeznaczony dla opiekunów projektów open source: wykorzystuje dodatkowe, eksperymentalne środowiska testowe wymagające dużej liczby tokenów, aby znajdować głębiej ukryte błędy, a Anthropic pokrywa pełny koszt. Opiekunowie mogą również otrzymać bezpłatnie Claude Max 20x w ramach Claude for OSS, a specjaliści ds. bezpieczeństwa mogą zgłosić się do Cyber Verification Program.
Generator project.yaml
Wypełnij pola, aby wygenerować plik project.yaml w formacie opisanym w FAQ Anthropic oraz otrzymać polecenia otwarcia pull requestu. Przed wysłaniem zawsze sprawdź aktualny szablon w repozytorium.
Dowolny publiczny serwis hostujący repozytoria git. Gałąź jest dodawana jako #branch.
Folder w katalogu projects/ w repozytorium Anthropic.
Zwykle Twój własny adres e-mail. Otrzymuje wszystkie zgłoszenia.
Ścieżka względna względem repo. Wyczyść to pole, jeśli umieszczasz Dockerfile obok project.yaml.
Opcjonalne, oddzielone przecinkami.
Pozostaw wartość domyślną, chyba że Twój plik znajduje się gdzie indziej.
Opcjonalne. Zgłoszenia będą szyfrowane; w takim przypadku nie można dodać adresów CC.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Otwórz 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
Wymaga GitHub CLI (gh) i Python 3. Anthropic ręcznie sprawdza, czy jesteś głównym opiekunem projektu, zanim zaakceptuje zgłoszenie.
Przykładowy Dockerfile
Punkt wyjścia dla projektu C/C++ budowanego za pomocą CMake. Dostosuj pakiety i polecenia budowania do swojego projektu. Ważne, by wszystko było instalowane i budowane wewnątrz obrazu, ponieważ audyt odbywa się offline.
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-failurePytania dotyczące Anthropic OSS Scanner
Czy Anthropic OSS Scanner jest bezpłatny?
Tak. Anthropic pokrywa pełny koszt skanowania projektów objętych programem.
Czy mój projekt musi być na GitHub?
Nie. Pole repo może wskazywać dowolną platformę git. Tylko pull request dotyczący rejestracji trafia do GitHub.
Czy zgłoszenia są sprawdzane przez człowieka?
Nie. Zgłoszenia w trybie przyspieszonym są w całości generowane przez model. Zgłoszenia zweryfikowane przez człowieka nadal są dostarczane osobno w ramach procesu CVD Anthropic.
Co, jeśli mój projekt nie zostanie zaakceptowany?
W dowolnym momencie możesz przeskanować go na ossscanner.org i zapisać się tutaj na cotygodniowe pogłębione skanowanie — kwalifikuje się każde publiczne repozytorium.
Jak przestać otrzymywać raporty?
Utwórz PR dodający disabled: true do pliku project.yaml albo usuń katalog projektu. Będziesz wtedy otrzymywać tylko raporty CVD zweryfikowane przez człowieka.