Всем привет

Меня зовут Сергей. Работаю в небольшой компании. Помимо прочих обязанностей, также анализирую код и docker-образы, написанные нашими разработчиками, на предмет различных уязвимостей. В этой статье хотел бы поделиться нашими подходами и open-source инструментами, которыми я использую в своей работе.

Быть может кто-то найдет что-то полезное или новое.

Введение

В этой статье я расскажу про семь инструментов для сканирования уязвимостей, которыми сам регулярно пользуюсь. Каждый из них хорош по-своему: кто-то вылавливает баги в Python-коде, а кто-то проверяет контейнеры, кто-то смотрит на лучшие практики в написании кода. Мы разберем, как эти инструменты установить, настроить и использовать.

Вы уверены, что ваш код безопасен? В современном мире одна маленькая уязвимость может стоить компании миллионов или, что хуже, репутации. Вспомните историю с Log4j — казалось бы, мелкая библиотека, а сколько шума наделала из-за критической уязвимости! Для разработчиков и компаний поиск слабых мест в коде, зависимостях и контейнерах — это не прихоть, а необходимость. Ведь лучше найти проблему самому, чем ждать, пока ею воспользуются хакеры.

Часть 1. Зачем нужны сканеры уязвимостей?

Представьте, что вы построили дом, но забыли проверить, нет ли в стенах трещин. Код и контейнеры — это ваш цифровой дом, а уязвимости — те самые трещины, через которые могут пролезть незваные гости. Без проверки кода или контейнеров вы рискуете столкнуться с утечкой данных, компрометацией системы или даже полной остановкой работы приложения. Один маленький баг, может превратиться в катастрофу.

Сканеры уязвимостей — это как охранная сигнализация: они помогают найти слабые места до того, как ими воспользуются злоумышленники. И поверьте, лучше потратить час на сканирование, чем неделю на объяснения, почему ваш сервис лег после атаки.

Выбор сканера уязвимостей — это как выбор машины: нужно, чтобы и ехала быстро, и не ломалась на первом повороте. Так на что же обращать внимание, чтобы не прогадать? Во-первых, посмотрите на поддерживаемые языки и платформы. Если вы пишете на Python, а инструмент заточен под Java, толку от него будет мало. Во-вторых, уточните, какие типы уязвимостей он ищет: код, зависимости, контейнеры или все сразу? Некоторые сканеры — настоящие "универсалы", а другие — узкие специалисты.

Не менее важна интеграция с CI/CD. Если инструмент не встраивается в ваш GitHub Actions или Jenkins, вы будете тратить часы на ручное сканирование, а это уже прошлый век. Обратите внимание на обновления базы данных уязвимостей — без свежих данных сканер пропустит новые угрозы, и вы останетесь беззащитны перед хакерами, которые, поверьте, спят и видят ваш устаревший софт. Также учитывайте удобство использования и стоимость: бесплатный инструмент — это здорово, пока он не выдает тонну ложных срабатываний.

Коммерческие решения мы затрагивать не будем, а сосредоточимся лучше на open-source проектах.

Часть 2.1 CVE-Bin-Tool

CVE-Bin-Tool - найдет все.

Краткое описание

CVE-Bin-Tool — это ваш маст-хэв детектив по поиску уязвимостей в бинарных файлах и зависимостях. Он сканирует исполняемые файлы и библиотеки, чтобы найти различные CVE. Оперативно обновляется. Правда собновлениями есть нюанс: основные сервера часто перегружены и обновляется приходится через зеркала или сканировать в оффлайн режиме.

Официальный гит - https://github.com/intel/cve-bin-tool.

Установка

pip install cve-bin-tool

Как вариант можно самому собрать из исходников

git clone https://github.com/intel/cve-bin-tool.git
cd cve-bin-tool
pip install .

После можно проверить

cve-bin-tool –version

Настройка

Предварительных настроек не требует. Дополнительно можно указать путь к базе данных уязвимостей или настроить формат вывода (JSON, CSV, HTML).

Сканирование

cve-bin-tool /path/to/dir

Полезные параметры командной строки

Параметр

Описание

-f CSV/JSON/HTML

Формат отчета

-o output.txt

Сохранение отчета в файл

-x

Проверять только файлы с расширениями .exe, .so, .dll и т.д.

-q

Тихий режим (меньше вывода)

-l LOW/MEDIUM/HIGH/CRITICAL

Фильтр по уровню серьезности

Обновление базы данных

База данных загружается автоматически при запуске. База будет актуальной 24 часа, после потребуется обновить ее. Вот тут пожалуй и скрывается главный минус cve-bin-tool – нужно обновится.

Как я уже писал основные сервера часто загружены, а обновления могут весить много. Если кэш не обновлялся больше 24 часов, то при попытке отсканировать проект, софтина попытается обновится. Сервера лежат, обновление не проходит, сканер крашится.

Или вариант, понадобился нам OSV (Open Source Vulnerabilities) Maven – библиотека уязвимостей Maven. А она многовато весит. В итоге сканер опять отваливается.

Как обойти?

  1. Можно сканировать в режиме оффлайн

    cve-bin-tool –offline

    Сканер выведет предупреждение, что базы не обновлялись больше 24 часов, но просканирует.

  2. Можно попытаться обновится через зеркало

    cve-bin-tool --update now --nvd json-mirror

  3. Можно попытаться обновится вручную с сайта osv-vulnerabilities.storage.googleapis.com. Просмотреть все экосистемы можно тут osv-vulnerabilities.storage.googleapis.com/ecosystems.txt.

    Команда для обновления (как вариант)

    gsutil -m rsync -r gs://osv-vulnerabilities/Alpine ~/.cache/cve-bin-tool/osv/Alpine

    Для каждой (почти для каждой) экосистемы есть файл all.zip

    То есть gs://osv-vulnerabilities/Alpine/all.zip

    Можно все выкачать архивом и после извлечь.

  4. Как по мне, так самый оптимальный вариант это написать небольшой скрипт, который будет сначала запускать обычное сканирование, и если сканер лег, то перезапускать с флагом –offline.

Плюсы и минусы

Плюсы:

  • Простота установки и использования.

  • Поддерживает разные форматы вывода для отчетов.

  • Активное сообщество и открытый исходный код.

Минусы:

  • Частые проблемы с обновлением из-за перегруженных серверов.

  • Большие объемы данных для загрузки (например, для Maven).

  • Много ложных срабатываний — лучше перебдеть, чем недобдеть, но проверять вручную утомительно.

  • Бывает сложно настроить для работы с частными репозиториями.

Часть 2.2 Trivy

Я тоже Trivy, только я не сканер.

Краткое описание

Trivy — это универсальный open-source сканер уязвимостей, разработанный Aqua Security. Это один из самых популярных и универсальных инструментов в своей категории, поддерживающий:

  • Сканирование образов контейнеров (Docker, OCI)

  • Анализ зависимостей (OS пакеты, языковые пакеты)

  • Проверку инфраструктурного кода (IaC: Terraform, Kubernetes)

  • Сканирование репозиториев (Git репозитории)

  • Анализ секретов (утечки credentials)

Официальный гит - https://github.com/aquasecurity/trivy

Установка

sudo apt-get install wget apt-transport-https gnupg lsb-release
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy

После можно проверить

trivy --version

Настройка

Trivy поддерживает конфигурацию через файл .trivy.yaml.

 Полезные параметры командной строки

Переменная

Описание

TRIVY_CACHE_DIR

Путь к кэшу (по умолчанию ~/Library/Caches/trivy)

TRIVY_NON_SSL

Отключить SSL проверки (не рекомендуется)

TRIVY_TIMEOUT

Таймаут операций

TRIVY_QUIET

Тихий режим

Сканирование

 Сканирование Docker образа:

trivy image python:3.8

 Сканирование файловой системы:

trivy fs --security-checks vuln,config,secret /path/to/dir

 Сканирование репозитория:

trivy repo https://github.com/example/repo

 Сканирование оффлайн:

trivy fs --skip-update -f table /path/to/dir

 Сканирование оффлайн без секретов (скорость сканирования возрастает):

trivy fs --skip-update --scanners vuln -f table /path/to/dir

Обновление базы данных

Trivy автоматически обновляет базу данных при первом запуске. Для ручного обновления:

trivy --download-db-only

Плюсы и минусы

 Плюсы:

  • Поддерживает сканирование контейнеров, ОС, зависимостей.

  • Быстрый и легкий, не перегружает систему.

  • Активное сообщество и интеграция с CI/CD.

  • Сканирует как код, так и готовый docker-образ.

 Минусы:

  • Иногда выдает слишком много информации, приходится фильтровать.

  • Ложные срабатывания возможны, особенно на сложных конфигурациях.

Часть 2.3 Grype

Краткое описание

Grype — это мощный open-source инструмент для сканирования уязвимостей в программных компонентах, разработанный компанией Anchore. Это часть экосистемы Syft (генератор SBOM), специализирующаяся на:

  • Анализе образов контейнеров (Docker, OCI)

  • Проверке локальных файловых систем

  • Сканировании архивов и пакетов

  • Поддержке множества ОС и языков программирования

Официальный гит - https://github.com/anchore/grype

Установка

curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b /usr/local/bin

После можно проверить

grype version

Настройка

Grype поддерживает конфигурацию через .grype.yaml.

Полезные параметры командной строки

Параметр

Описание

-o, --output

Формат вывода (table, json, cyclonedx)

--file

Сканировать конкретный файл/архив

--only-fixed

Показывать только исправленные уязвимости

--by-cve

Группировать результаты по CVE

--fail-on

Завершать с ошибкой при указанных уязвимостях

Сканирование

 Сканирование Docker образа:

grype ubuntu:latest

Сканирование директории:

grype dir:/path/to/dir

Обновление базы данных

Grype автоматически обновляет базу при запуске. Для принудительного обновления:

grype db update

Плюсы и минусы

Плюсы:

  • Легкий и быстрый.

  • Поддерживает множество форматов (контейнеры, SBOM, архивы).

  • Отличная интеграция с CI/CD и другими инструментами Anchore.

Минусы:

  • Может быть излишне "болтливым" с ложными срабатываниями.

  • Сообщество поменьше, чем у некоторых конкурентов, вроде Trivy.

Часть 2.4 Bandit

Я бандит, но я хороший.

Краткое описание

Bandit — это статический анализатор безопасности для Python-кода, разработанный OpenStack Security Project. Это инструмент для выявления распространенных уязвимостей безопасности в Python-приложениях, таких как:

  • Инъекции (SQL, командные и т.д.)

  • Использование небезопасных модулей (например, pickle)

  • Проблемы с управлением доступом

  • Утечки чувствительных данных

  • Использование устаревших или небезопасных криптографических функций

Официальный гит - https://github.com/PyCQA/bandit

Установка

pip install bandit

После можно проверить

bandit --version

Как вариант можно самому собрать из исходников

Настройка

Bandit работает "из коробки", но можно настроить его поведение через файл конфигурации .bandit.yaml или .bandit.yml.

Полезные параметры командной строки

Параметр

Описание

-l

Список всех доступных тестов

-p PROFILE

Использовать предустановленный профиль

-t TEST_ID

Запустить конкретные тесты (через запятую)

-s SKIP

Пропустить определенные тесты

-f FORMAT

Формат вывода (txt, json, csv, custom)

-o OUTPUT

Сохранить отчет в файл

-iii

Уровень детализации (i=info, ii=warning, iii=error)

Сканирование

bandit -r /path/to/dir

или если файл один

bandit my_script.py

Обновление базы данных

 Bandit не использует базу данных уязвимостей в классическом смысле, так как это инструмент статического анализа. Однако сам инструмент нужно держать в актуальном состоянии для новых правил и улучшений.

pip install --upgrade bandit

Плюсы и минусы

Плюсы:

  • Быстрый и легкий, не тормозит даже на больших проектах.

  • Специально для Python, глубоко понимает язык и его "подводные камни".

  • Хорошая документация и поддержка сообщества.

Минусы:

  • Ограничен только Python, для других языков бесполезен.

  • Может выдавать ложные срабатывания, особенно на сложных конструкциях.

  • Не ищет уязвимости в зависимостях, только в вашем коде.

Часть 2.5 Semgrep

Краткое описание

Semgrep — это мощный open-source инструмент для статического анализа кода (SAST) и ищет не только известные уязвимости (CVE), но и потенциальные ошибки, плохие практики и даже пользовательские паттерны. Он своего рода "лингвистический детектив" в мире кода.

Ключевые особенности:

  • Поддержка 20+ языков (Python, JavaScript, Java, Go, C#, PHP и др.)

  • Гибкие правила (простой синтаксис для создания собственных паттернов)

  • Быстрое сканирование (работает без полной компиляции кода)

  • Интеграция в CI/CD (GitHub Actions, GitLab CI и др.)

  • Предустановленные правила (1000+ готовых правил для безопасности и качества кода)

Официальный гит - https://github.com/semgrep/semgrep

Установка

pip install semgrep

После можно проверить

semgrep --version

Настройка

Semgrep использует файл .semgrep.yml для конфигурации.

Полезные параметры командной строки

Параметр

Описание

--config

Использовать правила (auto, p/security, p/python и др.)

--exclude

Исключить файлы/директории

--include

Специфичные файлы для сканирования

--severity

Фильтр по серьезности (INFO, WARNING, ERROR)

--metrics

Отправка анонимной статистики (on/off)

Сканирование

Сканирование с официальными правилами:

semgrep --config=auto /path/to/dir

Сканирование с кастомными правилами:

semgrep --config my_rules/ /src

Сканирование конкретного языка:

semgrep --config=p/python /src

Обновление базы данных

Правила обновляются автоматически при каждом запуске.

Плюсы и минусы

Плюсы:

  • Поддерживает множество языков и кастомные правила.

  • Быстрый, как молния, даже на больших проектах.

  • Активное сообщество и интеграция с CI/CD.

Минусы:

  • Требует времени на настройку правил для сложных случаев.

  • Иногда выдает ложные срабатывания, особенно на нестандартном коде.

  • Для новичков может показаться сложным из-за обилия опций.

Часть 2.6 Bearer

Я защищу твои данные!

Краткое описание

Bearer — это современный open-source инструмент для статического анализа безопасности приложений (SAST). Он своего рода "охранник данных", специализирующийся на поиске уязвимостей, связанных с конфиденциальной информацией в коде. Bearer ищет такие утечки секретов, как API-ключи, пароли, токены, а также проблемы с обработкой персональных данных (GDPR, CCPA). Ключевые особенности:

  • Поддержка 7+ языков: Ruby, JavaScript/TypeScript, Java, Go, PHP, Python, C#

  • Обнаружение 120+ типов уязвимостей: SQL-инъекции, XSS, проблемы аутентификации и др.

  • Анализ конфиденциальных данных: Выявление утечек персональных данных (PII)

  • Compliance-проверки: Поддержка стандартов GDPR, HIPAA, PCI-DSS

  • Интеграция в CI/CD: Готовые решения для GitHub Actions, GitLab CI и др.

Официальный гит - https://github.com/Bearer/bearer

Установка

curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh

После можно проверить

bearer --version

Настройка

Bearer работает "из коробки", но его также можно настроить его через файл конфигурации .bearer.yml.

Полезные параметры командной строки

Параметр

Описание

--severity

Фильтр по серьезности (critical, high, medium, low, warning)

--format

Формат отчета (json, yaml, csv, html)

--skip-path

Исключить директории из сканирования

--only-rule

Сканировать только определенные правила

--exit-code

Код завершения при нахождении уязвимостей

Сканирование

Быстрое сканирование проекта:

bearer scan .

Сканирование с определенным уровнем серьезности:

bearer scan --severity=critical,high /path/to/dir

Обновление базы данных

Правила обновляются автоматически при каждом запуске.

Плюсы и минусы

Плюсы:

  • Специализируется на секретах и конфиденциальных данных, что делает его уникальным.

  • Прост в использовании, минимальная настройка.

  • Поддерживает интеграцию с CI/CD.

Минусы:

  • Ограничен поиском секретов, не ищет другие типы уязвимостей.

  • Может выдавать ложные срабатывания на тестовые данные.

  • Сообщество пока не такое большое, как у более универсальных инструментов.

  • Поддерживает только проекты с гитхаба

Часть 2.7 Graudit

Краткое описание

Graudit (Grep + Audit) — это легковесный инструмент для поиска уязвимостей в исходном коде с использованием регулярных выражений. Это скрипт на Bash, который использует grep для поиска потенциально опасных паттернов в коде, SQL-инъекций, XSS (межсайтовый скриптинг), жестко закодированные пароли.

Ключевые особенности:

  • Поддержка 15+ языков программирования (PHP, Java, Python, C/C++, JavaScript и др.)

  • 50+ встроенных шаблонов для поиска распространённых уязвимостей

  • Простота использования и настройки

  • Не требует установки зависимостей (только Bash и grep)

  • Возможность добавления собственных правил

Официальный гит - https://github.com/wireghoul/graudit

Установка

git clone https://github.com/wireghoul/graudit.git
cd graudit

После можно проверить

grep --version

Настройка

Graudit не требует сложной настройки, но вы можете добавить свои сигнатуры (паттерны уязвимостей) в файлы базы данных, которые находятся в папке signatures.

Полезные параметры командной строки

Параметр

Описание

-l lang

Указание языка (php, java, python и др.)

-d

Рекурсивное сканирование директории

-c

Только критические уязвимости

-i

Игнорировать регистр

-v

Подробный вывод

-H

Показывать имя файла в выводе

Сканирование

Сканирование файла:

graudit file.php

Сканирование директории:

graudit -d /path/to/code

Сканирование с указанием языка:

graudit -l python script.py

Поиск только критических уязвимостей:

graudit -c file.php

Обновление базы данных

Graudit не имеет автоматического механизма обновления базы уязвимостей, но его можно обновить просто скачав последнюю версию из репозитория.

Плюсы и минусы

Плюсы:

  • Очень легкий и быстрый, не требует сложной установки.

  • Поддерживает кастомные сигнатуры, что делает его гибким.

  • Работает на любых системах, где есть grep.

Минусы:

  • Выдает много ложных срабатываний, требует ручной фильтрации.

  • Выдает просто тонны сработок на относительно безопасный фронт.

  • Не такой умный, как современные SAST-инструменты, полагается на простые текстовые совпадения.

  • Сообщество небольшое, документация минимальна.

  • Это вам конечно не SonarQube, но в связке с остальными инструментами выдает хороший результат.

Часть 2.8 Horusec

Вы действительно думали, что их будет только семь? :)

Я все вижу.

Краткое описание

Horusec — это open-source инструмент для статического анализа безопасности (SAST) кода. Этот инструмент предназначен для выявления уязвимостей в исходном коде на ранних этапах разработки. Horusec ищет такие проблемы, как SQL-инъекции, XSS, жестко закодированные секреты, небезопасные криптографические алгоритмы и многое другое. Название кстати отсылает к египетскому богу Гору с его "всевидящим оком".

  • Поддержка 20+ языков программирования (JavaScript, Python, Go, Java и др.)

  • Сканирование Docker-образов на уязвимости

  • Анализ IaC (Terraform, Kubernetes manifests)

  • Обнаружение секретов (API-ключи, пароли в коде)

  • Интеграция с GitLab, GitHub Actions, Jenkins

  • Генерация отчетов в JSON, HTML, SonarQube-формате

Официальный гит - https://github.com/ZupIT/horusec

Установка

curl -fsSL https://raw.githubusercontent.com/ZupIT/horusec/main/deployments/scripts/install.sh | bash -s latest

После можно проверить

horusec version

Для полноценной устанвовки нужно еще установить docker-образ, однако на последних версиях самого dockera сканер работает нестабильно. На гитххабе даже видел ишью с этой проблемой. Автор посоветовал временно отключить привязку докера (--disable-docker), мол в скором времени все пофиксят, однако поддержка данного проекта заглохла. Поэтому юзаем как юзаем.

Настройка

Horusec работает сразу после установки, но его также можно настроить через файл конфигурации (.horusec-config.json).

Полезные параметры командной строки

Параметр

Описание

horusecCliSeveritiesToIgnore

Игнорировать уязвимости определенной критичности

horusecCliEnableGitHistory

Сканировать историю Git (замедляет анализ)

horusecCliOutputFormat

Формат отчета (json, html, sonarqube)

Сканирование

horusec start -p "/path/to/code" \
					--disable-docker \
					--output-format=json \
					--json-output-file="/path/to/report" 2>&1; then

еще пару полезных флагов

--information-severity=true - будет выводить сведения типа INFO

--ignore-severity="LOW,MEDIUM,HIGH" - будет игнорировать угрозы типа LOW или MEDIUM или HIGH

Обновление базы данных

Ну какое может быть обновление у проекта, который с 2022 не обновлялся?

Плюсы и минусы

Плюсы:

  • Поддерживает множество языков программирования (Go, JavaScript, Python и др.).

  • Интеграция с CI/CD пайплайнами для автоматизации.

  • Находит реального много "плохого" кода

Минусы:

  • Может выдавать ложные срабатывания, особенно на сложных проектах.

  • Не обновляется с 2022

Часть 2.9 Syft

Она не пропустит ни одной библиотеки.

Краткое описание

Как бонус

Syft — это инструмент командной строки от компании Anchore для генерации SBOM (Software Bill of Materials) — инвентаризации всех компонентов программного обеспечения, включая зависимости, библиотеки и метаданные. По сути это "детектив по инвентаризации".

Ключевые возможности:

  • Поддержка 20+ форматов пакетов (Docker, APK, DEB, RPM, Python Wheels, npm, Gem и др.)

  • Генерация SBOM в разных форматах (SPDX, CycloneDX, JSON)

  • Интеграция с Grype (инструмент для сканирования уязвимостей)

  • Работа с OCI-образами, файловыми системами и архивами

  • Поддержка CI/CD-интеграции (GitHub Actions, GitLab CI, Jenkins)

Официальный гит - https://github.com/anchore/syft

Установка

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sudo sh -s -- -b /usr/local/bin

После можно проверить

syft version

Настройка

Syft работает "из коробки", но его можно настроить через флаги командной строки или файл конфигурации (.syft.yaml).

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

Формат

Описание

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

spdx-json

SPDX в JSON

syft ... -o spdx-json

cyclonedx-xml

CycloneDX в XML

syft ... -o cyclonedx-xml

json

Собственный формат Syft

syft ... -o json

table

Табличный вывод (по умолчанию)

syft ... -o table

Сканирование

Генерация SBOM для Docker-образа:

syft ubuntu:latest -o spdx-json > sbom.json

Анализ локальной файловой системы:

syft dir:/path/to/code --output table

Сканирование архива (tar, zip):

syft archive:app.tar.gz -o cyclonedx-json

Плюсы и минусы

Плюсы:

  • Отлично справляется с инвентаризацией ПО, особенно в контейнерах.

  • Поддерживает множество форматов и источников данных (Docker, OCI, файлы).

  • Активное сообщество и интеграция с другими инструментами, такими как Grype.

Минусы:

  • Может быть медленным при сканировании больших образов.

  • Требует дополнительных инструментов для полного анализа безопасности.

Часть 3. Небольшой вывод

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

Функционалы многих программ схожи и где-то пересекаются, что на самом деле очень хорошо. Это позволяет легко отсеивать ложные срабатывания, сравнивая результаты разных сканеров. Также, если один инструмент не успел обновить свою базу уязвимостей (или со стороны разработчика она не была обновлена), есть шанс, что другой сканер обнаружит свежую угрозу.

Понятное дело, об обнаружении 0-day уязвимостей речи не идет, однако SAST-сканеры способны существенно снизить вероятность возникновения таких атак в коде, выявляя потенциальные проблемы на ранних этапах разработки. Использование нескольких инструментов в связке позволяет закрыть большинство "слепых зон" и повысить общий уровень безопасности вашего проекта.

В итоге, выбор подходящего сканера или комбинации инструментов зависит от специфики вашего проекта, требований к безопасности и возможностей интеграции. Регулярное сканирование, обновление инструментов и анализ отчетов станут вашими верными союзниками в борьбе за безопасный код. Не стоит полагаться на один "волшебный" инструмент — разнообразие подходов и автоматизация проверок помогут вам быть на шаг впереди потенциальных угроз.

Ну и напоследов несколько рекомендаций по выбору сканера:

  • Если вы работаете с контейнерами и зависимостями:

    • Trivy — отличный выбор для быстрого и точного сканирования контейнеров, Kubernetes и зависимостей. Подходит для DevOps и CI/CD.

    • Grype + Syft — идеальная комбинация для инвентаризации (Syft) и анализа уязвимостей (Grype) в контейнерах. Рекомендуется для детализированных отчетов.

  • Если вы фокусируетесь на статическом анализе кода (SAST):

    • Semgrep — лучший выбор для гибкости благодаря кастомизации правил и поддержки множества языков. Подходит для больших команд и сложных проектов.

    • Bandit — если вы работаете исключительно с Python, это простой и быстрый инструмент для базового анализа.

    • Horusec — хороший вариант для команд, которым нужна поддержка множества языков и интеграция с CI/CD.

  • Если вы ищете узкоспециализированные инструменты:

    • CVE-Bin-Tool — подойдет для анализа бинарных файлов, если это ваш основной фокус.

    • Bearer — если приоритет на защите данных и поиске секретов в коде (например, API-ключей или паролей).

  • Если у вас ограниченные ресурсы или устаревшие проекты:

    • Graudit можно использовать как запасной вариант для простого анализа через сигнатуры, но он устарел и не рекомендуется для серьезных проектов.