Сейчас вряд ли можно найти такую отрасль, в которой не использовался бы Искусственный Интеллект. Конечно, не везде ИИ действительно эффективен, и зачастую, используемые технологии еще нуждаются в существенной доработке. Но в ИТ есть целый ряд направлений, в которых ИИ уже давно эффективно используется.
О пользе ИИ в ИТ
Прежде всего это системы распознавания лиц, позволяющие идентифицировать людей по цифровым изображениям, распознавая черты лица. Собственно системы идентификации тоже являются частью систем безопасности и в определенной степени подходят под тематику данной статьи.
Еще одно распространенное направление использования ИИ — это обнаружение фейковых новостей. Детекторы фейков используют семантические и стилистические особенности текста в статье, источник статьи и т.д., чтобы отличать фейковые новости от достоверных.
Рекомендательные системы, используемые на различных ресурсах способны оценить выбор клиента на основе таких факторов как личная история, предыдущий выбор, сделанный клиентом и другие параметры.
А еще есть языковые переводчики, способные переводить не только слово в слово, но и целые абзацы за раз. И, наконец, чат боты системы, которые улучшают качество обслуживания клиентов, предоставляя автоматические ответы, когда сотрудники службы поддержки клиентов не могут ответить. Однако их деятельность не ограничивается только работой виртуального ассистента. Они обладают возможностями анализа настроений и также могут давать рекомендации.
В целом искусственный интеллект используется в ИТ достаточно эффективно и самое время поговорить о том, как можно использовать ИИ для решения различных задач кибербезопасности. Далее мы погрузиться в саму проблематику информационной безопасности и тех вопросов, которые можно решать с помощью искусственного интеллекта.
Сигнатуры и их проблемы
Антивирусные решения традиционно использовали, и собственно, продолжают использовать сигнатурный анализ. Этот метод заключается в выявлении характерных идентифицирующих свойств каждого вируса и поиске вирусов при сравнении файлов с выявленными свойствами.
Лаборатория Касперского предлагает такое определение сигнатуры: непрерывная последовательность байтов, характерная для той или иной вредоносной программы. И хотя далее они замечают, что современные антивирусные сигнатуры являются гораздо более сложной сущностью, использующей в том числе и элементы искусственного интеллекта, в рассмотрении проблематики сигнатур мы будет отталкиваться именно от этого определения.
Итак, у нас есть некоторый потенциально вредоносный набор байт, являющихся опкодами инструкций ассемблера.
На ассемблере один и тот же алгоритм можно реализовать множеством различных способов. На языках высокого уровня в общем-то тоже, но компилятор или интерпретатор в итоге может все прооптимизировать так, что различия будут не столь существенными. Но и не забываем про различные обфускаторы, которые также могут изменить код вредоноса до неузнаваемости.
Ниже приведен пример реверсинга .NET приложения. Вроде все есть, а при этом ничего не понятно.
Это и есть обфускация в действии. Таким образом, классический сигнатурный анализ нам не слишком поможет. И здесь нам на помощь приходит в том числе и искусственный интеллект. Конечно, многие могут вспомнить про песочницы — это тоже эффективный инструмент выявления вредоносов, но для развертывания песочницы нужны определенные программные и аппаратные ресурсы, а главное время на выявления вредоносной активности. Использование ИИ может существенно сократить это время.
Таким образом, одну важную задачу для ИИ в кибербезопасности мы определили — это анализ вредоносного кода.
Анализ событий ИБ
Традиционным средством сбора и анализа событий информационной безопасности являются решения класса SIEM (Security Information Event Management). Об этих системах на просторах Хабра написан уже не один десяток статей, поэтому их архитектуру и принципы работы мы подробно рассматривать не будем, отметим лишь, что SIEM осуществляются централизованный сбор и анализ событий на соответствие определенным правилам корреляции. И вот именно эта часть будет представлять для нас особый интерес.
Дело в том, анализ большого объема событий (десятки тысяч событий в секунду) есть задача довольно ресурсоемкая и использование классических правил корреляции, реализующих логику, аналогичную представленной на картинке может потребовать больших мощностей.
А кроме того, обычные правила имеют бинарную логику. Набор событий либо попадает, либо не попадает под определенные условия и если не попадает, то алерт не будет создан. ИИ позволяет сделать логику более интеллектуальной и тем самым сделать выявления подозрительных активностей более эффективными.
Анализ поведения
Анализ кода различными методами позволяет выявить различные виды вредоносных приложений, как уже известных, так и еще неизвестных, но ведущих себя подозрительно. Однако, помимо непосредственно вирусов, троянов и прочих бэкдоров, мы можем также столкнуться с различными хакерскими инструментами, эксплоитами для уязвимостей нулевого дня и попытками использования легального системного ПО для различных хакерских активностей.
Не все подобные действия могут выявить антивирус, так как здесь нужно анализировать уже не просто сигнатуры кода, а именно поведение пользователя и приложений в системе: кто, когда и с какой целью запускает те или иные процессы.
На представленном ниже рисунке мы видим три группы приложений: однозначно плохие «Bad», однозначно хорошие «Good» и приложения в серой зоне «Gray». При этом серых приложений, как правило, большинство.
Для выявления подозрительных активностей системы EDR (Endpoint Detection & Response) на пользовательских узлах размещают агентов, которые собирают необходимую информацию о запускаемых процессах, изменениях в системе, новых настройках и т. д. Однако здесь проблема аналогична правилам корреляции в SIEM: слишком сложно описать все возможные подозрительные активности с помощью правил.
Здесь нам на помощь также приходит ИИ, позволяющий на основе данных о легальном и подозрительном поведении, полученном от агентов, выявлять потенциальные вредоносные активности. В частности, мы можем выявить компрометацию легального приложения, зараженного каким-либо вредоносом или подозрительные действия powershell скрипта, запущенного легальным пользователем.
Также к анализу поведения и вредоносного кода можно отнести анализ сетевого трафика и выявление подозрительных пакетов (функционал IDS). Здесь ИИ может помочь с выявлением различных атак в трафике, как на нижних уровнях иерархической модели, так и на уровне приложений.
Антифрод
Системы обнаружения мошенничества (antifraud) это еще одно важное направление кибербезопасности, активно используемое в банковской и финансовых сферах. Данные системы используются для снижения рисков и обеспечения безопасности мошенничества в соответствии с интересами клиентов и финансовых организаций. Такие системы выявляют отклонения в транзакциях и выставляют баллы, измеряя коэффициенты отклонения. Однако, в классических скоринговых моделях имеется большой процент ложных срабатываний. Например, системе может показаться мошенническим серия из нескольких переводов от юридического лица нескольким физическим.
Искусственный интеллект здесь может эффективно анализировать поток транзакций, выявляя потенциально подозрительные.
Прескриптивная аналитика
Выше мы рассмотрели несколько направлений кибербезопасности, в которых искусственный интеллект может достаточно эффективно использоваться. Но помимо этих направлений ИИ может также активно применяться там, где необходимо прогнозирование тех или иных событий. Прескриптивная аналитика (Prescriptive analytics) — это еще одно передовое направление для машинного обучения, заслуживающее упоминания с точки зрения кибербезопасности. В отличие от предиктивной аналитики (predictive analytics), которая предсказывает угрозу путем сравнения текущих событий с историческим журналам угроз, прескриптивная аналитика является более оперативным процессом. Прескриптивная аналитика имеет дело с ситуациями, когда кибератака уже началась. На этом этапе он анализирует данные, чтобы предложить, какие меры реагирования могут наилучшим образом соответствовать ситуации, чтобы свести потерю информации к минимуму.
Для эффективного выполнения прескриптивного анализа ИИ подойдет лучше всего, так как крайне сложно выполнить подобное прогнозирование с помощью классических правил. Благодаря прескриптивному анализу мы можем выявлять атаки еще до того, как они произошли.
О недостатках ИИ в кибербезе
Однако не стоит считать ИИ “серебряной пулей”. У машинного обучения тоже есть свои недостатки. Так, генерируемые SIEM оповещения должны проверяться специалистами-аналитиками SOC, создание слишком большого количества ложных предупреждений может привести к излишней загрузке специалистов SOC. Вообще, большое количество срабатываний говорит о том, что система безопасности в целом работает не слишком хорошо. Если эти инциденты не являются ложными срабатываниями, то это значит, что у нас проблемы в системах защиты. Так, например, большое количество инцидентов, связанных с вирусными эпидемия говорит о том, что антивирусные политики настроены недостаточно хорошо.
А большое количество ложных срабатываний говорит о том, что у нас некорректно работают правила, определяющие подозрительную активность. И то, и другое — плохо.
Аналогично и в случае с использованием ИИ. Если нейросеть обучена на плохих данных, то и результат она будет выдавать не слишком правильный.
В примере с SIEM, чтобы предотвратить проблему ложных срабатываний, аналитические системы также получают аналитическую информацию из SIEM. Сигналы, поступающие из систем SIEM, сравниваются с информацией в аналитических системах, чтобы система не генерировала повторяющиеся сигналы. Таким образом, решения для машинного обучения в области продуктов кибербезопасности извлекают уроки из окружения, для того чтобы свести ложные срабатывания к минимуму.
Подведем итоги
В настоящее время решения, использующие ИИ, уже активно применяются в кибербезопасности и со временем его значение будет только расти. При этом, искусственный интеллект особенно хорошо справляется со сбором и анализом огромных объемов данных, извлечением ценной информации и соответствующим реагированием. Эти возможности значительно повышают способность организации обнаруживать кибератаки и реагировать на них и, в конечном итоге, минимизируют потенциальный ущерб, наносимый злоумышленниками.
Основные задачи, которые может выполнять ИИ это: обнаружение, прогнозирование, автоматизацию, ответное реагирование и адаптацию на основе полученных ранее результатов.
Как видно, ИИ может решать довольно большой набор задач кибербезопасности и в перспективе этот список будет только увеличиваться.
На этом с теорией, обосновывающей необходимость использования ИИ в кибербезе можно закончить. В продолжении мы перейдем к практике и рассмотрим, что же из себя представляет искусственный интеллект, машинное обучение и нейросети. А также рассмотрим работу с этими элементами на языке Python.