В данной статье представлен метод детекции подозрительных сайтов с использованием только косвенных признаков.
Ключевые слова: фишинг, распознавание, подозрительные сайты, косвенные признаки
Введение
Сейчас в Интернете остро стоит проблема кражи личных данных посредством фишинговых сайтов. На данный момент существуют инструменты, предупреждающие пользователя от том, что ссылка, по которой он пытается перейти, введет на поддельный сайт. Но они не гарантируют полную защиту от фишинга из-за их принципа работы.
В статье [1] описана антифишинговая защита основных популярных браузеров, где можно увидеть один изъян, она опирается на черные списки, хранящиеся в браузере. Это означает, что если домен веб-страницы не добавлен в список подозрительных сайтов, то никакого предупреждения не будет. Поэтому в этой статье представлен способ, который поможет улучшить современные инструменты блокировки подозрительных сайтов.
Постановка задачи
Сайт не будет определен как фишинговый, если его нет в черном списке. По статистике за месяц на один такой сайт заходит от 15 до 18 тысяч пользователей. Опытный пользователь может определить, что сайт поддельный, «на глаз», а обычный, не умеющий определять таким способом, — может лишиться своих данных.
Поэтому ставится задача, создать такой способ определения фишинговых сайтов в режиме реального времени по косвенным признакам, не опираясь на черный список. Данная задача включает в себя:
- Определить основные критерии, которые будут симулировать, как опытный пользователь определяет является ли сайт фишинговым.
- Создать механизм взаимодействия критериев друг с другом для определения статуса веб-страницы.
Основные критерии
Некоторые из критериев были взяты из [2, 3] и проверены на практике, а остальные были выделены в ходе изучения различных фишинговых сайтов. В итоге был составлен список основных критериев:
- соединение по защищенному протоколу https;
- наличие домена сайта в HSTS Preload List;
- наличие у доменного имени верхнего уровня DNSSEC-записей;
- является ли тело сайта картинкой;
- наличие тега
- отношение ссылок, ведущих на этот же сайт, к ссылкам, ведущих на сторонний сайт;
- отношение количества ссылок в тегах , использующих CSS-файлы этого сайта, к количеству использующих CSS-файлы с других сайтов;
- количество слов на странице;
- количество слов с опечатками;
- отношение количества слов с опечатками к общему количеству слов на странице.
Пять из этих критериев являются категориальными признаками, а остальные пять — численными.
Нейросетевой подход
В качестве механизма взаимодействия критериев между собой было решено взять немногослойную нейронную сеть, которая после обучения настроит веса каждого критерия.
На основе уже определенных критериев были собраны данные с 230 сайтов, среди которых ровно половина является фишинговыми, а остальные — нормальные. В итоге данные делятся на три основные выборки с определенными размерами:
- тренировочная выборка размером 200 сайтов;
- тестовая — 20 сайтов;
- валидационная — 10 сайтов.
В каждой такой выборке половина сайтов является фишинговыми.
На JavaScript нейронная сеть была написана с помощью библиотеки Brain.js.
Архитектура и параметры обучения:
- функция потерь — среднеквадратическая ошибка:
-
алгоритм оптимизации Adam:
- скорость обучения — 1e-3;
- batch size — 20 сайтов;
- максимальное количество эпох — 5000;
- минимальная ошибка — 5е-3
Результаты обучения
Таблица 2
Результат обучения нейронной сети на языке JavaScript
Название модели |
Эпоха |
Ошибка |
Model_JS |
100 |
0.02504628191382472 |
200 |
0.018852015170452655 |
|
300 |
0.014522773979946852 |
|
400 |
0.01462846398000555 |
|
500 |
0.007162848323984566 |
Рис. 1 Визуализированный результат работы сети на тренировочной и тестовой выборках.
Выводы
Данный механизм был реализован в расширении EPSDfree, автором которого являюсь я, и с его исходным кодом можно ознакомиться по ссылке https://github.com/Romamart/EPSDfree. Как показывает практика, этот способ помогает компенсировать некоторые недостатки антифишинговой защиты браузеров.
Литература:
- Безмалый В. Современные браузеры. Защита от фишинга [Электронный ресурс]. URL: https://www.osp.ru/pcworld/2011/07/13009498/.
- Vayansky I., Kumar S. Phishing — challenges and solutions [Электронный ресурс]. URL: https://www.researchgate.net/publication/322823383_Phishing_-_challenges_and_solutions.
- Нежников С. Фишинг в интернете: как не попасть в сети мошенников: [Электронный ресурс]. URL: https://sales-generator.ru/blog/fishing-v-internete/.
- Brain.js documentation [Электронный ресурс]. URL: https://github.com/BrainJS/brain.js#about.