Обнаружение и классификация вредоносного ПО с помощью Amazon Rekognition PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Обнаружение и классификация вредоносных программ с помощью Amazon Rekognition

В соответствии с гайд По данным Cybersecurity Ventures, ущерб, причиненный программами-вымогателями (типом вредоносного ПО, которое может блокировать пользователям доступ к своим данным, если они не заплатят выкуп), увеличился в 57 раз в 2021 году по сравнению с 2015 годом. долларов США) ежегодно к 265 году.th позицию в списке стран, ранжированных по их ВВП.

Учитывая угрозу, которую представляют вредоносные программы, было разработано несколько методов для обнаружения и сдерживания атак вредоносных программ. Двумя наиболее распространенными методами, используемыми сегодня, являются обнаружение на основе сигнатур и поведения.

Обнаружение на основе сигнатур устанавливает уникальный идентификатор известного вредоносного объекта, чтобы этот объект можно было идентифицировать в будущем. Это может быть уникальный образец кода, прикрепленный к файлу, или это может быть хэш известного вредоносного кода. Если при сканировании новых объектов обнаруживается известный шаблонный идентификатор (сигнатура), то объект помечается как вредоносный. Обнаружение на основе сигнатур выполняется быстро и требует низкой вычислительной мощности. Однако он борется с полиморфными типами вредоносных программ, которые постоянно меняют свою форму, чтобы избежать обнаружения.

Обнаружение на основе поведения оценивает подозрительные объекты на основе их поведения. Артефакты, которые могут учитываться продуктами для защиты от вредоносных программ, — это взаимодействие процессов, DNS-запросы и сетевые подключения от объекта. Этот метод лучше обнаруживает полиморфное вредоносное ПО по сравнению с сигнатурным, но у него есть некоторые недостатки. Чтобы оценить, является ли объект вредоносным, он должен работать на узле и генерировать достаточно артефактов, чтобы продукт для защиты от вредоносных программ мог его обнаружить. Это слепое пятно может позволить вредоносному ПО заразить хост и распространиться по сети.

Существующие методики далеки от совершенства. В результате исследования продолжаются с целью разработки новых альтернативных методов, которые улучшат наши возможности по борьбе с вредоносными программами. Одна из новых технологий, появившаяся в последние годы, — обнаружение вредоносных программ на основе изображений. Этот метод предлагает обучать сеть глубокого обучения с известными двоичными файлами вредоносных программ, преобразованными в изображения в оттенках серого. В этом посте мы покажем, как выполнить обнаружение вредоносных программ на основе изображений с помощью Апостол Пользовательские метки.

Обзор решения

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

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

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

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

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

На следующей диаграмме архитектуры представлен обзор решения.

Решение построено с использованием Пакет AWS, АМС Фаргейткачества Апостол. 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 Repository.

Dataset

Чтобы обучить модель в этом примере, мы использовали следующие общедоступные наборы данных для извлечения вредоносных и безопасных Переносимый исполняемый файл (PE):

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

Далее мы проведем вас через следующие этапы решения:

  • Предварительная обработка объектов и преобразование в изображения
  • Развертывание ресурсов предварительной обработки с помощью CloudFormation
  • Выбери модель
  • Тренируй модель
  • Оцените модель
  • Стоимость и производительность

Предварительная обработка объектов и преобразование в изображения

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

  1. Возьмите мета.db база данных sqlite из сорель-20м Сегмент S3 и преобразовать его в файл .csv. Это помогает нам загружать файл .csv в контейнер Fargate и обращаться к метаданным при обработке объектов вредоносного ПО.
  2. Возьмите объекты из ковша сорель-20м S3 и создайте список объектов в формате csv. Выполняя этот шаг, мы создаем серию файлов .csv, которые можно обрабатывать параллельно, тем самым сокращая время, затрачиваемое на предварительную обработку.
  3. Преобразование объектов из ковша sorel-20m S3 в изображения с помощью массива заданий. Задания массива AWS Batch имеют общие параметры для преобразования объектов вредоносных программ в изображения. Они выполняются как набор заданий по преобразованию изображений, которые распределяются между несколькими хостами и выполняются одновременно.
  4. Выберите заданное количество изображений для обучения модели с набором заданий, соответствующих категориям вредоносных программ.
  5. Как и на шаге 2, мы берем неопасные объекты из корзины S160 доброкачественных 3 тыс. и создаем список объектов в формате csv.
  6. Как и в шаге 3, мы конвертируем объекты из безвредной корзины S160 размером 3 КБ в изображения с массивом заданий.
  7. Из-за установленной по умолчанию квоты Amazon Rekognition для обучения пользовательских меток (250 XNUMX изображений) выберите предварительно определенное количество доброкачественных изображений для обучения модели.
  8. Как показано на следующем изображении, образы хранятся в корзине S3, сначала разделенной на вредоносные и безопасные папки, а затем вредоносные программы секционируются по типам вредоносных программ.
    Учебный ковш S3
    Набор обучающих данных

Разверните ресурсы предварительной обработки с помощью CloudFormation

Предпосылки

Перед продолжением необходимы следующие предварительные условия:

Развертывание ресурсов

Стек CloudFormation создаст следующие ресурсы:

параметры

  • STACK_NAME – Имя стека CloudFormation
  • AWS_REGION – регион AWS, в котором будет развернуто решение
  • AWS_ПРОФИЛЬ – Именованный профиль, который будет применяться к команде 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 позаботится об обучении моделей за вас, вам не потребуется компьютерное зрение или узкоспециализированные знания машинного обучения. Однако вам потребуется предоставить 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.
  12. In URI S3, введите расположение корзины 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, среднюю точность и общую полноту, которые обычно используются для оценки эффективности моделей классификации. Последние являются усредненными показателями по количеству меток.

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

Метрики модели обнаружения вредоносных программ

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

  • Оценка Ф1 – 0.980
  • Средняя точность – 0.980
  • Общий отзыв – 0.980

Метрики модели обнаружения вредоносных программ

Метрики модели классификации вредоносных программ

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

  • Оценка Ф1 – 0.921
  • Средняя точность – 0.938
  • Общий отзыв – 0.906

Метрики модели классификации вредоносных программ

Чтобы оценить, хорошо ли работает модель, мы рекомендуем сравнить ее производительность с другими отраслевыми эталонными тестами, которые были обучены на том же (или, по крайней мере, похожем) наборе данных. К сожалению, на момент написания этого поста не было сравнительных исследований, решающих эту проблему с использованием той же техники и тех же наборов данных. Однако в сообществе специалистов по данным модель с оценкой F1 выше 0.9 считается очень хорошей.

Стоимость и производительность

Из-за бессерверного характера ресурсов на общую стоимость влияет количество времени, в течение которого используется каждая служба. С другой стороны, на производительность влияет объем обрабатываемых данных и размер набора обучающих данных, поступающих в Amazon Rekognition. Для нашего упражнения по оценке затрат и производительности мы рассматриваем следующий сценарий:

  • 20 миллионов объектов каталогизированы и обработаны из набора данных sorel.
  • 160,000 XNUMX объектов каталогизируются и обрабатываются из набора данных машинного обучения PE Malware.
  • В учебную корзину S240,000 записывается примерно 3 160,000 объектов: 80,000 XNUMX вредоносных объектов и XNUMX XNUMX безопасных объектов.

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

С точки зрения производительности, вот результаты нашего измерения:

  • ~2 часа для завершения потока предварительной обработки
  • ~40 часов для завершения обучения модели обнаружения вредоносных программ
  • ~40 часов для завершения обучения модели классификации вредоносных программ

Очистка

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

  • STACK_NAME – Имя стека CloudFormation
  • AWS_REGION – Регион, в котором развернуто решение
  • AWS_ПРОФИЛЬ – Именованный профиль, который применяется к команде 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