Категория > Новости > ИИ в ИБ. Как машинное обучение применяется в безопасности и каким оно бывает - «Новости»
ИИ в ИБ. Как машинное обучение применяется в безопасности и каким оно бывает - «Новости»23-07-2021, 00:00. Автор: Martin |
Хакердом» за помощь в подготовке статьи. Искусственный интеллект — это на самом деле сразу несколько областей компьютерных наук, которые решают задачи, свойственные человеческому разуму: распознавание речи, классификация объектов, а также разные игры вроде шахмат и го. Машинное обучение — это часть темы искусственного интеллекта, где изучается не прямое программирование задач, а программирование через обучение в процессе решения однотипных задач. В понятие машинлернинга входят разные алгоритмы — такие как random forest («случайный лес»), деревья решений, наивный байесовский классификатор, градиентный бустинг и другие. Нейронные сети, в том числе глубокие, — это тоже один из алгоритмов машинного обучения. Структура искусственного интеллекта Классический кодинг vs машинное обучениеКак происходит программирование в классическом понимании? Допустим, у человека есть компьютер, который работает по определенному алгоритму. Человек вводит в него данные, подает программу, и алгоритм выдает результаты. В этом случае все предельно понятно. Человек может получить точность до 100 процентов, особенно если запрос — это математические операции. Схема классического программирования А вот в случае с машинным обучением программа и выходы поменяются местами. То есть человек дает алгоритму данные и указывает правильные решения, а дальше компьютер думает, как сделать так, чтобы из этих данных получались желаемые результаты. В процессе такой работы и рождается программа. Схема машинного обучения Задачи искусственного интеллектаЕсть четыре основные задачи искусственного интеллекта:
Машинное обучение состоит из двух процессов. Первый — это тренировка, когда человек берет данные, обучает модель и в итоге получает некий классификатор. Тренировка модели машинного обучения Второй процесс — это уже использование ML, когда обученный классификатор внедряется в систему, а затем на вход системы подают новые данные, которые классификатор не видел. В результате мы получаем предсказания от классификатора. Модель использования Чем машинлернинг может помочь в ИБРассмотрим пример того, как человек пользуется своей электронной почтой. Можно выделить четыре паттерна поведения человека, анализ которых поможет определить его действия.
Ответы на эти вопросы создает портрет человека (на рисунке ниже поведение такого человека выделено красным). Для машинного обучения эти действия будут предсказуемые, без каких‑либо всплесков. График поведения человека в нормальных условиях Теперь представим, что хакер взломал почту, узнав каким‑то образом пароль от нее, и зашел как пользователь. Его поведение будет явно отличаться от поведения человека, который пользовался электронным ящиком до него. На графике поведение хакера показано характерными всплесками. График поведения хакера Задача алгоритма заключается в том, чтобы определить тот момент, когда изменилось поведение человека, которое образовало такой всплеск. О подобном примере можешь почитать в блоге Яндекса на Хабре. Другой хороший пример — соревнования Catch me if you can на сайте Kaggle. Это, кстати, очень полезный сайт для тех, кто хочет изучить машинное обучение. Задача — отличить поведение взломщика от нормального пользователя. Например, дано: сайты, которые посещает человек, и время нахождения человека на них. Нужно по последовательности посещений сайтов определить взломщика. На стартовой странице представлен обзор задачи и размеченные данные. А также есть вкладка, где можно найти, как эту задачу решили другие пользователи. То есть Kaggle дает возможность не только поучаствовать в соревнованиях, но и набраться опыта у других людей. Что включает в себя машинное обучениеМашинное обучение включает в себя три компонента: данные, признаки и алгоритмы. Давай рассмотрим их по отдельности. ДанныеВ открытом доступе есть множество наборов данных, на которых можно тренировать алгоритмы. Но у таких наборов есть недостатки. Например, наборы могут быть неполными, плохо размечены и неточны. Если ты захочешь внедрить решение на ML-технологиях, нужно будет собрать набор данных под определенную задачу и готовый набор вряд ли будет хорошо соответствовать. Люди готовы выкладывать алгоритмы, рассказывать, что и как они используют, но мало кто хочет делиться своими наборами данных. Задача дата‑сайентиста — подготовить набор данных к использованию: собрать, разметить и вычистить его. Это очень трудоемкий процесс, который занимает примерно 50–70 процентов работы. ПризнакиРассмотрим простой веб‑запрос. Допустим, у тебя есть: длина запроса, код ответа, URL, контекст, популярность домена и так далее. Всего таких признаков можно набрать 600 штук. В этом случае возникает два важных вопроса:
Причем тебе придется искать компромисс между этими двумя параметрами. Например, если решение будет использовано в реальном времени, нужно, чтобы модель могла быстро считать. Поэтому признаков стоит взять поменьше, модельку послабее. В офлайновом режиме можно выгрузить данные, анализировать их и раскидывать по категориям. В этом случае используй любую модель любой сложности, потому что можно заставить алгоритм думать столько, сколько понадобится. Вот еще один пример. Предположим, нам нужно понять, опасный перед нами файл или нет. Для этого сначала ответим на следующие вопросы:
Ответы на эти вопросы помогут выявить признаки, которые можно использовать для решения нашей задачи. АлгоритмыАлгоритмы можно разделить на несколько типов:
Перейти обратно к новости |