Зачем Anthropic создала этот проект
За шесть месяцев модели Anthropic обнаружили более 29,000 потенциальных уязвимостей в важном программном обеспечении с открытым исходным кодом, однако команда безопасности смогла вручную проверить только около 6,000. Многие сопровождающие, получившие первые отчёты, проверенные специалистами, попросили просто присылать им всё — непроверенные результаты вместе с предлагаемыми исправлениями. Таким образом было отправлено почти 5,000 отчётов.
OSS Scanner превращает это в быстрый путь с добровольным подключением. Отчёты, проверенные специалистами, по-прежнему проходят через процесс координированного раскрытия уязвимостей (CVD) Anthropic; кроме того, подключённые проекты получают исходные результаты работы моделей сразу после их готовности. По словам Anthropic, идея возникла под влиянием OSS-Fuzz от Google.
Что получают сопровождающие проектов
После регистрации проект сканируется, а сопровождающие получают по электронной почте пакет отчётов. В конвейер Anthropic входят агенты, которые перепроверяют ошибки, предлагают исправления и проводят анализ первопричин. Каждый отчёт содержит:
- самодостаточный воспроизводитель ошибки
- описание уязвимости, включая бисекцию для определения момента появления ошибки, если это возможно
- возможный патч, если он доступен
Проекты регулярно сканируются повторно, чтобы обнаруживать новые ошибки и ошибки, пропущенные ранее. Частота зависит от количества проектов в конвейере, распространённости проекта и других факторов.
Насколько точны результаты?
Перед запуском специалисты Anthropic по тестированию на проникновение проверили 97 находок критической и высокой степени серьёзности в 48 проектах. 85 (88%) соответствовали критериям процесса CVD Anthropic; 11 из оставшихся 12 оказались реальными, но дублировали известные проблемы, и только один результат был ложноположительным. Anthropic ожидает, что доля истинно положительных результатов превысит 90%, и предупреждает, что оценки серьёзности могут быть завышены, а сканер может неверно интерпретировать модель угроз проекта.
Первые участники отозвались положительно. wolfSSL сообщил, что из 74 отчётов все, кроме двух, были обоснованными, а пять привели к CVE. Daniel Stenberg сказал, что сканер обнаружил одну из самых серьёзных уязвимостей curl за последние годы; сопровождающие PostgreSQL, OpenSSL и HotCRP также высоко оценили отчёты.
Кто может участвовать
Anthropic использует критерии, схожие с OSS-Fuzz: устоявшиеся проекты, критически важные для инфраструктуры и безопасности пользователей. Каждый случай рассматривается отдельно. Важные факторы — подверженность удалённым атакам (например, библиотеки, обрабатывающие недоверенные данные), а также количество пользователей и зависимых проектов. Если важность проекта не очевидна, добавьте короткое пояснение.
Anthropic вручную проверяет, что заявитель является основным сопровождающим проекта, и может связаться с проектом по другим каналам. Сервис предназначен для проектов, которые уже справляются с подтверждёнными отчётами о проблемах высокой и критической степени серьёзности. Если ваш почтовый ящик уже переполнен, возможно, пока это не лучший вариант для вас.
Как подать заявку
Основные сопровождающие открывают pull request в github.com/anthropics/oss-scanner, добавляя файл projects/your-project/project.yaml на основе шаблона из этого репозитория.
Обязательные поля:
- repo — URL git-репозитория для клонирования, при необходимости с #branch; репозиторий не обязательно должен находиться на GitHub
- primary_contact — адрес электронной почты, на который отправляется каждый отчёт
- Dockerfile — относительный к repo путь к Dockerfile, который устанавливает зависимости и собирает проект; либо поместите файл с именем Dockerfile рядом с project.yaml и не указывайте это поле
Необязательные поля:
- auto_ccs — дополнительные адреса, включаемые в копию каждого отчёта
- homepage — веб-сайт проекта
- threat_model — путь к модели угроз; по умолчанию .oss-scanner/threat_model.md
- pgp — открытый ключ для шифрования отчётов по электронной почте; если он указан, добавлять адреса в копию нельзя
- disabled — укажите true, чтобы приостановить отправку отчётов
Перед открытием PR запустите tools/validate.py и соберите Dockerfile локально. После принятия Anthropic соберёт образ на своей инфраструктуре и сообщит вам по электронной почте, если сборка завершится с ошибкой.
Dockerfile и автономный аудит
Dockerfile собирается с доступом к сети. После этого аудит агентов выполняется в защищённых песочницах с полностью отключённым доступом к интернету. Поэтому все зависимости должны быть предварительно установлены, а проект собран в образе. Anthropic рекомендует убедиться, что тесты проходят внутри контейнера: это позволяет агентам компилировать и запускать код, чтобы подтвердить ошибки.
Файл модели угроз
Файл threat_model.md необязателен и не требует определённого формата. С его помощью можно сообщить агентам то, чего нет в документации:
- какой код нужно тестировать, какие входные данные считать враждебными и что не входит в область проверки
- шкалу серьёзности для критического, высокого, среднего и низкого уровней
- каким должен быть формат отчётов, должны ли патчи быть минимальными или готовыми к слиянию, какие доказательства концепции полезны
- насколько детальной должна быть дедупликация
Без этого сканер делает предположения. Вы можете менять файл между сканированиями, чтобы изменить отчёты. Наш конструктор модели угроз создаст готовый файл.
Раскрытие информации, приостановка и указание авторства
Для этих непроверенных находок нет 90-дневного срока. Если позднее Anthropic подтвердит отчёт в рамках своей программы CVD, информация может быть раскрыта через 90 дней после того, как вам сообщат о подтверждении специалистом. Anthropic сообщает, что в будущем для некоторых отчётов высокой степени серьёзности могут быть введены сроки с предварительным уведомлением и возможностью отказаться.
Чтобы приостановить участие, добавьте disabled: true в project.yaml через PR; чтобы выйти из программы, удалите каталог projects/. Отзывы отправляйте в ответах на письма с отчётами; если вы не зарегистрированы, напишите на oss-scanner-questions@anthropic.com.
Указывать авторство необязательно. Anthropic предлагает добавить в сообщение коммита строку, например: «Обнаружено Anthropic's OSS Scanner, уязвимость ANT-2026-ABCD1234».
Безопасность данных
Отчёты обрабатываются так же, как стандартные находки Anthropic в рамках CVD: они хранятся в изолированном облачном проекте с ограниченным доступом, доступном только специалистам по безопасности, которые проводят программу.
OSS Scanner и Claude Security
Claude Security — коммерческий продукт Anthropic для компаний, предназначенный для поиска и устранения уязвимостей в собственном коде. OSS Scanner предназначен для сопровождающих открытых проектов: он использует экспериментальные, требовательные к токенам тестовые обвязки для поиска более глубоких ошибок, а все расходы покрывает Anthropic. Сопровождающие также могут бесплатно получить Claude Max 20x через Claude for OSS, а специалисты по безопасности могут подать заявку в Cyber Verification Program.
Генератор project.yaml
Заполните поля, чтобы получить project.yaml в формате, описанном в FAQ Anthropic, а также команды для открытия pull request. Перед отправкой обязательно проверьте актуальный шаблон в репозитории.
Любой общедоступный git-хостинг. Ветка добавляется в конце в виде #branch.
Папка в каталоге projects/ репозитория Anthropic.
Обычно это ваш адрес электронной почты. На него поступают все отчёты.
Относительно корня repo. Очистите поле, если Dockerfile находится рядом с project.yaml.
Необязательно, адреса через запятую.
Оставьте значение по умолчанию, если файл находится в другом месте.
Необязательно. Отчёты будут зашифрованы; в этом случае указывать CC нельзя.
projects/my-project/project.yaml
repo: https://github.com/owner/project primary_contact: you@example.org Dockerfile: Dockerfile
Открыть 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
Требуются GitHub CLI (gh) и Python 3. Anthropic вручную проверит, что вы — основной сопровождающий проекта, прежде чем принять заявку.
Пример Dockerfile
Отправная точка для проекта на C/C++, собранного с помощью CMake. Настройте пакеты и команды сборки под свой проект. Важно, чтобы всё устанавливалось и собиралось внутри образа, поскольку аудит выполняется офлайн.
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-failureВопросы об Anthropic OSS Scanner
Бесплатен ли Anthropic OSS Scanner?
Да. Anthropic полностью оплачивает сканирование зарегистрированных проектов.
Должен ли мой проект размещаться на GitHub?
Нет. В поле repo можно указать любой git-хостинг. Только pull request для регистрации отправляется на GitHub.
Проверяет ли отчёты человек?
Нет. Отчёты ускоренной проверки полностью генерируются моделью. Отчёты, проверенные человеком, по-прежнему поступают отдельно в рамках процесса CVD Anthropic.
Что делать, если мой проект не приняли?
Вы можете в любое время просканировать репозиторий на ossscanner.org и подключить его здесь к еженедельному углублённому сканированию — подойдёт любой публичный репозиторий.
Как перестать получать отчёты?
Создайте PR, добавив disabled: true в project.yaml, или удалите каталог проекта. После этого вы будете получать только отчёты CVD, проверенные специалистами.