Поиск уязвимостей
Veai может проверить безопасность всего проекта и найти уязвимости в кодовой базе. Найденные проблемы можно прикрепить к чату: агент поможет исправить код, проверить срабатывание или разобраться, какие находки требуют действий.
Как запустить
Откройте пустой чат Veai и выберите поиск уязвимостей в каталоге действий. Плагин при необходимости соберёт проект, а затем запустит анализ.
Как работает анализ
Проверка использует собственный движок статического анализа Veai. Он работает на скомпилированных исходниках. Если готовых class-файлов нет, плагин выбирает подходящую стратегию сборки: Maven, Gradle или сборку средствами IDE.
Движок выполняет межпроцедурный анализ: отслеживает, как данные проходят через функции и методы, от точки, где они появляются (source), до точки, где их использование может привести к проблеме (sink). Это отличает его от большинства инструментов, которые ищут уязвимости только внутри одной функции.
После успешного анализа открывается панель с результатами. Выберите группировку в зависимости от того, как будете разбирать отчёт.
По критичности
Используйте эту группировку для первичного разбора большого отчёта. Начните с наиболее опасных находок, проверьте их трейс и при необходимости рассчитайте CVSS-скор. После этого исправьте подтверждённые уязвимости или пометьте ложные срабатывания.
По файлам и папкам
Используйте эту группировку, когда результаты нужно разбирать по компонентам проекта. Откройте папку или файл, проверьте связанные находки и передайте их владельцу компонента либо прикрепите к чату для исправления в контексте этого участка кода.
По категориям
Используйте эту группировку, когда нужно найти повторяющийся класс проблем во всём проекте, например SQL-инъекции, XSS или SSRF. Сравните трейсы находок одной категории, определите общий небезопасный шаблон и исправьте его во всех затронутых местах.
Для многих уязвимостей доступен трейс: он показывает, откуда приходят данные и как они проходят по коду от источника до опасной точки. Если нажать на шаг трейса, соответствующее место подсветится в редакторе.
Действия с найденными уязвимостями
Для каждой уязвимости доступны следующие действия:
- Исправить — агент прочитает код уязвимости и предложит изменения, которые устранят проблему.
- Прикрепить к чату — отправить уязвимость агенту, чтобы обсудить её: как она устроена, как воспроизвести, или попросить объяснить простым языком, если вы не специалист по безопасности.
- Пометить как ложное срабатывание — если вы уверены, что находка не воспроизводима в реальности, нажмите кнопку с восклицательным знаком. Уязвимость исчезнет из списка результатов.
- Оценить CVSS-скор — Оценка критичности уязвимости
Оценка критичности
Уязвимость можно прикрепить к чату и попросить агента посчитать CVSS-скор. Агент определит значения факторов, передаст их в калькулятор и объяснит результат.
CVSS — это числовая оценка от 0 до 10. Оценка 0 означает, что уязвимость не воспроизводима; оценка 10 — что эксплуатация может привести к критическому ущербу (утечка данных, потеря денег, разрушение инфраструктуры).
После расчёта CVSS-скор появляется рядом с уязвимостью в панели результатов.
Ложные срабатывания (false positives) — одна из главных проблем инструментов безопасности. Безопасники тратят до 90% времени на проверку находок, которые оказываются нереальными. Оценка CVSS помогает быстрее отделить реальные проблемы от ложных.
Поддержка IDE
Поиск уязвимостей работает в JVM-проектах в IntelliJ IDEA (OpenIDE, GigaIDE) и Android Studio — то есть для Java и Kotlin. Мы работаем над расширением на другие языки и IDE.
Анализ полностью работает оффлайн: код никуда не отправляется, подключение к серверам не требуется. Исключение — взаимодействие с агентом, которое использует LLM.
Новые типы уязвимостей добавляются вместе с обновлениями плагина: движок работает по набору правил, который поставляется вместе с обновлением. Сейчас добавить собственные правила нельзя, но в будущем агент сможет автоматически дописывать правила под ваш проект.
Когда использовать
- Проверка ИИ-сгенерированного кода. LLM неизбежно может написать код с уязвимостями. Кроме того, возможны целенаправленные атаки: хакеры изучают поведение конкретной LLM, используемой в компании, и подсовывают промпт-инъекции, заставляя модель генерировать уязвимый код. Поиск уязвимостей помогает выловить критичные проблемы безопасности перед коммитом.
- Аудит существующей кодовой базы. Любой тимлид может запустить проверку на всём репозитории, увидеть проблемы безопасности и быстро исправить их — например, сделать pull request, в котором устранены критические уязвимости.
- Нужно быстро понять, какие находки стоит исправлять в первую очередь.