Код руткита в функции wow64transition ошибка стандартной нейтрализации

TDSS Rootkit: Дальнейшее развитие и текущее состояние

В данной заметке я хотел бы остановиться на нововведениях, которые появились в TDL3 после публикации его первых обзоров. Кроме того, в конце заметки будут приведены результаты тестирования существующих утилит для лечения TDSS.

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

В данной заметке я хотел бы остановиться на нововведениях, которые появились в TDL3 после публикации его первых обзоров. Кроме того, в конце заметки будут приведены результаты тестирования существующих утилит для лечения TDSS.

Инсталлятор

Инсталлятор руткита представляет собой исполняемый файл размером

87Кб, обработанный несложной утилитой для запутывания кода (VirusTotal Report).

Ниже приведён конфигурационный файл, используемый руткитом после установки в систему:

Как видно, версия руткита – 3.273, последняя на данный момент.
С самых первых версий TDSS радовал нас оригинальной, и в то же время простой, техникой обхода поведенческой защиты, принцип работы которой основан на использовании механизмов службы диспетчера печати Windows. А именно, осуществлялась регистрация вспомогательной динамической библиотеки диспетчера печати (Print Processor) с помощью функции API функции AddPrintProcessor, что, в свою очередь, приводило к выполнению кода, содержащегося в этой библиотеке, в контексте доверенного процесса (а именно, spoolsv. exe). Сложность детектирования подобного поведения для систем типа HIPS заключается в том, что вызов функции AddPrintProcessor в итоге приводит к вызову RPC-функции диспетчера печати, единственный надёжный способ мониторинга которой заключается в контроле недокументированных LPC сообщений. Однако, со временем производители антивирусных защит всё-таки научились корректно препятствовать описанной технике. После этого разработчики руткита начали использовать с той же целью вызов похожей функции, а именно – AddPrintProvidor, вызов которой разработчики проактивных защит контролировать не догадались (sic!).

Взглянем на псевдокод той части инсталлятора, которая выполняет обход проактивной защиты:

В дальнейшем, работая уже в контексте доверенного процесса, инсталлятор руткита загружает драйвер режима ядра, имена файла и системного сервиса для которого генерируются случайным образом. После загрузки в память драйвер руткита выполняет заражение уже установленного в системе легитимного драйвера и инициализирует устройство, обслуживающее собственную зашифрованную файловую систему руткита. На эту файловую систему инсталлятор записывает файлы tdlcmd. dll (код трояна, работающий в User Mode), config. ini (конфигурационный файл, расшифрованный текст которого был приведён выше – этот файл формируется инсталлятором «на лету» их тех данных, которые были «зашиты» в инсталлятор на этапе его сборки и конфигурирования) и bcfg. tmp (исходные конфигурационные данные из инсталлятора). После того, как заражение выполнено, драйвер и инсталлятор самоудаляются, а руткит остаётся жить в системе исключительно как «потерянный» фрагмент исполняемого кода: он записан в последние секторы физического диска и не существующий в виде файла.

Основное тело руткита не претерпело существенных изменений за последнее время за тем исключением, что обработчики дисковых перехватов руткита теперь дополнительно фильтруют такие запросы IRP, как IOCTL_SCSI_PASS_THROUGH. Подобные запросы, адресованые драйверу минипорта, некоторое время использовались утилитами для удаления TDSS.

Заражение драйвера

Одним из главных нововведений в версии 3.273 является то, что вместо заражения заранее известного драйвера минипорта дискового контроллера руткит теперь заражает случайный драйвер, выбирая его из числа загруженных в память на момент заражения. Претерпел существенные изменения и код, которым осуществляется заражение драйвера (он по-прежнему записывается поверх секции, в которой хранятся ресурсы).

Во-первых, поиск функций ядра, используемых в этом коде, теперь осуществляется по контрольным суммам, подсчитанным от их имён. В предыдущих версиях руткита адреса нужных функций хранились непосредственно в коде. Это изменение связано с инцидентом, произошедшим после выхода обновления Miscrosoft для уязвимости MS10-015: в результате использования в коде руткита фиксированных адресов функций ядра огромное количество зараженных пользователей после обновления получили «синий экран смерти» на этапе загрузки и, как следствие, неработоспособную систему (Windows blue screen may be result of rootkit infection).

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

В третьих, для установки нотификатора на создание объектов типа «Control Device Object» в новой версии используется функция IoRegisterPlugPlayNotification, вместо функции IoRegisterFsRegistrationChange, используемой в более ранних версиях:

Рассмотрим псевдокод первой части кода заражения системного драйвера:

Вторая часть кода заражения системного драйвера, исполняемая при появлении определённых PnP событий, выполняет открытие устройства, имя которого передаётся в обработчик. После этого код заражения читает из последних секторов открытого устройства тело руткита, которое хранится в собственной зашифрованной файловой системе руткита под именем «tdl».

Стоит заметить, что начиная с версии 3.27 способ шифрования этой файловой системы несколько изменился: теперь вместо алгоритма RC4 со строкой «tdl» в качестве ключа используется инкрементальный XOR:

Формат самой файловой системы и логика её хранения на диске не изменились.

TDSS против антивирусных продуктов

В рамках исследования новых версий руткита мы провели тесты различных антивирусных программ с целью выяснения, насколько эффективно антивирусная индустрия противостоит руткиту TDSS на данный момент.

Тестирование производилось на платформе VMware с установленной гостевой операционной системой Windows XP Professional SP3. Были протестированы последние на момент написания данной заметки версии тех антивирусных продуктов, в которых ранее была заявлена способность к детектированию или лечению TDL3. Кроме того, с целью выяснения эффективности используемой в инсталляторе руткита техники обхода проактивных защит, в тестирование были дополнительно включены продукты, обладающие наиболее продвинутыми функциями поведенческого анализа (Comodo, ZoneAlarm, Outpost и Kaspersky Internet Security).

На виртуальную машину устанавливались последние версии тестируемых приложений, после чего осуществлялось обновление антивирусных баз и компонентов. Далее производился запуск инсталлятора руткита, перезагрузка гостевой ОС и полное сканирование системы тестируемым приложением с активацией всех возможных дополнительных настроек:

Название и версия программы

Обнаружение по поведению

Обнаружение активнго заражения

Лечение активного заражения

Dr. Web Security Space 6.00.0.04080

Kaspersky TDSSKiller 2.2.8.1

Обнаружен неправильный файл

Norman TDSS Cleaner 1.9.1.0

Vba32 AntiRootkit 3.12.4.0

MalwareBytes Anti-Malware 1.45

RootRepeal 2.0.0 Beta

Только в памяти (без имени зараженного файла)

Comodo Internet Security 3.14

Kaspersky Internet Security 2010 (9.0.0.736)

Только в памяти (без имени зараженного файла)

ZoneAlarm Internet Security Suite 9.1.507.0

Outpost Firewall Pro 2009 (3063.452.726.367)

Как видно из таблицы, с лечением активного заражения справилось всего две программы. Утилита TDSSKiller смогла обнаружить факт заражения, однако, в качестве зараженного файла был указан atapi. sys, что не соответствовало действительности:

Утилита RootRepeal смогла обнаружить только модифицированный руткитом Driver Object:

С поведенческим обнаружением инсталляции руткита в систему не справился ни один продукт.

С учётом относительно свежести тестируемого экземпляра руткита, рано делать какие-либо выводы из этих результатов. Но очевидно, что если в ближайшем будущем ситуация с детектированием TDL3 антивирусными программами не исправится, то он может стать для антивирусной индустрии самым существенным провалом со времён червя Conficker. По нашим данным, ботом TDSS заражено огромное количество машин – его ботнет на данный момент входит в число 10-ти самых крупных.

TDSS Remover

Вскоре после появления новой версии TDL3 мы выпустили обновление своей утилиты TDSS Remover:

Ошибка ActiveX/COM LocalServer32 (SpeechRuntime. exe) как исправить в Windows 10

Всем известна популярная программа-чистильщик CCLeaner. В ней есть множество функций, основные из которых — это удаление ненужных файлов и очистка реестра. Наверняка она есть на компьютерах большинства среднестатистических пользователей, которые периодически запускают её, чтобы очистить компьютер, чтобы он начал работать быстрее.

Мнение о том, что такие программы ускоряют компьютер и помогают продлить жизнь Windows и даже железу, бытует уже давно среди большинства пользователей. И такая уверенность в функциональности CCLeaner и подобных инструментов порой приводит к вопросам, решить которые самостоятельно затруднительно.

В данной статье рассматриваем один из таких вопросов. Что делать, если после проверки реестра на ошибки остаётся один не удалённый пункт — ошибка ActiveX/com LocalServer32 или SpeechRuntime. exe, и надо ли её исправлять, и если да, то как?

Что такое SpeechRuntime. exe

SpeechRuntime. exe — это один из файлов ядра системы Windows 10. Впервые он появился в составе официальной сборки 29 июля 2015 года и с тех пор присутствует в каждом обновлении.

Достоверно не известно, за что именно в Windows отвечает данный файл. Однако с уверенностью можно сказать две вещи. Во-первых, это точно не какой-то посторонний файл от установленной ранее программы. Во-вторых, это точно не вирус.

Завершение процесса, который выполняет SpeechRuntime. exe, или его удаление с определённой вероятностью может привести к неработоспособности Windows.

Что означает ошибка ActiveX/com в CCLeaner

Начать следует с того, что CCLeaner и все подобные программы — это коммерческие проекты. Несмотря на то, что этот инструмент бесплатный, у него есть платный тарифный план, который обещает больше возможностей. Зарабатывают такие проекты на уверенности большинства пользователей в том, что со временем компьютер засоряется какими-то файлами и его реестр увеличивается в объёме, что мешает работе системе. И исправить это безопасно можно только с помощью этих программ. И что, будто, после этого компьютер начинает работать быстрее.

Если вы хоть раз пользовались чистильщиками реестра, то наверняка замечали, что после очистки компьютер не начинает работать быстрее, загружаться быстрее или меньше зависать. Ниже вы можете видеть разницу загрузки системы на примере Windows 7 до и после использования CCLeaner и подобных программ. Разницы в работе компьютера нет. В Windows 10 всё точно так же.

Кроме того, даже ранние версии Windows абсолютно не используют те части реестра, которые не нужны в данный момент. Говоря простыми словами, если на компьютер была установлена программа, а потом запущенна, Windows использует ключи реестра, которые необходимы для этой программы. Когда программу закрыли, эти ключи больше не используются. Если эту программу позже удалили, в реестре остался балласт — ключи, которые не будут использоваться. Эти ключи никогда не активируются, пока программа не будет снова установлена и запущенна. А не используемые ключи реестра абсолютно никак не влияют на скорость работы компьютера.

Вам может быть это интересно: Код ошибки 0x80072F76 — 0x20017 в Media Creation Tool Windows 10.

Отсюда можно сделать вывод что периодическая очистка реестра не даёт системе никаких преимуществ. От этого не будет работать быстрее. Обратите также внимание на то, что Microsoft не поддерживает использование программ, которые очищают реестр. Об этом можно прочитать в «Политике поддержки Майкрософт для использования утилит очистки реестра». Поэтому нет смысла обращаться в поддержку Microsoft с вопросом об ошибке SpeechRuntime. exe при сканировании CCLeaner.

Подробнее об очистке реестра вы можете узнать на видео ниже.

Не редки случаи, когда после чистки реестра программами, подобным CCLeaner, система выходила из строя до такой степени, что компьютер нельзя было загрузить, и всё заканчивалось переустановкой Windows. Такие инструменты работают по своим алгоритмам, которые не всегда соответствуют идеям разработчиков Windows. Поэтому могут возникать конфликты.

Ради справедливости нужно заметить, что иногда чистка реестра всё-таки необходима. В некоторых случаях можно наблюдать невозможность установки драйверов или программ. Это может происходить как раз из-за того, что в реестре сохранились какие-то ключи, которые могут препятствовать инсталляции. Тогда данные ключи нужно удалить, чтобы новая программа могла записать их заново. Удалить ключи можно вручную, но только тем, кто точно знает что делает. Также можно применить CCLeaner и подобные программы. Но в этом случае, во-первых, удалится много других ключей реестра (возможно тоже не нужных), а во-вторых, может быть программе всё-таки не удастся обнаружить ошибочный ключ реестра.

Когда вы после проверки CCLeaner видите не удаляемую ошибку ActiveX/com LocalServer32 (SpeechRuntime. exe), вы можете смело её игнорировать. Её не надо удалять, не надо искать причин её появления. Собственно, как и не надо было и чистить реестр, поэтому пользы от этого никакой нет. То, что CCLeaner увидел в этом ключе ошибку, вовсе не означает, что это действительно проблема. Данный ключ должен присутствовать в системе.

Категорически нельзя открывать реестр и искать найденную ошибку ActiveX/COM и удалять её, если у вас нет необходимых знаний. Это может привести к неработоспособности Windows. Вообще открывать и редактировать реестр следует только с уверенностью в своих действиях, иначе переустановка Windows будет неизбежна.

От чего компьютер может работать медленно

Наверняка, вы запускали CCLeaner для того, чтобы хоть немного ускорить работу компьютера, в надежде что очистка реестра поможет вам. И теперь после прочтения этой статьи вам стало понятно, что это не выход. И на практике вы, скорее всего, в этом уже убедились.

Источники:

Https://www. securitylab. ru/analytics/393943.php

Https://it-doc. info/oshibka-activex-com/