Поиск уязвимостей
Veai может проверить безопасность всего проекта и найти уязвимости в кодовой базе. Найденные проблемы можно прикрепить к чату: агент поможет исправить код, проверить срабатывание или разобраться, какие находки требуют действий.
Как запустить
В заголовке чата Veai нажмите на значок щита. Откроется меню с описанием функции — нажмите кнопку запуска. Плагин начнёт сборку проекта, а затем запустит анализ.
Как работает анализ
Проверка использует собственный движок статического анализа Veai. Он работает на скомпилированных исходниках, поэтому перед анализом плагин пытается собрать проект через Maven или Gradle.
Движок выполняет межпроцедурный анализ: отслеживает, как данные проходят через функции и методы, от точки, где они появляются (source), до точки, где их использование может привести к проблеме (sink). Это отличает его от большинства инструментов, которые ищут уязвимости только внутри одной функции.
После успешного анализа открывается панель с результатами. Дерево результатов можно фильтровать и группировать:
- по критичности;
- по файлам и папкам, где найдены уязвимости;
- по категориям (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, в котором устранены критические уязвимости.
- Нужно быстро понять, какие находки стоит исправлять в первую очередь.