Backdoor.Win32.Sinowal. Гармоничное сочетание компонентов

Прогресс – интересная штука. Он есть в любой сфере жизнедеятельности человека, потому как без прогресса эта сфера просто напросто исчезла бы. Не исключение и мир киберпреступности. Это я к тому, что он не просто активно развивается, но и стремительно совершенствует инструменты, которыми пользуются его обитатели.

Последние год-два в лексике ибшников активно используется термин malware 2.0. Термин этот новый и характеризует новое поколение вредоносного программного обеспечения, которое по сравнению со своими предшественниками просто небо и земля. В чем же заключается его особенность? В том, что это слаженная и четко работающая система, которая сильно испортила жизнь антивирусным производителям и их лабораториям.

Примером подобных зараз можно назвать Bagle, Warezov и Zhelatin – как видно из списка, подобная ситуация начала формироваться уже с конца 2006 года, поэтому можно предположить, что антивирусные компании должны были подготовиться как следует, пока пламя не разгорелось. Однако факты говорят, что в большинстве случаев меры противодействия вырабатывались не в течение дня и даже не в течение 2-3 дней, что свидетельствует о невозможности адекватно противостоять подобным комплексам.

Также я приведу список основных характеристик модели malware 2.0:

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

Сегодня я хотел бы проанализировать и прокомментировать одно исследование, которое было проведено KasperskyLab в 2008 году. Из этой статьи вы сможете уяснить, насколько продуманные технологии (хотя и не новые) пришли на вооружение тем, кто делает деньги хаком. При этом поймете, насколько сложно бороться с такого рода структурированными вредоносными комплексами и, естественно, изучив внутренний мир заразы, сможете подумать о некоторых мерах противодействия. В общем, поехали…

Конец света

Все началось в августе 2008 года. В Сети на форумах, посвященных ИТ (и не только на них), стали появляться сообщения о перезагрузках, которые происходили после серфинга по Сети. Массовость сообщений наводила на определенные мысли, и аналитики попробовали разобраться в этом. Происходящее совпало с выходом очередных обновлений от Microsoft, поэтому в первую очередь подозрение пало именно на них. Как всем, думаю, известно – после окончания установки патчей по дефолту система перезагружается, и они (обновления) вступают в силу и перезагрузкой обновленных компонентов.

Однако после анализа систем был сделан вывод – обновления тут ни при чем. Тогда оставались только сайты, по которым гуляли пользователи перед перезагрузкой. Но и тут исследования тоже ничего не дали. Естественно, на ресурсах искали следы drive-by – теневой загрузки зловреда на машину и запуска при помощи уязвимости (хотя сценарий может быть разным), впрочем, я не так давно писал на эту тему в КГ, так что вы должны еще помнить.
Ресурсы оказались чистыми, казалось, что нужно выбирать новое направление поиска, однако было решено «погулять» по серверам, нажимая различные ссылки на сайтах. И через некоторое время произошел ребут системы, чего и нужно было :). Поле перезагрузки система подверглась серьезным пыткам, в ходе которых было выявлено, что изменен бут-сектор жесткого диска, что говорило о наличии буткита в системе. О буткитах трубили практически с середины года – восставшие из ада или хорошо забытое старое, называйте как хотите, однако времена дискет вернулись =).

Подмена

Что же происходило при серфинге по сайту? После того как специалисты потратили незначительное количество времени на изучение кода страницы, им все стало предельно ясно. Злоумышленники не стали добавлять никаких iframe, скриптов и тому подобного – зачем? Ведь найти сторонний скрипт на сайте просто. Они поступили по-другому – очень банально, однако сработал эффект неожиданности: на ресурсах были заменены ссылки. Обычные ссылки, которые приводят вас на страницу номер два или в раздел видео. Адреса оригинальных страниц были заменены на зловредные, скажем так. В общем виде все выглядело примерно следующим образом: нормальный url заменялся на ссылку вида http://***.com/cgi-bin/index.cgi?dx.

Такой ход был неожиданным для аналитиков, на это и рассчитывали злоумышленники, так как неожиданность продлевала срок жизни ссылкам-зловредам. Конечно, заражение не при попадании на страницу, а во время перехода по ссылке сокращало количество зараженных. Эту проблему тоже решили довольно действенно: ссылки, которые будут заменены, отбирались человеком, а значит, были самыми популярными на ресурсе. Это позволило не сильно потерять в количестве зараженных.

Жалобы о каких-то непонятных ссылках от владельцев сайтов начали появляться примерно в июне 2008 года, то есть до скачка заражения (который, напомню, наблюдался в августе) прошло больше месяца.

По индивидуальной программе

Что же происходит при нажатии на подмененную ссылку? Пользователь перенаправляется на вредоносный сервер, а последний, получив запрос с локальной машины, определял ее IP-адрес, с какого сайта пришла жертва, версию ОС и браузера (также другого стороннего ПО), а также заплатки, которые установлены на машине. Исходя из полученной информации, жертве присваивался уникальный ID и информация сохранялась на сервере. Вот пример ID, чтобы вы имели хотя бы какое-то представление:

index.cgi@ac6d4ac70100f060011e964552060000000002e4f11c2e000300190000000006

Если рассматривать данный пример, то последние цифры его указывают на то, что пользователь пользуется старым, дырявым Acrobat Reader 6.0 – это, естественно, можно использовать.

После этого, в зависимости все от той же полученной информации, сервером генерируется эксплойт, который идеально подходит именно данной жертве. Если пользователь юзает Акробат Ридер – загрузится пдф-эксплойт, если Плеер – то видео с сюрпризом будет закачано на компьютер. Также в зависимости от ID жертвы сервер генерирует ключ обфускации, которым шифруется эксплойт (рис.1).

Наиболее часто использовались такие уязвимости:

CVE-2007-5659
CVE-2006-0003
CVE-2006-5820
CVE-2007-5779
CVE-2008-1472
CVE-2007-0018
CVE-2006-4777
CVE-2006-3730
CVE-2007-5779
CVE-2008-0624
CVE-2007-2222
CVE-2006-0005
CVE-2007-0015

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

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

Кроме того, если этот же пользователь еще раз нажмет на подмененную ссылку, то срабатывания эксплойта и повторной попытки заражения не будет – пользователя сразу перенаправят на легитимную страницу. Зловредный сервер ведет базу всех посещений и повторное использование того же ID не допускается.

Я вижу мертвых!

Теперь к более массивным частям комплекса. Естественно, за прием запроса от жертвы, генерацию эксплойта, ведение базы данных с ID жертв должен тоже кто-то отвечать. И делает это панель Neosploit. Знающие люди, наверное, уставились сейчас в текст большими круглыми глазами =). А незнающим я поясню. Дело в том, что Neosploit появилась в середине 2007 года и сразу же стала серьезным конкурентом таких известных наборов эксплойтов, как MPack и IcePack. Стоимость панели на черном рынке была около $1000-3000 и старания ее производителей полностью оправдывали эту стоимость. Но в июле 2008 года в Сети появилось следующее сообщение:

“Unfortunately, supporting our product is no longer possible. We apologize for any inconvenience, but business is business since the amount of time spent on this project does not justify itself. We tried hard to satisfy our clients’ needs during the last few months, but the support had to end at some point. We were 1.5 years with you and hope that this was a good time for your business.” (К сожалению, дальнейшая поддержка нашего продукта не представляется возможной. Приносим свои извинения за доставленные неудобства, но бизнес есть бизнес – затраты времени на данный проект перестали себя оправдывать. На протяжении последних нескольких месяцев мы прилагали большие усилия, чтобы удовлетворить нужды наших клиентов, но сейчас наступил момент, когда поддержка должна закончиться. Мы были с вами 1,5 года и надеемся, что ваш бизнес в это время процветал.)

Проще говоря, хакгруппа, занимающаяся поддержкой, ушла в тень. Что мы можем вынести из сказанного? А то, что привидения существуют. И при этом еще и развиваются, т.к. версия Neosploit, которую обнаружили на серверах аналитики, была 2.0.23 и это притом, что ее поддержка свернулась на версии 2.0.17. Вот такая вот мистика, друзья.

Интерфейс панели прост, однако очень функционален. Neosploit представляет собой исполняемый файл, написанный на C++ и скомпилированный под работу на Linux и FreeBSD (рис. 2, 3). Поскольку продукт коммерческий, то и работа его контролируется. Таким образом, каждая копия Neosploit при обработке очередной жертвы обращалась к определенному серверу, на котором, видимо, снималась галочка в пункте «осталось подключений» - так отцы- основатели контролировали свое детище и свои денежки, конечно. Если же сервер был недоступен, то обработка запроса жертвы не происходила и эксплойт не генерировался.

Буткит

Вернемся к заражению системы. Попадая на машину, дроппер запускается, как уже говорилось, при помощи уязвимого приложения и извлекает из себя установщик буткита, после чего передает ему ID жертвы. Установщик делает запись в бут-секторе диска и размещает тело на винчестере. Чтобы вы были в курсе, вот вам еще и пример записи в буте, а на рисунке 4 можно увидеть пример зараженного бута:

CreateFileA("\\.\RealHardDisk0", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0x0, 0x0)
После успешного завершения всех этапов установки, буткит дает команду на ребут, и машина перезагружается. Вот вам и объяснение всех этих перезагрузок, которые так волновали людей. При старте машины он перехватывает некоторые системные функции и полноценно начинает работать: скрывает свое присутствие и функционирует в составе сети ботов.

C&C

Центр управления ботнетом (command and control center, C&C) – вот самое сердце сети зомби, от которого и исходит пульсация в сторону очередной жертвы. Однако тут нас ждет еще одна диковинка. Дело в том, что C&C не находился на одном сервере, а мигрировал. Да-да, прям как рыба (:. Он менял IP (это не новость) и домены (!), при этом, бывало, по два-три раза на день. Вот это интересное решение, и при этом очень эффективное. Правда, при каждом переезде зараженный компьютер наново искал центр.

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

Несомненно, данная методика предназначена для борьбы как с конкурентами, которые могут попытаться «угнать» ботнет, так и с антивирусными компаниями и правоохранительными органами.

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

В качестве хостинговых площадок центров управления используются самые различные ресурсы, размещенные по всему миру. C&C ботнета способен перебраться на новую площадку в течение нескольких минут, что позволяет ему избежать закрытия, сохранив при этом свою работоспособность.

Похожая методика использовалась в черве Zhelatin, однако там менялись только IP-адреса, а не домены - в нашей ситуации и то, и другое.

В момент заражения на компьютер-жертву загружается буткит, ориентированный на работу с командным центром, активным на данный момент, после ребута он попробует подключиться все к тому же командному центру, отправив специальный пакет (рис.5). Если сервер не отвечает, то буткит начинает рассылать пакеты к доменам в зонах .com, .net, .biz, высчитывая имена по специальному алгоритму (рис.6).

Когда C&C наконец будет найден, на компьютер загрузится DLL-библиотека и начнется еще одна неприятность…

Сюрприз

Так что же за DLL загружается на компьютер? Все дело в том, что использовать зараженную машину исключительно для DOS крайне неэффективно, поэтому и загружается эта DLL библиотека =).

На диске она не хранится, а сразу записывается в память и работает там. Это помогает исключить обнаружение антивирусными системами. Естественно, что при перезагрузке DLL удаляется безвозвратно, однако при подключении к Интернету она снова тут как тут – 200 Кб загрузить при теперешнем развитии коммуникаций – ерунда.

Теперь давайте обратимся к названию статьи - Backdoor.Win32.Sinowal. Именно так называется буткит, о котором я сейчас так много говорю. Однако причем тут Sinowal? Sinowal – семейство Trojan-Spy.Win32 и каким боком оно расположено к буткиту нашему? Так я тут много наводящих вопросов и фраз дал, теперь скажу прямо: DLL и есть шпион из этого семейства, при этом универсальный, потому как при начале работы он сразу же ищет все пароли в системе, которые вообще может найти. Дизассемблированный код DLL-библиотеки вы можете пронаблюдать на рисунке номер 7, а вот ниже я приведу список софта, уязвимого перед действиями Sinowal:

Total Commander
Thunderbird
FlashFXP
SecureFX
Windows
The Bat
Trellian FTP
LeechFTP Commander
Internet Explorer
Crystal FTP
e-Safekey
AK-Mail
Mozilla FireFox
Flash Player
Inetcomm
LeechFTP
FAR Manager
PuTTY
Outlook
FTPS
FTP Voyager
WinSCP
MSO
FireFtp
CuteFTP
SecureCRT

Вот такой вот немаленький списочек. Мне, как любителю браузера Опера, отрадно, что его в нем нет :).

Конечно, наибольшую ценность для «хозяина(хозяев)» представляют пароли и логины к системам инет-банкинга, однако пароли к PuTTY тоже сгодятся…
Используя буткит как платформу, имеющую полный доступ к ресурсам операционной системы, шпионский модуль способен устраивать атаки типа «человек посередине», перехватывая, например, конфиденциальную информацию из браузера.

Модуль способен выполнять практически все функции шпионских программ – от банального перехвата данных с клавиатуры до подмены защищенных SSL- соединений. При обращениях к сайтам по HTTPS шпион может открывать в браузере дополнительные окна для авторизации, и пользователь может по ошибке ввести свои данные туда, думая, что работает с сайтом банка.

Для наглядности

Рассматривая общую схему атаки (рис.8), необходимо иметь в виду, что все компоненты сети буткита находятся в постоянном движении. Контролируя доменные серверы (name servers), злоумышленники могут быстро и легко физически менять площадки расположения эксплойтов, административной панели С&C, места загрузки модулей и сбора конфиденциальной информации. Фактически это придает системе огромную устойчивость, так как перенастройка компонентов сети может осуществляться без дополнительной настройки самого буткита и его модулей.

Exit

Вот такое вот интереснейшее исследование, которое показывает сложность ситуации и технологий, которые используются злоумышленниками в наше время. Этот буткит – не единственный, в пример можно привести также и руткит Rustock, о котором я тоже планирую написать.

Можно было бы вставить подзаголовок типа «Как защититься» или «Методы защиты», но это не откроет вам ничего нового. Все как всегда: ставьте хорошие антивирусные системы, с мощными компонентами локального контроля, обновляйте базы вирусных сигнатур и будьте в курсе событий безопасности, чтобы в нужный момент знать, что же это за такой адрес вот на этой ссылке =).

Евгений Кучук SASecurity gr. http://sa-sec.org


Компьютерная газета. Статья была опубликована в номере 18 за 2009 год в рубрике безопасность

©1997-2024 Компьютерная газета