Значителният брой статии обхващат машинното обучение за киберсигурност и способността да ни защитава от кибератаки. Все пак е важно да се проучи как всъщност изкуственият интелект (AI), машинното обучение (ML) и задълбоченото обучение (DL) могат да помогнат за киберсигурността в момента и за какво става дума в този шум.

Първо, трябва да ви разочаровам. За съжаление, машинното обучение никога няма да бъде сребърен куршум за киберсигурността в сравнение с разпознаването на изображения или обработката на естествен език, две области, в които машинното обучение процъфтява. Винаги ще има човек, който се опитва да намери слабости в системите или ML алгоритмите и да заобиколи механизмите за сигурност. Което е по-лошо, сега хакерите могат да използват машинно обучение, за да изпълнят всичките си престъпни начинания.

Което е по-важно, AI не е имунизиран срещу атаки и можете да прочетете тук новата ми статия за това.

За щастие машинното обучение може да помогне при решаването на най-често срещаните задачи, включително регресия, прогнозиране и класификация. В ерата на изключително голямо количество данни и недостиг на таланти за киберсигурност, машинното обучение изглежда е единственото решение.

Тази статия е въведение, написано, за да даде практическо техническо разбиране на текущия напредък и бъдещите насоки на изследванията на машинното обучение, приложени към киберсигурността.

Терминология на машинното обучение

Спрете да наричате всичко „AI“ — научете термините.

  • AI (Изкуствен интелект) — широко понятие. Науказа правене на нещата умни или, с други думи, човешки задачи, изпълнявани от машини (напр. Визуално разпознаване, NLP и т.н.). Основната точка е, че AI не е точно машинно обучение или умни неща. Това може да бъде класическа програма, инсталирана във вашия робот-чистач, като откриване на ръбове. Грубо казано, AI е нещо, което по някакъв начин изпълнява човешки задачи.
  • ML (машинно обучение) — Подход(само един от многото подходи) към AI, който използва система, способна да се учи от опита. Той е предназначен не само за цели на AI (например копиране на човешкото поведение), но може също така да намали усилията и/или времето, изразходвано както за прости, така и за трудни задачи като прогнозиране на цените на акциите. С други думи, ML е система, която може да разпознава модели чрез използване на примери, а не като ги програмира. Ако вашата система се учи постоянно, взема решения въз основа на данни, а не на алгоритми, и променя поведението си, това е машинно обучение.
  • DL (Deep Learning) — набор от техникиза внедряване на машинно обучение, което разпознава модели на модели - като разпознаване на изображения. Системите идентифицират предимно ръбове на обекти, структура, тип обект и след това самия обект. Въпросът е, че Deep Learning не е точно Deep Neural Networks. Има и други алгоритми, които са подобрени, за да научат модели на модели, като Deep Q Learning в задачата Reinforcement.

Дефинициите показват, че областта на киберсигурността се отнася най-вече до машинното обучение (не до AI). И голяма част от задачите не са свързани с човека.

Машинното обучение означава решаване на определени задачи с помощта на подход и определени методи, базирани на данни, които имате.

Повечето задачи са подкласове на най-често срещаните, които са описани по-долу.

  • Регресия (или прогноза) — задача за прогнозиране на следващата стойност въз основа на предишните стойности.
  • Класификация — задача за разделяне на нещата в различни категории.
  • Групиране — подобно на класификацията, но класовете са неизвестни, групиране на нещата по тяхната прилика.
  • Изучаване на асоциативно правило (или препоръка) — задача да се препоръча нещо въз основа на предишния опит.
  • Намаляване на размерността — или обобщение, задача за търсене на общи и най-важни характеристики в множество примери.
  • Генеративни модели — задача за създаване на нещо въз основа на предишните знания за разпространението.

В допълнение към тези задачи има различни подходи. Можете да използвате само един подход за някои задачи, но може да има няколко подхода за други задачи.

Подходи за решаване на ML задачи

Тенденции от миналото:

  • Учене под наблюдение. Подход, ръководен от задачи. На първо място, трябва да маркирате данни като захранване на модел с примери за изпълними файлове и да кажете, че този файл е злонамерен софтуер или не. Въз основа на тези етикетирани данни моделът може да взема решения относно новите данни. Недостатъкът е ограничението на етикетираните данни.
  • Обучение в ансамбъл.Това е разширение на контролираното обучение, като смесва различни прости модели за решаване на задачата. Има различни методи за комбиниране на прости модели.

Сегашните тенденции

  • Неконтролирано обучение. Подход, управляван от данни. Подходът може да се използва, когато няма етикетирани данни и моделът трябва по някакъв начин да ги маркира сам въз основа на свойствата. Обикновено е предназначен да открие аномалии в данните и се счита за по-мощен като цяло, тъй като е почти невъзможно да се маркират всички данни. В момента той работи по-малко прецизно от контролираните подходи.
  • Полу-контролирано обучение. Както подсказва името, полу-контролираното обучение се опитва да комбинира ползите както от контролиран, така и от неконтролиран подход, когато има някои етикетирани данни.

Бъдещи тенденции (е, вероятно)

  • Учене за укрепване. Подходът, ръководен от околната среда, може да се използва, когато поведението трябва по някакъв начин да реагира на променящата се среда. Това е като дете, което учи среда чрез проба и грешка.
  • Активно обучение. Това е по-скоро като подклас на обучение за укрепване, който вероятно ще прерасне в отделен клас. Активното учене прилича на учител, който може да помогне за коригиране на грешки и поведение в допълнение към промените в средата.

Задачи за машинно обучение и киберсигурност

Нека да видим примерите за различни методи, които могат да се използват за решаване на задачи за машинно обучение и как те са свързани със задачите за киберсигурност.

Регресия

Регресията (или прогнозата) е проста. Знанията за съществуващите данни се използват, за да имате представа за новите данни. Вземете пример за прогнозиране на цените на жилищата. В киберсигурността може да се приложи за откриване на измами. Характеристиките (напр. общата сума на подозрителна транзакция, местоположение и т.н.) определят вероятността от измамни действия.

Що се отнася до техническите аспекти на регресията, всички методи могат да бъдат разделени на две големи категории: машинно обучение и дълбоко обучение. Същото се използва и за други задачи.

За всяка задача има примери за ML и DL методи.

Машинно обучение за регресия

По-долу е даден кратък списък с методи за машинно обучение (със своите предимства и недостатъци), които могат да се използват за регресионни задачи.

  • Линейна регресия
  • Полиномиална регресия
  • Гребенна регресия
  • Дървета на решенията
  • SVR (регресия на опорен вектор)
  • Случайна гора

Можете да намерите подробното обяснение на всеки метод тук.

Дълбоко обучение за регресия

За регресионни задачи могат да се използват следните модели на дълбоко обучение:

  • Изкуствена невронна мрежа (ANN)
  • Повтаряща се невронна мрежа (RNN)
  • Невронни машини на Тюринг (NTM)
  • Диференцируем невронен компютър (DNC)

Класификация

Класификацията също е проста. Представете си, че имате две купчини снимки, класифицирани по тип (напр. кучета и котки). От гледна точка на киберсигурността като пример може да служи филтър за нежелана поща, който отделя нежеланата поща от други съобщения. Филтрите за нежелана поща са може би първият подход за машинно обучение, приложен към задачи за киберсигурност.

Подходът за контролирано обучение обикновено се използва за класификация, когато са известни примери за определени групи. Всички класове трябва да бъдат дефинирани в началото.

По-долу е списъкът, свързан с алгоритми.

Машинно обучение за класификация

  • Логистична регресия (LR)
  • K-най-близки съседи (K-NN)
  • Поддържаща векторна машина (SVM)
  • KernelSVM
  • NaiveBayes
  • Класификация на дървото на решенията
  • Случайна класификация на горите

Смята се, че методи като SVM и произволни гори работят най-добре. Имайте предвид, че няма универсални правила и те вероятно няма да работят правилно за вашата задача.

Задълбочено обучение за класификация

  • Изкуствена невронна мрежа
  • Конволюционни невронни мрежи

Методите за дълбоко обучение работят по-добре, ако имате повече данни. Но те консумират повече ресурси, особено ако планирате да ги използвате в производство и периодично да обучавате системи.

Клъстеризиране

Групирането е подобно на класификацията с единствената, но основна разлика. Информацията за класовете на данните е неизвестна. Няма идея дали тези данни могат да бъдат класифицирани. Това е обучение без надзор.

Предполага се, че най-добрата задача за групиране е „криминалистичният анализ“. Причините, хода и последствията от инцидента са неясни. Необходимо е да се класифицират всички дейности, за да се открият аномалии. Решенията за „анализ на злонамерен софтуер“ (т.е. „защита от злонамерен софтуер“ или шлюзове за „сигурен имейл“) могат да го приложат, за да отделят „легалните“ файлове от извънредните.

Друга интересна област, в която може да се приложи групиране, е анализът на потребителското поведение. В този случай „потребителите“ на приложението се групират заедно, така че е възможно да се види дали трябва да принадлежат към определена група.

Обикновено клъстерирането не се прилага за решаване на конкретна задача в киберсигурността, тъй като е по-скоро като една от подзадачите в конвейер (напр. групиране на потребители в отделни групи за коригиране на стойностите на риска).

Машинно обучение за групиране

  • K-най-близки съседи (KNN)
  • К-означава
  • Смесен модел (LDA)
  • DBSCn
  • байесовски
  • GaussianMixtureModel
  • Агломеративен
  • Средна смяна

Задълбочено обучение за групиране

  • Самоорганизирани карти (SOM) или мрежи на Кохонен

Обучение на правила за асоцииране (системи за препоръки)

Netflix и SoundCloud препоръчват филми или песни според вашите филмови или музикални предпочитания. В киберсигурността този принцип може да се използва предимно за реакция при инциденти. Ако една компания е изправена пред вълна от инциденти и предлага различни типове отговори, системата научава тип отговор за конкретен инцидент (напр. маркиране като фалшиво положително, промяна на стойност на риска, провеждане на разследване). Решенията за „управление на риска“ също могат да имат полза, ако автоматично присвояват стойности на „риск“ за нови „уязвимости“ или неправилни конфигурации, изградени въз основа на тяхното описание.

Има алгоритми, използвани за решаване на препоръчителни задачи.

Машинно обучение за обучение на правила за асоцииране

  • Априори
  • Euclat
  • FP-растеж

Задълбочено обучение за учене на правило за асоцииране

  • Болцманова машина с дълбоко ограничение (RBM)
  • Deep Belief Network (DBN)
  • Подреден автоенкодер

Най-новите системи за препоръки се основават на ограничени машини на Болцман и техните актуализирани версии, като например обещаващи мрежи с дълбоки убеждения.

Намаляване на размерността

Намаляването на размерността или генерализирането не е толкова популярно като класификацията, но е необходимо, ако работите със сложни системи с немаркирани данни и много потенциални характеристики. Не можете да приложите групиране, защото типичните методи ограничават броя на функциите или не работят. Намаляването на размерите може да помогне да се справите с него и да намалите ненужните функции. Подобно на групирането, намаляването на размерността обикновено е една от задачите в по-сложен модел. Що се отнася до задачите за киберсигурност, намаляването на размерността е обичайно за решенията за разпознаване на лица – тези, които използвате във вашия IPhone.

Намаляване на размерността на машинното обучение

  • Анализ на основните компоненти (PCA)
  • Разлагане по единична стойност (SVD)
  • T-разпределено стохастично вграждане на съседи (T-SNE)
  • Линеен дискриминантен анализ (LDA)
  • Латентен семантичен анализ (LSA)
  • Факторен анализ (FA)
  • Независим компонентен анализ (ICA)
  • Факторизиране на неотрицателна матрица (NMF)

Можете да намерите повече за намаляването на размерността тук (включително общото описание на методите и техните характеристики).

Генеративни модели

Задачата на генеративните модели се различава от горепосочените. Докато тези задачи се занимават със съществуващата информация и свързаните с нея решения, генеративните модели са предназначени да симулират действителните данни (не решения) въз основа на предишни решения.

Простата задача на офанзивната киберсигурност е да генерира списък с входни параметри за тестване на конкретно приложение за уязвимости на инжектиране.

Като алтернатива можете да имате инструмент за сканиране на уязвимости за уеб приложения. Един от неговите модули е тестване на файлове за неоторизиран достъп. Тези тестове могат да променят съществуващи имена на файлове, за да идентифицират новите. Например, ако робот открие файл, наречен login.php, по-добре е да проверите съществуването на някакво резервно копие или да тествате неговите копия, като опитате имена като login_1.php, login_backup.php, login.php.2017. Генеративните модели са добри в това.

Генеративни модели на машинно обучение

  • Марковски вериги
  • Генетични алгоритми

Генеративни модели на дълбоко обучение

  • Вариационни автоенкодери
  • Генеративни състезателни мрежи (GAN)
  • Болцманови машини

Наскоро GAN показаха впечатляващи резултати. Успешно имитират видео. Представете си как може да се използва за генериране на примери за размиване.

Задачи за киберсигурност и машинно обучение

Вместо да разглеждаме задачите за машинно обучение и да се опитваме да ги приложим към киберсигурността, нека разгледаме общите задачи за киберсигурност и възможностите за машинно обучение. Има три измерения (Защо, Какво и Как).

Първото измерение е цел или задача (напр. откриване на заплахи, прогнозиране на атаки и т.н.). Според PPDR модела на Gartner всички задачи за сигурност могат да бъдат разделени в пет категории:

  • прогнозиране;
  • предотвратяване;
  • откриване;
  • отговор;
  • наблюдение.

Второто измерение е технически слой и отговор на въпроса „Какво“ (напр. на кое ниво да се наблюдават проблемите). Ето списъка със слоеве за това измерение:

  • мрежа (анализ на мрежовия трафик и откриване на проникване);
  • крайна точка (анти-зловреден софтуер);
  • приложение (WAF или защитни стени на бази данни);
  • ползвател (UBA);
  • процес (борба с измами).

Всеки слой има различни подкатегории. Например мрежовата сигурност може да бъде кабелна, безжична или облачна. Уверете се, че не можете да приложите едни и същи алгоритми с едни и същи хипер параметри към двете области, поне в близко бъдеще. Причината е липсата на данни и алгоритми за намиране на по-добри зависимости на трите области, така че да е възможно да се промени един алгоритъм на различен.

Третото измерение е въпрос на „Как“ (напр. как да се провери сигурността на определена област):

  • в транзит в реално време;
  • в покой;
  • исторически;
  • и т.н.

Например, ако се занимавате със защита на крайна точка, търсите проникване, можете да наблюдавате процесите на изпълним файл, да правите статичен двоичен анализ, да анализирате историята на действията в тази крайна точка и т.н.

Някои задачи трябва да се решават триизмерно. Понякога няма стойности в някои измерения за определени задачи. Подходите могат да бъдат еднакви в едно измерение. Независимо от това, всяка конкретна точка от това триизмерно пространство от задачи за киберсигурност има своите сложности.

Трудно е да ги опишем подробно, така че нека се съсредоточим върху най-важното измерение – технологичните слоеве. Погледнете решението за киберсигурност от тази гледна точка.

Машинно обучение за мрежова защита

Мрежовата защита не е отделна област, а набор от различни решения, които се фокусират върху протокол като Ethernet, безжична връзка, SCADA или дори виртуални мрежи като SDN.

Мрежовата защита се отнася до добре познатите решения за система за откриване на проникване (IDS). Някои от тях използваха един вид ML преди години и се занимаваха предимно с подходи, базирани на подписи.

ML в мрежовата сигурност предполага нови решения, наречени Network Traffic Analytics (NTA), насочени към задълбочен анализ на целия трафик на всеки слой и откриване на атаки и аномалии.

Как ML може да помогне тук? Има някои примери:

  • регресия за прогнозиране на параметрите на мрежовите пакети и сравняването им с нормалните;
  • класификация за идентифициране на различни класове мрежови атаки като сканиране и подправяне;
  • групиране за съдебномедицински анализ.

Можете да намерите най-малко 10 статии, описващи различни подходи в академични научни статии.

Още ресурси:

Машинно обучение за Endpoint Protection

Новото поколение антивируси е Endpoint Detection and Response. По-добре е да научите функции в изпълними файлове или в поведението на процеса. Имайте предвид, че ако се занимавате с машинно обучение на ниво крайна точка, вашето решение може да се различава в зависимост от типа крайна точка (напр. работна станция, сървър, контейнер, облачен екземпляр, мобилно устройство, PLC, IoT устройство). Всяка крайна точка има своите специфики, но задачите са общи:

  • регресия за прогнозиране на следващото системно извикване на изпълним процес и сравняването му с реалните;
  • класификация за разделяне на програмите в категории като зловреден софтуер, шпионски софтуер и рансъмуер;
  • клъстериране за защита от злонамерен софтуер на защитени имейл шлюзове (напр. за отделяне на правни прикачени файлове от извънредни стойности).

Академичните статии относно защитата на крайната точка и по-конкретно злонамерения софтуер набират популярност. Ето няколко примера:

Машинно обучение за сигурност на приложенията

Между другото, сигурността на приложенията е любимата ми област, особено ERP сигурността.

Къде да използвам ML в сигурността на приложението? — WAF или анализ на код, както статичен, така и динамичен. Да ви напомня, че сигурността на приложението може да е различна. Има уеб приложения, бази данни, ERP системи, SaaS приложения, микро услуги и т.н. Почти невъзможно е да се изгради универсален ML модел, който да се справи ефективно с всички заплахи в близко бъдеще. Въпреки това, можете да опитате да решите някои от задачите.

Ето примери какво можете да направите с машинното обучение за сигурност на приложенията:

  • регресия за откриване на аномалии в HTTP заявки (например XXE и SSRF атаки и байпас за удостоверяване);
  • класификация за откриване на известни видове атаки като инжекции (SQLi, XSS, RCE и др.);
  • клъстериране на потребителската активност за откриване на DDOS атаки и масова експлоатация.

Още ресурсипредоставящи идеи за използване на ML за сигурност на приложенията:

Машинно обучение за потребителско поведение

Тази област започна като информация за сигурността и управление на събития (SIEM).

SIEM успя да реши множество задачи, ако беше конфигуриран правилно, включително търсене на потребителско поведение и ML. Тогава решенията на UEBA обявиха, че SIEM не може да се справи с нови, по-напреднали видове атаки и постоянна промяна на поведението.

Пазарът е приел тезата, че е необходимо специално решение, ако заплахите се разглеждат от потребителско ниво.

Но дори инструментите на UEBA не покриват всички неща, свързани с различно поведение на потребителите. Има потребители на домейни, потребители на приложения, потребители на SaaS, социални мрежи, месинджъри и други акаунти, които трябва да бъдат наблюдавани.

За разлика от откриването на злонамерен софтуер, фокусирано върху често срещаните атаки и възможността за обучение на класификатор, поведението на потребителите е един от сложните слоеве и проблемът с неконтролираното обучение. По правило няма етикетиран набор от данни, както и идея какво да търсите. Следователно задачата за създаване на универсален алгоритъм за всички типове потребители е трудна в областта на потребителското поведение. Ето задачите, които компаниите решават с помощта на ML:

  • регресия за откриване на аномалии в действията на потребителя (напр. влизане в необичайно време);
  • класифициране за групиране на различни потребители за анализ на партньорска група;
  • клъстериране за отделяне на групи от потребители и откриване на отклонения.

Още ресурси:

Машинно обучение за поведение на процеса

Областта на процеса е не на последно място. Докато се занимавате с него, е необходимо да знаете бизнес процес, за да откриете нещо аномално. Бизнес процесите могат да се различават значително. Можете да потърсите измама в банковата система и системата за търговия на дребно или в завод в производството. Двете са напълно различни и изискват много познания в областта. В машинното обучение инженерството на функции (начинът, по който представяте данни на вашия алгоритъм) е от съществено значение за постигане на резултати. По същия начин характеристиките са различни във всички процеси.

Като цяло има примери за задачи в областта на процеса:

  • регресия за прогнозиране на следващото потребителско действие и откриване на извънредни стойности като измами с кредитни карти;
  • класификация за откриване на известни видове измами;
  • групиране за сравняване на бизнес процеси и откриване на отклонения.

Можете да намерите научни статии, свързани с банкови измами, тъй като сигурността на ICS и SCADA системите е много по-малко представена.

Още ресурси

Книги за киберсигурност с машинно обучение

Ако искате да научите повече за машинното обучение в киберсигурността, ето книги, които могат да ви помогнат:

  • AI for Cybersecurity от Cylance (2017) - Кратко, но добро въведение в основите на машинното обучение за киберсигурност. Добри практически примери.

  • Машинно обучение и сигурност от O’reilly (януари 2018 г.) — Най-добрата книга досега по тази тема, но много малко примери за дълбоко обучение и най-вече общо машинно обучение

  • „Наука за данни за злонамерен софтуер: Откриване и приписване на атаки“ (септември 2018 г.) — Както се вижда от заглавието, тази книга е фокусирана върху злонамерения софтуер. Току-що беше пуснато към момента на писане на тази статия, така че досега не мога да дам обратна връзка. Но се обзалагам, че е задължително за всички от екипите за защита на крайни точки.

Заключение

Остават още площи. Очертах основите. От една страна, машинното обучение определено не е безпроблемно решение, ако искате да защитите системите си. Несъмнено има много проблеми с интерпретируемостта (особено за алгоритмите за дълбоко обучение), но хората също не могат да интерпретират собствените си решения, нали?

От друга страна, с нарастващото количество данни и намаляващия брой експерти, ML е единственото лекарство. Сега работи и скоро ще бъде задължителен. По-добре е да започнете веднага.

Имайте предвид, че хакерите също започват да използват ML в своите атаки. Следващата ми статия ще разкрие как точно нападателите могат да използват ML.