Russian-speaking
 Python & Zope User Group

Главная |  Python |  Zope  

Python
Zope
Новости
Copyright
Ответственность  

Троянские кони

Троянские кони – это разрушительные фрагменты, которые встроены в какие-то «нормальные» программы, чтобы одурачить пользователя, который будет думать, что это нечто полезное. Помните, откуда появилось это название? Греки десять лет осаждали Трою, но она не сдавалась. То ли от отчаяния, то ли от скуки Одиссей приказал греческим воинам построить большого деревянного коня, внутри которого могли бы спрятаться несколько человек. Этот сюрприз греки оставили троянцам как признание поражения, а затем сделали вид, что уплывают. Троянцы привезли деревянного коня в город – все художники изображают коня стоящим на платформе с колесами, – несмотря на предсказание Кассандры о том, что это приведет к гибели Трои. Ночью греки вылезли из коня, открыли ворота и впустили внутрь остальную греческую армию. После этого греки истребили троянцев, варварски разграбили и сожгли город. (По крайней мере, Гомер все описал именно так. Никто не знает, правда это или нет. Даже сам город считали мифом, пока Генрих Шлиман не обнаружил Трою в конце XIX века.)

Аналогично, цифровой троянский конь – это код, преднамеренно помещенный в вашу систему, который маскируется под безвредную (или полезную) программу, но делает что-то неожиданное или нежелательное. (С формальной точки зрения код, который вы сознательно размещаете в вашей системе, – это троянский конь, а код, который вводит в вашу систему кто-то другой, называют логической бомбой). Программист вписывает такой код в крупное программное приложение, которое в результате может начать работать неправильно, если, например, программист будет исключен из платежной ведомости. Тимоти Ллойд (Timothy Lloyd), диспетчер сети в Omega Engineering, в 1996 году установил логическую бомбу, которая подорвала производственные мощности его бывших работодателей и обошлась им более чем в 12 миллионов долларов.

Троянским конем может быть программа, которая тайно устанавливается в вашем компьютере, следит за буфером клавиатуры до тех пор, пока не обнаружит нечто, напоминающее номер кредитной карты, – правильное количество цифр, совпадение контрольной суммы, – и посылает этот номер кому-нибудь при помощи TCP/IP. Это также и приложение Java, которое прерывает соединение вашего модема и соединяет вас с 900 номерами в Молдавии (такой троянский конь на самом деле существовал).

Атака троянского коня коварна и опасна, поскольку вы можете и не догадываться о его работе. Один из популярных троянских коней для Microsoft Windows называется Back Orifice. Если он имеется на вашем диске, удаленный пользователь может эффективно подсоединиться к вам через Интернет и хозяйничать в вашем компьютере. Он может загружать себе ваши файлы, а вам – свои, удалять файлы, запускать программы, изменять конфигурации, захватывать управление клавиатурой и мышью, видеть все, что отображается на экране сервера. Тот же удаленный пользователь может вести более разрушительную деятельность: перезагружать компьютер, показывать произвольные диалоговые окна, включать и отключать микрофон или камеру, перехватывать нажатия клавиш (и пароли). А кроме того, существует расширяемый язык, позволяющий писать модули. (Я все жду, что кто-нибудь распространит модуль, который будет автоматически выискивать и записывать закрытые ключи PGP или последовательности регистрации для Всемирной паутины.)

Кроме Back Orifice и других хакерских инструментов по принципу троянских коней могут работать многие программы удаленного администрирования. DIRT (Data Interception by Remote Transmission, перехват данных с помощью удаленной передачи) – это троянский конь, разработанный правительством США и находящийся в распоряжении полиции.

Это все грубо действующие троянские кони, но бывают и более коварные. Некоторые из них собирают и отсылают автору имена и пароли пользователей. Другие незаметно изменяют шифровальную программу так, что выбор ключей становится ограничен. (Мне встречались измененные таким образом версии PGP.) Вас могут заставить поверить во что угодно, подсунув на ваш компьютер фальшивый сертификат. (Эта идея использовалась для лабораторных демонстраций нападений на систему кодовых обозначений Microsoft.) Эти троянские кони не делают ничего такого, о чем вы могли бы легко догадаться, но они способны на многое, что никогда не придет вам в голову. Распределенные атаки, приводящие к отказу в обслуживании, осуществлявшиеся с помощью Интернета, используют троянских коней для заражения промежуточных компьютеров.

Наиболее сложный этап при подобных атаках – это помещение троянского коня на компьютер ничего не подозревающей жертвы. Один из вариантов – проникнуть в офис жертвы и установить троянца на нужный компьютер; в следующей главе мы обсудим некоторые способы защиты от атак такого рода. Можно убедить жертву собственными руками установить троянского коня; о манипулировании людьми мы поговорим в главе 17. Можно атаковать компьютер через Интернет – мы вернемся к этому в главе 11. И наконец, можно проникнуть в компьютер при помощи самих разрушительных программ, создавая вирусы.

Современные разрушительные программы

Для программного обеспечения, призванного причинять неприятности, 1999 год стал переломным. Различные типы – вирусы, черви и троянские кони – слились и перемешались. И стали в результате еще более опасными. Новизна состояла не в автоматической пересылке разрушительных программ по электронной почте – до этого были Christma exec в 1987 году (через систему электронной почты PROFS (Professional Office System, профессиональная офисная система)) и ShareFun в 1997 году, – но 1999 год стал первым годом, когда распространяющиеся по электронной почте «вредные» программы смогли заразить крупные зоны Интернета. Новые типы этих программ игнорировали средства корпоративной защиты и тонеллировали сквозь брандмауэры. Это действительно значительный шаг.

Вирус продолжает существовать, если он воспроизводится на новых компьютерах. До Интернета компьютеры сообщались в основном при помощи гибких дисков. Следовательно, большинство вирусов передавались при помощи дискет, и лишь изредка через электронные доски объявлений (bulletin board system, BBS).

Дискеты как переносчики инфекции имеют свои особенности. Во-первых, заражающие программы распространяются довольно медленно. Компьютер инфицирует через дискету другой компьютер, с него переходит на пять других, и по истечении недель или месяцев этот процесс приведет к эпидемии. Хотя возможно, что кто-то поместит инфицированную вирусом программу на электронную доску объявлений, тогда тысячи компьютеров заразятся за одну-две недели.

Во-вторых, перенос программ при помощи дискет легко блокировать. Большинство антивирусных программ могут автоматически сканировать все гибкие диски. Опасные программы на входе блокируются. Электронная доска объявлений способна все же доставить некоторые проблемы, но большинство пользователей приучили себя к тому, что не следует загружать программы с ненадежных BBS. А кроме того, антивирусные программы могут автоматически сканировать новые файлы в поисках опасного кода.

И в-третьих, при таком способе распространения вирусов антивирусные программы справляются со своей задачей. Написать программу, блокирующую известные опасные программы, в общем, не сложно. Она будет работать по принципу сканирующего поиска кода, характерного для вируса (так называемых сигнатур). Найдя зараженный участок, программа автоматически удалит вирус и вернет все в нормальное состояние. Процедура удаления уникальна для каждого вируса, но разработать ее сравнительно нетрудно. Антивирусные программы включают десятки тысяч сигнатур, каждая из которых характерна для определенного вируса. Компании выпускают новые программы в тот же день, как узнают о новом вирусе. И при условии, что вирус распространяется медленно, такая защита работает. Ежемесячно происходит автоматическое обновление большинства антивирусных программ. До 1999 года такая защита была вполне удовлетворительна.

Все изменилось с распространением электронной почты. 1999 год принес нам макровирус Melissa для Microsoft Word и червя Worm.ExploreZip, a 2000 год – червя ILOVEYOU и массу его разновидностей, не говоря обо всем остальном. Разрушительные программы такого типа размножаются по электронной почте и используют ее особенности. Эти программы отправляют себя по почте людям, с которыми переписывается хозяин инфицированного компьютера, обманом заставляя получателей открыть или запустить их. В таком случае процесс распространения вирусов занимает не недели и не месяцы, а считанные секунды.

Антивирусные компании по мере возможности выпускают усовершенствованные версии программ, которые умеют ловить определенные вирусы, но если вирус может заразить 10 миллионов компьютеров в течение нескольких часов (так оценивают скорость распространения ILOVEYOU), то прежде, чем его удастся зафиксировать, он вызывает множество повреждений. А что если вирус постарается «спрятаться», чтобы его код не обнаружили в течение нескольких дней? Что, если червь нацелен на конкретную машину и удаляет свой код из всех компьютеров, у которых идентификатор пользователя не соответствует заданному? Сколько времени потребовалось бы на то, чтобы его обнаружить? Что, если этот червь отправляет по электронной почте в анонимный почтовый ящик копию регистрационного имени пользователя (в большинстве случаев содержащего пароль) и лишь затем самоуничтожается? Что, если такой код способен автоматически обновляться? Что, если он автоматически зашифровывает свои распространяющиеся копии при помощи системы PGP? А если он видоизменяется и ускользает от антивирусных программ? Или неделями прячется в системе? Даже минутные размышления на эту тему заставляют нас нарисовать себе довольно жуткую картину.

Поскольку электронная почта встречается повсеместно, путешествующие с ее помощью опасные программы в силах проникнуть куда угодно. Они могут просочиться через такое интернет-соединение, через которое больше ничего не проходит. Их нельзя остановить брандмауэром; они проникают сквозь него, неожиданно оказываются внутри системы и производят повреждения. Эффективность брандмауэров будет снижаться по мере того, как мы будем расширять перечень используемых служб (e-mail, Веб и т. п.) и добавлять все более сложные приложения во внутреннюю сеть, а авторы разрушительных программ будут принимать все это во внимание. Такой метод «проникновения внутрь с последующей работой» еще более ухудшит ситуацию.

В настоящее время, разрабатывая средства для защиты от вирусов, червей и троянов, стараются подражать биологическим принципам борьбы с вирусами. Тем не менее я настроен скептически по двум причинам. Прежде всего биологические вирусы эволюционируют медленно: удачные новые мутации со временем могут закрепиться, а затем медленно распространиться по виду. Биологические иммунные системы приспособлены именно к атакам такого рода. А компьютерные вирусы, в отличие от биологических, специально создают «смертельными».

Вторая причина моего скепсиса в том, что биологические иммунные системы ориентированы на то, чтобы защищать вид за счет отдельной особи. Относительно генофонда – это правильная стратегия, но для защиты конкретного компьютера от разрушительных программ она не годится.

Мне кажется более интересным такое решение: связать компьютеры с центром автоматического выявления вирусов. Если какой-нибудь компьютер замечает подозрительный код, он отсылает его для последующего анализа. Такой подход имеет помимо перспективы и ряд новых опасностей. Кроме того, он все-таки не сможет обеспечить необходимую скорость обнаружения вирусов. Любая крупная рассредоточенная система в любом случае допускает возможность заражения вирусами. Если система безопасности не продумана снизу доверху, мы должны быть постоянно готовы к борьбе с попытками установить контроль над системой.

Страницы:
 
 
Copyright © 2000-2024, Russian-speaking Python & Zope User Group Ответственность