ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
ßàØÃÂâÕàë áÕÓÞÔÃÂï - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
98MalwareХАКЕР 04 /171/ 2013валось фатальным, в том числе в среде XP. Ведь самое главноенововведение — файл X, реализующий P2P (см. врезку) на базепротокола TCP для распространения своих модулей, а такжеbootstrap list с названием @, каталоги U и L, размещались в местах,доступных на запись с пользовательскими правами:• XP — %UserProfile%\Application Data\[8 digit hex code];• Vista/Seven — %UserProfile%\AppData\Local\[8 digit hex code].Запуск X-файла прописывался в параметре Shell ветки HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. Таким образом, функционирование ZeroAccess поддерживалосьиз-под учетной записи с ограниченными правами,пусть даже и без руткит-функций.По данным компании Sophos, активное распространениеP2P TCP-based версии началось в сентябре — ноябре 2011-го,тогда как первые сэмплы появились в конце июля. Антивирусныеаналитики отмечают, что данная версия загружала два основныхвида полезной нагрузки — click fraud и spambot, которыелегко определить по используемым портам (21810, 22292и 34354, 34355 соответственно).Bootstrap list содержал 256 значений IP-адресов, для каждогоиз которых указывалась timestamp (POSIX) последнего обращения.Все пакеты P2P-сети шифровались по алгоритму RC4статическим ключом.Поддерживались следующие типы команд:• getL — запрос на получение bootstrap list;• retL — ответ с содержимым bootstrap list;• getF — запрос на получение файла;• setF — ответ с содержимым файла;• srv? — запрос на получение списка файлов.Кстати, тип команды — это не строка, а четырехбайтовоеслово, их так легче сравнивать. Название файла модуля из восьмиHEX-символов тоже кодировалось четырьмя байтами.Для каждой ноды в текущем bootstrap list посылаласькоманда getL. Удаленный компьютер должен был ответитькомандой retL и переслать свой bootstrap list. Результирующийсписок, созданный на основе текущего и присланного,содержал ноды со временем обращения, наиболее близкимк текущему. В ответ на запрос srv? отправлялся список файлов,каждая запись в списке содержала два поля: имя файлаиз четырех байт и timestamp создания файла. При обнаружении«свежих» файлов происходило их обновление командамиgetF, setF. Каждый загружаемый модуль должен былсодержать в себе ресурс «33333», содержащий цифровуюподпись RSA с ключом 512 бит. Подпись проверялась передзапуском файла.В протоколе P2P имелись некоторые недостатки реализации.Сформировав bootstrap list из 256 IP с значениемРис. 4. Файлы в CABархиведроппераP2P UDP-basedtimestamp заведомо большим, чем текущее время, можно было«отравить» bootstrap list всех нод, что привело бы к невозможностираспространять модули по сети P2P. Если в хранилищепоместить произвольный файл (замечание — значение поляmilliseconds в структуре time_field файла должно было бытьпри этом равным нулю), он выкачивался удаленными пирами,хоть его запуск и был невозможен из-за проверки подписи. Этосоздавало нагрузку на сеть и тем самым могло привлечь вниманиек аномальному сетевому трафику на компьютере, а затеми обнаружить и удалить ZeroAccess. Эти недостатки былиисправлены в следующей реализации P2P.ПОМАШИ РУТКИТУ РУЧКОЙВ мае 2012-го кончилось время, когда в составе ZeroAccessбыл драйвер ядерного уровня. Теперь вся работа происходилав usermode. Заглянув в содержимое CAB-файла, можно обнаружить,что из него исчезли компоненты rtk32 и rtk64, зато добавилисьw32, w64, e32, e64 (см. рис. 4). Руткит-компонентов нет,соответственно, драйвер Windows в этой версии не перезаписывается,для запуска при загрузке системы может применятьсяодин из двух методов — техника COM hijacking, которая используетсистемный реестр, и модификация файла services.exe.При помощи COM hijacking запускается на выполнениефайл с именем n (n32 или n64), который отвечает за работу сетиP2P. Дроппером создаются два идентичных файла n в следующихдвух местах:Интересная фишка данной версииZeroAccess — использование техники «ловлина живца» для обламывания антивирусовТЕХНОЛОГИЯ P2P НА СЛУЖБЕ У MALWAREИспользование P2P позволяет полностью отказатьсяот концепции управляющего центрадля ботнета, управление или распространениеновых версий бота может производиться с любогозараженного компьютера. P2P (peer-topeer,одноранговая сеть) состоит из большогоколичества компьютеров, каждый из которых содержитинформацию о других таких же компьютерах,в частности IP-адрес. Список некоторогоколичества таких компьютеров (пиров, peer, нод,node) называется bootstrap list (список первоначальнойинициализации). В зависимости от того,откуда берется этот список, различают частичнодецентрализованные и полностью децентрализованныеP2P-сети.Частично децентрализованные P2P-сетипредполагают загрузку bootstrap list с заранееизвестных серверов, так работает uTorrrent.В такой системе существует слабое место —достаточно заблокировать доступ к серверам,содержащим bootstrap list. Поэтому malwareзачастую использует полностью децентрализованнуюсхему. Полностью децентрализованнаяP2P-сеть применительно к malware подразумевает,что распространение будет проходить в дваэтапа. На первом этапе распространяется ботс пустым bootstrap list или вообще без функцийP2P, он периодически обращается к командномуцентру, который фиксирует IP-адрес бота.Кроме непосредственно IP-адреса, операторовботнета интересует информация, не находитсяли бот за шлюзом (gateway) или сетевымэкраном (firewall). Если это не так, значит, ботможет выступать в роли суперпира (super peer,super node), то есть к нему могут подключатьсядругие пиры. Как только набрано необходимоеколичество суперпиров, их список заноситсяв bootstrap list, и новая версия бота с ним начинаетраспространяться злоумышленниками.После распространения все боты обмениваютсяинформацией о своих соседях и формируютсвой собственный bootstrap list. В результатеэтого возникает P2P-сеть. Она устойчива к пропаданиюопределенного количества ботов, таккак список соседей постоянно меняется. В ходеобмена боты также обмениваются информациейо своей версии. Если бот обнаруживает,что он или его модули «устарели», происходитзакачка новой версии с одного из соседей.При закачке, как правило, проверяется цифроваяподпись файла, чтобы исключить возможностьраспространения «посторонних» файлов. Такимобразом, все боты в P2P поддерживают себяв актуальном состоянии.