Основное применение математики в кибербезопасности

Что такое фишинг?

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

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

Проектирование модели

Разработанная модель принимает ряд URL-адресов строго в форме «https://www.example.com» и присваивает им двоичную метку. Например, исходный веб-сайт помечен 1, если он вредоносный, или 0, если безопасный. Для начала понаблюдайте, какие приемы делают попытки фишинга успешными. Другими словами, какие шаблоны манипулирования гиперссылками обычно используются, чтобы не только оставаться незамеченными детекторами фишинга, но и казаться подлинными. Подлинность определяется как способность маскироваться под целевой или законный веб-сайт. С другой стороны, оставаться незамеченным больше зависит от структуры ссылок исходной веб-страницы. Эти две характеристики будут основной основой для определения признаков модели классификации.

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

Вредоносные URL-адреса были получены из PhishTank и OpenPhish вместе. Безопасные URL-адреса были основаны на наиболее часто посещаемых веб-сайтах во всемирной паутине. Все эти URL-адреса были загружены и сохранены в файле CSV. Затем из CSV-файла был создан фрейм данных Pandas, содержащий все ссылки вместе с соответствующей меткой. Теперь любой недействительный URL-адрес был удален из набора данных. Это включает в себя следующее: URL-адреса не в правильном формате, фишинговые ссылки, которые больше не работают, любые URL-адреса, в результате которых код состояния превышает 200, или ссылки, которые приводили к ошибкам тайм-аута при подключении. Полученный набор данных содержал 300 вредоносных и 300 безопасных URL-адресов. Наконец, библиотека python Requests использовалась для получения html-ссылок с заданных URL-адресов. Затем эти ссылки были сохранены в другом файле CSV, где файл содержал серию кадров данных.

Создание сетей

Во-первых, кадр данных pandas был создан из CSV-файла, содержащего все запрошенные URL-адреса. После разделения фрейма данных на несколько фреймов данных, где каждый фрейм данных представляет исходный URL-адрес и соответствующие ссылки, программа использовала NetworkX для создания графика из списка краев. Результирующий граф представляет эго-сеть в целом с исходным URL-адресом в качестве центрального узла. Окружающие узлы представлены в виде веб-страниц, а каждое направленное ребро символизирует гиперссылочное соединение. Затем граф раскрашивался по следующему алгоритму:

for each node in G do
 if source is node URL then
  color node red
 else if source and node URL have same domain then
  4 color node orange
 else if source node URL have same subdomain (but same domains) then   
  color node yellow 
 else if node URL is invalid then 
  color node green
 else ▷ likely other valid URLs or links to other webpages color 
  node blue

Проще говоря, алгоритм выполняет итерацию по каждому узлу, присваивая ему цвет в зависимости от его связи с исходным узлом. Например, домен, поддомен и достоверность — все это факторы, определяющие цвет любого заданного узла. Обратите внимание, порядок узлов не имеет значения, а центральный узел всегда окрашен в красный цвет, так как это исходный узел. Рассмотрим в качестве примера цветную эго-сеть https://www.google.com:

Бинарный классификатор

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

Категория 1

Процент оранжевых узлов

Процент желтых узлов

Процент оранжевых и желтых узлов

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

Категория 2

Процент зеленых узлов

Процент синих узлов

Процент зеленых и синих узлов

Обоснование: высокий процент зеленых или синих узлов может указывать на то, что веб-сайт реализует определенный уровень манипулирования гиперссылками. На самом деле, на некоторых фишинговых сайтах может быть добавлен ряд ненужных ссылок, чтобы ничего не подозревающие пользователи выглядели более правдоподобно. Этот подход очень популярен из-за простоты реализации. [3] Примечательно, что также важно вычислять процент синих узлов, потому что не гарантируется, что синие узлы представляют вредоносные внешние URL-адреса. Точно так же зеленые узлы могут просто представлять URL-адреса, которые находятся в состоянии простоя. Хотя это невероятно маловероятно и обычно является признаком подозрительной активности.

Категория 3

Размер зеленых узлов

Размер синих узлов

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

Категория 4

Вне степени исходного узла

Обоснование: более законные веб-страницы, как правило, имеют произвольно разумное количество ссылок. Если веб-страница имеет необычно большое количество гиперссылок, это обычно предполагает манипулирование гиперссылками.

Категория 5

Среднее внеградусное центральное значение

Плотность

Обоснование: эта функция плотности похожа на функцию Google PageRank в том смысле, что она позволяет нам связать общее количество ребер с заданным количеством узлов. Согласно набору данных, вредоносные URL-адреса имеют тенденцию быть более плотными, чем безопасные URL-адреса.

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

После использования NetworkX для выполнения каждого из перечисленных вычислений все результаты были сохранены в файл CSV. Каждая строка в файле CSV представляет собой один URL-адрес, а каждый столбец представляет собой функцию. Последний столбец был помечен 1 или 0. Теперь существует правильный набор данных, и модель машинного обучения готова к обучению. Впоследствии данные были разделены на тестовые данные и обучающие данные. XGBoost и scikit-learn были библиотеками, которые использовались для создания контролируемой модели. Код всего процесса можно найти на https://github.com/avyahsharma/phishing-detector.

Полученные результаты

Используя sklearn.metrics, для измерения производительности модели использовался ряд показателей. Изображение, содержащее некоторую соответствующую статистику, прикреплено ниже:

Каждая метрика была рассчитана с использованием заданных формул, так что TN — истинно отрицательный, TP — истинно положительный, FN — ложноотрицательный и FP — ложноположительный.

Улучшения

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

Еще одним ключевым улучшением будет добавление возможности запрашивать дополнительный уровень веб-страниц. Собрав больше гиперссылок, можно построить более крупный график, что позволит модели собрать больше информации о фишинговых веб-сайтах, которые могут лучше обходить детекторы. В конкурирующих моделях был реализован аналогичный подход, и они получили более сильные результаты, потому что это также позволило им протестировать больше функций. К ним относятся такие разработки, как более сильный алгоритм PageRank, проверка полусвязности графов и поиск большего количества циклов. Фактически, когда конкурирующие модели специально включали эти функции, они отмечали увеличение производительности в зависимости от используемой техники машинного обучения.

Как упоминалось ранее, код можно найти по адресу https://github.com/avyahsharma/phishing-detector. Мы будем очень признательны за любые изменения или улучшения; любезно оставляйте комментарии, вопросы или предложения, и я сделаю все возможное, чтобы ответить!

[1]: Джонс, Кейтлин. 50 статистических данных о фишинге, которые вы должны знать в 2021 году. Expert Insights, 26 октября 2021 г., https://expertinsights.com/insights/50-phishing-statsyou-should-know/.

[2]: Как распознать и избежать фишинга. Информация для потребителей, 18 октября 2021 г., https://www.consumer.ftc.gov/articles/how-recognize-and-avoidphishing-scams.

[3]: Что такое фишинг? Примеры и фишинговая викторина. Cisco, 29 октября 2021 г., https://www.cisco.com/c/en/us/products/security/email-security/

[4]: Тан, Чун Лин и др. Теоретико-графовый подход к обнаружению фишинговых веб-страниц. Компьютеры и безопасность, том. 95, 2020, с. 101793., https://doi.org/10.1016/j.cose.2020.101793.

[5]: Александрсен, Даниэль. Большинство альтернативных веб-браузеров не имеют защиты от мошенничества и вредоносных программ, 16 августа 2016 г., https://www.ctrl.blog/entry/fraudprotection-alternate-browsers.html.

[6]: Пейдж, Лоуренс и др. Рейтинг цитирования PageRank: наведение порядка в Интернете. Сервер публикаций Stanford InfoLab, Stanford InfoLab, 11 ноября 1999 г., http://ilpubs.stanford.edu:8090/422/.

[7]: Введение в усиленные деревья. Введение в Boosted Trees — Документация Xgboost 1.5.1, https://xgboost.readthedocs.io/en/stable/tutorials