Страница:
Автор: Андрей Васильков
Нелегкой оказалась судьба троянцев, понадеявшихся на единственное средство защиты - неприступные стены. В течение десяти лет греческие войска под предводительством Агамемнона и Менелая осаждали Трою. Все попытки штурмовать оказались тщетными, и тогда Одиссей предложил проникнуть в город хитростью…
Согласно преданию, греки изготовили большую деревянную статую коня, внутрь которой забрался отряд самых лучших бойцов. Далее греческое войско имитировало отступление. А единственный из оставшихся данайцев, родственник коварного Одиссея Синон, сдался в плен, возвестив о «даре в знак уважения» геройскому сопротивлению троянцев, и проследовал вместе с огромной статуей в город, где уже начиналась подготовка к празднику… Ночью Синон выпустил из деревянного коня «спецназовцев», которые перебили стражу и открыли ворота, впустив основные силы греков. Город был мгновенно разграблен и сожжен вместе со всеми оборонявшимися троянцами [Лишь небольшой группе жителей во главе с Энеем удалось сбежать в Италию], излишне понадеявшимися на мощь крепостных стен и покровительство Аполлона. Греческий (позже его стали называть троянским) конь навеки стал символом скрытого вторжения, которому помогают сами жертвы.
Смотрим зубы
Удивительно, что за прошедшие с тех пор века люди так ничему и не научились. Истории с «подарками», использовавшимися против своих владельцев, повторялись вновь и вновь. Взять хотя бы деревянного орла (выполненного в виде герба США), подаренного американскому послу в 1946 году. Этот презент провисел в его рабочем кабинете шесть лет, и лишь случайно выяснилось, что внутри резного дара спрятан жучок, а КГБ слышит все, что говорится в комнате.
Сегодня аналогичным способом злоумышленники получают контроль над компьютерами своих жертв. Под видом утилиты или любопытного медиафайла пользователь получает трояна, которого сам же (не ведая того) и устанавливает на свой компьютер.
В последние годы пишется все больше троянских коней и отдельных специализированных троянских компонентов. Пик их роста пришелся на второй-третий квартал 2004 года. Тогда было зарегистрировано аномальное (пятикратное) увеличение числа троянов. Сейчас темп снизился, но продолжает оставаться впечатляющим.
В качестве примера неожиданных проблем, поджидающих пользователя инфицированного ПК, можно привести заражение системы старыми вирусами Ment 1258 и 13172. Они занимались тем, что постоянно названивали через модем на телефонный номер «02». Через какое-то время дежурному надоедало слышать в трубке модемное шипение, и он отправлял наряд милиции на предмет установления личности шалуна и его вразумления. Это сейчас про вирусы и трояны говорят на каждом шагу. Тогда же не каждое отделение милиции имело компьютеры…
По меткому замечанию одного из членов группы сDс [Cult of Dead Cow - авторы самого известного трояна/бэкдора BackOrifice (и его последующей модификации Back Orifice 2000)], «Back Orifice дает атакующему больше возможностей, чем если бы он непосредственно сидел за компьютером жертвы». Учитывая ничем не ограниченную функциональность BO (он поддерживает плагины), это заявление скорее истина, нежели бравада.
Выбираем породу
Классификация троянских коней - дело неблагодарное. Особенно в свете наметившихся тенденций к слиянию, гибридизации различных методик ведения информационных войн и конкурентной борьбы. Трояны, бэкдоры, сетевые черви, почтовые спам-роботы и сборщики данных запросто могут быть слиты воедино, породив жутких кибермонстров - была бы цель и конкретная жертва. И все же рабочая классификация необходима. Попробуем создать ее прямо сейчас, исходя из известных данных и здравого смысла.
По способу существования выделяют троянов, представляющих собой самостоятельные файлы, и тех, которые внедряют свои тела (инфицируют) в уже имеющиеся, чаще всего системные файлы. Первые не подлежат лечению, так как лечить нечего - надо удалять файл целиком.
В зависимости от целей вторжения различают:
1. Бэкдоры (утилиты скрытого удаленного администрирования, remote access tool - RAT).
2. Деструктивные (Trojan Flash-Killer и т. п.).
3. Похищающие приватную информацию (data miners/data collectors). Здесь можно выделить подклассы троянов, которые:
крадут всевозможные пароли (PWD Steal);
отсылают своему хозяину данные банковских счетов жертвы (аккаунтов Web Money, кредитных карт и т. п.) [Юрий Машевский называет их «banker» в своей статье «Перелом в развитии вредоносных программ»];
похищают документы (особенно актуально для ЛВС предприятий);
протоколируют и отсылают лог всех клавиатурных нажатий и (опционально) скриншоты с атакуемого ПК (keyloggers).
4. Созданные для формирования сетей «зомбированных компьютеров» и использования их для проведения распределенных атак по типу «отказ в обслуживании» (DDoS).
5. Написанные для сбора адресов e-mail и рассылки спама (SPAM). Они частично пересекаются с представителями третьего класса, так как почтовые адреса ваших знакомых тоже являются приватной информацией.
6. Вымогающие деньги у жертвы посредством зашифровывания данных на диске пользователя и последующего «предложения» расшифровать их за плату (Crypto trojans and viruses - отдельное направление, получившее мощный толчок к развитию после распространения ассиметричной криптографии [Если вирусописатель использует обычный симметричный алгоритм, то написать дешифратор разработчикам антивирусов будет довольно просто: пароль (ключ) будет либо одинаковый на всех файлах, либо предсказуемо модифицирующийся. А вот ассиметричные алгоритмы с открытым и секретным ключом (RSA, Эль-Гамаля, Мак-Элиса, PGP) поднимают крипто-вирусологию на качественно иной уровень]).
7. Прокси-трояны, позволяющие действовать атакующему от имени жертвы (точнее, от IP-адреса его компьютера). Здесь же можно выделить подкласс так называемых Trojan-Clicker’ов. Они целенаправленно занимаются тем, что накручивают счетчики посещаемости различных сайтов и имитируют клики на баннеры (тоже с IP-адреса инфицированного ПК). То есть приносят атакующему очевидную выгоду.
8. Отдельные троянские компоненты, сами по себе ни на что не способные, но в сочетании с другим (уязвимым легитимным или дополнительным зловредным) ПО способные действовать по любому из рассмотренных выше сценариев. В случае использования таких троянов для доставки «боевой нагрузки» (скажем, вируса) они именуются «Droppers».
Руткиты (RootKITs) иногда также пытаются представить как отдельный класс троянов. На мой взгляд, такой подход некорректен. За подробной информацией о руткитах отсылаю к своей недавней статье «Корень зол» [offline.computerra.ru/2006/647/279486].
По способу установки в систему можно выделить еще два типа троянов:
1. Те, которым для инфицирования ОС требуются активные действия пользователя (user-interacted, они составляют основную массу).
2. Использующие уязвимость легитимного ПО (user-independed), например MS Outlook или Internet Explorer… это приближает их к exploit-червям.
Если рассматривать механизм активации троянских коней (это справедливо для принципов программирования вообще), выделяют три способа: [Он хоть и не является трояном, но наглядно показывает простейший механизм «подставы» хозяина инфицированного компьютера]
1. Срабатывание по времени (таймеру). Например, Trojan.TimeBomb эпохи MS-DOS, уничтожающий все данные на жестком диске в определенный день. Подобные штуковины являются излюбленным орудием мести уволенных админов.
2. Срабатывание по событию (запуск приложения, установка сетевого соединения и т. п.). Может использоваться для противодействия антивирусным программам (препятствовать их загрузке и нормальной работе).
3. Срабатывание по запросу (например, команде, отправленной по сети) - это уже шаг навстречу удаленному администрированию.
Говоря об уровне инфицирования системы, различают троянцев уровня приложений (большая часть) и уровня ядра ОС (сравнительно молодая и набирающая силы когорта).
При анализе путей распространения выделяют:
IM (Instant Messaging) троянов, инфицирующих ПК пользователей сетей мгновенного обмена сообщениями (MSN, AIM, ICQ, IRC etc).
Mail (почтовых) троянских коней - этот табун до сих пор является самым многочисленным и скандально известным.
FTP-троянцы сравнительно редки. Первый из них - троянец-червь Homer - был написан в апреле 1997 года.
Web-трояны поджидают неосторожных пользователей на сайтах сомнительного содержания (или даже взломанных порталах солидных организаций). Часть из них просто предлагает загрузить инфицированный контент (доустановить модуль, скачать вьюер и т. п.). Другие действуют скрыто через уязвимости браузера и ActiveX-компоненты.
С чего все началось?
Наверняка история создания знаменитого Back Orifice была бы неполной без упоминания ее создателей - известнейшей хакерской группы Cult of the Dead Cow(cDc). Основанная в середине 80-х, команда прошла огонь, воду и медные трубы и до сих пор здравствует и процветает.
1 августа 1998 г. на конференции Defcon один из членов группы Sir Dystic представил Back Orifice широкой публике. Как заявил автор, его детище лишь подтверждает, насколько может быть уязвима MS Windows.
Back Orifice работал (и работает) по принципу клиент/сервер и позволяет удаленно администрировать ПК, на котором предварительно установлена серверная часть. Графический, интуитивно понятный интерфейс программы и ее внушительные возможности произвели настоящий фурор, после чего в известных кругах установка BO на чужой ПК превратилась во что-то вроде увлекательного соревнования.
С выходом в свет версии Back Orifice 2000, которая помимо Win95 и Win98 поддерживала Windows NT и имела открытый код, популярность «народного любимца» достигла апогея.
Распространяется BO как пакет, включающий в себя серверную часть (BOSERVE.EXE или bo2k.exe, возможны варианты), клиентскую часть (bo2kgui.exe) и файл конфигурации сервера (bo2kcfg.exe). В дополнение к трем перечисленным компонентам пакет может содержать плагины и документацию. Несмотря на заблуждение, что «настоящие хакеры пишут только на assembler-е», все три компоненты написаны на языке С++, имеют формат Portable Executable и могут выполнятся только в среде Windows.
При запуске серверной части происходит инициализация сокетов Windows (если очень упрощенно, сокет представляет собой серверный софт, работающий с каким-либо портом). Другими словами, сервер BO настраивает под себя нужные порты, в результате чего открытыми оказываются порт 31337 (кстати, цифра 31337 известна не только благодаря тому, что этот порт является дефолтовым портом BO. 31337 в околохацкерских кругах означает ни много ни мало - «элита», тройка напоминает E, единица - прописную L, а семерка - T «без палочки», то есть «eleet» [эли:т]), который затем используется для управления зараженным компьютером. ОБ
Разводим потомство?
Если считать «брутто», учитывая как любой зловредный код с частичными признаками троянцев, так и все модификации, то на сегодня их число приблизится к 70 тысячам. И это не предел, в кузницах хакерских групп вроде cDc наверняка готовятся очередные «завоеватели мира». Меж тем известность получилают единицы. И ввиду ограниченности журнальной площади я привел лишь несколько примеров в качестве пояснения. Заинтересовавшихся же отсылаю на страницу www.viruslist.com, где описано множество самых разных и причудливых троянских коней.
Но при всем разнообразии их способов проникновения, есть ряд общих мер по предотвращению заражения, инструментов для лечения и рекомендаций по ручному удалению (доочистке) инфицированного компьютера. Об этом читайте в следующей статье.
Отгульный скот
Beast (англ. зверь, скот, грубиян) - троянский конь с функцией удаленного администрирования, работающий под всеми ОС семейства Windows и предоставляющий полный контроль над ними. Был написан в 2002 году вирмэйкером Tataye и стал одним из первых бэкдоров, использовавших механизм обратного соединения в классической системе клиент-сервер. В ней клиентом является собственно управляющая часть, а сервером - инфицирующий компонент. Его уникальность, в частности, в том, что атакующему не требовалось выяснять IP своей жертвы. Серверная часть сама устанавливала связь с определенным DNS, который сообщал трояну текущий IP-адрес клиентской «панели управления». Идеальное средство для управления ПК, использующего дайлап-соединение (и, соответственно, меняющего IP как перчатки).
Отдельно следует упомянуть о Win32.Peerat. В отличие от классических троянцев-загрузчиков, он не просто скачивает вредоносную программу из Интернета, но и пытается выложить ее в файлообменную сеть, если к таковой подключена инфицированная машина.
ТЕМА НОМЕРА: Осадное положение
Авторы: Андрей Васильков, Бойцев, Олег
Если бы участие человека в войнах можно было бы исключить, идеалы хиппи были бы воплощены в жизнь еще много столетий назад. Однако, несмотря на все ухищрения технического прогресса, победу в войне за свою независимость может одержать только сам человек. Разумеется, не без технических средств.
Одержимому паранойей/здравым смыслом пользователю компьютера давно предлагается масса всякого антивирусного вооружения - от тяжелого, сравнимого по размеру с операционной системой, до микроскопического, предназначенного для прицельного отстрела «вторженцев». Имеющееся на военных складах антивирусное ПО можно условно разбить на три класса:
1. Антивирусные (AV) сканеры в последние годы существенно расширили спектр действия, включив в него и троянов. Они являются хорошим подспорьем к основным инструментам борьбы с троянскими конями. С помощью антивирусов можно выявлять эти зловредные программы по совпадению проверяемых файлов с сигнатурами AV-баз. Прошу обратить внимание: большинство троянов, существующих в виде отдельных файлов, не определяются средствами эвристики, так как их действия не отличаются от таковых у легитимных программ: чтения с диска и записи на него, обращения к реестру, передачи данных по сети… такое поведение типично для любого софта и ни в коей мере не является специфичным для троянов. Поэтому если в базе антивируса нет подходящей сигнатуры, он будет рапортовать о чистоте системы, даже наткнувшись на авгиевы конюшни.
2. У антивирусных мониторов, осуществляющих постоянную проверку исполняемого в данный момент кода, шансов отловить троян и того меньше. Они не могут (да и не должны) вести проверку столь же тщательно, как AV-сканеры. Кроме того, антивирусный монитор (если он запускается как приложение, а не служба) трояну легко обмануть, попросту скрыв свое присутствие.
3. Специализированное ПО для поиска троянов действует схожим с AV-сканерами образом; однако оно также проверяет записи реестра (в первую очередь - все секции автозапуска), файлы настроек (boot.ini, win.ini etc.) и может быть способно определить открытые/прослушиваемые порты, что резко повышает эффективность проверки.
Мудрый пользователь имеет в своем арсенале все три вида, но вот запускать их одновременно не стоит ни в коем случае (см. врезку «много хорошо - тоже плохо»).
Автоматическое оружие
Полное удаление найденных троянов с помощью любой из этих утилит не всегда возможно. Логика работы WinXP такова, что не допускает удаления файлов, если к ним обращается какой-то активный процесс. А завершить процесс трояна (особенно уровня ядра ОС) в автоматическом режиме не всегда просто… да и опасно в плане сохранности данных.
Здесь-то и выходят на сцену узкие специалисты, специально обученные удалять наиболее глубоко засевших коней разными (в том числе недокументированными) способами. В первую очередь, это утилита с богатейшей функциональностью производства компании Ewido; она отлавливает не только троянов, но и другое неприятное ПО вроде ad-ware и т. п. Бесплатную тридцатидневную версию можно найти по адресу www.ewido.net/en/product. Есть еще парочка неплохих утилит Trojan Hunter/Spy Hunter, лежащих на www.misec.net/trojanhunte.
Очень мощная утилита компании EMSI - a-squared. Бесплатная версияпросканирует и укажет на наличие вредоносного ПО. К сожалению, полная функциональность - только за деньги.
Кроме того, можно посоветовать российскую разработку agnitum Tauscan. Утилита создана специально для борьбы с троянами. Несмотря на ориентацию на неопытных пользователей, разработчики не забывают и о функциональности, база достаточно обширна и содержит около четырех тысяч записей.
Заглянув на www.izcity.com/soft/security/spy, присмотритесь к Trend Micro CWShredder. Это утилита для нахождения и удаления шпионских программ, позволяющая обнаружить следы присутствия на персональном компьютере так называемых Cool Web Search, тоже относящихся к троянам. А по адресу soft.oszone.net/subcat/1/можно найти массу бесплатных антивирусных программ.
Ну и напоследок, одна из самых известных утилит - Trojan Remover. Ее база на данный момент насчитывает больше десяти тысяч сигнатур.
РОДЕО В домашних услових
Бывает, вы обнаружили активного трояна, а удалить его целиком не смогли. Что делать? В эпоху FAT32 и однодисковых конфигураций ответ был очевиден: загрузиться из-под DOS и удалить оставшиеся фрагменты тела вредителя (или его целиком) вручную.
Появление NTFS- и RAID-массивов заметно усложнило ситуацию. Дело в том, что NTFS является закрытой файловой системой. Ни одна сторонняя ОС и драйверы других разработчиков не поддерживают ее полностью. Если с чтением они еще худо-бедно справляются, то попытка записать/удалить что-либо на NTFS-разделе с их помощью подобна игре в русскую рулетку.
Лучше других для целей ручного удаления подходит версия WinXP PE. Однако и она пасует перед RAID уровня 0. Возможность догрузить дополнительные драйверы (например, nVidia nvRAID) при загрузке по {F6} реально не работала ни на одном из попавшихся мне дистрибутивов WinXP PE. Поэтому, если у вас задействован RAID-контроллер или другие устройства, поддержка которых не включена [Отгульный скот] по умолчанию в Windows, - соберите собственный дистрибутив WinXP PE, дополнив его всем необходимым. Уверен, он поможет вам не единожды. Начните со скачивания приличного PE-билдера.
Более безопасный (но и менее гарантированный) способ ручного удаления заключается в запуске различных «кулхацких» утилит непосредственно из-под инфицированной системы. Для минимализации риска их заражения/дезактивации можно осуществить запуск через защищенный режим AVZ [Об этом уникальном творении Олега Зайцева читайте в ближайших выпусках «Компьютерры»].
Среди таких программ отмечу три творения от компании DiamondCS:
1. Advanced Process Termination (APT). Уникальность этой бесплатной софтинки в том, что она предлагает на выбор дюжину пользовательских и два «ядерных» метода завершения активного процесса (читай - выгрузки активного трояна). Полагаю, лучше не реализовано нигде.
2. Advanced Process Manipulation (APM) родилась на свет в результате исследования троянских программ и поиска путей борьбы с ними. Она тоже бесплатна (даже для коммерческого использования). В отличие от обычных вьюеров активных процессов (заменителей Task Manager’а), APM не отсылает запросы другим процессам, а становится их частью. Фактически это означает полный контроль над процессом, так как сам себе любой процесс обычно готов разрешить любые действия.
3. DelLater позволяет указать пользователю файл, который необходимо удалить при следующем запуске ОС. Она берет на вооружение официальный метод, описанный Microsoft в Platform SDK, - Microsoft Developer Network, а значит, максимально безопасна.
Все эти симпатичные софтинки являются отличным орудием в деле удаления строптивых троянских коней.
Ручные гранаты
Но новые угрозы появляются постоянно, а старые трансформируются и делают прежние средства борьбы неэффективными. Никакие сколь угодно «продвинутые» утилиты не отменяют необходимость знать устройство используемой операционной системы и уметь очищать ее от вредоносного (в том числе троянского) кода вручную. Те, кто надеется исключительно на автоматическую, «прозрачную для пользователя» защиту, ничего не смыслят ни в защите, ни в автоматике. Рано или поздно таких людей постигнет участь жителей Трои… хорошо хоть, что только в переносном смысле.
Чаще всего в различных руководствах по борьбе с вирусами советуют начинать проверку с открытых на компьютере портов. В нормальном режиме, при установленном и адекватно настроенном Zone Alarm’е (или любом другом приличном брандмауэре) все неиспользуемые порты закрыты. Поэтому попытка отправить запрос на один из «нестандартных» портов ни к чему не приведет: компьютер прикинется калькулятором и запрос проигнорирует.
А вот если чудо-софт обнаружил что-то подозрительное, тут надо глядеть во все порты! Утилита AVZ (www.z-oleg.com/secur/avz) их отлично показывает. И она - мощнейшее оружие супротив троянов и прочих супостатов. Положительный результат (наличие непрошенных соединений) будет свидетельствовать о том, что вы на правильном пути. А вот отрицательный результат вовсе не означает отсутствия заразы в вашем ПК. Кстати, чем именно смотреть - не столь важно. Я пользуюсь AVZ, админы традиционно предпочитают X-Spider
[www.ptsecurity.ru], можно просто набрать команду netstat -an, но в этом случае велик риск получить недостоверную инфрмацию, так как некоторые трояны готовы к этому. В любом случае, самый надежный способ проверки - извне.
Если подозрительная активность обнаружена, то прежде чем готовиться к длительному отражению осады злейших кибермонстров, неплохо бы поискать примитивных троянов [А также adware/spyware, hi-jack (подменяющих адрес стартовой страницы) и прочих наград за распутный веб-серфинг] и их следы в типичных местах для размещения «подарков».
Прежде всего обратите взор на активные процессы. Можно воспользоваться и стандартным TaskManager’ом, но лучше попробовать Advanced Process Viewer. Необходимо завершить все посторонние процессы, принадлежащие зловредному коду. Во избежание недоразумений полезно «своих знать в лицо». И в здравом уме не стоит трогать хотя бы следующие процессы: Explorer, Lsass, Services, System, Winlogon, Svchost, Csrss, Smss. Естественно, список далеко не полный и несколько отличается у разных пользователей, но эти - самые главные. Особое внимание следует обратить на так называемые процессы-маскировщики, они обычно имитируют истинные названия по написанию: explore (должно быть explorer), sys (system), svshost (svchost), winlogin (winlogon), systrey (systray) и т. д., их надо удалить в первую очередь.
После того как разобрались с оперативной памятью, запускаем regedit (или любой другой, более удобный редактор реестра) и открываем ветви:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;
HKCU\Software\Microsoft\Windows\CurrentVersion\Run;
HKU\.Default\Software\Microsoft\Windows\CurrentVersion\Run;
HKLM\Software\Microsoft\Windows\CurrentVersion\Runonce;
HKCU\Software\Microsoft\Windows\CurrentVersion\Runonce;
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices;
При обнаружении ключа автозапуска, принадлежащего вредоносному коду - тут же удалите его. Если не уверены во вредоносности, просто поставьте в начале строки запуска несколько символов "+", это помешает запустить программу при следующей загрузке.
Ну а утилита autorunsот Марка Руссиновича и Брюса Когсвелла покажет вам не только общеизвестные секции автозапуска в реестре, но и вообще ВСЁ, что запускается самостоятельно при каждой загрузке операционной системы. В том числе и как ее часть. Это сотни строк, будьте морально готовы. Искать по ним подозрительные вещи глазками - довольно нудное занятие, поэтому рекомендую сразу после установки «чистой» ОС экспортировать из autoruns список автозапуска в текстовый файл, а затем каждый раз при проверке создавать новый и просто сравнивать его с эталонным (например, опцией «сравнить файлы» в Total Commander).
Так что при наличии внимания, здравого смысла и хорошего инструмента вы легко завалите относительно крупных и заметных коней. Но среди них попадаются и очень подлые экземпляры, которые вычищать придется долгие часы, зовя на помощь знания о внутреннем устройстве системы. Но в этом случае, возможно, проще дождаться обновления антивирусных баз…
Много хорошо - тоже плохо
Многие по старинке считают, что чем больше, тем лучше. Это касается и пользователей, которые, увидев очередную защитную программу, спешат ее установить. В результате либо ни одна из них на самом деле не работает, либо компьютер «встает на ручник». С недавних пор появился и еще один вариант: ОС не загружается вообще.
Поэтому большинство инсталляторов AV-пакетов первым делом проверяют: а не стоит ли уже другой антивирус? И если таковой находят, то требуют (безапелляционно!) сначала деинсталлировать его. Антивирусы стали «стукаться лбами» не только друг с другом, но и с другими защитными программами (файрволлами, антишпионами, антитроянами, etc.). Их использование стало несовместимо практически с любыми программами, работающими на уровне ядра: отладчик SoftIce, почти все эмуляторы и в некоторых случаях даже антипиратская система проверки оптических носителей компании StarForce.
Вирмэйкеры не стесняются писать свой код так, что он вмешивается в работу ОС на самом глубоком уровне. Разработчикам защитных программ приходится использовать столь же глубокую интеграцию. Усугубляет ситуацию и взгляд компании Microsoft на то, как должно выглядеть ядро ОС. Как известно с незапамятных времен, конструктор достигает совершенства не тогда, когда уже нечего добавить, а когда нечего больше удалить из его творения. К сожалению, ядра в семействе Windows только толстеют от релиза к релизу, вбирая в себя все больше нестабильных компонентов.