Патч руткиту не товарищ!

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

    image

    Со стороны Microsoft данная ситуация вызвала некоторое недоумение, так как перед выпуском обновления проходят довольно жесткое тестирование. Но, как оказалось в процессе проведенного внутреннего расследования, виновником оказался руткит TDSS в последней своей реинкарнации, который инфицировал драйвер, и из-за не совместимости с внесенными в ядро модификациями проявлялась критическая ошибка. Кстати, руткит мог заражать и другие системные драйверы.

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

    image

    image

    По словам представителей Microsoft, проблема с данной ошибкой проявлялась исключительно на 32-х разрядных операционных системах. А в качестве аргументов приводилась информация о невозможности загрузки неподписанных драйверов в 64-х битных версиях Vista и Win7. Все это тоже объяснимо, так как руткит вносит модификации непосредственно в драйвер, цифровая подпись уже не проходит верификацию, и драйвер не может быть загружен.

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

    Возникшая ситуация продемонстрировала, что количество пользователей, зараженных данным руткитом, достаточно велико. Причем концентрация пострадавших в США, отнюдь не маленькая. Возможно, именно это повлекло быструю реакцию и расследование инцидента со стороны Microsoft.
    ESET NOD32
    84.36
    Company
    Share post

    Comments 34

      +26
      Дизассемблируя системные файлы, вы нарушили Лицензионное Соглашение (;
        +2
        Какое лицензионное соглашение? Вы правда в курсе подробностей соглашений ESET и Microsoft? ;) Или вы думаете что раз Windows одинаковая — то и соглашение у всех точно такое же как в коробочных версиях?
        • UFO just landed and posted this here
            +5
            Наше законодательство разрешает такое дело.
              +1
              Читайте ГК. У него статус повыше, чем у соглашения.
              +11
              По поводу цитат, которые руткит пишет в отладочный вывод при загрузке — «F*ck damnation, man! F*ck redemption! We are God's unwanted children!» встречалась и в более старых билдах зловреда. Всего их порядка десятка, причём одна половина эитх цитат из The Simpsons, другая — из Fight Club'a (хотя была ещё одна из Страха и ненависти в Лас-Вегасе). Сама цитата, по всей видимости, прописывается в билд при его сборке, и хранится в файле config.ini, который находится на скрытом и зашифрованном вирутальном диске руткита со своей фс.
              Пример такого конфига:
              [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

              Ваш К.О.
                0
                Бойцовский клуб! Точно! :) вы меня избавили от мерзкого ощущения «откуда же это», спасибо
                +3
                «достаточно велико» и «отнюдь не маленькая» это сколько в цифрах?
                +2
                > руткит мог заражать и другие системные драйверы

                Скоро руткиты будут заражать прошивки контроллеров на материнской плате (
                  +2
                  уже умеют писаться в bios flash
                    +7
                    Подрастут — перестанут.
                      +1
                      во флеш можно писать только голову а хвост подтягивать с инета.
                        +1
                        Во флеше свободного места нынче по пол мегабайта ) Что хочешь влезет )
                      0
                      CIH умел
                      +1
                      скоро руткиты будут заражать прошивки на наших мозгах (
                        +3
                        Иногда, особенно на хабре, кажется, что кое у кого это уже произошло :-|
                          0
                          Основная причина нежелания устанавливать себе микрочип.
                            0
                            потому надо будет ставить туда линукс.
                            это единственный выход.
                            в винде существует вероятность… а значит… это тот случай, где никакой риск недопустим.
                        0
                        На PAGE_FAULT_IN_NON_PAGED_AREA сегодня насмотрелся в течение дня. Драйвер выходит туго.
                          +2
                          Наредкость качественный «скриншот» BSoD'а =)
                            +6
                            из виртуалбокса — легко!
                              –5
                              виртуальная машина? ;)
                              0
                              а как вылечить-то это? Есет, вроде, ничего не нашёл, когда я поймал этот бсод два дня назад
                                0
                                Вот ссылка на решение. Там надо удалить один из патчей, а именно: KB977165.

                                Но в некоторых случаях запустить recovery console не удается. Все равно вылетает синий экран. В таких случаях можно загрузиться с помощью linux live cd и все сделать руками в консоле.
                                  +1
                                  Если я правильно понял всё, что там написано, это хрень какая-то, а не решение. Вопрос в том, как убить руткит этот? Ведь не майкрософт же его в патчах рассылает. Удаление патча уберёт только последствия, но не причину. Так вот как избавиться от причины всего этого добра?
                              +4
                              Расскажу вам чуток поподробнее.
                              При заражении размер драйвера не меняется. Руткит перезаписывал часть ресурсов и устанавливал точку входа на себя. Он заражает atapi.sys(там идёт перехват диспатч таблицы irp), т.е. возможность стартовать на самом раннем этапе загрузки ОС.
                              В болле поздних версиях диспатч-таблица не тронута, а создается fake объект драйвера со своими диспатч функциями и перезаписывает указатель в устройстве, которое обслуживает загрузочный диск, на свой драйвер. На этом возможности не заканчиваются, для сокрытия данных он перехватывает функцию для построения очереди irp пакетов, с последующим извлечением их оттуда. Диспатч функция вызывает IoStartPacket, что в свою очередь приведёт к вызову функции StartIO которая и будет перехвачена руткитом.
                              Если клиент пытается считывать скрываемые сектора, руткит устанавливает свою функцию завершения, в который фильтрует данные.
                                –1
                                Может быть я в танке, но я так и не понял, причём тут Eset? И самое главное, как вылечится?

                              Only users with full accounts can post comments. Log in, please.