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

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