По способу существования выделяют троянов, представляющих собой самостоятельные файлы, и тех, которые внедряют свои тела (инфицируют) в уже имеющиеся, чаще всего системные файлы. Первые не подлежат лечению, так как лечить нечего - надо удалять файл целиком.
В зависимости от целей вторжения различают:
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. В отличие от классических троянцев-загрузчиков, он не просто скачивает вредоносную программу из Интернета, но и пытается выложить ее в файлообменную сеть, если к таковой подключена инфицированная машина.