Сижу, смотрю на очередной отчёт Nmap — 847 строк, половина из которых "filtered", и где-то там закопано что-то реально важное. Час уходит на то, чтобы отделить сигнал от шума. Именно тогда я начал думать: а что если скормить это ИИ и посмотреть, что выйдет?
Попробовал. Обжёгся пару раз, нашёл несколько вещей, которые реально работают. Вот что из этого получилось.
Где ИИ реально помогает, а не создаёт иллюзию помощи
Главная ловушка — думать, что ChatGPT или Claude заменят нормальный сканер. Не заменят. Но есть конкретная ниша, где они полезны: интерпретация и приоритизация.
Я беру вывод того же Nmap или Nikto, вставляю в промпт и прошу объяснить: какие из открытых портов реально опасны в связке, какие сервисы выглядят подозрительно для этого типа инфраструктуры, на что смотреть в первую очередь. Это не магия — ИИ просто хорошо знает типичные векторы атак и умеет их сопоставлять с тем, что видит в выводе.
Второе место, где он экономит время — анализ конфигов. Скидываешь nginx.conf или политику IAM из AWS, просишь найти проблемы. Здесь он часто находит то, что взгляд замыливает: неочевидные комбинации разрешений, устаревшие TLS-настройки, заголовки безопасности которые забыли выставить. Не всегда — но достаточно часто, чтобы это стало частью рутины.
Как я выстраиваю воркфлоу
Я не пытаюсь сделать из ИИ автопилот. Схема простая и работает именно потому, что ИИ здесь на вспомогательной роли.
Сначала стандартные инструменты делают своё дело. Nmap сканирует периметр, Trivy проверяет Docker-образы, Semgrep проходит по коду. Автоматика без участия человека.
Потом я собираю вывод в текст и скармливаю ИИ с конкретным вопросом. Не "найди уязвимости" — это бесполезно. А "вот вывод сканирования, вот контекст: это веб-приложение на Node.js, публичный API, авторизация через JWT. Что здесь выглядит опасно и почему?"
Дальше ИИ даёт приоритеты, я иду проверять руками то, что он выделил. Иногда ошибается. Иногда указывает на что-то, что я бы пропустил.
Один раз он нашёл проблему, которую я бы точно не заметил сам. В конфиге Kubernetes был выставлен allowPrivilegeEscalation: true в нескольких местах, и ИИ объяснил цепочку: если контейнер скомпрометирован, дальше вот так и вот так. Хорошее объяснение вектора, которое потом пошло прямо в отчёт.
Что я пробовал автоматизировать и где сломалось
Честно: первая попытка была наивной. Я написал скрипт, который брал вывод сканера, отправлял в API Claude, получал ответ и складывал в файл. Выглядело умно. На практике — ИИ начал галлюцинировать CVE-номера. Называл реальные идентификаторы уязвимостей, но привязывал их не к тем сервисам или версиям. Если не знаешь матчасть — такой отчёт опасен именно потому, что выглядит убедительно.
Потратил время на то, чтобы добавить в промпт явное требование: не придумывать CVE, а только описывать класс проблемы. Стало лучше, но проверка всё равно нужна.
Второй затык — контекстное окно. Большой проект генерирует огромные логи. Скормить 50 000 строк в один промпт не получится. Пришлось делить по модулям и агрегировать результаты руками. Решаемо, но не так элегантно, как хотелось бы.
Что реально автоматизируется без боли
На практике есть несколько вещей, где автоматизация с ИИ работает стабильно.
Генерация объяснений для команды. После сканирования есть список проблем — я прошу ИИ написать объяснение каждой на человеческом языке: что это, почему опасно, как исправить. Это идёт в тикеты для разработчиков. Экономит кучу времени на написание.
Проверка кода на типовые паттерны. Я использую ИИ как второй взгляд на pull request, когда код касается аутентификации, работы с файлами или сетевых запросов. Не вместо линтера, а после него.
Составление чеклистов под конкретный стек. Говоришь: "у нас FastAPI, PostgreSQL, развёрнуто на ECS, токены в Redis" — получаешь список того, что стоит проверить именно для этой связки. Не универсальный OWASP Top 10, а точнее и конкретнее.
Что ИИ не умеет и не должен делать
Эксплуатировать уязвимости — не умеет, и правильно делает. Для пентестинга нужны специализированные инструменты и человек, который понимает, что делает.
Верить его выводам без проверки нельзя. Это не параноя, это просто факт: ИИ может убедительно ошибаться. Особенно когда дело касается специфики конкретной версии библиотеки или нетипичной конфигурации.
Заменить аудит он тоже не может. Ускорить подготовку к нему — да, помочь расставить приоритеты — да, объяснить результаты — да. Но реальный аудит — это человек с опытом, который понимает бизнес-контекст.
В итоге у меня есть инструмент, который экономит несколько часов в неделю на рутине. Не больше и не меньше. Если подходить к нему как к умному ассистенту, который хорошо читает документацию и умеет объяснять — он полезен. Если ждать магии — разочаруешься быстро.
