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

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

Машинное обучение, с другой стороны, можно научить распознавать признаки хороших и плохих файлов, что позволяет ему выявлять вредоносные шаблоны и обнаруживать вредоносное ПО — независимо от того, было ли оно замечено ранее или нет. Хотя машинное обучение может быть очень эффективным инструментом, у этой технологии есть свои ограничения.

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

Алгоритм получает миллионы точек данных, но никто конкретно не указывает, какие точки данных являются индикаторами вредоносного ПО. Модель машинного обучения должна обнаружить это самостоятельно.

Результатом этого является то, что ни один человек никогда не может знать, какие точки данных могут — согласно модели машинного обучения — указывать на угрозу. Это может быть одна точка данных или определенная комбинация из 13 точек данных. Мотивированный злоумышленник потенциально может обнаружить, как модель использует эти параметры для выявления угрозы и использования ее в своих интересах.

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

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

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

Будущее усовершенствование

  • Используйте более широкий, хорошо помеченный набор данных: системы машинного обучения хороши настолько, насколько хороши данные, которыми они снабжены. Для обучения эффективной модели требуется огромное количество входных данных, каждое из которых необходимо правильно пометить. Эти метки помогают модели понять определенные характеристики данных (например, является ли файл чистым, вредоносным или потенциально нежелательным). Хотя набор данных, который использовался в этом проекте, широк и охватывает большинство типов вредоносных программ, актуальных для современного мира, он не охватывает все возможные типы. Сбор набора данных о вредоносных программах — утомительная задача, требующая много времени и усилий. Для более точной оценки предикторов рекомендуется тестировать модели на всех возможных типах вредоносных программ: шпионских, рекламных, руткитов, бэкдоров, банковских вредоносных программ и т. д. Кроме того, важно понимать, что модель сможет только предсказать образцы семейств, которые он видел ранее. Другими словами, в реальном приложении максимальное количество возможных семейств должно быть использовано до запуска проекта для реальных сред.
  • Вместо того, чтобы размещать его только в нашей локальной системе, мы можем загрузить его в Интернет и предоставить функцию загрузки файлов для проверки, а также создать раздел для обнаружения URL.
  • Сканирование в реальном времени каждого файла во время загрузки/передачи можно использовать в повседневных сценариях для обнаружения вредоносных файлов. Также в Интернете мы можем внедрить детектор вредоносных URL-адресов в качестве расширения браузера, чтобы обеспечить сканирование URL-адресов в режиме реального времени, которое обнаружит и сообщит пользователю, является ли URL-адрес вредоносным или нет.

Ссылка на GitHub: https://github.com/Kiinitix/Malware-Detection-using-Machine-learning