Вредоносный веб-сайт — это сайт, который пытается установить на ваше устройство вредоносное ПО (общий термин для всего, что нарушит работу компьютера, соберет вашу личную информацию или, в худшем случае, получит полный доступ к вашему компьютеру). необходимо для обнаружения вредоносных веб-сайтов или 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/
Источник: Ашиш Арья