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

Содержание

  • Введение в cAINvas
  • Источник данных
  • Анализ данных
  • Обучение модели
  • Введение в DeepC
  • Компиляция с DeepC

Введение в cAINvas

cAInvas — это интегрированная платформа разработки для создания интеллектуальных периферийных устройств. Мы можем не только обучать нашу модель глубокого обучения с помощью Tensorflow, Keras или Pytorch, мы также можем скомпилировать нашу модель с помощью периферийного компилятора под названием DeepC, чтобы развернуть нашу рабочую модель на пограничные устройства для производства. Модель обнаружения вредоносных URL-адресов также разработана на cAInvas, и все зависимости, которые вам понадобятся для этого проекта, также предварительно установлены.

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

Источник данных

При работе над cAInvas одной из его ключевых особенностей является галерея UseCases. Поскольку модель обнаружения вредоносных URL-адресов также является частью галереи cAInvas, нам не нужно искать данные вручную. Мы можем загрузить данные в фрейм данных с помощью библиотеки pandas, нам просто нужно ввести следующие команды:

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

Анализ данных

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

Чтобы предотвратить дисбаланс классов, мы передискретизировали наши данные с помощью модуля SMOTE библиотеки imblearn. Мы также узнали, что некоторые функции уже были извлечены из URL-адреса для классификации и сохранены в нашем файле csv.

Характеристики длины

  • Длина URL-адреса
  • Длина имени хоста
  • Длина пути
  • Длина первого каталога
  • Длина домена верхнего уровня

Количество функций

  • Счет «-»
  • Количество ‘@’
  • Количество '?'
  • Количество «%»
  • Количество ‘.’
  • Количество «=»
  • Количество «http»
  • Количество «www»
  • Количество цифр
  • Количество букв
  • Количество каталогов

Бинарные функции

  • Использование IP или нет
  • Использование сокращения URL или нет

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

Обучение модели

После создания набора данных следующим шагом будет передача наших обучающих данных в нашу модель глубокого обучения, чтобы научиться классифицировать URL-адреса. Используемая архитектура модели была:

Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense (Dense)                (None, 32)                544       
_________________________________________________________________
dense_1 (Dense)              (None, 16)                528       
_________________________________________________________________
dense_2 (Dense)              (None, 8)                 136       
_________________________________________________________________
dense_3 (Dense)              (None, 1)                 9         
=================================================================
Total params: 1,217
Trainable params: 1,217
Non-trainable params: 0
_________________________________________________________________

Использовалась функция потерь «binary_crossentropy», а оптимизатор — «Адам». Для обучения модели мы использовали Keras API с тензорным потоком на бэкэнде. .Вот тренировочные графики для модели:

Введение в DeepC

Компилятор DeepC и платформа логического вывода предназначены для включения и выполнения нейронных сетей глубокого обучения с упором на функции устройств малого форм-фактора, таких как микроконтроллеры, eFPGA, процессоры и другие встроенные устройства, такие как raspberry-pi, odroid, arduino, SparkFun Edge, risc. -V, мобильные телефоны, x86 и портативные компьютеры.

DeepC также предлагает заблаговременно компилятор, создающий оптимизированный исполняемый файл на основе цепочки инструментов компилятора LLVM, специализированной для глубоких нейронных сетей с ONNX в качестве внешнего интерфейса.

Компиляция с DeepC

После обучения модели она была сохранена в формате H5 с помощью Keras, так как он легко сохраняет веса и конфигурацию модели в одном файле.

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

Вот и все, наша система обнаружения вредоносных URL обучена и готова к работе.

Ссылка на блокнот cAInvas: https://cainvas.ai-tech.systems/use-cases/malicious-url-detection-app/

Источник: Ашиш Арья