Оптимизация извлечения функций на основе разрешений для набора данных Android с помощью одного скрипта Python

Фон

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

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

Исходный уровень

В следующей статье основное внимание уделяется созданию и форматированию функций, в частности, созданию функций на основе разрешений для приложений Android.

Здесь мы только увидим, как мы можем ускорить этот процесс, используя простой скрипт, который Does It All разберет его в какой-то другой статье, где мы обсудим извлечение функций в целом после моего обучения нашей собственной модели машинного обучения. для обнаружения вредоносных программ для Android!

Сценарий

Давайте перейдем к самой интересной части и исследуем сам сценарий.



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

КАК ПОЛЬЗОВАТЬСЯ СЦЕНАРИЕМ?

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

python3 ExtractorAIO.py

Вот и все. да. сделано. остальное, сценарий обработает

КАК ИСПОЛЬЗОВАТЬ СОЗДАННЫЙ НАБОР ДАННЫХ?

Сгенерированные данные будут в формате * .csv и могут быть проанализированы с помощью многих уже доступных библиотек или модулей. (предлагается модуль pandas в python)

Форматирование

Это образец набора данных из 6 приложений (3 вредоносных и 3 неопасных)

1-й столбец содержит НАЗВАНИЕ соответствующего приложения, а последний столбец «КЛАСС» содержит информацию о том, принадлежит ли приложение к семейству безобидных или вредоносных программ для обучения. [0 = Безобидное, 1 = Вредоносное ПО]. Между ними есть все разрешения (общие + все, найденные на 1-м этапе) с соответствующим информационным битом, [0 = приложение не использует это разрешение, 1 = Это разрешение используется в приложении]

Пример импорта данных в sklearn

Предположим, вы хотите импортировать новый набор данных в sklearn и обучать новую модель оттуда. Вот способ сделать это.

Приведенный выше код удалит столбец NAME, а затем сохранит FEATURE_MATRIX (из столбца после * NAME * до второго последнего столбца) и LABEL_VECTOR (столбец * КЛАСС *) в X и Y соответственно, которые позже можно разделить на желаемые наборы для обучения и тестирования.

ЗАКЛЮЧЕНИЕ

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

Увидимся в следующих статьях, а пока оставайтесь достаточно кофеина.