Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bomber — Сканирует Software Bill of Materials (SBOM) на наличие уязвимостей безопасности. | Kitploit
Инструменты/GitHubGitHub/devops-kung-fu/bomber
Сканеры уязвимостейDevSecOpsБезопасность Цепочки Поставок
GitHubdevops-kung-fu/bomber

bomber

Сканирует Software Bill of Materials (SBOM) на наличие уязвимостей безопасности.

РепозиторийСайт
624566 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

bomber

GitHub release (latest by date) Go Report Card CII Best Practices codecov

bomber — это приложение, которое сканирует SBOM на наличие уязвимостей безопасности.

Обзор

Итак, вы запросили у поставщика Спецификацию программного обеспечения (SBOM) для одного из их продуктов с закрытым исходным кодом, и они предоставили её в JSON-файле... что дальше?

Первое, что вы захотите сделать, — это проверить, нет ли у какого-либо из компонентов, перечисленных в SBOM, уязвимостей безопасности и какие лицензии у этих компонентов. Это поможет вам понять, какой риск вы берёте на себя, используя продукт.

Поиск уязвимостей безопасности и информации о лицензиях для компонентов, указанных в SBOM, — это именно то, для чего предназначен bomber. bomber может читать любой формат CycloneDX на основе JSON или XML, а также SBOM в формате JSON SPDX или Syft и быстро сообщить вам о наличии уязвимостей.

Содержание

  • Открытый vs. Закрытый исходный код
  • Цель
  • Поддерживаемые форматы SBOM
  • Провайдеры
    • Поддержка провайдеров
    • Документация провайдеров
  • Установка
    • Mac
    • Linux
  • Использование bomber
    • Сканирование одного SBOM
    • Сканирование целой папки
  • Форматы вывода
    • HTML-вывод
    • JSON-вывод
    • Markdown-вывод
  • Игнорирование уязвимостей
  • Фильтрация вывода
  • Обогащение данных
    • Система прогнозирования вероятности эксплуатации (EPSS)
  • Продвинутые возможности
    • Сканирование SBOM из STDIN
    • Переменные окружения
  • Экспериментальные возможности
    • Коды возврата наивысшей серьёзности (экспериментально)
    • HTML-отчёт с обогащением OpenAI AI
  • Эксперименты
  • Примечания
  • Содействие
  • Спецификация программного обеспечения
  • Спонсоры
  • Благодарности

Открытый vs. Закрытый исходный код

Программное обеспечение может быть как с открытым, так и с закрытым исходным кодом. Вы можете рассматривать сторонние компоненты, которые найдёте на Github или в любом публичном репозитории, как открытый исходный код. Технически, программное обеспечение, которое вы создаёте внутри своей компании, тоже является открытым — оно не публичное, но ваши внутренние команды могут его видеть. Закрытый исходный код также может быть внутренним, но обычно это программное обеспечение, которое вы покупаете у внешних поставщиков.

Компании могут использовать инструменты SCA от таких поставщиков, как Github, Sonatype, Snyk и т.д., для сканирования любого открытого исходного кода и предоставления данных об уязвимостях — и даже для генерации SBOM в некоторых случаях. Однако они не могут (пока...) сканировать закрытое программное обеспечение, к которому у вас нет доступа. Здесь на помощь приходят SBOM и bomber. SBOM предоставляют состав программного обеспечения, к которому вы не имеете доступа, а bomber определяет, есть ли у какого-либо компонента в SBOM уязвимости.

Цель

Мы создали bomber для сканирования закрытых SBOM, которые вы получаете от поставщиков. Он также может сканировать открытые SBOM, и технически вы можете использовать bomber как инструмент SCA с открытым исходным кодом, если захотите.

Поддерживаемые форматы SBOM

На сегодняшний день существует множество форматов SBOM. bomber поддерживает следующие:

  • SPDX
  • CycloneDX
  • Syft

Провайдеры

bomber поддерживает несколько источников информации об уязвимостях. Мы называем их провайдерами. В настоящее время bomber использует OSV в качестве провайдера по умолчанию, но вы также можете использовать Базу данных уязвимостей Github, Sonatype OSS Index или Snyk.

Обратите внимание, что на данный момент OSV бесплатен и не требует учётных данных, Sonatype OSS Index бесплатен, но требует регистрации и получения токена, а поддержка Snyk требует лицензии Snyk.

В дополнение к данным, которые bomber собирает от провайдеров, он также обогащает данные об уязвимостях дополнительной информацией, такой как вероятности эксплуатации.

Поддержка провайдеров

Имейте в виду, что каждый провайдер поддерживает разные экосистемы, поэтому, если вы не видите уязвимостей у одного, попробуйте другой. Экосистема — это просто менеджер пакетов или тип пакета. Примеры: rpm, npm, gems и т.д. Важно понимать, что разные провайдеры могут сообщать о разных уязвимостях. Если сомневаетесь, посмотрите на несколько из них.

Если bomber не находит уязвимостей, это не значит, что их нет. Это означает только то, что используемый провайдер не обнаружил их или не поддерживает данную экосистему. Некоторые провайдеры возвращают уязвимости без информации о серьёзности. В этом случае уровень серьёзности будет указан как "UNDEFINED".

Документация провайдеров

Документация провайдеров для bomber доступна:

  • OSV
  • База данных уязвимостей GitHub
  • OSSINDEX
  • Snyk

Установка

Mac

Вы можете использовать Homebrew для установки bomber с помощью следующей команды:

root@kitploit:~
brew tap devops-kung-fu/homebrew-tap
brew install devops-kung-fu/homebrew-tap/bomber

Если у вас нет Homebrew, вы всё равно можете скачать последний релиз (например, bomber_0.4.1_darwin_all.tar.gz), извлечь файлы из архива и использовать бинарный файл bomber.

При желании вы можете переместить бинарный файл bomber в каталог /usr/local/bin или в любое место в вашем PATH.

Linux

Чтобы установить bomber, скачайте последний релиз для вашей платформы и установите локально. Например, установка bomber на Ubuntu:

root@kitploit:~
dpkg -i bomber_0.5.0_linux_arm64.deb

Использование bomber

Вы можете сканировать как целую папку с SBOM, так и отдельный SBOM с помощью bomber. bomber не важно, если в одной папке находятся несколько форматов. Он всё рассортирует.

Обратите внимание, что вывод по умолчанию для bomber — это STDOUT. Возможность вывода в HTML или JSON описана далее в этом документе.

Сканирование одного SBOM

root@kitploit:~
# Использование OSV (провайдер по умолчанию), который не требует учётных данных
bomber scan cyclonedx.sbom.json

# Использование провайдера, требующего учётных данных (ossindex)
bomber scan --provider=xxx --username=xxx --token=xxx [sbom.json]

Если провайдер находит уязвимости, вы увидите вывод, похожий на следующий:

Если провайдер не возвращает уязвимостей, вы увидите сообщение о том, что уязвимости не найдены.

ПРИМЕЧАНИЕ: То, что провайдер не нашёл уязвимостей, не означает, что их нет. Пожалуйста, попробуйте других провайдеров, которых поддерживает bomber.

Сканирование целой папки

Это полезно, когда вы получаете несколько SBOM от поставщика для одного и того же продукта. Или, возможно, вы хотите узнать, какие уязвимости есть во всей вашей организации. Сканирование папки найдёт все компоненты, удалит дубликаты и затем просканирует их на уязвимости.

root@kitploit:~
# сканирование папки с SBOM (следующая команда просканирует папку с именем "sboms" в текущей папке)
bomber scan --provider=xxx --username=xxx --token=xxx ./sboms

Результат будет похож на результат сканирования одного SBOM.

Форматы вывода

bomber выводит данные в трёх полезных форматах. По умолчанию вывод отображается в командной строке. Для расширенного отчёта вы можете вывести данные в HTML, используя флаг --output=html. Для вывода в JSON используйте флаг --output=json. Для вывода в нескольких форматах используйте спецификацию вывода через запятую: --output=html,stdout,json.

HTML-вывод

Если вы хотите получить читаемый отчёт с подробной информацией об уязвимостях, вы можете использовать флаг --output, чтобы сохранить отчёт в HTML-файл.

Пример команды:

root@kitploit:~
bomber scan bad-bom.json --output=html

Это сохранит файл в вашей текущей папке в формате "YYYY-MM-DD-HH-MM-SS-bomber-results.html". Если открыть этот файл в веб-браузере, вы увидите что-то вроде следующего:

JSON-вывод

bomber может выводить данные об уязвимостях в формате JSON с помощью флага --output. Вывод по умолчанию — в STDOUT. В JSON-выводе содержится гораздо больше информации, чем отображается в терминале. Вы сможете увидеть описание пакета и его назначение, имя уязвимости, краткое описание уязвимости и многое другое.

Пример команды:

root@kitploit:~
bomber scan bad-bom.json --output=json > filename.json

Markdown-вывод

bomber также поддерживает вывод в формате Markdown. Он очень похож на HTML-вывод, но передаёт стилизацию средству рендеринга Markdown, например GitHub. Вывод сохраняется в файл в формате "YYYY-MM-DD-HH-MM-SS-bomber-results.md".

Пример команды:

root@kitploit:~
bomber scan bad-bom.json --output=md

Игнорирование уязвимостей

При необходимости вы можете использовать флаг --ignore-file, чтобы загрузить список CVE, которые следует игнорировать в выводе уязвимостей. Этот список должен быть в определённом формате, где каждый игнорируемый CVE указывается на отдельной строке, как показано ниже:

root@kitploit:~
CVE-2022-31163
CVE-2022-23520

Пример файла bomber.ignore находится здесь

Чтобы использовать файл bomber.ignore, используйте следующий синтаксис:

root@kitploit:~
bomber --ignore-file=bomber.ignore scan bom.json

Фильтрация вывода

Вы можете установить уровень серьёзности с помощью флага --severity, чтобы возвращать только уязвимости определённой серьёзности. Например, если установить --severity=moderate, будут возвращены только уязвимости с уровнем серьёзности MODERATE и выше.

Например, следующая команда вернёт только уязвимости высокого и критического уровня.

root@kitploit:~
bomber --severity=high scan bom.json

Обогащение данных

bomber имеет возможность обогащать данные об уязвимостях, полученные от Провайдеров. Первый реализованный нами "обогатитель" — для EPSS

ПРИМЕЧАНИЕ: Оценка EPSS больше не используется по умолчанию в bomber 0.5.0 и выше. Чтобы показывать оценки EPSS, обязательно используйте флаг --enrich=epss.

Система прогнозирования вероятности эксплуатации (EPSS)

EPSS (Exploit Prediction Scoring System) — это система, которая прогнозирует вероятность эксплуатации уязвимости. EPSS часто используется для выявления уязвимостей с высоким риском, которые нужно устранять в первую очередь.

EPSS использует процент для вероятности. Например, если вы видите 94, это означает, что вероятность эксплуатации данной уязвимости составляет 94%. И логично, что уязвимость с таким высоким показателем, как 94, заслуживает немедленного внимания, в то время как уязвимость с показателем, скажем, 20, должна иметь более низкий приоритет.

Продвинутые возможности

При желании вы можете установить две переменные окружения для хранения учётных данных, чтобы не вводить их в командной строке. Ознакомьтесь с информацией о Переменных окружения далее в этом README.

Сканирование SBOM из STDIN

Если вы используете bomber в конвейерах CI/CD, вы можете выполнить всё одной командой с Syft для генерации и сканирования SBOM на уязвимости. Для этого можно сделать что-то вроде следующей команды:

root@kitploit:~
# Убедитесь, что в конце команды стоит символ -. Это заставляет bomber читать из STDIN
syft packages . -o cyclonedx-json | bomber scan --provider ossindex --output json -

Эта команда создаёт SBOM, передаёт его в bomber и генерирует результаты в формате JSON.

Переменные окружения

Если вы не хотите каждый раз вводить учётные данные, вы можете добавить следующее в ваш .bashrc или .bash_profile

root@kitploit:~
export BOMBER_PROVIDER_USERNAME={{ваше имя пользователя OSS Index}}
export BOMBER_PROVIDER_TOKEN={{ваш API-токен OSS Index}}

Экспериментальные возможности

Коды возврата наивысшей серьёзности (экспериментально)

Использование флага --exitcode приведёт к возврату кода выхода, соответствующего наивысшей серьёзности найденной уязвимости. Без этого флага ожидаемый код выхода — 0 для успеха или 1 при возникновении ошибки.

При отсутствии ошибок bomber вернёт следующие значения при использовании --exitcode:

SeverityReturn Code
UNSPECIFIED (Это статус, когда провайдер предоставляет что-то странное или не даёт информации)10
LOW11
MODERATE

HTML-отчёт с обогащением OpenAI AI

bomber теперь содержит экспериментальную функцию, которая обогащает описание уязвимостей в HTML-выводе. Эта функция берёт уязвимость и меняет её описание на более понятное для нетехнического пользователя.

ПРИМЕЧАНИЕ: Эта функция находится на ранней стадии альфа-версии. Она чрезвычайно медленная, и вывод не очень хорошо отформатирован.

Чтобы использовать эту функцию, вам нужно предоставить ключ API OpenAI. Вы можете передать этот ключ в CLI с помощью флага --openai-api-key={{ваш ключ API OpenAI}} или добавить переменную окружения:

root@kitploit:~
export OPENAI_API_KEY={{ваш ключ API OpenAI}}

После установки ключа API OpenAI вы можете использовать флаг вывода следующим образом:

root@kitploit:~
bomber scan --output ai [sbom.json]

Эксперименты

Если вы хотите опробовать bomber, в папке test вы найдёте подборку тестовых SBOM.

Примечания

  • Довольно редко встречаются SBOM с информацией о лицензиях. В большинстве случаев генераторы, такие как Syft, требуют флаг --license. Если вам нужна информация о лицензии, обязательно запрашивайте её в SBOM.
  • OSV. Это отличный сервис, но API у него капризный. У них есть пакетная конечная точка, которая могла бы значительно ускорить получение информации, но на момент написания этого документа она работает не так, как ожидалось. bomber должен отправлять по одному PURL за раз, чтобы получить уязвимости, поэтому для большого SBOM это займёт некоторое время. Мы будем следить за ситуацией.

Содействие

Если вы хотите внести свой вклад в развитие bomber, пожалуйста, обратитесь к файлу CONTRIBUTING.md в этом репозитории. Пожалуйста, прочитайте файл CODE_OF_CONDUCT.md перед тем, как вносить вклад.

Спецификация программного обеспечения

bomber использует Syft для генерации Спецификации программного обеспечения каждый раз, когда разработчик фиксирует код в этом репозитории (пока используется Hookz и он инициализирован в рабочем каталоге). Дополнительная информация о CycloneDX доступна здесь.

Текущая SBOM CycloneDX для bomber доступна здесь.

Спонсоры

Спасибо спонсорам и сторонникам bomber

Благодарности

Большое спасибо нашим друзьям из ZERO за логотип bomber.

Спасибо Sonatype за предоставление такого замечательного инструмента, как Sonatype OSS Index.

Огромное спасибо нашим друзьям и коллегам-участникам bomber из Snyk за создание провайдера и реализацию обработки SBOM из STDIN. Вы, ребята, супер.

Описание EPSS взято у команды Nucleus. Спасибо!

Скачать инструмент
12
HIGH13
CRITICAL14