Трояны
Классификация.
Мне, как и многим любопытствующим, попадались на глаза многие доки сходной тематики, описывающие одну или несколько уже готовых программ. Ни в одной из них не было внятной трактовки самого термина "троян". Дерьмово! Я попробую дать доходчивое объяснение этого термина, кратко объяснить принцип действия троянов и немного рассказать о методах их обнаружения (насколько это вообще возможно). А пока я тут пробую - запасись пивком, чипсами, абы чем ещё, девками, девок уложи спать, пиво выпей и смотри сюда.
WhattaTrojan, man?
Итак, что такое трояны? Это программы, но не совсем обычные. Они попадают на компьютер вместо (а зачастую и вместе) с другой программой, нужной и втихомолку от босса скаченной в рабочее время. Для чего? Чтобы совершить определенные запрограммированные действия, что называется, на месте назначения, то есть непосредственно "по прибытию". Причем, естественно, без ведома владельца компьютера. Так... на всякий случай, чтобы не возникал со своими ctrl+alt+del в неподходящий момент. Говоря "троян", подразумеваем "вирус". Но это не просто вирь! Это, на самом-то деле, умным языком называется "программа удаленного администрирования", то есть прога для управления чужим компом откуда-нибудь из прекрасного далека. Основное отличие троянов от вирусов - они направлены не только и не столько на размножение либо деструктивные функции, сколько на получение различного рода информации и доступа к определенным ресурсам компьютера. Это следствие. Но причину - вирусное тело - троян имеет обычно как раз точно такую же, как и у всех остальных подобных вирусно-гриппозных паразитов. К классу троянов принадлежит настолько офигительно большое количество программ, что любое определение самого понятия нужно будет расширять и расширять, и все равно, наверное, будут появляться трояны, которые в него не впишутся. Так, например, есть не размножающиеся (intended) вирусы, трояны, которые устанавливаются на компьютер только с разрешения владельца оного предмета, и т.д. Эй! Ты не спишь ещё? Пиво не кончилось? Еще пару слов, чтобы не запутаться позже в ненужных обозначениях, и можно будет переходить к собственно классификации. Итак, пусть владелец (жертва) трояна (в простонародье зовут зверем) - человек, на машине которого сидит этот зверь. Для общей картины можно сказать, что владелец довольно глуп и не знает о присутствии "нежелательных" гостей. Клиент - тот, кто зверя установил или начал распространять, чтобы использовать в своих корыстных целях. Но им пусть будет также и тот, кто этого трояна случайно найдет и решит им попользоваться в свою очередь. Такие ситуации случаются крайне редко и могут принести большие неприятности всем участникам "троянизации" - все из-за недостатков использования чужого тайника. Например, некоторые "товарищи" берут троян, прописывают туда свой обратный адрес и запускают в производство, не зная о том, что вся информация, как правило, дублируется еще и автору трояна. Вот такие плюшки. Ладно, хватит занудных терминов - перейдем к классификации.
Классификация по способу инсталляции
Трояны бывают с сетевыми, консольными или удаленными инсталляторами.
К первому типу относятся Back Orifice, NetBus, всевозможные вариации на подобные темы и их производные. Доступ к компьютеру владельца не нужен, к самому пользователю - по вкусу. Нужно только, чтобы комп-цель была видна (в случае локальной сети), либо был известен IP жертвы (в случае Internet). Всевозможные undergroundnet`ы я не рассматриваю, а в FiDO, насколько мне известно, сетевых троянов нет. И думаю, не предвидится их появление вообще как вида (прежде чем писать гневные письма, прочти продолжение, и если твой праведный гнев на недостоверную информацию и мои знания не иссякнет, буду рад выслушать все багфиксы, которыми ты меня одаришь). Консольная инсталляция - самая надежная, но требует от клиента доступа к терминалу владельца без присутствия оного за спиной (чтоб топором по спине не получить в случае сильной башковитости этого индивида). Программы такого типа требуют подчас ручной настройки и маскировки - весьма занудное занятие. Их можно (и нужно) использовать не только в злостно-хулиганских целях. Например, очень удобно поставить на своем рабочем месте или даже дома на время, к примеру, отъезда. А потом вернуться и громко так сказать: "Кто ел из моей чашки?!". Самой распространенной программой с подобным интерфейсом является HookDump под винды. Технология ее использования довольно проста: достаточно запустить ее на машине владельца и, указав ей, за чем надо следить, можно быть спокойным. Правда, доставать оттуда информацию клиенту придется опять же собственными ручками.
То, что я назвал удаленной инсталляцией трояна, на самом деле очень интересная вещь: бывают случаи, когда путь по сети закрыт, а терминал охраняется как сокровищница Кремля. Тогда и выручает этот на первый взгляд извращенный, а на самом деле очень удобный для клиента и простой в реализации для троянописателя способ. Неинтерактивный инсталлятор трояна или уже настроенный комплекс в рабочем состоянии посылается письмом или переписывается на дискетку и вручается самому заклятому другу. Тот пользуется полезной программой, которая временами дает поработать и вашему трояну. И волки, как говорится, целы, и овцы в дураках не остались.
Классификация по методам получения информации
Трояны могут поддерживать сетевое, консольное либо интерактивное предоставление информации клиенту. Это основные направления, существуют трояны, совмещающие все три типа в одном. Сетевой тип представляет собой всего лишь почтовое письмо с информацией, которая может быть полезна клиенту. Обычно такая информация шифруется или маскируется под вполне безобидные вещи - например, под электронную подпись PGP. Характер информации определяется режимом работы трояна, а о них будет рассказано ниже. Хочется только напомнить некоторым троянописателям про то, как они оставляют в письме прямо к себе на аккаунт сообщения типа "дело сделано! пароль спионерил: password.". Да еще и темплейт к нему в конец килобайт на двадцать. А ведь обо всем могут рассказать всего несколько байт. Помни, кратк. - сестр. тал.! Консольное предоставление информации - самый простой способ ведения записей, но немного неудобный при возникновении трудностей, относящихся к доступу к машине жертвы. Кроме того, сообщение после отправления удаляется, а запись все растет и лежит на винчестере владельца мертвым грузом - это может послужить одной из улик, первым шагом к разоблачению трояна, что обычно и происходит на практике за очень короткий период времени. Интерактивный тип предоставления информации - обычно самый тяжелый в реализации механизма работы трояна для автора, но с его помощью клиент может в некоторых случаях получить очень нехилые результаты. Одной из таких приятных для клиента приблуд является Network Crack Wizard, как следует из его названия, предназначенный для крака локальных сетей. Он негуево (во всех смыслах этого старинного русского слова) инсталлируется, а потом ждет команд клиента, которые весьма шустро, надо сказать, выполняет.
Как ты уже наверняка заметил (если не уснул по дороге к этому абзацу) методы предоставления информации тесно связаны с режимами работы троянских пони. Но тем не менее - это разные вещи, просто сильно влияющие на другие и взаимодействующие друг с другом на самом глубоком уровне, и именно поэтому я взял на себя смелость их разделить.
Классификация по режимам работы
Трояны могут играть роль монитора, админа, суфлера, шпиона, робота либо маскирующего автомата типа партизан - 2000. И, конечно, даже самый известный дядя - антивирусист - не сможет помешать им выполнять лишь одну из приведенных функций, даже скорее наоборот - это заставляет авторов быть все время "на коне" и искать всевозможные пути обхода защит. Поэтому некоторые трояны совмещают в себе все типы - носят несколько фуражек на одной голове. Немного подробнее о режимах работы:
Монитор - пассивный наблюдатель вроде Hookdump`а. Такой все видит, все знает, но ни о чем не имеет собственного мнения. Чаще всего просто наблюдает за "погодой в доме" и записывает изменения состояния жертвы в корабельный журнал, который потом может быть послан клиенту или будет забран им самим - последнее относится как раз к Hookdump`y. Иногда позволяет задать фильтры - например, не писать все об интимной жизни жертвы с мастдаем-98. Просто мониторы ставят очень редко, часто они работают и как админ, суфлер или шпион. Тогда производимые наблюдения послужат сигналом к началу каких-то более активных действий, выбору более выгодных - оптимальных для этого условий или (чем хакер не шутит, пока сисоп спит) собственной деинсталляции. Последнее иногда бывает не менее важно, чем сама украденная информация.
Админ - старший брат юзера, он внимательно следит за последним, чтобы он чего дурного (для себя) не натворил. Такая, на первый взгляд, хорошая идея употребляется "добрыми самаритянами" в самом непотребном случае - в троянских программах. Например, программа, ограничивающая доступ ресурсам сети - принтеру или расшаренным сетевым дискам, очень не попсово будет смотреться где-нибудь в не очень высшем учебном заведении... но кому понравится, если она вдруг хитрым извратом просочится на борт его собственного судна?
Суфлер - все из названия. Как сказал один мой знакомый, "... суфлер - это такой мужик, который сидит в яме и всем вокруг пудрит мозги". Но на то он и суфлер, чтобы подсказывать что-то, а в некоторых случаях (учитывая специфичность нашей темы) и полностью замещать владельца трояна (естественно, в некоторых - нужных клиенту случаях). Довольно трудно сразу уяснить себе, где именно можно найти применение такой проге, но ты только прикинь, какие перспективы открываются для того, кто сможет им грамотно воспользоваться в своих интересах. Пока, правда, такие трояны - редкость, но истории о переписи мэйл-демонов (когда на письмо-сообщение об ошибке в е-мail адресе приходит ответ от другого мэйл-сервера и т.д. по кругу) наводят на мысли... Отправка сообщений с двумя-тремя страницами мата местному сисадмину, скачивание картинок сомнительного содержания, просто загрузка трафика, хранение скрытой информации или порча важных документов в c:\mustdie\Мои документы - да все, на что хватит фантазии у автора трояна.
Робот - программы, беспрекословно выполняющие команды клиента (суть - удаленного доступа), имеющие базовый набор функций, которые можно вызывать, например, посылкой почтой определенных слов где-то в тексте или сабже письма:
From: spamer@inkognito.ru
To: torjanowner@lamaz.com
Subj: Хотите подпишу на sex.pictures.mail???
...
Робот, проверяющий почту еще при ее получении или позже в inbox`е, обнаружит это сообщение (от spamer@inkognito.ru) и найдет там, например, слова sex.pictures.mail. Для него это может быть командой на отправку паролей на доступ к ftp-серверу и самоуничтожение. Вообще говоря, отдача приказов может происходить различными способами, и конкретно на поведение трояна это не должно влиять никаким образом. Также следует отличать такие трояны от тех, которые управляются событиями (например, соединения с Internet вообще или с каким-то отдельным сервером в нем, приемом/отправкой почты или запуском ICQ/посылкой icq-мессаг). Все их реакции неизменны во время работы в тылу врага - в отличие от робота, который работает как раз в таких условиях. Можно сравнить троян с взрывным устройством, тогда робот будет бомбой с большой красной кнопкой и надписью "BOOM!!!", а трояны, реагирующие на события, - бомбами с часовым механизмом или, к примеру, гранаткой на растяжке.
И, наконец, последний тип классификации - партизаны, мирно существующие у какого-нибудь Васи Пупкина. Партизаны - как раз те самые программы, с которыми я сравнивал суфлера. Управляются по событиям, то есть запустил Вася, например, хорошую программу PGP, чтобы дяди из СОРМ не читали его почту, и разбудил вот такого партизана, который на этот пароль сквозь кривые мохнатые пальцы посмотрел и аккуратненько в тетрадочку-то свою и записал. И устав от долгих лет ожидания, принялся наводить порядочек... в соответствии с собственным мнением на этот счет.
Следует также помнить, что хотя трояны последних двух типов - вещь в дикой природе хоть и очень редкая, но возможная, и о них не стоит забывать, когда неожиданно только что дописанный "двойной" бухотчет за месяц неожиданно оказывается у товарищей из налоговой инспекции. Они тоже не ангелы...
Прощание с детьми Трои
Вот такая вот вредоносная маза - эти самые трояны. Вроде бы - вполне крутая и кульная. Пока тебе такого не посадят. Поэтому: прежде чем засадить кому-нибудь трояна, подумай десять раз! Оно тебе надо? Сам знаю, что надо. Да, и если тебе повезет, и ты упрешь чужой логин и пассворд - не попадайся владельцу, а то получишь по наследству. Воровать нехорошо, за это по лицу бьют. По заслугам.