Заметки о Kubernetes Security и DevSecOps

DevSecOps для самых маленьких: 6\n. Как запустить Bounty Hunter в свой кластер

19 сентября 2026 г., 2 минуты

Сканирование кода и зависимостей: как запустить Bounty Hunter в свой кластер.

В прошлый раз мы разобрались с микросегментацией — построили стены внутри кластера. Теперь следующий слой. И тут мне в голову пришёл Bounty Hunter из Dota.

Этот герой не убивает в лоб. Он выслеживает. Идёт по следам, находит то, что спрятано, и приносит команде золото за голову. Сканирование кода работает так же: оно не чинит уязвимости, оно их находит. До того, как сломают трон они попадут в прод.

Что такое сканирование кода и зависимостей

Если совсем коротко — это автоматическая проверка кода, библиотек и конфигов на уязвимости, ошибки и секреты. До того, как они доедут до продакшена.

Есть несколько видов проверок, и их важно не путать.

SAST — статический анализ кода. Проверяет исходный код на типовые ошибки: SQL-инъекции, XSS, небезопасную работу с файлами, хардкод паролей. Работает без запуска приложения. Пример: Semgrep, Bandit.

SCA — анализ зависимостей. Проверяет библиотеки и пакеты, которые ты используешь. Ищет известные CVE. Работает по манифестам: package.json, requirements.txt, go.mod. Пример: Trivy, OWASP Dependency-Check.

Поиск секретов — отдельная категория. Проверяет код и историю Git на пароли, токены, ключи. Пример: Gitleaks, TruffleHog.

DAST — динамический анализ. Проверяет уже запущенное приложение. Стучится в него как атакующий. Пример: OWASP ZAP.

IaC и образы — проверка Terraform, Kubernetes-манифестов, Dockerfile, контейнерных образов. Пример: Trivy, Checkov.

Почему дефолт — это дыра

В обычном пайплайне сканирования нет. Разработчик написал код, закоммитил, собрал, задеплоил. Всё работает — и ладно.

А потом выясняется, что в одной из зависимостей критическая уязвимость, которую опубликовали месяц назад. Или что в коде есть SQL-инъекция, которую никто не заметил. Или что пароль от базы лежит в Git с прошлого года.

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

Что конкретно сканировать

Первое — исходный код. SAST на каждом коммите. Пусть пайплайн падает, если находит критичное.

Второе — зависимости. SCA на каждом коммите. Проверять все пакеты, которые тащит проект.

Третье — секреты. Gitleaks в pre-commit и в CI. Чтобы пароли не уходили в Git.

Четвёртое — IaC. Terraform, Kubernetes-манифесты, Helm-чарты. Trivy и Checkov это умеют.

Пятое — контейнерные образы. Trivy, Grype. Проверять базовые образы и слои.

Шестое — запущенное приложение. DAST, но это уже на стенде, не в пайплайне.

Инструменты

Open source: Semgrep — SAST с простыми правилами. Trivy — SCA, контейнеры, IaC, secrets, один бинарь на всё. OWASP Dependency-Check — классика SCA. OWASP ZAP — DAST. Bandit — SAST для Python. Gitleaks и TruffleHog — поиск секретов.

Российские решения: AppSec.Code от AppSec Solutions — среда разработки со встроенными функциями ИБ. PT Application Inspector 4.0 — SAST, DAST, SCA. Solar appScreener — SAST, DAST, SCA, SCS в одном. AppSec.Wave — статический анализ. PVS-Studio и SASTAV — SAST-системы. СКАТмен от Инферит — бесплатный поиск уязвимостей по БДУ ФСТЭК.

С чего начать

Первое — добавить Gitleaks в pre-commit. Это самое простое и самое важное. Секреты не должны уходить в Git.

Второе — добавить Trivy в CI. Пусть проверяет зависимости и образы. Начни с режима «только отчёт», потом сделай так, чтобы критичное ломало сборку.

Третье — добавить Semgrep. Хотя бы с community-правилами. Посмотреть, что найдёт.

Четвёртое — добавить SAST для твоего языка. Bandit для Python, gosec для Go, Brakeman для Ruby.

Пятое — не пытайся чинить всё сразу. Сканер найдёт много. Начни с критичного. Остальное — в бэклог.

Главное

Сканирование — это не про то, чтобы запретить всё. Это про то, чтобы находить проблемы раньше, чем их найдут другие. Bounty Hunter не убивает врага — он его находит и показывает команде. Сканер делает то же самое: находит уязвимость и говорит, где она.

Без сканирования остальные практики DevSecOps работают вполсилы. Можно харденить контейнеры, но если в зависимости критическая CVE, толку мало. Можно сегментировать сеть, но если в коде SQL-инъекция, атакующий всё равно пройдёт.

Начни с Gitleaks. Потом Trivy. Потом Semgrep. Через месяц твой пайплайн будет проверять код и зависимости, и ты будешь спать спокойнее.

В следующий раз разберём supply chain. Приходите в Telegram-канал «DevSecOps здорового человека» — там мы это всё обсуждаем.

Безопасность может быть без пафоса и с юмором.

Social Media
Telegram
Powered by BS5 Simply Blog and Bludit
Navigation