Автор: Андрей Васильков
Нелегкой оказалась судьба троянцев, понадеявшихся на единственное средство защиты — неприступные стены. В течение десяти лет греческие войска под предводительством Агамемнона и Менелая осаждали Трою. Все попытки штурмовать оказались тщетными, и тогда Одиссей предложил проникнуть в город хитростью…
Согласно преданию, греки изготовили большую деревянную статую коня, внутрь которой забрался отряд самых лучших бойцов. Далее греческое войско имитировало отступление. А единственный из оставшихся данайцев, родственник коварного Одиссея Синон, сдался в плен, возвестив о «даре в знак уважения» геройскому сопротивлению троянцев, и проследовал вместе с огромной статуей в город, где уже начиналась подготовка к празднику… Ночью Синон выпустил из деревянного коня «спецназовцев», которые перебили стражу и открыли ворота, впустив основные силы греков. Город был мгновенно разграблен и сожжен вместе со всеми оборонявшимися троянцами [Лишь небольшой группе жителей во главе с Энеем удалось сбежать в Италию], излишне понадеявшимися на мощь крепостных стен и покровительство Аполлона. Греческий (позже его стали называть троянским) конь навеки стал символом скрытого вторжения, которому помогают сами жертвы.
Удивительно, что за прошедшие с тех пор века люди так ничему и не научились. Истории с «подарками», использовавшимися против своих владельцев, повторялись вновь и вновь. Взять хотя бы деревянного орла (выполненного в виде герба США), подаренного американскому послу в 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. В отличие от классических троянцев-загрузчиков, он не просто скачивает вредоносную программу из Интернета, но и пытается выложить ее в файлообменную сеть, если к таковой подключена инфицированная машина.