Искусственный интеллект уже прочно вошел в арсенал инструментов современного бизнеса. Его применение теперь норма, а не исключение. ИИ эффективно решает задачи классификации, анализа данных и прогнозирования рисков в самых разных отраслях.
Например, в банковском секторе ИИ используется для совершенствования скоринговых систем. Алгоритмы, обученные на реальных данных, оценивают кредитоспособность клиентов, учитывая множество факторов: кредитную историю, наличие активов, место работы и уровень дохода заемщика. Это позволяет найти баланс между потребностями клиентов и рисками кредитования, повышая эффективность работы финансовых учреждений.
Но кроме финансовых задач ИИ можно использовать и в сфере кибербезопасности. Может ли его внедрение повысить защиту в целом? А повлиять на прибыльность?
Технологии искусственного интеллекта и машинного обучения (ML) помогают анализировать информацию, быстро адаптироваться к изменениям и улучшать процедуру поставки ПО. В контексте процесса безопасной разработки (Secure Software Development Lifecycle, SSDLC) применение моделей ИИ открывает широкие возможности.
Согласно требованиям регуляторов (ГОСТ Р 56939-2016) и Центрального Банка России (например, ОУД4), необходимо проводить регулярный динамический и статический анализ разрабатываемого ПО. В реализации этих требований важную роль может играть ИИ.
Рассмотрим пример его внедрения в непрерывный процесс статического анализа кода (SAST). Что он тут может предложить?
Снизить количество ложных срабатываний: инструменты SAST иногда обнаруживают потенциальные уязвимости, которых на самом деле нет. Методы машинного обучения повышают точность обнаружения, анализируя контекст и специфику кода.
Находить новые уязвимости: традиционные методы SAST часто основаны на известных паттернах и сигнатурах, в отличие от них, машинное обучение может находить скрытые признаки, указывающие на новые и ранее неизвестные уязвимости.
Адаптироваться к языкам: модели, обученные на одном языке программирования, могут быть адаптированы и к другим.
Помимо применения ИИ для статического анализа кода, ML-алгоритмы могут эффективно обрабатывать и отчеты динамического анализа (DAST).
Динамический анализ (DAST) — это метод проверки безопасности приложений, который имитирует внешние атаки и попытки найти уязвимости в работающем приложении. DAST-сканеры анализируют приложение, взаимодействуя с ним через пользовательский интерфейс или API, проверяя наличие известных уязвимостей и потенциальных слабых мест. В крупных организациях количество ежедневных сканирований может быть велико, а количество отчетов безопасности может достигать сотен или тысяч.
Здесь возникает задача кластеризации и классификации результатов отчетов сканирований. Кластеризация — это процесс разделения большого массива данных на группы (кластеры), основываясь на общих характеристиках или особенностях. Этот метод широко применяется в анализе данных отчётов для упрощения их обработки, понимания структуры и выявления закономерностей и аномалий.
Классификация — это процесс систематизации объектов, сущностей или понятий по определённым категориям на основе общих признаков или характеристик. Она позволяет упорядочивать и организовывать информацию из отчетов сканирований, облегчая её понимание и использование. Кроме того, становится возможным ранжировать найденные уязвимости по уровню критичности более эффективно.
Методы машинного обучения могут значительно улучшить анализ отчётов DAST и SAST, и он будет более эффективными и точными. При этом расход ресурсов снижается, как и вероятность допустить ошибку из-за человеческого фактора, когда Application Security инженер (AppSec) «не заметил» потенциальную уязвимость.
Задачи, решаемые с помощью ML для автоматизации анализа отчетов, могут быть следующими:
Снижение количества ложных срабатываний: ML-алгоритмы могут анализировать большие объёмы данных и выявлять закономерности, которые указывают на реальные уязвимости.
Обнаружение новых уязвимостей: ML может обнаруживать новые уязвимости, анализируя отчёты и находя паттерны, которые ранее не были известны.
Автоматизация процессов анализа: ML может автоматизировать рутинные задачи анализа отчётов, такие как классификация уязвимостей по степени критичности или определение приоритетов для исправления.
Прогнозирование рисков: ML может использоваться для прогнозирования потенциальных рисков, связанных с определёнными уязвимостями.
Улучшение качества отчётов: ML может помочь улучшить качество отчётов DAST, предоставляя более точные и информативные данные о выявленных уязвимостях.
Использование ИИ для решения задач информационной безопасности позволяет найти баланс между качеством проверок и скоростью разработки. IT-продукты становятся более защищенными, при этом сохраняется возможность быстрого реагирования на изменения рынка, без «простоев» в разработке и связанных с ними финансовых потерь. Иными словами, скорость проверок безопасности прямо пропорциональна скорости ввода новых решений, продуктов и фичей в пром.
Практическое применение ИИ в информационной безопасности: исследование
Чтобы не ограничиваться теоретическими рассуждениями о преимуществах применения ИИ в информационной безопасности, мы провели практическое исследование. Наша цель заключалась в том, чтобы на реальных примерах продемонстрировать, как искусственный интеллект может повысить эффективность анализа безопасности и ускорить процессы разработки.
В рамках этого исследования мы протестировали решения на базе машинного обучения для автоматизированного разбора (триажа) отчетов безопасности. Мы сосредоточились на двух ключевых практиках AppSec проверок: анализе отчетов статического анализа (SAST) и обработке результатов динамического сканирования (DAST). Давайте рассмотрим подробнее.
Анализ отчетов SAST с использованием Offline-модели
Для обучения модели использовались отчеты сканирований различных инструментов, содержащие полную информацию об уязвимых функциях или методах. Эксперты размечали реальные срабатывания на различные типы уязвимостей в исходном коде.
Обучение модели проводилось на проработанных экспертом отчётах с размеченными реальными срабатываниями на различные типы уязвимостей в рамках исходного кода. В задачу модели входит необходимость проверки срабатываний с типом To Verify и перевод таких срабатываний в статус в Not Exploitable. В процессе обучения инженер проверяет полученные результаты и корректирует их в случае необходимости, что позволяет повышать качество работы модели.
Результаты:
Увеличение скорости разбора потенциальных уязвимостей инженерами AppSec;
Снижение количества ложноположительных срабатываний;
Положительное влияние на TTM при выявлении блокирующих дефектов, которые могут оказаться ложноположительными срабатываниями.
Следующий этап — внедрение онлайн-модели для обработки результатов SAST непосредственно в процессе сканирования в pipeline.
Анализ отчетов динамического сканирования (DAST)
В этом случае анализировались не только типовые отчеты в PDF формате, но и трафик сканирования объекта тестирования. Для обучения модели был подготовлен размеченный набор данных:
Около 600 тысяч примеров, из которых 15% - потенциальные уязвимости;
Проведена очистка текстовых данных и их векторизация;
Добавлены дополнительные признаки (время между ответами сервера и другие детекторы);
Обучен классификатор (catboost) и проверено качество модели с результатами: Precision: 0.99; Recall: 0.98; F1 score: 0.991; ROC AUC score: 0.99.
При анализе тестовых данных модель выявила 2700 потенциально уязвимых записей в отчетах сканирований, а экспертная оценка подтвердила точность определения нестандартных ответов на уровне 96,7%.
Итого
Результаты нашего исследования оказались весьма впечатляющими. Прежде всего, мы обнаружили, что время, необходимое для анализа результатов сканирований значительно сократилось, в некоторых случаях на порядок. Такое улучшение позволяет инженерам AppSec обрабатывать гораздо больший объем отчетов и данных за то же время.
Наконец, мы отметили повышение точности анализа. Это может иметь огромное значение для предотвращения потенциальных угроз.
Одним из самых важных результатов стало ускорение процесса вывода нового функционала в промышленную эксплуатацию. В современном мире, где скорость разработки и внедрения новых продуктов часто определяет успех компании, это преимущество трудно переоценить.