Сей­час очень мно­го говорят об искусс­твен­ном интеллек­те, машин­ном обу­чении и глу­боких ней­росетях, но мало кто понима­ет, в чем раз­личие меж­ду раз­ными под­ходами к ИИ. В этой статье мы погово­рим об этом и я при­веду при­меры того, как искусс­твен­ный интеллект при­меня­ется в кибер­безопас­ности.

info

Ре­дак­ция бла­года­рит коман­ду «Ха­кер­дом» за помощь в под­готов­ке статьи.

Ис­кусс­твен­ный интеллект — это на самом деле сра­зу нес­коль­ко областей компь­ютер­ных наук, которые реша­ют задачи, свой­ствен­ные челове­чес­кому разуму: рас­позна­вание речи, клас­сифика­ция объ­ектов, а так­же раз­ные игры вро­де шах­мат и го.

Ма­шин­ное обу­чение — это часть темы искусс­твен­ного интеллек­та, где изу­чает­ся не пря­мое прог­рамми­рова­ние задач, а прог­рамми­рова­ние через обу­чение в про­цес­се решения одно­тип­ных задач.

В понятие машин­лернин­га вхо­дят раз­ные алго­рит­мы — такие как random forest («слу­чай­ный лес»), деревья решений, наив­ный бай­есов­ский клас­сифика­тор, гра­диен­тный бус­тинг и дру­гие. Ней­рон­ные сети, в том чис­ле глу­бокие, — это тоже один из алго­рит­мов машин­ного обу­чения.

Структура искусственного интеллекта
Струк­тура искусс­твен­ного интеллек­та
 

Классический кодинг vs машинное обучение

Как про­исхо­дит прог­рамми­рова­ние в клас­сичес­ком понима­нии? Допус­тим, у челове­ка есть компь­ютер, который работа­ет по опре­делен­ному алго­рит­му. Человек вво­дит в него дан­ные, зада­ет прог­рамму, и алго­ритм выда­ет резуль­таты. В этом слу­чае все пре­дель­но понят­но. Человек может получить точ­ность до 100 про­цен­тов, осо­бен­но если зап­рос — это матема­тичес­кие опе­рации.

Схема классического программирования
Схе­ма клас­сичес­кого прог­рамми­рова­ния

А вот в слу­чае с машин­ным обу­чени­ем прог­рамма и выходы поменя­ются мес­тами. То есть человек дает алго­рит­му дан­ные и ука­зыва­ет пра­виль­ные решения, а даль­ше компь­ютер дума­ет, как сде­лать так, что­бы из этих дан­ных получа­лись жела­емые резуль­таты. В про­цес­се такой работы и рож­дает­ся прог­рамма.

Схема машинного обучения
Схе­ма машин­ного обу­чения
 

Задачи искусственного интеллекта

Есть четыре основные задачи искусс­твен­ного интеллек­та:

  • клас­сифика­ция;
  • рег­рессия;
  • ран­жирова­ние;
  • клас­териза­ция.

Ма­шин­ное обу­чение сос­тоит из двух про­цес­сов. Пер­вый — это тре­ниров­ка, ког­да человек берет дан­ные, обу­чает модель и в ито­ге получа­ет некий клас­сифика­тор.

Тренировка модели машинного обучения
Тре­ниров­ка модели машин­ного обу­чения

Вто­рой про­цесс — это уже исполь­зование ML, ког­да обу­чен­ный клас­сифика­тор внед­ряет­ся в сис­тему, а затем на вход сис­темы пода­ют новые дан­ные, которые клас­сифика­тор не видел. В резуль­тате мы получа­ем пред­ска­зания от клас­сифика­тора.

Модель использования
Мо­дель исполь­зования
 

Чем машинлернинг может помочь в ИБ

Рас­смот­рим при­мер того, как человек поль­зует­ся сво­ей элек­трон­ной поч­той. Мож­но выделить четыре пат­терна поведе­ния челове­ка, ана­лиз которых поможет опре­делить его дей­ствия.

  1. В какое вре­мя суток человек поль­зует­ся поч­той: утром, днем, вечером.
  2. Сколь­ко устрой­ств исполь­зует: телефон, компь­ютер или сра­зу нес­коль­ко устрой­ств одновре­мен­но.
  3. В каких локаци­ях человек находит­ся, ког­да поль­зует­ся поч­той.
  4. В каком поряд­ке человек про­веря­ет пись­ма: свер­ху вниз или сни­зу вверх. Мы можем опре­делить это по тому, как он отве­чает или уда­ляет из ящи­ка рас­сылки и про­чий мусор.

Со­вокуп­ность отве­тов на эти воп­росы соз­дает пор­трет челове­ка (на рисун­ке ниже поведе­ние такого челове­ка выделе­но крас­ным). Для машин­ного обу­чения эти дей­ствия будут пред­ска­зуемые, без каких‑либо всплес­ков.

График поведения человека в нормальных условиях
Гра­фик поведе­ния челове­ка в нор­маль­ных усло­виях

Те­перь пред­ста­вим, что хакер взло­мал поч­ту, узнав каким‑то обра­зом пароль от нее, и зашел как поль­зователь. Его поведе­ние будет явно отли­чать­ся от поведе­ния челове­ка, который поль­зовал­ся элек­трон­ным ящи­ком до него. На гра­фике поведе­ние хакера показа­но харак­терны­ми всплес­ками.

График поведения хакера
Гра­фик поведе­ния хакера

За­дача алго­рит­ма зак­люча­ется в том, что­бы опре­делить тот момент, ког­да изме­нилось поведе­ние челове­ка, которое обра­зова­ло такой всплеск. О по­доб­ном при­мере можешь почитать в бло­ге Яндекса на Хаб­ре.

Дру­гой хороший при­мер — сорев­нования Catch me if you can на сай­те Kaggle. Это, кста­ти, очень полез­ный сайт для тех, кто хочет изу­чить машин­ное обу­чение.

За­дача — отли­чить взлом­щика от нор­маль­ного поль­зовате­ля по его поведе­нию. Нап­ример, дано: сай­ты, которые посеща­ет человек, и вре­мя нахож­дения челове­ка на них. Нуж­но по пос­ледова­тель­нос­ти посеще­ний сай­тов опре­делить взлом­щика. На стар­товой стра­нице пред­став­лен обзор задачи и раз­мечен­ные дан­ные. А так­же есть вклад­ка, где мож­но най­ти, как эту задачу решили дру­гие поль­зовате­ли. То есть Kaggle дает воз­можность не толь­ко поучас­тво­вать в сорев­новани­ях, но и наб­рать­ся опы­та у дру­гих людей.

 

Что включает в себя машинное обучение

Ма­шин­ное обу­чение вклю­чает в себя три ком­понен­та: дан­ные, приз­наки и алго­рит­мы. Давай рас­смот­рим их по отдель­нос­ти.

 

Данные

В откры­том дос­тупе есть мно­жес­тво наборов дан­ных, на которых мож­но тре­ниро­вать алго­рит­мы. Но у таких наборов есть недос­татки. Нап­ример, наборы могут быть непол­ными, пло­хо раз­мечены и неточ­ны. Если ты захочешь внед­рить решение на ML-тех­нологи­ях, нуж­но будет соб­рать набор дан­ных под опре­делен­ную задачу и готовый набор вряд ли будет хорошо соот­ветс­тво­вать. Люди готовы вык­ладывать алго­рит­мы, рас­ска­зывать, что и как они исполь­зуют, но мало кто хочет делить­ся сво­ими набора­ми дан­ных.

За­дача дата‑сай­ентиста — под­готовить набор дан­ных к исполь­зованию: соб­рать, раз­метить и вычис­тить его. Это очень тру­доем­кий про­цесс, который занима­ет при­мер­но 50–70 про­цен­тов работы.

 

Признаки

Рас­смот­рим прос­той веб‑зап­рос. Допус­тим, у тебя есть: дли­на зап­роса, код отве­та, URL, кон­текст, популяр­ность домена и так далее. Все­го таких приз­наков мож­но наб­рать 600 штук. В этом слу­чае воз­ника­ет два важ­ных воп­роса:

  1. Ка­кие из этих приз­наков брать, а какие не сто­ит?
  2. Где будет исполь­зовано решение — в режиме realtime или офлайн?

При­чем тебе при­дет­ся искать ком­про­мисс меж­ду эти­ми дву­мя парамет­рами. Нап­ример, если решение будет исполь­зовано в реаль­ном вре­мени, нуж­но, что­бы модель мог­ла быс­тро счи­тать. Поэто­му приз­наков сто­ит взять помень­ше, модель­ку пос­лабее. В офлай­новом режиме мож­но выг­рузить дан­ные, ана­лизи­ровать их и рас­кидывать по катего­риям. В этом слу­чае исполь­зуй любую модель любой слож­ности, потому что мож­но зас­тавить алго­ритм думать столь­ко, сколь­ко понадо­бит­ся.

Вот еще один при­мер. Пред­положим, нам нуж­но понять, опас­ный перед нами файл или нет. Для это­го сна­чала отве­тим на сле­дующие воп­росы:

  1. Тре­бует ли файл дос­тупа в интернет?
  2. Де­лает ли он что‑то похожее на ска­ниро­вание?
  3. Ка­кие IP исполь­зует файл?
  4. Хо­чет ли он дос­тучать­ся до реес­тра?
  5. Ра­бота­ет ли файл с памятью?
  6. Хо­чет ли он изме­нить фай­ловую сис­тему?
  7. Име­ет ли файл воз­можность самоко­пиро­вания или зах­вата дру­гих фай­лов?

От­веты на эти воп­росы помогут выявить приз­наки, которые мож­но исполь­зовать для решения нашей задачи.

 

Алгоритмы

Ал­горит­мы мож­но раз­делить на нес­коль­ко типов:

  • обу­чение без учи­теля;
  • обу­чение с учи­телем;
  • обу­чение с час­тичным прив­лечени­ем учи­теля (semi-supervised learning);
  • обу­чение с под­креп­лени­ем.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии