Интервью с Александром Саксаганским (ITD Group): каскадная AI-валидация дефектов кода (КАИВ)

Александр Саксаганский, директор по развитию бизнеса ITD Group
Истории о применении искусственного интеллекта для решения тех или иных задач в информационной безопасности всё чаще звучат и со сцен отраслевых конференций, и в кулуарах. Компании-разработчики средств для обеспечения ИБ один за другим анонсируют модули, позволяющие применять AI для повышения эффективности своих инструментов. Подобная тенденция не могла не коснуться и безопасной разработки. Редакция CISOCLUB задала ряд вопросов на эту тему Александру Саксаганскому, директору по развитию бизнеса ITD Group, отвечающему, в частности, за SAST.
Есть ли предпосылки к использованию AI при статическом анализе исходного кода, помимо общего тренда на AI?
Разумеется, использование AI-валидации в SAST-инструментах оправдано не только трендом на искусственный интеллект, но и рядом ключевых факторов. В целом, все они очевидны. Во-первых, пресловутая нехватка кадров в области Application Security. Специалисты в этой сфере, особенно опытные, — до сих пор большая редкость. Центры компетенций пока еще только формируются. Во-вторых, ужесточение требований регуляторов в части проверки статического анализа кода, тренды на импортозамещение и потеря доступа к зарубежным инструментам, усиливающая необходимость автоматизации. В-третьих, как следствие первых двух причин, — необходимость оптимизации процессов. AI выступает в роли виртуального AppSec-инженера, анализируя код, определяя критические зоны и устраняя не только отдельные дефекты, но и целые векторы уязвимостей. Это снижает трудозатраты и позволяет сосредоточиться на приоритетных задачах.
В чем суть каскадной AI-валидации дефектов кода, и как это улучшает процесс выявления уязвимостей?
Каскадная AI-валидация решает две главные проблемы в статическом анализе исходного кода: проблему большого количества ложных срабатываний (False Positive) и проблему трудозатрат.
При статическом анализе кода часто генерируются большие объемы данных, включая ложные срабатывания и нерелевантные ошибки. Чем масштабнее проверяемые проекты и чем больше их количество, тем больше будет таких ошибок. Это неизбежно. Неудивительно, что триаж большого числа сработок инструмента отнимает у разработчиков и профильных инженеров много времени. Для компаний это выливается в значительные финансовые затраты.
Проблема большого количества False Positive решается за счет использования в КАИВ AI-модели для автотриажа дефектов (в рамках поддерживаемых языков), точность работы которого довольно высока: менее 20% ложных сработок. Иными словами, AI-валидация снижает количество False Positive до ˂20% от исходного объёма, устраняя необходимость ручного анализа и отсеивания нерелевантных данных в 80% случаев. Представьте, что КАИВ – это что-то вроде адвоката, который пытается оправдать каждую сработку SAST, собирая её «алиби». В нашей концепции изначально «виновны» все. Благодаря такому подходу мы смогли достичь показатель в 0% допущенных False Negative.
Применяя подход с использованием векторов и точек пересечения на практике, можно заметить, что из большого количества сработок — после построения графов — выявляются пересечения в ключевых точках нескольких уязвимостей. Эти пересечения представляют собой связанные точки или узлы, позволяя дополнительно проанализировать изменения данных вдоль вектора: что с ними происходило и где исправление дефекта будет оптимально. Сосредоточив усилия на исправлении корневой проблемы в такой точке, можно устранить сразу несколько уязвимостей. Это значительно сокращает объем трудозатрат, позволяет сосредотачиваться на ключевых проблемах, глубже анализировать их и предотвращать их появление в будущем.
Таким образом, проблема трудозатрат решается за счёт каскадного механизма, построения векторов уязвимостей, дальнейшего формирования узлов как точек их пересечения. Исправление корневых дефектов приводит непосредственно к уменьшению трудозатрат на исправление, исключая необходимость в исправлении побочных дефектов.
Подобный подход имеет еще и психологическое воздействие на специалиста: когда ты знаешь, что тебе не придётся делать бесполезную работу, что все твои действия эффективны, мотивация устранить проблему выше. Всегда.
В чем преимущества именно каскадного подхода при валидации дефектов, и как он позволяет избежать ложных срабатываний?
Каскадный подход обеспечивает более широкий контекст проверки механизмов санитизации и валидации в промежуточных узлах.
Это даёт AI больше контекста для принятия решения, а также повышает точность за счёт создания более узкого и детального ТЗ, с которым AI справляется однозначно (чем уже и проще для AI задача, тем точнее будет результат).
Как методология КАИВ помогает адаптировать процесс триажа кода, чтобы исключить избыточные срабатывания и сосредоточиться на критических уязвимостях?
Методология каскадной валидации с использованием искусственного интеллекта основывается на поэтапной работе системы, в ходе которой на каждом этапе выявляются ключевые точки, содержащие векторы потенциальных уязвимостей. Эти критические области становятся основным фокусом последующего анализа. Такой подход не только акцентирует внимание на наиболее значимых аспектах, но и позволяет глубже погрузиться в контекст, отслеживая путь данных в коде. Это включает анализ ограничений, этапов преобразований и их взаимодействий.
Преимущество метода заключается в способности автоматически проводить триаж, эффективно отфильтровывая нерелевантные сигналы и достигая высокой точности в определении проблемных областей. В результате минимизируется вероятность пропуска значимых уязвимостей (False Negatives), что позволяет обеспечить надежность и устойчивость системы.
Какие существуют критерии для AI-ассистента при приоритизации найденных уязвимостей, и как это влияет на скорость их исправления?
Основными критериями для AI-ассистента при приоритизации найденных уязвимостей являются следующие:
- Уровень критичности уязвимости (Severity). Это непосредственно то, насколько серьезно уязвимость может повлиять на систему. Оценка выносится на основе стандартов, таких как CVSS (Common Vulnerability Scoring System).
- Вероятность эксплуатации — вероятность того, что уязвимость будет использована злоумышленником. Является важных фактором при приоритизации. Определяется наличием публичных эксплоитов и сложностью их эксплуатации.
- Зависимости и каскадный эффект. Определяется тем, может ли одна уязвимость вызвать цепную реакцию, приводящую к другим проблемам.
В результате приоритизации по этим критериям получаем фокус на наиболее критичных уязвимостях (разработчики устраняют проблемы, которые могут нанести наибольший вред, вместо того чтобы тратить время на исправление менее значимых ошибок). За счёт корреляции этих параметров уменьшаем ложные и нерелевантные срабатывания, а также сокращаем каскадные проблемы.
Применение AI ограничивается «помощью» в проведении триажа?
Нет, AI позволяет не только автоматизировать триаж, насколько это возможно, но и генерирует рекомендации по изменению кода. Та самая кнопка «сделать хорошо», о которой так давно мечтали разработчики.
Какие алгоритмы используются для автоматической генерации рекомендаций по изменению кода, и насколько они адаптивны к специфике различных проектов?
Алгоритмы, предназначенные для рекомендаций по изменению кода, в своей основе используют подход, схожий с методологией валидации. Они фокусируются на сборе максимально полного контекста в точках сработок, детально анализируют используемые классы, библиотеки и отслеживают все трансформации данных в рамках конкретного сценария.
На основе этих данных формируется узконаправленное задание для искусственного интеллекта, который, опираясь на собранный контекст, предлагает оптимальные изменения. Этот метод отличается высокой степенью адаптивности и универсальности, что делает его применимым к проектам любого уровня сложности и масштаба.
Как внедрение AI-ассистента меняет подход к безопасности кода, и какие метрики применяются для оценки его эффективности?
Внедрение AI-ассистента в процесс статического анализа кода является важным шагом в направлении Shift Left Security, акцентируя внимание на проактивном подходе к безопасности и снижении Time-to-Market (TTM). Такой инструмент не просто выполняет анализ кода, а предоставляет глубоко проработанный и детализированный отчет. Вместо типичного набора сработок AI предлагает уже отфильтрованные, приоритизированные и агрегированные данные, включая целые векторы уязвимостей, сопровожденные конкретными рекомендациями по их исправлению. Это существенно повышает качество устранения уязвимостей, снижает время на их обнаружение и обработку, а также уменьшает затраты ресурсов.
Ключевыми преимуществами такого подхода являются:
- Повышение качества исправлений. Конкретные рекомендации и анализ критичности позволяют команде сосредоточиться на наиболее важных аспектах.
- Ускорение реакции. Снижение времени от момента обнаружения проблемы до ее устранения.
- Оптимизация трудозатрат. Значительное уменьшение усилий команды на ручной триаж и анализ.
Глобально это приводит к сокращению затрат на устранение дефектов, которые могли бы быть обнаружены только на поздних этапах разработки или внедрения, где цена исправлений возрастает многократно.
Для оценки эффективности AI-ассистента мы используем следующие ключевые метрики:
- False Positive Rate (процент ложноположительных сработок). Эта метрика показывает точность инструмента, минимизируя ненужную нагрузку на команду.
- Скорость анализа. Время, затраченное на обработку кода, что напрямую влияет на производительность команды.
- Экономия времени команды. Сравнение временных затрат на анализ до и после внедрения AI, показывающее реальную пользу.
- Обнаружение уязвимостей на ранних этапах. Доля уязвимостей, выявленных до стадии тестирования или релиза, что критически важно для сокращения стоимости исправлений.
Применение такого подхода в разработке создает более безопасные, устойчивые и экономически эффективные процессы, соответствующие современным требованиям к программным продуктам.
Какие перспективы дальнейшего развития методологии КАИВ, и как она может быть интегрирована в более сложные процессы разработки ПО?
Мы хотим сделать ещё более значительный шаг навстречу контексту и корреляции векторов угроз, а также поиску оптимальных точек их устранения. Используя собственные базы знаний, мы уже сейчас умеем определять типы уязвимостей, способы их митигации и точки атаки. Расширяя эти базы, собирая опыт комплексных кейсов и контекст, со временем мы сможем еще больше снизить количество False Positive, научиться определять более сложные случаи и сокращать трудозатраты, рекомендовать гибкое обучение для специалистов на основе именно их кейсов сработок и проблемных точек.
Наша задача — максимально сдвинуть этап обнаружения проблем влево по конвейеру производственного процесса. В скором будущем появится плагин для IDE, дающий разработчикам возможность видеть потенциальные проблемы на самом раннем этапе. Программа «максимум» — обеспечить вызов как инструмента, так и AI-помощника вообще на любом этапе: on-demand, через встраивание в оркестраторы и сборщики, выставление замечаний в task-трекерах. Мы разрабатываем и поддерживаем современную методологию, чтобы инструменты, которые на ней базируются, помогали закрыть проблему на любом этапе и в удобном формате.
Возможно ли, что в будущем искусственный интеллект позволит полностью автоматизировать все процессы проверки, исключив участие человека?
Когда-то было сложно представить, что человек сможет покорить космос. Но мы это сделали. Что же касается исключения человека из процессов проверки, то на данный момент это пока не представляется возможным. Хотя – кто знает? – однажды и это может стать реальностью.


