Аналитики из калифорнийской компании FireEye, специализирующиеся на вопросах сетевой безопасности, опубликовали результаты изучения семейства новых вредоносных программ. Обнаруженный ими буткит «Немезида» и связанные с ним компоненты – это целая платформа, скрыто работающая на низком уровне. Она загружается до Windows, благодаря чему избегает обнаружения при обычном сканировании файловой системы.

Ещё в сентябре принадлежащая FireEye группа Mandiant Consulting обнаружила новый буткит, ориентированный на кражу и подмену финансовых данных. Он способен осуществлять скрытую передачу файлов, делать скриншоты экрана, выполнять функции клавиатурного шпиона, внедряться в системные процессы и планировать отложенные операции. Особенность состояла в том, что антивирусные средства обратившихся в FireEye клиентов не могли его удалить, а использование безопасного режима не влияло на его работоспособность.

Активация вызова меню загрузки Windows по нажатию {F8} командой "bcdedit /set {default} bootmenupolicy legacy".
Активация вызова меню загрузки Windows по нажатию {F8} командой “bcdedit /set {default} bootmenupolicy legacy”.

В своём исследовании специалисты FireEye описывают буткит, прерывающий классическую последовательность загрузки [MBR] -> [BS] -> [загрузчик ОС] на уровне второго компонента цепочки. Анализ показал, что основной вредоносный компонент Nemesis представляет собой тонкий гипервизор, который внедряется в загрузочную запись тома (Volume Boot Record — VBR) и сохраняет код остальных файлов троянца в неразмеченной области диска (unallocated space). Nemesis использует встроенные средства виртуализации процессоров x86 и x86-64. Фактически он запускает установленную ОС как виртуальную машину и полностью контролирует её.

Присутствующие в коде и метаданных кириллические символы стали основанием для утверждения, что за Nemesis стоят «русские хакеры». Авторами «Немезиды» называется группа FIN1 (не запрещена в России). Сейчас на Западе больше них боятся только ИГИЛ (запрещена в России).

Использование буткита  Nemesida происходит аналогично внедрению Bootrash, также написанного FIN1.
Использование буткита Nemesida происходит аналогично внедрению Bootrash, также написанного FIN1.

“Мы идентифицировали присутствие угроз безопасности от финансово-мотивированной группы, которую мы уже несколько лет отслеживаем как FIN1, – пишут эксперты FireEye. – Группа распространила многочисленные вредоносные файлы, каждый из которых является частью вредоносной экосистемы, называемой ‘Немезида'”.

Указанные особенности буткита стали поводом для нездоровой сенсации. В ArsTechnica и других солидных изданиях появились многочисленные сообщения о якобы неуловимом «вирусе», от которого не спасает даже полная переустановка системы. Собственно, почему она вообще должна помогать?

Виртуализация на десктопных компьютерах поддерживается начиная с процессора i80386. Загрузочные вирусы существовали со времён MS-DOS, а буткиты стали их дальнейшим развитием. В отличие от остальных типов вредоносных программ, они запускаются до операционной системы и получают возможность подменять любые данные, скрывая своё присутствие.

Анализ первого загрузочного стелс-вируса Brain в PC Tools, 1986 г.
Анализ первого загрузочного стелс-вируса Brain в PC Tools, 1986 г.

Каждый раз во время загрузки заражённого компьютера буткит прерывает её нормальную последовательность. Он получает управление ещё до передачи цепочки непосредственно загрузчику ОС (например, NTLDR) и перехватывает обработку системных вызовов. То есть, он контролирует поведение как самой ОС, так и всех запущенных в ней программ, включая антивирусы без специфических механизмов противодействия.

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

Схема расположения буткита.
Схема расположения буткита.

Большинство комплексных систем защиты как раз обладают такой возможностью. Обычно она реализована в модулях «антируткит», хотя в интегрированных решениях её может использовать и основной сканер как отдельную опцию. Бесплатная утилита для анализа системы и поиска вредоносных программ AVZ также при необходимости использует прямое чтение с диска, определяет перехват системных функций, анализирует таблицу векторов прерываний и детектирует маскирующиеся процессы.

Основную проблему составляет не столько поиск руткитов и буткитов, сколько их корректное удаление и восстановление нормальной работы компьютера. При грубой попытке удалить найденный буткит часто нарушается загрузка операционной системы. В простейших случаях помогает консоль восстановления (fixmbr + fixboot или bootrec.exe /FixBoot). Однако отдельные буткиты (включая «Немезиду») обладают механизмом противодействия и пытаются при своём обнаружении удалить файлы с диска – в знак мести и для заметания следов.

Suum cuique! Νέμεσις
Suum cuique! Νέμεσις

На концептуальном уровне «Немезида» – вовсе не новая проблема. Ещё девять лет назад на Black Hat Briefings был представлен буткит Bluepill с поддержкой аппаратной виртуализации AMD-V. В дальнейшем он получил поддержку Intel VT-x и стал универсальным руткитом. Лежащие в его основе идеи были реализованы как в легитимных, так и разных вредоносных программах.

Алгоритм «Немезиды» во многом похож на Backdoor.Win32.Sinowal, появившийся в 2009 году. Есть в нём также сходство с Olmarik (BackDoor.Tdss.9693 по классификации «Доктор Веб»), Win32/Rovnix (Trojan.Win32.Genome.aglua по классификации Касперского) и другими буткитами последних лет.

Nemesis ориентирована в первую очередь на кражу данных платёжных систем и перехват транзакций онлайн-банкинга, но может научиться выполнять и другие действия на заражённом компьютере, поскольку обладает расширяемым функционалом. Её автоматический апдейт возможен при очередной связи «Немезиды» со своим C&C-сервером.

Противодействие «Немезиде» очевидно из алгоритма её работы. Необходимо загрузиться с заведомо чистого загрузочного носителя, а затем выполнить анализ логической структуры диска и его антивирусную проверку пока буткит находится в неактивном состоянии. При желании неразмеченную область можно дописать к имеющемуся разделу или создать на ней новый. Опционально – выполнить fixboot или установить отдельный загрузчик (например, GRUB).

Nemesis не инфицирует диски с разметкой GPT.
Nemesis не инфицирует диски с разметкой GPT.

К счастью, «Немезида» и подобные ей буткиты не актуальны на компьютерах с новым менеджером загрузки EFI. Они не заражают диски с таблицей разделов GPT и не имеют средств обхода механизма безопасной загрузки SecureBoot, но не стоит считать его панацеей. Эксперты Legbacore уже представили доклад о буткитах самого низкого уровня, заражающих UEFI/BIOS независимо от производителя материнской платы. В общем случае компьютером управляет тот программный код, который запустился первым.