Сканер есть, отчёт никто не читает
Инструмент поставили, он выдал длинный список, и разработчики перестали открывать вкладку с результатами. Нужны порог блокировки, владельцы находок и правила подавления, а не ещё один сканер.
SAST читает ваш код, SCA сверяет библиотеки с базой известных уязвимостей, DAST проверяет запущенное приложение снаружи. Каждый видит своё, поэтому ценность даёт не сканер, а настроенный конвейер: что запускается на каждом изменении, что блокирует выпуск, кто разбирает находки. Настраиваем его в вашей сборке и в закрытом контуре.
Пилот на одном-трёх репозиториях — от 150 000 ₽Сканеры ставятся у вас, исходники никуда не выгружаютсяDAST только на вашем тестовом стенде, боевую систему не атакуем
Инструмент поставили, он выдал длинный список, и разработчики перестали открывать вкладку с результатами. Нужны порог блокировки, владельцы находок и правила подавления, а не ещё один сканер.
Спрашивают, проверяете ли вы код и библиотеки автоматически. Ответ «иногда вручную» не убеждает: нужен процесс со следом в журнале сборки.
Рецензент смотрит логику и не замечает, что в зависимость пришла известная уязвимость или в коммит попал ключ. Рутинные проверки лучше отдать машине, а человека оставить для логики.
Облачные сканеры просят загрузить исходники. Для закрытых проектов это чаще всего не подходит по требованиям заказчика, поэтому инструменты ставятся в вашем контуре.
Выбор по ситуации и порядок подключения — в статье «SAST, DAST, SCA: в чём разница».
Примеры условные, на них видно, почему ни одна проверка не заменяет остальные.
SAST видит путь от поля поиска до запроса к базе и показывает строку кода. DAST находит ошибку, только если сканер дошёл до этой формы и по ответу понял, что запрос ломается. SCA здесь бессилен: ошибка в вашем коде, а не в библиотеке.
SCA сопоставляет версию с базой и сообщает о находке и о том, в какой версии она исправлена. SAST её не заметит, потому что дефект сидит внутри чужого кода. DAST увидит последствия, только если уязвимость проявляется в ответах приложения.
Надёжно найти такую ошибку не сможет ни один из трёх классов: сканер не знает, чей заказ чей. Здесь нужен человек и прогон по матрице «роль — объект — действие», это уже ревью кода на безопасность или аудит безопасности веб-приложения.
Вывод для заказчика: автоматические проверки закрывают типовое и повторяющееся, а бизнес-логику проверяет человек. Отсутствие находок в отчёте означает, что типовых ошибок сканер не нашёл, а не что приложение безопасно.
Заготовка для разбора: на вашей платформе сборки строки будут другими, вопрос «где блокируем» остаётся тем же.
Главный риск автоматических проверок не в пропущенной уязвимости, а в том, что результат перестают читать.
На живом проекте первый запуск даёт много находок. Закрыть их разом нельзя: состояние записывается как базовая линия, блокируются только новые находки, накопленное разбирается по плану.
Оценка сканера говорит об опасности класса ошибки, а не о вашем приложении. Находка в коде, недоступном внешнему пользователю, менее срочна, чем такая же в публичном обработчике. Для SCA главный вопрос: вызывает ли ваш код уязвимую функцию библиотеки.
Скрыть находку можно, но запись содержит причину, автора и дату пересмотра.
Инструменты ставятся на ваши серверы или в ваш сервер сборки. Исходники, отчёты и перечни состава остаются внутри периметра и не отправляются в облачные сервисы.
SCA бесполезен, если его база устарела. В закрытом контуре держим зеркало баз, порядок и частоту обновления записываем, а отчёт предупреждает, если обновление давно не проходило.
Типовые правила не знают ваших обёрток над запросами к базе или собственной проверки прав. Дописываем правила под ваш каркас, чтобы сканер ловил отклонения именно от ваших соглашений.
Цены — по тарифам. Работы дешевле 150 000 ₽ не берём; остановиться можно после любой ступени, сделанное остаётся у вас по акту.
Языки и репозитории, платформа сборки, что уже запускается, пробный прогон на выборке вашего кода для оценки шума. На выходе схема конвейера проверок, выбор инструментов с причинами, пороги блокировки и вилка бюджета. Вычитается из первого этапа, если продолжаете с нами.
То же для нескольких репозиториев в разных системах сборки и с разными владельцами. Добавляется карта владельцев и единые правила обработки находок.
SAST, SCA и поиск секретов в запросах на слияние, DAST на тестовом стенде, разбор накопленных находок с базовой линией, инструкция для разработчиков.
Несколько языков, зеркало баз уязвимостей, собственные правила, DAST для сценариев за авторизацией, перечень состава для каждого выпуска, выгрузка находок в трекер.
Обновление правил и баз, настройка порогов, разбор спорных находок вместе с командой. Плановые доработки конвейера входят с пакета на 60 000 ₽. Сверх пакета — 5 000 ₽ в час.
Смотрим репозитории и сборку, запускаем пробный прогон на выборке кода, оцениваем шум. Фиксируем, что блокирует выпуск, а что только создаёт задачи.
Ставим инструменты в вашем контуре, настраиваем запрос на слияние и ночной прогон. Выбираем репозиторий, где команда готова принять процесс.
Фиксируем накопленные находки, вместе с командой разбираем самые серьёзные, остальные получают статус и срок.
Подготавливаем учётные записи для сценариев со входом, настраиваем исключения, чтобы сканер не удалял данные и не слал письма. Боевую систему не трогаем.
Повторяем настройку на остальных репозиториях по шаблону, затем обновляем правила и базы по пакету часов из договора.
Каждый язык и каркас требуют своих правил. Пять сервисов на одном языке дешевле двух на разных.
В старом коде без тестов находок много, и разбор занимает больше времени, чем настройка сканера.
Если автоматической сборки нет, сначала приходится делать её. Встроенные проверки платформы зависят от её редакции, это выясняем на обследовании.
Сканирование открытых страниц дёшево. Сценарии за входом с несколькими ролями требуют учётных записей, исключений и настройки под каждый сценарий.
Автоматические проверки работают на каждом изменении и ловят типовое. Ревью кода на безопасность выполняет человек и находит логику, права и сценарии, которые сканер не понимает. Аудит безопасности веб-приложения — разовая проверка с отчётом и воспроизведением, а аудит кода и архитектуры отвечает на вопрос, можно ли развивать систему.
Безопасность во всём жизненном цикле разработки — это безопасная разработка, проверки отсюда — её часть. Сборку целиком описывает страница «DevSecOps: внедрение», угрозы до кода — моделирование угроз.
Порядок обычно такой: секреты и зависимости (дешевле и чаще всего), затем SAST на новых изменениях, затем DAST на стенде.
Какой вопрос задаёт каждая проверка, что она не видит и в каком порядке подключать их небольшой команде.
Десять классов ошибок без жаргона и вопросы подрядчику. Пригодится, чтобы понимать, что именно ищет сканер.
Порядок подключения проверок в конвейер без остановки разработки.
Сорок минут созвона: на чём написан код, как он собирается и что уже запускается. По итогам скажем, с какой проверки начинать и в какую вилку это укладывается.
SAST читает исходный код без запуска, DAST проверяет запущенное приложение снаружи, SCA сверяет сторонние библиотеки с базой известных уязвимостей. Первый ищет ошибки в вашем коде, второй проблемы в работающей системе, третий уязвимости чужого кода в вашем проекте. Ни один не заменяет остальные.
Обследование стоит 200 000 ₽ за 2–3 недели (350 000 ₽ при нескольких платформах сборки), оно вычитается из первого этапа. Пилот на одном-трёх репозиториях — 150 000–400 000 ₽ за 2–8 недель, большой проект с несколькими языками и DAST со входом — 400 000–1 200 000 ₽ за 2–3 месяца. Сопровождение — 20 000, 60 000 или 120 000 ₽ в месяц.
Нет. Обычно начинают с поиска секретов и SCA, затем подключают SAST на новых изменениях, DAST добавляют последним. Если команда небольшая, трёх потоков находок она не переварит. Порядок определяем на обследовании.
Мы запускаем его только на тестовом стенде и с вашего согласия. Сканер отправляет вредоносные на вид запросы, может создавать записи и перегружать сервис. Боевую систему мы не атакуем.
Записать состояние как базовую линию и блокировать только новые находки высокой серьёзности. Накопленное разбираем по плану: сначала достижимое и серьёзное, остальным присваиваем статус и срок.
Да. Сканеры ставятся у вас, базы уязвимостей зеркалируются и обновляются по регламенту, отчёты остаются внутри.
Нет. Сканеры находят типовое и повторяющееся, но не понимают бизнес-логику: чужой заказ по прямой ссылке или обход порядка шагов они не заметят. Для этого нужны ревью кода и аудит, ссылки на них даны выше.
На GitLab CI, Jenkins и GitHub Actions: проверки подключаются к тому, что у вас уже есть. Если автоматической сборки нет, начнём с неё, иначе проверки некуда встраивать.
Вам. Конфигурации, правила и описание конвейера лежат в вашем репозитории с первого коммита. Порядок передачи прав записывается в договоре.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.