ИБ-инженер за 7 дней собрал MCP-сервер, который пугает ИИ-агента уязвимостями
Специалист по ИБ собрал локальный MCP-сервер AppSecGate, который заставляет ИИ-агента в Cline сканировать проект, триажить находки и проверять собственные исправления. Разработка заняла 7 дней, около 210 млн токенов и примерно 3000 рублей. На OWASP Juice Shop с deepseek-v4-flash агент отработал за 50 минут и ~15 рублей: из 200 находок 56 исправил, среди них 8 critical и 45 high. Автор считает, что MCP не заменит AppSec, но заберёт рутину и оставит человеку архитектуру и логику. • Сервер работает в изолированном Docker, база файндингов хранится в SQLite • Локальные модели тестировались на одной RTX 4060 Ti 16GB • Агент сначала предложил ничего не чинить, потому что Juice Shop «уязвим по задумке»
AI-обработка оригинала Habr AI; редакция Hamidun News
Специалист по информационной безопасности собрал себе ИИ-помощника с лёгкой паранойей: локальный MCP-сервер AppSecGate, который запускает сканеры, ведёт базу файндингов и заставляет агента разбираться с уязвимостями, а не отмахиваться от них. На первую версию ушло 7 дней, около 210 млн токенов и примерно 3000 рублей, то есть около 14 рублей за миллион токенов. Последний прогон на OWASP Juice Shop занял около 50 минут и стоил порядка 15 рублей. Агент на deepseek-v4-flash обработал 200 находок и исправил 56, среди них 8 critical и 45 high.
Почему AppSec становится бутылочным горлышком
Классический SSDLC выглядит так: разработчик пишет код в IDE, код попадает в Git, CI/CD запускает SAST, SCA и DAST, отчёты уходят в ASOC/ASPM, где их дедуплицируют и обогащают. Дальше файндинги триажит безопасник и заводит задачи в трекере. Главный минус схемы — непредсказуемая скорость исправления. Сломался сканер, нечем заменить дырявую библиотеку или AppSec ушёл в отпуск, и фикс может ждать очень долго. Главный плюс — понятное разделение ответственности, и бизнесу легко объяснить, что за безопасность надо платить.
LLM нагружают эту схему. Разработчики сначала жали TAB, потом просили агента написать метод, а теперь скармливают ему ТЗ, которое сама модель написала по задаче, тоже написанной моделью. Кода становится больше, он запутаннее, объём триажа растёт, а ручное тестирование усложняется. Добавьте вайб-кодеров, которые делают проекты в одиночку и верят, что модель не путает дев с продом.
Если просто посадить по агенту в каждую роль, получится длинная петля, где всё закрыто, токены потрачены, а оптимальным процесс не назовёшь. Прямой диалог агентов друг с другом тоже рискован. Автор иронизирует: первым делом они могут обнаружить, что договориться через промпт-инъекцию быстрее. Вопрос только в том, не кончится ли раньше бюджет на токены.
Меньше агентов, больше структуры
Системный вариант, который предлагает автор, устроен проще:
- TaskTracker выходит из обработки файндингов, потому что агентам лучше обмениваться структурированными данными. Для учёта времени и списания токенов трекер можно оставить.
- В CI/CD остаётся один автономный агент, получающий контекст по находкам из ASOC. Он не обязателен: его может заменить агент, которого запускает безопасник.
- ASOC/ASPM превращается из системы для людей в систему для агентов.
- Сканирование сдвигается влево (shift-left): агент сам запускает сканеры при написании кода, как форматтер или юнит-тесты. Push не блокируется, проблема эскалируется на AppSec или Lead. Сканирование только diff экономит токены, потому что агент и так работает с этим файлом. Локальный триаж фиксируется на центральном сервере, и эффективность подхода можно показать руководству.
Как работает AppSecGate
MVP — это локальный MCP-сервер в изолированном Docker с набором сканеров и базой SQLite, архитектура оставляет задел на центральный сервер. Агент работает через Cline: автор перешёл на него с Continue и написал AGENTS.md. Набор инструментов, которыми пользуется агент:
- get_config — проверка конфигурации;
- scan_project — запуск сканирования и агрегированный результат;
- query_findings_db — SQL-доступ к базе файндингов (агент почему-то предпочитает именно его, хотя есть альтернативы);
- get_fix_context_batch — контекст по срабатываниям для исправления;
- verify_fix_batch — проверка исправления или подавление находки как FALSE_POSITIVE.
На просьбу «Проверить безопасность проекта» в режиме планирования агент прошёл по этой цепочке и выдал вывод: ничего не чинить, потому что Juice Shop уязвим намеренно. Пришлось объяснять, что идёт проверка инструментов. После перевода в режим Act он начал триаж, периодически сверялся с базой и в конце собрал отчёт.
Локальные модели автор проверял бенчмарком из семи вариантов на одной RTX 4060 Ti 16GB. Явного победителя не нашлось, но выводы он сделал.
Для команд практический вывод такой. Структурированный MCP-слой между сканерами и агентом превращает безопасность в обычный шаг цикла разработки. Стоимость прогона в 15 рублей на облачной дешёвой модели заметно ниже часа работы AppSec-инженера над рутинным триажем. Полезны и мелочи: AGENTS.md с чёткими правилами, разделение Plan и Act, явная пометка FALSE_POSITIVE с проверкой. Заменить AppSec такая связка не заменит. Рутина уйдёт агенту, а людям останутся безопасная архитектура и поиск логических уязвимостей. Побочный эффект — готовый инструмент для соло-вайбкодеров, которым нужен TimeToMarket и не хочется оказаться иллюстрацией ИИ-провалов в новостях.
- 28 окт. 2026 г.Anthropic превращает Claude Code в платформу: Claude Mods переворачивают обвязку агента
- 28 окт. 2026 г.Bayer запустила мультиагентный движок на AgentCore: 80% вопросов без инженеров
- 28 окт. 2026 г.Liquid AI выпустила LFM2.5-24B-A2B: агент с 2B активных параметров
- 28 окт. 2026 г.AgentOrch сравнил два типа агентов: разрыв Global и Step-by-Step сократился на 79%
Вопросы и ответы по материалу
Что известно по теме: почему AppSec становится бутылочным горлышком?
Классический SSDLC выглядит так: разработчик пишет код в IDE, код попадает в Git, CI/CD запускает SAST, SCA и DAST, отчёты уходят в ASOC/ASPM, где их дедуплицируют и обогащают. Дальше файндинги триажит безопасник и заводит задачи в трекере. Главный минус схемы — непредсказуемая скорость исправления. Сломался сканер, нечем заменить дырявую библиотеку или AppSec ушёл в отпуск, и фикс может ждать очень долго. Главный плюс — понятное разделение ответственности, и бизнесу легко объяснить, что за безопасность надо платить. LLM нагружают эту схему. Разработчики сначала жали TAB, п
Что известно по теме: меньше агентов, больше структуры?
Системный вариант, который предлагает автор, устроен проще: TaskTracker выходит из обработки файндингов, потому что агентам лучше обмениваться структурированными данными. Для учёта времени и списания токенов трекер можно оставить. В CI/CD остаётся один автономный агент, получающий контекст по находкам из ASOC. Он не обязателен: его может заменить агент, которого запускает безопасник. ASOC/ASPM превращается из системы для людей в систему для агентов. Сканирование сдвигается влево (shift-left): агент сам запускает сканеры при написании кода, как форматтер или юнит-тесты. Push
Что известно по теме: как работает AppSecGate?
MVP — это локальный MCP-сервер в изолированном Docker с набором сканеров и базой SQLite, архитектура оставляет задел на центральный сервер. Агент работает через Cline: автор перешёл на него с Continue и написал AGENTS.md. Набор инструментов, которыми пользуется агент: get_config — проверка конфигурации; scan_project — запуск сканирования и агрегированный результат; query_findings_db — SQL-доступ к базе файндингов (агент почему-то предпочитает именно его, хотя есть альтернативы); get_fix_context_batch — контекст по срабатываниям для исправления; verify_fix_batch — проверка и
Соберите рабочего ИИ-агента или сервис своими руками без ручного кода
В Академии Жемала Хамидуна (academy.hamidun.com) открыт бесплатный 72-часовой тест-драйв: интерактивные скетч-уроки по Claude Code и Cursor, живой Tech Radar и готовые шаблоны агентов.
Главное из мира ИИ — раз в неделю
7 ключевых событий недели, отобранных вручную. Без шума, репостов и пресс-релизов.
Готово! Проверьте почту — мы отправили подтверждение.