Руткиты - это вредоносные программы, которые проникают в самые глубокие уголки операционной системы. Хотя на бумаге они могут показаться привлекательными для злоумышленников, их создание сопряжено со значительными техническими трудностями, а малейшая ошибка в программировании может привести к полному краху машины жертвы.
Хотя не удалось выяснить, как изначально были заражены компьютеры жертв, анализ их аппаратного обеспечения проливает свет на устройства, которые может заразить CosmicStrand. Руткит находится в образах прошивок материнских плат Gigabyte или ASUS, и мы заметили, что все эти образы относятся к устройствам, использующим чипсет H81. Это говорит о том, что может существовать общая уязвимость, которая позволила злоумышленникам внедрить свой руткит в образ прошивки.
В этих образах микропрограмм были внесены изменения в драйвер CSMCORE DXE, точка входа которого была исправлена для перенаправления на код, добавленный в раздел .reloc. Этот код, выполняемый во время запуска системы, запускает длинную цепочку выполнения, которая приводит к загрузке и установке вредоносного компонента внутри Windows.
Глядя на различные образы прошивок, которые удалось получить, модификации могли быть выполнены с помощью автоматического патчера. Если это так, то, следовательно, злоумышленники имели предварительный доступ к компьютеру жертвы, чтобы извлечь, изменить и перезаписать прошивку материнской платы. Это могло быть достигнуто с помощью уже установленного на компьютере вредоносного имплантата-предшественника или физического доступа (т.е. по сценарию атаки "злой служанки"). Первоначальный отчет Qihoo указывает на то, что покупатель мог получить материнскую плату с обратной прошивкой после размещения заказа у продавца подержанных товаров. Мы не смогли подтвердить эту информацию.
Авторы вредоносных программ UEFI сталкиваются с уникальной технической проблемой: их имплантат запускается на таком раннем этапе процесса загрузки, что операционная система (в данном случае Windows) еще даже не загружена в память, а к тому времени, когда она загрузится, контекст выполнения UEFI уже завершится. Найти способ передать вредоносный код на всех этапах запуска - вот основная задача, которую решает руткит.
Рабочий процесс заключается в последовательной установке крючков[1], позволяющих вредоносному коду сохраняться до окончания запуска ОС. При этом выполняются следующие шаги:
- Первоначально зараженная прошивка загружает всю цепочку.
- Вредоносная программа устанавливает вредоносный хук в менеджере загрузки, что позволяет ей модифицировать загрузчик ядра Windows до его выполнения.
- Подделывая загрузчик ОС, злоумышленники могут установить еще один крючок в одной из функций ядра Windows.
- Когда эта функция впоследствии вызывается во время обычной процедуры запуска ОС, вредоносная программа в последний раз берет под контроль поток выполнения.
- Она размещает шеллкод в памяти и связывается с сервером C2 для получения фактической вредоносной полезной нагрузки для запуска на машине жертвы.
Indicators of Compromise
IPv4
- 115.239.210.27
- 23.82.12.30
- 23.82.12.31
- 23.82.12.32
- 58.84.53.194
Domains
- www.erda158.top
- update.bokts.com
MD5
- e31c43dd8cb17e9d68c65e645fb3f6e8
- ddfe44f87fac7daeeb1b681dea3300e9
SHA1
- 9a7291fc90f56d8c46cc78397a6f36bb23c60f66
SHA256
- 951f74882c1873bfe56e0bff225e3cd5d8964af4f7334182bc1bf0ec9e987a0a