Так, в свободное от основных задач время, началась разработка первого MVP. Это был, по сути, набор скриптов, они обходили сайты, подставляли в поля разные тестовые пейлоады с помощью популярного инструмента Nuclei и смотрели, что на выходе. Такой подход дал ожидаемый, но неутешительный результат: уровень шума и ложных срабатываний оказался очень высоким, а доля действительно полезных находок — минимальной.
Смена парадигмы
Мы сели и переосмыслили подход. Зачем сканировать тысячи одинаковых ручек API по общему списку? Гораздо полезнее была бы автоматизация для решения конкретных задач. Так родилась ключевая идея «регрессивного DAST».
Суть проста:
1. На аудите или пентесте мы находим реальную уязвимость.
2. Тестировщик, который её нашёл, описывает чёткие шаги для воспроизведения.
3. Эти шаги превращаются в шаблон (тест-кейс) для нашего инструмента.
4. Этот тест мы можем запускать снова и снова, чтобы проверить: а исправлена ли уязвимость после патча? Не просочилась ли она обратно после обновления кода?
Проблемы роста
С первыми результатами пришли и первые сложности. Пока тесты гоняли сами авторы на своих проектах — всё работало. Но для масштабирования на десятки продуктов VK нужно было решить проблему авторизации. Как агенту легитимно зайти под пользователя в каждый сервис?
Мы пробовали разные пути, но в итоге элегантное решение нашлось внутри компании — VK ID. Почти все наши сервисы его поддерживают. Мы научили нашего агента работать с ним: создавать тестовые учётные записи, получать сессии и использовать их для проверок. Это стало универсальным решением.
Архитектура платформы
В процессе проектирования было принято решение реализовать единую платформу для DAST-сканирований, которую по факту можно разделить на две части:
🔹Центр — VK Security Gate. Единый планировщик, который ставит задачи, принимает и обрабатывает результаты. Общий интерфейс, где можно настраивать проверки, цели и расписания.
🔹Агенты (исполнители). Их может быть много, и они могут быть разными. Мы сделали центрального агента для базовых нужд. Команда ВКонтакте, столкнувшись со спецификой своих продуктов и написала своего агента с поддержкой нужных им фреймворков и протоколов.
Главное правило простое: если агент умеет общаться с центральным планировщиком по единому API и присылать результаты в нужном формате — он часть платформы.
От ручных шаблонов к генерации ИИ
С агентом и платформой появился новый вопрос: а что, собственно, проверять? Ручное написание шаблонов для каждой уязвимости — трудоёмко. Мы пошли дальше и начали пытаться упростить себе жизнь через LLM.
Мы взяли базу из тысяч найденных за годы уязвимостей (описания из Jira) и научили цепочку ИИ-агентов делать из них валидные шаблоны для Nuclei. Один агент классифицирует тип уязвимости, другой вытаскивает параметры (URL, пейлоады), третий генерирует код, четвёртый — проверяет его работоспособность. Это позволило почти автоматически создать базу регресс-тестов.
Что в итоге?
🔹 DAST — это контроль, а не только находка багов. Его главная ценность — в том, чтобы не допустить возврата уже исправленных уязвимостей. Это страховка от регрессий, которая работает постоянно.
Гибкость важнее «универсального решения». В большой и разнородной компании попытка сделать один идеальный инструмент для всех обречена. Сработала модель платформы: общий центр и простая возможность допиливать своих агентов под задачи конкретных команд.
VK Security | Буст этому каналу
#VKSecurityGate #DAST
