Виявлення та класифікація шкідливих програм за допомогою Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Виявлення та класифікація шкідливих програм за допомогою Amazon Rekognition

Відповідно до стаття За даними Cybersecurity Ventures, у 57 році порівняно з 2021 роком збиток від програми-вимагача (типу зловмисного програмного забезпечення, яке може блокувати користувачам доступ до їхніх даних, якщо вони не сплатять викуп) зріс у 2015 разів. Крім того, прогнозується, що це коштуватиме своїм жертвам 265 мільярдів доларів ( доларів США) щорічно до 2031 року. На момент написання статті фінансові збитки від атак програм-вимагачів перевищують 50th місце в списку країн, упорядкованих за їх GDP.

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

Виявлення на основі сигнатур створює унікальний ідентифікатор відомого шкідливого об’єкта, щоб цей об’єкт можна було ідентифікувати в майбутньому. Це може бути унікальний шаблон коду, прикріпленого до файлу, або це може бути хеш відомого коду шкідливого ПЗ. Якщо під час сканування нових об’єктів виявлено відомий ідентифікатор шаблону (сигнатуру), цей об’єкт позначається як шкідливий. Виявлення на основі сигнатур є швидким і вимагає низької обчислювальної потужності. Однак він бореться з поліморфними типами шкідливих програм, які постійно змінюють свою форму, щоб уникнути виявлення.

Виявлення на основі поведінки оцінює підозрілі об’єкти на основі їх поведінки. Артефакти, які можуть розглядатися продуктами для захисту від зловмисного програмного забезпечення, це взаємодії процесів, DNS-запити та мережеві підключення об’єкта. Ця техніка ефективніша при виявленні поліморфного шкідливого програмного забезпечення, ніж на основі сигнатур, але вона має деякі недоліки. Щоб оцінити, чи є об’єкт зловмисним, він має працювати на хості та генерувати достатньо артефактів, щоб продукт для захисту від зловмисного програмного забезпечення міг його виявити. Ця сліпа пляма може дозволити зловмисному програмному забезпеченню заразити хост і поширитися мережею.

Існуючі методики далекі від досконалості. У результаті дослідження тривають з метою розробки нових альтернативних методів, які покращать наші можливості боротьби зі зловмисним програмним забезпеченням. Одним із нових методів, що з’явилися в останні роки, є виявлення шкідливих програм на основі зображень. Ця техніка пропонує навчити мережу глибокого навчання за допомогою відомих бінарних файлів зловмисного програмного забезпечення, перетворених у зображення у відтінках сірого. У цій публікації ми покажемо, як виконати виявлення зловмисного програмного забезпечення на основі зображень Amazon Rekognition Спеціальні мітки.

Огляд рішення

Для навчання моделі мультикласифікації та моделі виявлення зловмисного програмного забезпечення ми спочатку готуємо навчальні та тестові набори даних, які містять різні типи зловмисного програмного забезпечення, наприклад флудер, рекламне програмне забезпечення, шпигунське програмне забезпечення тощо, а також безпечні об’єкти. Потім ми перетворюємо об’єкти переносних виконуваних файлів (PE) на зображення у градаціях сірого. Далі ми навчаємо модель за допомогою зображень за допомогою Amazon Rekognition.

Amazon Rekognition — це служба, яка спрощує виконання різних типів візуального аналізу ваших програм. Rekognition Image допомагає створювати потужні програми для пошуку, перевірки та впорядкування мільйонів зображень.

Спеціальні мітки Amazon Rekognition базуються на наявних можливостях Rekognition, які вже навчені на десятках мільйонів зображень у багатьох категоріях.

Amazon Rekognition Custom Labels — це повністю керована служба, яка дозволяє користувачам аналізувати мільйони зображень і використовувати їх для вирішення багатьох проблем машинного навчання (ML), зокрема класифікації зображень, розпізнавання облич і модерації вмісту. За лаштунками Amazon Rekognition базується на технології глибокого навчання. У службі використовується згортка нейронної мережі (CNN), яка попередньо навчена на великому наборі даних з мітками. Піддаючись таким основним правдивим даним, алгоритм може навчитися розпізнавати шаблони в зображеннях з багатьох різних областей і може використовуватися в багатьох галузевих випадках використання. Оскільки AWS бере на себе відповідальність за створення та підтримку архітектури моделі та вибір відповідного методу навчання для поставленого завдання, користувачам не потрібно витрачати час на керування інфраструктурою, необхідною для завдань навчання.

Архітектура рішення

Наступна схема архітектури надає огляд рішення.

Рішення побудовано з використанням Пакет AWS, AWS Fargate та Amazon Rekognition. AWS Batch дозволяє запускати сотні завдань пакетного обчислення на Fargate. Fargate сумісний з обома Amazon Elastic Container Service (Amazon ECS) та Служба Amazon Elastic Kubernetes (Amazon EKS). Спеціальні мітки Amazon Rekognition дозволяють використовувати AutoML для комп’ютерного зору, щоб навчати спеціальні моделі для виявлення зловмисного програмного забезпечення та класифікації різних категорій зловмисного програмного забезпечення. Покрокові функції AWS використовуються для оркестрування попередньої обробки даних.

Для цього рішення ми створюємо ресурси попередньої обробки за допомогою AWS CloudFormation. Шаблон стеку CloudFormation і вихідний код для функцій AWS Batch, Fargate і Step доступні в Репозиторій GitHub.

Набір даних

Щоб навчити модель у цьому прикладі, ми використали наведені нижче загальнодоступні набори даних для вилучення зловмисних і доброякісних Портативний виконуваний (PE):

Радимо вам уважно прочитати документацію щодо наборів даних (Sophos/Reversing Labs README, PE Набір даних машинного навчання зловмисного програмного забезпечення) для безпечної обробки шкідливих об’єктів. Залежно від ваших уподобань ви також можете використовувати інші набори даних, якщо вони містять зловмисне програмне забезпечення та безпечні об’єкти у двійковому форматі.

Далі ми проведемо вас через наступні кроки рішення:

  • Попередня обробка об’єктів і перетворення на зображення
  • Розгорніть ресурси попередньої обробки за допомогою CloudFormation
  • Виберіть модель
  • Тренуйте модель
  • Оцініть модель
  • Вартість і продуктивність

Попередня обробка об’єктів і перетворення на зображення

Ми використовуємо покрокові функції, щоб організувати робочий процес попередньої обробки об’єкта, який включає такі кроки:

  1. Візьміть meta.db база даних sqllite з щавель-20м S3 і конвертуйте його у файл .csv. Це допомагає нам завантажити файл .csv у контейнер Fargate і посилатися на метадані під час обробки об’єктів шкідливого програмного забезпечення.
  2. Візьміть об’єкти з відра sorel-20m S3 і створіть список об’єктів у форматі csv. Виконуючи цей крок, ми створюємо серію файлів .csv, які можна обробляти паралельно, таким чином скорочуючи час, необхідний для попередньої обробки.
  3. Перетворюйте об'єкти з ковша Sorel-20m S3 в зображення за допомогою масиву завдань. Завдання пакетного масиву AWS використовують спільні параметри для перетворення об’єктів шкідливого програмного забезпечення в зображення. Вони виконуються як набір завдань перетворення зображень, які розподілені між кількома хостами та виконуються одночасно.
  4. Виберіть заздалегідь визначену кількість зображень для навчання моделі з масивом завдань, що відповідають категоріям шкідливих програм.
  5. Подібно до кроку 2, ми беремо доброякісні об’єкти з відра benig-160k S3 і створюємо список об’єктів у форматі csv.
  6. Подібно до кроку 3, ми перетворюємо об’єкти з доброякісного відра 160k S3 на зображення з масивом завдань.
  7. Через квоту Amazon Rekognition за замовчуванням для навчання користувацьких міток (250 тис. зображень) виберіть попередньо визначену кількість доброякісних зображень для навчання моделі.
  8. Як показано на наступному зображенні, зображення зберігаються у відрі S3, розділеному спочатку на шкідливі та безпечні папки, а потім зловмисне програмне забезпечення розподіляється за типами шкідливих програм.
    Тренувальне відро S3
    Набір тренінгових даних

Розгорніть ресурси попередньої обробки за допомогою CloudFormation

Передумови

Перш ніж продовжити, необхідно виконати такі передумови:

Розгортання ресурсів

Стек CloudFormation створить такі ресурси:

параметри

  • STACK_NAME – Назва стеку CloudFormation
  • AWS_REGION – Регіон AWS, де буде розгорнуто рішення
  • AWS_PROFILE – Іменований профіль, який застосовуватиметься до команди AWS CLI
  • ARTEFACT_S3_BUCKET – Відро S3, де буде зберігатися код інфраструктури. (Відро має бути створено в тому ж регіоні, де живе рішення).
  • AWS_ACCOUNT – Ідентифікатор облікового запису AWS.

Використовуйте наступні команди, щоб розгорнути ресурси

Переконайтеся, що агент докера запущено на машині. Розгортання виконується за допомогою сценаріїв bash, і в цьому випадку ми використовуємо таку команду:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

Це створює та розгортає локальні артефакти, на які посилається шаблон CloudFormation (наприклад, cloudformation.yaml).

Тренуйте модель

Оскільки Amazon Rekognition подбає про навчання моделей замість вас, комп’ютерний зір або вузькоспеціалізовані знання ML не потрібні. Однак вам потрібно буде надати Amazon Rekognition корзину, наповнену вхідними зображеннями з відповідними мітками.

У цій публікації ми навчимо дві незалежні моделі класифікації зображень за допомогою функції спеціальних міток:

  1. Модель виявлення зловмисного програмного забезпечення (бінарна класифікація) – визначте, чи є даний об’єкт зловмисним чи безпечним
  2. Модель класифікації зловмисного програмного забезпечення (багатокласова класифікація) – ідентифікуйте сімейство зловмисного програмного забезпечення для певного шкідливого об’єкта

Інструкція по навчанню моделі

Кроки, наведені в наступному покроковому керівництві, стосуються обох моделей. Тому вам потрібно буде пройти ці кроки двічі, щоб навчити обидві моделі.

  1. Увійдіть у Консоль управління AWS і відкрийте Amazon Rekognition втішити.
  2. На лівій панелі виберіть Використовуйте спеціальні мітки. Показано цільову сторінку спеціальних міток Amazon Rekognition.
  3. Виберіть на цільовій сторінці Amazon Rekognition Custom Labels ПОЧАТИ.
  4. На панелі ліворуч виберіть Завдання.
  5. Вибирати Створити проект.
  6. In Назва проекту, введіть назву свого проекту.
  7. Вибирати Створити проект щоб створити свій проект.
  8. У Завдання виберіть проект, до якого потрібно додати набір даних. Відобразиться сторінка деталей вашого проекту.
  9. Вибирати Створити набір даних, Створити набір даних відображається сторінка.
  10. In Початок налаштуваннявиберіть Почніть з одного набору даних дозволити Amazon Rekognition розділити набір даних для навчання та тестування. Зауважте, що ви можете отримати різні тестові зразки в кожній ітерації навчання моделі, що призведе до дещо інших результатів і показників оцінки.
  11. Вибирати Імпортувати зображення з Amazon S3 bucket.
  12. In S3 URI, введіть розташування сегмента S3 і шлях до папки. Те саме відро S3, надане на етапі попередньої обробки, використовується для створення обох наборів даних: виявлення шкідливих програм і класифікація шкідливих програм. Набір даних виявлення зловмисного програмного забезпечення вказує на корінь (тобто s3://malware-detection-training-{account-id}-{region}/) сегмента S3, тоді як набір даних класифікації зловмисного програмного забезпечення вказує на папку зловмисного програмного забезпечення (тобто s3://malware-detection-training-{account-id}-{region}/malware) ковша S3. Дані навчання
  13. Вибирати Автоматично додавати мітки до зображень на основі папки.
  14. Вибирати Створення наборів даних. Відкриється сторінка наборів даних для вашого проекту.
  15. на Модель потяга сторінку, виберіть Модель потяга. Назва ресурсу Amazon (ARN) для вашого проекту має бути в Виберіть проект поле редагування. Якщо ні, то введіть ARN для вашого проекту.
  16. У Хочете навчити свою модель? діалогове вікно, виберіть Модель потяга.
  17. Після завершення навчання виберіть ім'я моделі. Навчання закінчується, коли статус моделі є НАВЧАННЯ_ЗАВЕРШЕНО.
  18. У моделі виберіть розділ Використовуйте модель вкладку, щоб почати використовувати модель.

Щоб дізнатися більше, перевірте спеціальні мітки Amazon Rekognition Приступаючи до роботи путівник

Оцініть модель

Коли навчальні моделі завершені, ви можете отримати доступ до показників оцінювання, вибравши Перевірте показники на сторінці моделі. Amazon Rekognition надає вам такі показники: оцінка F1, середня точність і загальне запам’ятовування, які зазвичай використовуються для оцінки продуктивності моделей класифікації. Останні є усередненими показниками за кількістю міток.

У Продуктивність на етикетку ви можете знайти значення цих показників для кожної мітки. Крім того, щоб отримати значення для True Positive, False Positive і False negative, виберіть Переглянути результати тесту.

Показники моделі виявлення шкідливих програм

На збалансованому наборі даних із 199,750 XNUMX зображень із двома мітками (нешкідливе та шкідливе програмне забезпечення) ми отримали такі результати:

  • Оцінка F1 – 0.980
  • Середня точність – 0.980
  • Загальне відкликання – 0.980

Показники моделі виявлення шкідливих програм

Показники моделі класифікації шкідливих програм

На збалансованому наборі даних із 130,609 11 зображень з 11 мітками (XNUMX сімейств шкідливих програм) ми отримали такі результати:

  • Оцінка F1 – 0.921
  • Середня точність – 0.938
  • Загальне відкликання – 0.906

Показники моделі класифікації шкідливих програм

Щоб оцінити, чи добре працює модель, ми рекомендуємо порівняти її продуктивність з іншими галузевими тестами, які були навчені на тому самому (або принаймні подібному) наборі даних. На жаль, на момент написання цієї публікації не існує порівняльних досліджень, які б вирішували цю проблему за допомогою тієї самої техніки та тих самих наборів даних. Однак у науковому співтоваристві даних модель з оцінкою F1 вище 0.9 вважається дуже ефективною.

Вартість і продуктивність

Через безсерверну природу ресурсів загальна вартість залежить від кількості часу, протягом якого використовується кожна служба. З іншого боку, на продуктивність впливає обсяг даних, що обробляються, і розмір навчального набору даних, що надсилається в Amazon Rekognition. Для нашої оцінки вартості та продуктивності ми розглядаємо такий сценарій:

  • 20 мільйонів об’єктів каталогізовано та оброблено з набору даних Sorel.
  • 160,000 XNUMX об’єктів каталогізовано та оброблено з набору даних PE Malware Machine Learning.
  • Приблизно 240,000 3 об’єктів записуються в навчальний сегмент S160,000: 80,000 XNUMX шкідливих об’єктів і XNUMX XNUMX безпечних об’єктів.

Виходячи з цього сценарію, середня вартість попередньої обробки та розгортання моделей становить 510.99 доларів США. З вас додатково стягуватиметься 4 долари США за годину за кожну годину використання моделі. Ви можете знайти детальний розподіл витрат у оцінити створений через Калькулятор цін AWS.

Що стосується продуктивності, ось результати нашого вимірювання:

  • ~2 години для завершення попередньої обробки
  • Приблизно 40 годин для завершення навчання моделі виявлення зловмисного програмного забезпечення
  • Приблизно 40 годин для завершення навчання моделі класифікації зловмисного програмного забезпечення

Прибирати

Щоб уникнути додаткових витрат, СТОП та видаляти моделі Amazon Rekognition і видаліть ресурси попередньої обробки за допомогою знищити.ш сценарій. Для успішного запуску сценарію потрібні наступні параметри:

  • STACK_NAME – Назва стеку CloudFormation
  • AWS_REGION – Регіон, де розгорнуто рішення
  • AWS_PROFILE – Названий профіль, який застосовується до команди AWS CLI

Використовуйте наступні команди, щоб запустити ./malware_detection_deployment_scripts/destroy.sh сценарій:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

Висновок

У цій публікації ми продемонстрували, як виконувати виявлення та класифікацію зловмисного програмного забезпечення за допомогою Amazon Rekognition. Рішення дотримуються безсерверної моделі, використовуючи керовані служби для попередньої обробки даних, оркестровки та розгортання моделі. Ми сподіваємося, що ця публікація допоможе вам у ваших постійних зусиллях проти зловмисного програмного забезпечення.

У наступній публікації ми покажемо приклад практичного використання виявлення зловмисного програмного забезпечення за допомогою моделей, розгорнутих у цій публікації.


Про авторів

Едвін ХалвакшіуЕдвін Халвакшіу є старшим архітектором глобальної безпеки в AWS Professional Services і захоплюється кібербезпекою та автоматизацією. Він допомагає клієнтам створювати безпечні та сумісні рішення в хмарі. Поза роботою він любить подорожі та спорт.

Рахул ШаурьяРахул Шаурья є головним архітектором даних у AWS Professional Services. Він допомагає клієнтам і тісно співпрацює з ними, створюючи платформи даних і аналітичні програми на AWS. Поза роботою Рахул любить довго гуляти зі своїм собакою Барні.

Бруно ДефтоБруно Дефто є глобальним архітектором безпеки в AWS Professional Services. Він зосереджений на допомозі клієнтам створювати безпечні та надійні архітектури в AWS. Поза роботою він цікавиться останніми новинками технологій і подорожує.

Надім МаджедНадім Маджед є архітектором даних у професійних службах AWS. Він працює пліч-о-пліч із клієнтами, які створюють свої платформи даних на AWS. Поза роботою Надім грає в настільний теніс і любить дивитися футбол.

Часова мітка:

Більше від AWS Машинне навчання