МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт кибернетики Кафедра компьютерной и информационной безопасности Утверждаю Заведующий Кафедрой __________________________ ЗАДАНИЕ на выполнение курсовой работы по дисциплине «Основы искусственного интеллекта» Студент: Иванов А.А. Группа: 1. Тема: Исследование применения метода искусственного интеллекта в компьютерной безопасности 2. Исходные данные: Выбранная студентом тема для исследования 3. Краткая аннотация работы (перечень подлежащих разработке вопросов): 4. Срок представления к защите курсового проекта (работы): до «___» _______ 2021 г. Руководитель курсовой работы: Петров В.В. Задание принял к исполнению ___________________ Москва 2021 МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА Институт кибернетики Кафедра компьютерной и информационной безопасности КУРСОВАЯ РАБОТА по дисциплине «Основы искусственного интеллекта» Тема курсовой работы: «Исследование применения метода искусственного интеллекта в компьютерной безопасности» Студент группы (ФИО студента) Руководитель курсовой работы: __________________________________ (Должность преподавателя) (ФИО преподавателя) Работа представлена к защите «___»__________2021 г. (подпись студента) «Допущен к защите» (подпись руководителя) «___»__________2021 г. Москва 2021 3 Оглавление ВВЕДЕНИЕ ....................................................................................................................................4 1. Основные типы атак ..................................................................................................................4 2. Основные типы продуктов с применением технологий ИИ в компьютерной безопасности ..................................................................................................................................5 3. Машинное обучение ..................................................................................................................8 4. Контролируемые методы ..........................................................................................................9 4.1. Метод к-ближайших соседей ..............................................................................................11 4.2. Детектирование фишинговых ссылок с применением метода к-ближайших соседей ..13 4.3. Визуализация и уменьшение мерности ..............................................................................17 5. Неконтролируемые методы ....................................................................................................19 5.1. Метод k-средних ...................................................................................................................19 5.2. Детектирование фишинговых ссылок с применением метода к-средних ......................20 6. Нейронные сети .......................................................................................................................22 6.1. Однослойный персептрон ....................................................................................................23 6.2. Использование нейронных сетей в компьютерной безопасности ...................................24 ЗАКЛЮЧЕНИЕ............................................................................................................................29 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ...................................30 3 4 ВВЕДЕНИЕ На текущий момент технологии искусственного интеллекта (ИИ) широко применяются в информационных системах. Их использование в защите от кибератак становится одним из ключевых направлений в компьютерной безопасности. Количество атак постоянно растёт, а ландшафт угроз меняется с молниеносной скоростью. Например, продукты Kaspersky отражают более 700 млн онлайн-атак в квартал (данные за вторую четверть 2020 года) по всему миру, а Cisco заявляет о блокировании 20 млрд сетевых атак в день (более 7 триллионов атак за 2020 год). Очевидно, что при таких объёмах вредоносной деятельности злоумышленники активно применяют средства автоматизации кибератак, в том числе используют технологии искусственного интеллекта и машинного обучения для их совершенствования и трансформации, а также для обхода известных средств защиты. Для того чтобы справиться с растущим объёмом атак, производители систем защиты тоже начинают активно внедрять технологии искусственного интеллекта, машинного и глубокого обучения (ML / DL) для обнаружения, прогнозирования киберугроз, реагирования на них в режиме реального времени. 1. Основные типы атак Атаки отказ в обслуживании (DoS атаки) или распределенный атаки отказа в обслуживании (DDoS-атака) являются попыткой сделать компьютерный ресурс недоступным для предполагаемых пользователей, хотя это не обязательно обеспечивается при помощи вредоносных программ. Эти атаки обычно реализуются хакерами. Хотя средства для выполнения, мотивы и целевые атаки DoS могут изменяться, они обычно состоят из совместных усилий лица или лиц, с целью предотвращения доступности интернет-сайта или веб-сервиса, временно или на неопределенный срок. Основной целью для атак DoS, как правило, являются целевые сайты или сервисы, содержащие информационные ресурсы банков, служб управления кредитных карт, платежных шлюзов и т.д. Одним из инструментов, которые хакеры используют для запуска DDoS-атаки, является LOIC (Low Orbit Ion Cannon) . 4 5 Общий метод атаки состоит в насыщении целевого сервера-мишени (потерпевшего) внешними запросами, таким образом, что он не может ответить на легитимный трафик, или реагирует так медленно, чтобы его работа была либо неэффективна, либо он полностью недоступен. В общих чертах, DoS-атаки осуществляются с целью загрузить ресурсы целевого компьютера таким образом, чтобы он больше не был способен обеспечивать свои сервисы нужными ресурсами. Remote to Local Attack (R2L). Атаки удаленного пользователя – это атаки в которой пользователь отправляет пакеты на сервер через Интернет, с 21 целью поиска уязвимостей сервера использование которых позволит получить права супер пользователя. User to Root Attack (U2R). Эти атаки используют представляют собой атаку при которой хакер начинает работу в системе с правами обычного пользователя с целью получения привилегии супер пользователя. Probe (Зондирование). Зондирование это атака, в которой хакер сканирует машину или сетевое устройство для того, чтобы выяснить слабые места или уязвимости, которые могут быть впоследствии, эксплуатироваться с целью обхода системы ее безопасности 2. Основные типы продуктов с применением технологий ИИ в компьютерной безопасности Основные типы продуктов с применением технологий ИИ в компьютерной безопасности по сценариям использования: o EDR (Endpoint Detection and Response) — платформы обнаружения атак на рабочих станциях, серверах, любых компьютерных устройствах (конечных точках) и оперативного реагирования на них. С помощью технологий ИИ продукты данной категории могут обнаруживать неизвестные вредоносные программы, автоматически классифицировать угрозы и самостоятельно реагировать на них, передавая данные в центр управления. ИИ принимает решения на основе общей базы знаний, накопленной путём сбора данных со множества устройств. Некоторые продукты данного типа используют технологии ИИ для разметки данных на конечных точках и дальнейшего контроля их перемещения, чтобы выявлять внутренние угрозы. o NDR (Network Detection and Response) — устройства и аналитические платформы, которые обнаруживают атаки на сетевом уровне и позволяют оперативно на них реагировать. Используя накопленную статистику и базу знаний об угрозах, продукты данного типа выявляют с помощью технологий ИИ угрозы в сетевом 5 6 трафике и могут автоматически на них реагировать надлежащим образом, изменяя конфигурацию сетевых устройств и шлюзов. Часть продуктов данного типа специализируется на защите облачных провайдеров и их инфраструктуры. Дополнительный сценарий использования ИИ в сетевой защите — это анализ почтового трафика на предмет фишинга. o UEBA (User and Entity Behavior Analytics) — системы поведенческого анализа пользователей и информационных сущностей. Они обнаруживают случаи необычного поведения и используют их для детектирования внутренних и внешних угроз. Основной сценарий применения ИИ-технологий в продуктах типа UEBA — это автоматическое выявление аномалий в поведенческих моделях (отклонение от нормы или соответствие шаблону (паттерну) угрозы) для пользователей и различных сущностей информационных систем. Выявленные аномалии классифицируются с помощью ИИ как различные угрозы и риски для бизнеса. Аномальное поведение может выявляться в целях мониторинга и управления доступом, обнаружения мошенничества среди клиентов или сотрудников (антифрод), защиты конфиденциальных данных, проверки соблюдения тех или иных регламентов и нормативных актов. o TIP (Threat Intelligence Platform) —платформы раннего детектирования угроз и реагирования на них, действующие на основе большого количества различных данных (Data Lake) и индикаторов компрометации (IoC). Применение ИИ позволяет повысить эффективность выявления неизвестных угроз на ранних этапах; сценарий очень схож с работой SIEM-систем, но нацелен на внешние источники данных и внешние угрозы. o SIEM (Security Information and Event Management) — решения, которые осуществляют мониторинг информационных систем, в режиме реального времени анализируют события безопасности, поступающие от сетевых устройств, средств защиты информации, ИТ-сервисов, инфраструктуры систем и приложений, и помогают обнаружить инциденты ИБ. В системах такого класса накапливается огромное количество данных из различных источников, а применение технологий ИИ даёт возможность выявления аномалий эвристическими методами и сокращения ложных срабатываний при изменении паттернов и моделей данных. Применение ИИ в SIEM-системах позволяет достигнуть очень высокого уровня автоматизации. o SOAR (Security Orchestration and Automated Response) — системы, позволяющие выявлять угрозы информационной безопасности и автоматизировать реагирование на инциденты. В решениях данного типа, в отличие от SIEM-систем, ИИ помогает 6 7 не только проводить анализ, но и автоматически реагировать надлежащим образом на выявленные угрозы. o Средства защиты приложений (Application Security) — системы, позволяющие определять угрозы безопасности прикладных приложений, управлять дальнейшим циклом мониторинга и устранения таких угроз. Основной сценарий применения технологий ИИ в системах защиты прикладных приложений — автоматический сбор информации об уязвимостях, атаках и заражениях, доступной в открытых источниках, и основанная на его результатах автоматизация защитных действий: сканирования на уязвимости, изменения правил защиты для веб-приложений, выявления угроз и изменения рисковой модели. o Антифрод (Antifraud) — системы, позволяющие выявлять угрозы в бизнеспроцессах и предотвращать мошеннические операции в режиме реального времени. В системах защиты от мошенничества технологии ИИ применяются для определения отклонений от установленных бизнес-процессов, тем самым помогая быстро реагировать на возможное финансовое преступление или уязвимость процессов. Применение ИИ в таких системах особенно актуально, так как позволяет быстро адаптироваться к изменению логики и различных метрик бизнес-процессов, а также использовать лучшие практики в индустрии. Рис. 1. Распределение продуктов с применением технологий ИИ по сценариям использования 7 8 3. Машинное обучение Одно из многочисленных направлений ИИ – машинное обучение (МО), главная задача которого - научить искусственный интеллект на основе предоставляемой ему информации об окружающем мире самостоятельно принимать решения, самообучаться и постоянно совершенствоваться в своем самообучении. МО представляет собой подмножество технологий искусственного интеллекта, которое можно описать как «набор алгоритмов, позволяющих компьютерам обучаться тому, на что они изначально не запрограммированы». Алгоритм машинного обучения может обучаться на выборке уже решённых примеров задачи, либо он должен самостоятельно выявить общие черты и связи в заданном множестве объектов. Применение методов искусственного интеллекта с машинным предоставляют возможность создавать решения существенно более высокой эффективности, позволяющие идентифицировать кибератаки с высокой скоростью, выбирать оптимальный ответ на инциденты безопасности, в автоматическом режиме проводить оценку актуальности и последствий инцидентов. Общая схема обнаружения вторжений изображена на рис. 2. Рис. 2. Общая схема обнаружения вторжений Все существующие методы ИИ с машинным обучением, применяемые в компьютерной безопасности, можно разделить на два класса: контролируемые и неконтролируемые. 8 9 Общую схему методов можно представить схемой (рис. 3). Рис. 3. Схема методов машинного обучения 4. Контролируемые методы Обучение на основе контролируемых методов (с учителем) является наиболее часто используемой техникой машинного обучения. Как следует из названия, оно «контролируется», т.е. использует помеченный обучающий набор для построения логики, а затем в конечном итоге использует эту логику для немаркированных данных. В качестве примера из жизни рассмотрим следующую ситуацию. 9 10 Предположим, мы работаем в садовом центре, где выращиваем два вида растений: циннии и петунии. Есть машина, которая измеряет три параметра: Рост (высота); Цвет; Кислотность почвы hp. Необходимо написать программу, которая автоматически разделяет два типа растений на основе этих измерений. Так как это контролируемая проблема, нам дан набор данных с этими тремя прогностическими параметрами, и все примеры помечены как разновидность. Рассмотрим, как можно решить эту проблему, если сделать это вручную. Начнем с некоторой статистики. В частности, разобьем данные на только циннии и петунии и посмотрим сводную статистику для каждой группы. В рамках этой сводной статистики найдем значения, которые: 1) одинаковы для цветов одного сорта, 2) различны для петунии и циннии, 3) различны достаточно, чтобы использовать их для разделения двух. Делая это, делаем вывод: Hр почвы не имеет ничего общего с разновидностью. И этот параметр лучше всего просто игнорировать. Он может быть полезен, если мы пытаемся ответить на другой вопрос, например, о здоровье растений, но для нашего вопроса о разделении видов это бесполезно. Другие параметры лучше. Поскольку рост циннии почти всегда выше 12 ", а петунии - меньше 12". Цвет петунии всегда красный, фиолетовый или белый, в то время как циннии всегда красный, оранжевый или желтый. Имея эту информацию, мы можем разработать простой классификатор: Если цветок белый или фиолетовый, то это петуния. Оранжевые или желтые цветы - циннии. Для красных цветов, если рост выше 12 " это, вероятно, цинния, если ниже 12 " вероятно, петуния. Мы не можем отличить красные цветы друг от друга с полной уверенностью, но этот подход в большей степени работает. Используя этот простой набор правил, мы рассмотрели очень точный классификатор, использующий только этот минимальный объем информации. Стоит отметить, что каждый алгоритм классификации машинного обучения отличается по своему подходу. Рассмотрим подробнее популярный алгоритм классификации - Метод k ближайших соседей и применим его для детектирования фишинговых ссылок. 10 11 4.1. Метод к-ближайших соседей Метод k ближайших соседей - метрический алгоритм для классификации объектов, основанный на оценивании сходства объектов. Классифицируемый объект относится к тому классу, которому принадлежат ближайшие к нему объекты обучающей выборки. Алгоритм: 1 Вычислить расстояние до каждого из объектов обучающей выборки 2 Отобрать k объектов обучающей выборки, расстояние до которых минимально 3 Класс классифицируемого объекта это класс, наиболее часто встречающийся среди k ближайших соседей Численный пример. Рассмотрим простой численный пример работы алгоритма KNN, проиллюстрированный на рисунке 4. Рис.4. Численный пример Пусть имеется набор данных о заёмщиках банка часть из которых допустили просрочку по платежу (таблица 1). Признаками являются возраст и среднемесячный доход. Метками класса в поле «Просрочено» будут «Да» и «Нет». 11 12 На рисунке 4 оранжевыми кружками представлены объекты класса «Нет», а фиолетовыми класса «Да». Синим квадратом отображается классифицируемый объект (новый заёмщик). Задача заключается в том, чтобы выполнить классификацию нового заёмщика для которого Х1 = 42 и Х2=34 с целью оценить возможность просрочки им платежей. 1. Зададим значение параметра k=3. 2. Рассчитаем расстояние между вектором признаков классифицируемого объекта и векторами обучающих примеров по формуле: и установим для каждого примера его ранг (таблица 2). 3. Исключим из рассмотрения пример, который при k=3 не является соседом и рассмотрим классы оставшихся (таблица 3). Таким образом, из трёх ближайших соседей (на рисунке расположены внутри круга) классифицируемого объекта два имеют класс «Да», а один — «Нет». Следовательно, путём простого невзвешенного голосования определяем его класс как «Да». На основании работы классификатора делаем вывод, что заёмщик с заданными характеристиками может допустить просрочку по выплате кредита. 12 13 4.2. Детектирование фишинговых ссылок с применением метода к-ближайших соседей Теперь рассмотрим задачу детектирования фишинговых ссылок на основе следующих атрибутов: регистратор домена, период регистрации домена, геолокация хостинг-сервера и наличие защищенного соединения с валидным сертификатом. Пример выборки ссылок с атрибутами и меткой класса Рис. 5. Диаграммы, показывающие частоту встречаемости значений трех атрибутов: а) название регистратора (Registrar), б) период регистрации домена (Lifetime), в) геолокация хостинг-сервера (Countries) для фишинговых и доброкачественных ссылок После частотного анализа двух выборок с фишинговыми (Phishing) и доброкачественными (Benign) ссылками мы видим, что атрибуты регистратора 13 14 и геолокации будет сложно использовать для бинарной классификации, так как среди наиболее часто встречающихся значений имеется много совпадений. Различия по этим двум атрибутам носят более тонкий характер и могут быть выявлены на выборках большего размера. Однако атрибут Lifetime, соответствующий сроку, на который регистрируется домен, показывает, что среди фишинговых ссылок существует тенденция регистрировать домены на более короткий срок. Например, 37% фишинговых доменов было зарегистрировано на 1 год, в отличие от доброкачественных доменов, которые обычно регистрируются на более длительный срок — 10 лет и дольше. Что же касается защищенного соединения, то преобладающее большинство фишинговых ссылок (96%) не используют HTTPS-протокол, т. Е. это один из существенных критериев, который можно применять для детектирования фишинга. Для HTTPS-ссылок можно дополнительно проводить анализ сертификата на основе его атрибутов: например, кем и кому выдан, адрес регистрации компании, которой был выдан сертификат. Хакеры могут регистрировать сертификаты на несуществующие компании, как это было в случае с компанией шифровальщика LockerGoga, файлы которого были подписаны цифровыми сертификатами, выпущенными Sectigo RSA Code Signing CA для фейковых компаний Alina Ltd, Kitty’s Ltd., Mikl Limited и AB Simba Limited. При подготовке выборки для обучения нам необходимо все строковые значения перевести в категориальные и закодировать их числовыми значениями; для категории можно использовать порядковый номер. В таком случае значения атрибута можно будет представить в числовом пространстве. Например, для категориального атрибута Country создадим новый числовой атрибут Country_code с порядковым номером страны, встречающейся в выборке (1 — Australia, 2 — Bangladesh, 3 — Canada, …, 28 — USA). 14 15 Рис. 6. Распределение фишинговых (оранжевые точки) и доброкачественных (голубые точки) ссылок в зависимости от периода регистрации (lifetime), геолокации (Country_code) и типа протокола (Protocol_code: {0 — http, 1 — https}) На рисунке видно несколько тенденций в распределении данных: большое количество (47% фишинговых и 53% доброкачественных) IP-адресов находится в США (Country_code = 28); преобладающее большинство фишинговых ссылок (96%) используют HTTP-, тогда как все доброкачественные ссылки используют HTTPS-протокол; период регистрации доменов фишинговых ссылок в целом существенно меньше, чем у доброкачественных ссылок. На большей выборке эта тенденция будет лучше выражена и будет стремиться к 1 году. А теперь воспользуемся методом k — ближайших соседей для классификации ссылок. При классификации метод присваивает объекту класс, который является наиболее распространенным среди k-соседей данного объекта, классы которых уже известны. Сперва обучим нашу модель, после чего построим карту классификатора, чтобы увидеть границу принятия решения. Если новая ссылка попадет в голубую зону, то она будет классифицирована как доброкачественная, если в оранжевую — как фишинговая. Точность классификатора будет тем выше, чем больше маркированных ссылок будет содержать 15 16 тренинговая выборка. Кроме того, можно экспериментировать с параметрами модели, такими как количество ближайших соседей, весовая функция, алгоритм нахождения ближайших соседей и другими. Рис. 7. Бинарный классификатор на основе метода k — ближайших соседей. Параметры: количество соседей k = 5; весовые функции: слева — uniform (все точки в каждой окрестности имеют одинаковый вес) и справа — distance (более близкие соседи точки запроса будут иметь большее влияние, чем соседи, которые находятся дальше) Далее обученный классификатор мы можем использовать для детектирования фишинговых ссылок. Например, hxxps://www.ebay.com.itemscheckout.us/item=2328358263481rt=nctrksid=p2328358263481/ ссылка, ведущая на поддельную страницу Ebay со следующими атрибутами: домен зарегистрирован на 1 год (27.01.2019 — 27.01.2020), сервер находится в США, протокол HTTPS, регистратор NameCheap, Inc. Будет задетектирован нашим классификатором как фишинг. А вот если бы домен был зарегистрирован не на 1 год, а на 3, то наш классификатор определил бы, что сайт доброкачественный. Для оценки классификатора необходимо провести его кросс-валидацию (перекрестная проверка) на тестовой выборке с известными классами. Результатом тестирования будет выявление процента ошибочных срабатываний. В частности, для оценки классификатора могут быть использованы следующие базовые метрики: 16 17 True positive (TP) — количество фишинговых ссылок, определенных как фишинговые; True negative (TN) — количество доброкачественных ссылок, определенных как доброкачественные; False positive (FP) — количество доброкачественных ссылок, определенных как фишинговые; False negative (FN) — количество фишинговых ссылок, определенных как доброкачественные. И производные от них: True positive rate (TPR) или Recall = TP / (TP+FN); True negative rate (TNR) = TN / (TN+FP); False positive rate (FPR) = FP / (FP+TN); False negative rate (FNR) = FN / (FN+TP); Precision или Positive predictive value (PPV) = (TP+TN) / (TP+TN+FP+FN); Negative predictive value (NPV) = TN / (TN+FN); F-measure — гармоническое среднее между Recall (TPR) и Precision (PPV) = 2*Precision*Recall / (Precision + Recall). В контексте задачи выявления кибератак наиболее важной является метрика FN/FNR, которая дает количественную оценку пропущенным атакам. 4.3. Визуализация и уменьшение мерности Так как количество признаков (атрибутов) в модели зачастую больше, чем 2 или 3 (в реальных моделях — 1000 и более), то возникает вопрос: как представить объекты или наблюдения в двух- или трехмерном пространстве, чтобы увидеть закономерности их распределения для оценки возможности дальнейшей классификации или кластеризации. Для этих целей можно воспользоваться методами уменьшения размерности. Далее мы рассмотрим две техники — линейного (PCA) и нелинейного (t-SNE) уменьшения размерности. 17 18 Метод главных компонент (англ. Principal component analysis, PCA) осуществляет линейное отображение данных в пространство меньшей размерности таким образом, что дисперсия данных в малоразмерном представлении максимизируется. В нашем случае уменьшения размерности до двух компонент имеем следующие значения: компонента 1: −0.998 x Registrar_code + 0.065 x Lifetime + −0.022 x Country_code + 0.006 x Protocol_code компонента 2: 0.020 x Registrar_code + −0.035 x Lifetime + −0.999 x Country_code + −0.005 x Protocol_code Мы видим, что основной вклад в компоненту 1 вносит регистратор домена, а в компоненту 2 — страна, где находится сервер. Это можно объяснить тем, что обе эти величины являются категориальными и после кодирования с использованием порядкового номера значения атрибута имеют большую дисперсию; разброс значений в интервалах значений атрибутов (Registrar_code: [1,92], Country_code: [1, 28], Lifetime: [1,34], Protocol_code: [0,1]). В данном случае стоит поэкспериментировать с алгоритмами кодирования категориальных данных, например, использовать one-hot-кодирование. Рис. 8. Визуализация интернет-ссылок в двумерном пространстве после применения техники t-SNE (фишинговые ссылки — оранжевые точки, доброкачественные ссылки — голубые точки) 18 19 В этом случае мы уже можем увидеть скопления ссылок различных классов; это говорит о том, что существуют признаки или их совокупность, значения которых можно использовать для определения принадлежности объектов к одному из классов. Теперь рассмотрим ту же задачу (детектирование фишинговых ссылок), но на основе неконтролируемых методов с применением метода k-средних. 5. Неконтролируемые методы Неконтролируемый алгоритм обучения (без учителя) – это обучение машины через неопознанные и неклассифицированные данные. На основе этих данных алгоритм вычисляет закономерности и сходства и создает различные группы. Этот алгоритм отличается от контролируемого алгоритма тем, что не требует никакого контроля для обучения. Например, если вы предоставите модели некоторые картинки кошек и собак, то он категоризирует особенности этих картинок и составит группы кошек и собак в зависимости от их сходства и различий. 5.1. Метод k-средних k-средних (k-means) — наиболее популярный метод кластеризации. Алгоритму широко отдается предпочтение из-за его простоты реализации, большой скорости. Действие алгоритма таково, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров, где кластер - объединение данных, имеющих общие признаки (цвет, положение и т.д.). Это итеративный алгоритм, который делит данное множество пикселей на k кластеров точки, которых являются максимально приближенными к их центрам, а сама кластеризация происходит за счет смещения этих же центров. Принцип простейшей кластеризации методом к-средних: 1. Определяемся с количеством кластеров в которые нужно распределить данные. 2. Выбираем начальные центры кластеров, чтобы можно было привязывать каждый пиксель к центру кластера. Именно «расстояние» от центра до пикселя определяет, кому будет подчиняться каждый пиксель. Центр – это как Король, вокруг которого 19 20 собираются его подданные — пиксели. Выборка начальных центроидов может быть как рандомной так и по определенному алгоритму. 3. Посчитаем расстояние от каждого центра до каждого пикселя. Это расстояние считается как евклидово расстояние между точками в пространстве. Считаем расстояние от первого пикселя до каждого центра и определяем наименьшее расстояние между этим пикселем и центрами. Для центра расстояние, до которого является наименьшим, пересчитываем координаты, как среднее арифметическое между каждой составляющей пикселя – короля и пикселя — подданного. Наш центр смещается в пространстве соответственно подсчетам. 4. После пересчета всех центров, мы распределяем пиксели по кластерам, сравнивая расстояние от каждого пикселя до центров. Пиксель помещается в кластер, к центру которого он расположен ближе, чем к остальным центрам. 5. Все начинается сначала, до тех пор, пока пиксели остаются в одних и тех же кластерах. Часто такого может и не случится, так как при большом количестве данных центры будут перемещаться в малом радиусе, и пиксели по краям кластеров будут прыгать то в один, то в другой кластер. Для этого нужно определить максимальное число итераций. 1. Теперь проверяем координаты новых центроидов. Если они соответственно равны предыдущим центроидам — выходим из цикла, если нет возвращаемся к пункту 3. Ниже представлена картинка, которая приблизительно демонстрируют работу алгоритма: Рис. 9. Иллюстрация работы алгоритма к-средних 5.2. Детектирование фишинговых ссылок с применением метода к-средних Предположим, что у нас нет меток классов (фишинговые и доброкачественные) для интернет-ссылок. В таком случае мы можем использовать не контролированное обучение, 20 21 а именно кластерный анализ. Кластеризация позволяет сгруппировать объекты неизвестных классов по общности признаков. Для этого воспользуемся методом кластеризации k-средних (англ. K-means) . В нашем примере количество кластеров равно двум (фишинговые и доброкачественные ссылки). Используя технику t-SNE для проекции данных на двумерную плоскость, получаем следующие визуализированные результаты. Рис. 10. Визуализация интернет-ссылок в двумерном пространстве после кластерного анализа с помощи метода K-means Полученные кластеры можно сравнить с размеченными данными на рисунке для того, чтобы получить представление о точности кластерного анализа. Рис. 11. Обучающая выборка с обозначенными метками классов (слева) и после кластеризации (справа) 21 22 Более точную оценку эффективности кластеризации можно получить, используя описанные выше метрики: TPR, TNR, FPR, FNR, PPV, NPV, F-measure. TP = 110, TN = 41, FP = 7, FN = 44; TPR (Recall) = 71%; TNR = 85%; FPR = 15%; FNR = 29%; PPV (Precision) = 0.75; NPV = 0.48; F-measure = 0.73. Очевидно, что такой точности классификатора недостаточно для самостоятельного использования в продакшен-системах. Однако, учитывая тот факт, что у нас не было меток классов и мы не обучали нашу модель, это хороший результат. Данный классификатор может быть востребован как дополнительный механизм в рамках эвристического подхода для выявления подозрительных ссылок, на которые следует обратить внимание и, возможно, подвергнуть более глубокому анализу или сканированию другими сервисами, например Phishtank или Virustotal. Также возможно прибегнуть к кластеризации для помощи в маркировании объектов, которые в дальнейшем, после проверки экспертом, будут использоваться для обучения модели классификатора (обучение с учителем) либо для детерминистических методов — поиска однозначного соответствия с обнаруженной фишинговой ссылкой. 6. Нейронные сети Нейронная сеть – одно из направлений искусственного интеллекта, цель которого смоделировать аналитические механизмы, осуществляемые человеческим мозгом. Нейросети способны самостоятельно обучаться и развиваться, строя свой опыт на совершенных ошибках. Существует огромный ряд преимуществ использования нейронных сетей для построения систем защиты информации: − Высокая скорость обработки данных– позволяет работать системе в режиме реального времени. 22 23 − Способность анализировать данные из сети, включая неполные и искаженные данные. − Возможность анализа и изучения таких элементов атак, которые ранее не встречались. В зависимости от поставленной задачи могут использоваться разные нейронные сети. Рассмотрим простейший вид нейронных сетей - однослойный персептрон. 6.1. Однослойный персептрон Однослойный персептрон состоит из одного входного слоя (S), одного скрытого слоя (А) и одного выходного слоя (R). А – элементы называют ассоциативными, так как одному такому элементу соответствует определенный набор S элементов. А – элементы активируются, как только количество сигналов S превысило определенное количество. Далее, сигналы от А-элемента передаются в определенный сумматор R, каждый из таких сигналов имеет свой определенный вес. Если вес положительный, то соответствующий ему синапс – возбуждающий, если отрицательный – тормозящий. Если суммарный импульс превышает порог активации, то нейрон возбуждается и выдает на выходе 1, иначе 0. Где – порог активации; – функция активации; – веса нейронов; – определенны элемент входного вектора (рис. 12) 23 24 Рис. 12 – Однослойный персептрон Обучение однослойного персептрона подразумевает, что имеется такая пара векторов (XS, DS), в которой значения X – это входной вектор, а D – это правильный выходной вектор при данном значении входного. Значения вектора D – эталоны и поэтому, реальные выходные значения Y сравниваются с ними. Зная их разницу, можно ввести коррекцию для весовых коэффициентов и пороговых уровней: 1) если , ds-ys = 0, то ответ сети считается правильным и веса нейронов не корректируются. 2) если , ds-ys < 0, то ответ сети считается меньше правильного и веса нейрона увеличивают. 3) если , ds-ys > 0, то ответ сети считается больше правильного и веса нейрона уменьшают. 6.2. Использование нейронных сетей в компьютерной безопасности Существует огромный ряд преимуществ использования нейронных сетей для построения систем защиты информации: − Высокая скорость обработки данных – позволяет работать системе в режиме реального времени. − Способность анализировать данные из сети, включая неполные и искаженные данные. − Возможность анализа и изучения таких элементов атак, которые ранее не встречались. Вычисление выходного сигнала нейрона Пример 1. Разберем пример получения выходного сигнала. Для этого нам понадобиться однослойный персептрон (рис. 13). 24 25 Рис. 13. Пример однослойного персептрона Весовые коэффициенты отобразим в матричном виде для наглядности и удобства. Для расчета результата работы сети понадобиться 1) комбинирование входа: 2) функция активации: 25 26 Теперь найдем работу от входного слоя к скрытому. Далее произведем расчет конечной работы сети. Для этого понадобится другая формула активации, так как сеть определяет является ли входная информация атакой через анализ бинарной классификации. То есть, если значение будет +1, то атака совершена не была, если -1, то была. где t- порог. Исходя из полученного значения, видно, что атаки не было. Пример 2. Входные данные: Известен ли источник получения информации (0/1) Время передачи сигнала (сек) Конфиденциальность информации (1-10) Защищена ли информация паролем (0/1) 26 27 Допустим, установим такие значения: 0, 0.15, 3, 1. Веса установим, как степень важности параметра: 5, 1, 4, 4. Установим порог t = 20. Теперь перемножаем соответствующие значения с весами. Таким образом, видно, что атака была совершена на систему. Ниже приведен алгоритм анализа нейронной сетью данных на наличие угрозы (рис.14). 27 28 Рис 15. Алгоритм анализа нейронной сетью данных на наличие угрозы 28 29 ЗАКЛЮЧЕНИЕ В компьютерной безопасности наблюдается тенденция увеличения масштаба использования технологий искусственного интеллекта. Этому способствует наличие в них возможности обучения, активное развитие методологии ИИ, увеличение числа и усложнение сетевых угроз. В данной курсовой работе были рассмотрены методы искусственного интеллекта (ИИ) с машинным обучением (МО) с целью применения их в компьютерной безопасности. На примере задачи детектирования фишинговых ссылок были исследованы возможности искусственного интеллекта с контролируемым обучением на основе метода К-ближайших соседей и не контролируемого обучения на основе метода К-среднего, попутно затронута техника уменьшения размерности и визуализации данных, а также рассмотрено использование нейронных сетей в компьютерной безопасности. 29 30 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 1. Кибербезопасность: стратегии атак и обороны/Юрий Диогенес, Эрдаль Озкайя, 2020 2. Контролируемые методы машинного обучения как средство детектирования сетевых вторжений / И. С. Кожевникова, Е. В. Ананьин, А. В. Лысенко, А. В. Никишова - Молодой ученый, 2016 — № 27 (131) — С. 20-23. — URL: https://moluch.ru/archive/131/36300/ 3. Неконтролируемые методы машинного обучения при обнаружении сетевых аномалий / И. С. Кожевникова, Е. В. Ананьин, А. В. Лысенко - Молодой ученый, 2016 — № 30 (134) — С. 30-33. — URL: https://moluch.ru/archive/134/37559/ 5. Нейронные сети. Полный курс/ Саймон Хайкин – Вильямс, 2016. Электронные ресурсы 6. http://www.intuit.ru/studies/courses/17846/1242/lecture/27501 7. https://tproger.ru/translations/learning-neural-networks/ 8. Портал искусственного интеллекта (aiportal.ru) 30