Вирус Regin.
@Garant_Copy
Вирус Regin - шпион с очень сложной архитектурой и обширным функционалом.
Regin (Symantec) - виртуозно разработанный профессионалами шпион с очень сложной архитектурой и обширными возможностями (анализ электронной почты, экранных снимков, перехват сетевого трафика и т.д.), который нацелен на крупные организации и индивидуальных пользователей.
Regin – революционный вирус, практически не имеющий аналогов. Это невероятно сложный компонент программы, который отличается гибкостью своих возможностей в зависимости от атакуемой цели. В его основе заложена особая структура, предназначенная для обеспечения скрытого сбора информации на протяжении длительного времени.
Кроме того, Regin имеет многоступенчатую модульную систему, которая позволяет успешно атаковать разные типы целей. Подобное решение было замечено еще и в таких группах вирусов, как Flamer и Weevil. При этом многоэтапная система загрузки архитектуры схожа с такой же системой в Duqu/Stuxnet.
На начальных стадиях внедрения Regin происходит установка и конфигурация внутренних служб. Последующие этапы приводят в действие рабочую нагрузку вируса (основную функциональную часть программы):
- Этап 0 - Загрузчик (dropper). Устанавливает Regin на целевой компьютер
- Этап 1 - Загрузка драйвера
- Этап 2 - Загрузка драйвера
- Этап 3 - Загрузка, сжатие, шифрование, подключение к сети, обработка зашифрованной виртуальной файловой системы (EVFS)
- Этап 4 - Использование EVFS и загрузка дополнительных драйверов, работающих в режиме ядра, включая рабочие нагрузки
- Этап 5 - Выполнение основной рабочей нагрузки

Этап 0 - В случае попадания файла загрузчика на целевой компьютер, он устанавливается и обеспечивает прохождение этапа 1. Т.е., скорее всего, что этап 0 отвечает за установку различных расширенных атрибутов и/или ключей реестра, содержащих закодированные версии этапов 2, 3 и, возможно последующих этапов.
Этап 1 - Начальная загрузка. Известны 2 варианта имен файлов этапа - usbclass.sys и adpu160.sys - драйверы ядра, предназначенные для загрузки, и которые обеспечивают выполнение этапа 2. Могут быть занесены в реестр как системные службы. Кроме того, во время этапа 1 считывается и обеспечивается выполнение этапа 2 с помощью набора расширенных атрибутов NTFS.
Этап 2 - Обеспечивает установку и запуск этапа 3, посредством драйверов ядра. Этап 2 не хранится в традиционной файловой системе, а зашифрован внутри расширенных атрибутов или ключа реестра двоичного типа. Кроме того, этап 2 скрывает следы запуска этапа 1.
Этап 3 - Обеспечивает загрузку и выполнение этапа 4. Основан на драйвере ядра DLL и также не хранится в традиционной файловой системе. Файл зашифрован по аналогии с файлом этапа 2, однако по размеру превышает его примерно в 6-7 раз. Этап 3 также создает фреймворк для последующих этапов. Кроме того, этап 3 и все последующие этапы основаны на модульной платформе программного модуля.
Этап 4 - Файлы для этапа 4, загруженные во время этапа 3, состоят из модуля управления пользовательским режимом и многочисленных модулей полезной нагрузки ядра. Они находятся в двух хранилищах EVFS.
Этап 5 - Состоит из основных функциональных элементов полезной нагрузки Regin. Файлы для этапа 5 внедряются в services.exe еще на этапе 4. Они также находятся в хранилищах EVFS.
Рабочая нагрузка
Regin задействует библиотеки DLL, которые содержатся в хранилище EVFS SystemLog.evt. Варианты рабочей нагрузки могут отличаться в зависимости от цели атаки. Например:
- перехват информации сетевого трафика;
- кража паролей;
- сбор информации, хранящейся в оперативной памяти;
- сведения о процессах.
Regin размещает файлы данных на диске в зашифрованном виде в виртуальной файловой системе EVFS. При этом сами файлы в хранилище EVFS зашифрованы при помощи вариации шифра RC5 с использованием 64-битных блоков и 20 раундов. Известны несколько расширений для хранилища EVFS:
- *.evt;
- *.imd.
Структура хранилища аналогична файловой системе FAT, только с той разницей, что файлы не имеют имен, а идентифицируются с помощью двоичного тега.
Лог-файлы
Regin сохраняет все свои события в файле ApplicationLog.dat - файл не хранится в EVFS, однако он также зашифрован и сжат.
Из анализа видно, что Regin наделен сложной многоступенчатой архитектурой, надежно шифрует следы своей работы и имеет множество возможностей, реализуемых во время атаки. Многие компоненты вируса до сих не были открыты, поэтому полный список его возможностей еще неизвестен.