"Потайные ходы"
В Windows 2000 появилась подсистема защиты файлов (WFP – Windows File Protection), обеспечивающая защиту системных файлов от перезаписи (к ним относится около 640 файлов из каталога %systemroot%). Интересный побочный эффект этого нововведения состоит в том, что хэш-коды SHA-1 этих важных файлов содержатся в файле каталога %systemroot%\system32\dllcache\nt5.cat. Поэтому, сравнивая эталонные хэш-коды с хэш-кодами текущих системных файлов, можно проверить их целостность.
Такую проверку можно выполнить с использованием средства верификации сигнатуры файлов (File Signature Verification, sigverif.exe). Для этого щелкните на кнопке Advanced, перейдите во вкладку Logging и установите режим Append То Existing Log File, чтобы новые результаты можно было сравнивать с полученными ранее. Однако нужно иметь в виду, что в режиме. WFP сигнатура, скорее всего, не связывается с каждым отдельным файлом. Как отметил в мае 2000 года Рус Купер (Russ Cooper), подсистема защиты WFP не замечает копирования одного из "помеченных" файлов поверх другого (например, незамеченным останется копирование notepad.exe поверх wscript.exe). В процессе тестирования поверх файла wscript.exe мы скопировали файл, не являющийся системным, и утилита sigverif все равно подтвердила его целостность! Поэтому лучше пока не полагаться на эти новые средства, пока не будут разгаданы причины такого странного поведения.
Среди средств сторонних производителей можно упомянуть программу проверки целостности файлов MDSsum. Она входит в состав пакета Textutils, который распространяется в рамках общей лицензии GNU. Версию, скомпилированную для системы Windows, можно найти по адресу http://sourceware.cygnus.com/cygwin/. Утилита MDSsum на основе распространенного алгоритма MD5, разработанного Роном Ривестом (Ron Rivest) из лаборатории компьютерных наук Массачусетского технологического института, позволяет вычислить или проверить профильное сообщение (message digest) файла длиной 128 бит. Описание программы приведено в документе RFC 1321. В следующем примере показано, как программа MDSsum генерирует контрольную сумму файла test.txt, а затем выполняет ее проверку.
D:\Toolbox> md5sum d:\test.txt>d:\test.md5 D:\Toolbox> cat d:\test.md5 efd3907b04b037774d831596f2clbl4a d:\Xtest.txt D:\Toolbox> md5sum – check d:\test.md5 d:\Xtest.txt: OK
К сожалению, программа MDSsum одновременно обрабатывает только один файл (конечно, написав сценарий, это можно исправить). В число более эффективных средств выявления вторжений в файловую систему входит старая программа Tripwire, которую можно найти по адресу http://www.tripwire.com.
Следует упомянуть и несколько других важных утилит, предназначенных для проверки содержимого двоичных файлов. К ним относится известная программа strings, которая работает как в системе UNIX, так и в Windows, BinText Робина Кайра (Robin Keir) для Windowsи UltraEdit32 для Windows.
И наконец, при инвентаризации файловой системы очевидным шагом является поиск легко узнаваемых исполняемых файлов, обеспечивающих "потайной ход", а также используемых ими библиотек. Поскольку большинство из этих инструментов может быть переименовано, такая процедура обычно не приносит пользы, но устранение очевидных изъянов – это уже половина успеха в битве за обеспечение безопасности сети. В табл. 14.2 приведен список наиболее важных файлов, при обнаружении которых нужно принимать меры, описанные в этой главе.
Таблица 14.2. Используемые пo умолчанию имена исполняемых файлов утилит удаленного управления.
"Потайной ход" | Имя файла(ов) | Возможность переименовать |
---|---|---|
remote (NT) | remote.ехе | Есть |
netcat (UNIX и NT) | nс и nс.ехе | Есть |
rinetd | rinetd, rinetd.exe | Есть |
Утилиты туннелирования пакетов IСМР и UDP | loki и lokid | Есть |
Back Orifice | [пробел].ехе, boserve.exe, boconfig.exe | Есть |
Back Orifice 2000 | bo2k.exe, bo2kcfg.exe, bo2kgui.exe, UMGR32. EXE, bo_peep .dll, bo3des .dll | Есть |
NetBus | patch .exe, NBSvr .exe, KeyHook .dll | Есть |
Virtual Network Computing for Windows (WinVNC) | WinVNC. EXE, VNCHooks. DLL, И OMNITHKEAD_RT.DLL | Нет |
Linux Rootkit (LRK) | Irk | Есть |
NT/2000 Rootkit | deploy .exe и _root_ .sys | Нет в сборке 0.31 а |