Патч руткиту не товарищ!
Во вторник, на прошлой неделе, вышло внеплановое обновление от Microsoft, под номером MS10-015 . Данный патч устранял уязвимость, которая позволяет локально повысить свои привилегии, и вносил модификации непосредственно в ядро ОС. Это обновление повлекло довольно непредвиденные последствия — некоторые пользователи испытывали проблемы после его установки. А конкретнее, после перезагрузки системы, которая требуется для установки этого обновления, стала проявляться критическая ошибка в одном из системных драйверов, которая в дальнейшем демонстрировала BSoD.

Со стороны Microsoft данная ситуация вызвала некоторое недоумение, так как перед выпуском обновления проходят довольно жесткое тестирование. Но, как оказалось в процессе проведенного внутреннего расследования, виновником оказался руткит TDSS в последней своей реинкарнации, который инфицировал драйвер, и из-за не совместимости с внесенными в ядро модификациями проявлялась критическая ошибка. Кстати, руткит мог заражать и другие системные драйверы.
Давайте разберемся более подробно, что же произошло, и по какой именно причине возникал BSoD. Итак, речь идет о последней модификации руткита TDSS, которая уже довольно давно активно распространяется в Интернете. Но почему происходит эта ошибка?
Ответ оказался довольно простым: руткит использует неявные вызовы WinAPI функций и ищет их по смещению в памяти, но при обновлении произошли модификации, которые изменили код, находившийся по другим адресам оперативной памяти. Это и послужило причиной критической ошибки.


По словам представителей Microsoft, проблема с данной ошибкой проявлялась исключительно на 32-х разрядных операционных системах. А в качестве аргументов приводилась информация о невозможности загрузки неподписанных драйверов в 64-х битных версиях Vista и Win7. Все это тоже объяснимо, так как руткит вносит модификации непосредственно в драйвер, цифровая подпись уже не проходит верификацию, и драйвер не может быть загружен.
По нашим данным, активность зараженных пользователей руткитом TDSS после выхода этого обновления довольно сильно просела, что заставило злоумышленников выпустить обновленную версию с исправлением этой ошибки. Злоумышленники подошли с иронией к обновлению своего детища, и в одном из конфигурационных файлов к этому зловреду нам встретилась следующая строка непристойного содержания: «F*ck damnation, man! F*ck redemption! We are God's unwanted children!» .
Возникшая ситуация продемонстрировала, что количество пользователей, зараженных данным руткитом, достаточно велико. Причем концентрация пострадавших в США, отнюдь не маленькая. Возможно, именно это повлекло быструю реакцию и расследование инцидента со стороны Microsoft.

Со стороны Microsoft данная ситуация вызвала некоторое недоумение, так как перед выпуском обновления проходят довольно жесткое тестирование. Но, как оказалось в процессе проведенного внутреннего расследования, виновником оказался руткит TDSS в последней своей реинкарнации, который инфицировал драйвер, и из-за не совместимости с внесенными в ядро модификациями проявлялась критическая ошибка. Кстати, руткит мог заражать и другие системные драйверы.
Давайте разберемся более подробно, что же произошло, и по какой именно причине возникал BSoD. Итак, речь идет о последней модификации руткита TDSS, которая уже довольно давно активно распространяется в Интернете. Но почему происходит эта ошибка?
Ответ оказался довольно простым: руткит использует неявные вызовы WinAPI функций и ищет их по смещению в памяти, но при обновлении произошли модификации, которые изменили код, находившийся по другим адресам оперативной памяти. Это и послужило причиной критической ошибки.


По словам представителей Microsoft, проблема с данной ошибкой проявлялась исключительно на 32-х разрядных операционных системах. А в качестве аргументов приводилась информация о невозможности загрузки неподписанных драйверов в 64-х битных версиях Vista и Win7. Все это тоже объяснимо, так как руткит вносит модификации непосредственно в драйвер, цифровая подпись уже не проходит верификацию, и драйвер не может быть загружен.
По нашим данным, активность зараженных пользователей руткитом TDSS после выхода этого обновления довольно сильно просела, что заставило злоумышленников выпустить обновленную версию с исправлением этой ошибки. Злоумышленники подошли с иронией к обновлению своего детища, и в одном из конфигурационных файлов к этому зловреду нам встретилась следующая строка непристойного содержания: «F*ck damnation, man! F*ck redemption! We are God's unwanted children!» .
Возникшая ситуация продемонстрировала, что количество пользователей, зараженных данным руткитом, достаточно велико. Причем концентрация пострадавших в США, отнюдь не маленькая. Возможно, именно это повлекло быструю реакцию и расследование инцидента со стороны Microsoft.
комментарии (34)
Пример такого конфига:
[main]
quote=Tomorrow will be the most beautiful day of Raymond K. Hessel's life
version=3.23
botid=eb450bf0-36a4-453d-a0af-86dea98332fc
affid=20273
subid=0
installdate=30.1.2010 14:33:12
builddate=30.1.2010 14:1:8
[injector]
*=tdlcmd.dll
[tdlcmd]
servers=https://d45648675.cn/;https://d92378523.cn/;https://91.212.226.62/
wspservers=http://b11335599.cn/;http://b00882244.cn/
popupservers=http://m3131313.cn/
version=3.64
Ваш К.О.
см. TidServ (он же TDSS, он же TDL):
Compromised U.S. computers: 1.5 million
Скоро руткиты будут заражать прошивки контроллеров на материнской плате (
это единственный выход.
в винде существует вероятность… а значит… это тот случай, где никакой риск недопустим.
Но в некоторых случаях запустить recovery console не удается. Все равно вылетает синий экран. В таких случаях можно загрузиться с помощью linux live cd и все сделать руками в консоле.
Файл remover.exe получен 2010.02.16 20:52:54 (UTC)
Текущий статус: закончено
Результат: 5/40 (12.50%)
www.virustotal.com/ru/analisis/700177464d15cbcce4a835df950e2db988288abaa97172944eb2a40cdd6b3323-1266353574
Да и мой антивирь лает на этот ремовер…
blog.alisa.sh/2010/02/20/antivirus-false-positives-with-tdss-remover/
При заражении размер драйвера не меняется. Руткит перезаписывал часть ресурсов и устанавливал точку входа на себя. Он заражает atapi.sys(там идёт перехват диспатч таблицы irp), т.е. возможность стартовать на самом раннем этапе загрузки ОС.
В болле поздних версиях диспатч-таблица не тронута, а создается fake объект драйвера со своими диспатч функциями и перезаписывает указатель в устройстве, которое обслуживает загрузочный диск, на свой драйвер. На этом возможности не заканчиваются, для сокрытия данных он перехватывает функцию для построения очереди irp пакетов, с последующим извлечением их оттуда. Диспатч функция вызывает IoStartPacket, что в свою очередь приведёт к вызову функции StartIO которая и будет перехвачена руткитом.
Если клиент пытается считывать скрываемые сектора, руткит устанавливает свою функцию завершения, в который фильтрует данные.