
Обнаружение DGA-доменов с помощью биграммного частотного анализа
Все больше вредоносных программ создается с применением продвинутых методов обхода блокировок. Одним из наиболее распространенных методов является использование алгоритмов генерации доменов (Domain Generation Algorithms, DGA), которые периодически генерируют набор доменов для связи с C&C-сервером. Большинство таких DGA-доменов генерируют случайные буквенно-цифровые строки, которые по структуре значительно отличаются от обычных доменов. Анализируя частоту встречаемости набора биграмм в домене среди топ-1 млн Alexa, мы смогли определить, является ли домен сгенерирован случайной строкой или это легитимный читаемый человеком домен. Если домен почти полностью состоит из низкочастотных биграмм, редко встречающихся в топ-1 млн Alexa, то, скорее всего, это случайная строка. Биграммы, состоящие из гласной и согласной, встречались наиболее часто, тогда как сочетания символов и цифр — наименее часто. Скрипт был протестирован на 100 000 доменов GameoverZeus и показал уровень обнаружения 100% и уровень ложных срабатываний на топ-1 млн Alexa — 8% без использования какого-либо белого списка доменов.
Данная система протестирована на Ubuntu и RaspberryPi. В настоящее время мой RaspberryPi настроен как DNS-сервер с использованием Bind9. Скрипт DGA-Detection также запускается на RaspberryPi и считывает запросы. Запросы обрабатываются для определения, являются ли они потенциальными DGA или нет.
git clone https://github.com/philarkwright/DGA-Detection.git
cd DGA-Detection
chmod +x install.sh
./install.sh
sudo python dga_detection.py
nohup sudo python dga-detection.py -o 2 -i <интерфейс>
При запуске файла install.sh обратите внимание, что протокол git:// использует порт 9418, поэтому убедитесь, что ваш брандмауэр разрешает исходящие соединения на этот порт.
Этот проект всё ещё находится в активной разработке.
При запуске скрипта на уровне сети в моей домашней сети я заметил, что при определённых поисковых запросах в Google Chrome появляется множество предупреждений, которые выглядят как DGA-домены. Даже если вы не посещаете эти сайты (обычно китайские, так как они используют бессмысленные строки в качестве доменов), Google Chrome предварительно загружает и запрашивает их, что вызывает предупреждения.
ПРИМЕЧАНИЕ: Функция белого списка использует топ-1 млн Alexa.
Свяжитесь со мной через Twitter @philarkwright