Часть 2. Сбор данных о файловой системе пораженной машины

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

Сбор данных о файловой системе

Аварийный инструментальный пакет позволяет собрать информацию о файловой системе. Идеальное решение — скопировать жесткий диск компьютера, найти контрольную сумму содержимого диска, проанализировать содержимое на другой рабочей станции, а затем вновь вычислить контрольную сумму после того, как будет завершен сбор всей возможной информации. Альтернативный способ — задействовать блокировщик записи IDE или SCSI на пораженной машине. Блокировщик записи — это устройство, которое позволяет исследовать жесткий диск, но препятствует записи на него. Однако скопировать диск и применить блокировщик записи не всегда удается из-за ограничений времени или бюджета. Для быстрого чернового анализа можно использовать утилиты из пакета инструментов. В утилитах сделано все возможное для предотвращения записи на диск, но, как видно из дальнейшего изложения, риск нельзя исключить полностью.

Данные о файловой системе пораженной машины можно собрать в четыре этапа.

  1. Если в машине используется NTFS, то следует провести поиск файлов в альтернативных потоках данных (alternate data stream, ADS), которые также называются скрытыми именованными потоками (hidden named stream).
  2. Поиск скрытых файлов.
  3. Поиск подозрительных обычных файлов по времени последнего изменения, времени последнего доступа и времени создания.
  4. Получение прав доступа к файлам и разделам реестра.

При выполнении этих операций следует запускать утилиты с компакт-диска с инструментальным набором, как рассказано в первой части статьи. Необходимо также по-прежнему записывать результаты утилит на надежный носитель. Для краткости в большинстве команд не показаны операции записи результатов на надежный носитель, но их необходимо указывать при вводе команд в окне командной оболочки (cmd.exe).

Этап 1. Поиск файлов ADS

NTFS поддерживает несколько потоков данных в файлах. Поток данных, с которым знакомо большинство пользователей, называется видимым неименованным потоком (visible unnamed stream). Однако могут существовать скрытые именованные потоки. В скрытых именованных потоках в файлах и каталогах можно спрятать файлы многих типов, в том числе исполняемые файлы, содержащие вирусы и «червей». Независимо от размера ADS-файла, в списке каталога он не отображается. Например, однобайтовый текстовый файл может иметь скрытый именованный поток, содержащий ADS-файл размером 10 Мбайт, который нельзя увидеть в Windows Explorer или с помощью команды Dir. Более подробную информацию о скрытых именованных потоках можно найти в статьях «FAQ: Alternate Data Streams in NTFS» по адресу http://www.heysoft.de/Frames/f_faq_ads_en.htm и «The Dark Side of NTFS (Microsoft?s Scarlet Letter)» по адресу http://patriot.net/~carvdawg/docs/dark_side.html.

Если на пораженной машине используется NTFS, то следует провести поиск ADS-файлов. Microsoft не выпустила программ для поиска ADS-файлов, но их можно найти с помощью программы LADS компании Frank Heyne Software или утилиты SFind компании Foundstone, вошедшей в состав инструментального пакета. На мой взгляд, SFind работает точнее, чем LADS, но большинство специалистов придерживается иного мнения. Осторожные администраторы могут взять на вооружение обе утилиты. LADS запускается командой

lads.exe C: /s

Ключ /s позволяет провести рекурсивный поиск во всех подкаталогах. Если искать в подкаталогах не требуется, то ключ /s можно опустить. SFind запускается командой

sfind.exe C:

По умолчанию SFind рекурсивно просматривает все подкаталоги. Чтобы не искать в подкаталогах, следует добавить в команду ключ /ns.

Обнаруженный текстовый файл ADS можно просмотреть в Notepad. Синтаксис команды:

notepad.exe VisFile:ADSFile

где VisFile — полный путь к файлу, содержащему скрытый именованный поток, а ADSFile — имя ADS-файла. Например, если SFind обнаруживает ADS-файл с именем gotchya.txt в скрытом именованном потоке файла C:winntmylog.txt, следует применить команду

notepad.exe
C:winntmylog.txt:gotchya.txt

Команда напечатана на двух строках, но в cmd.exe ее нужно вводить одной строкой. То же самое относится к другим многострочным командам, упоминаемым в статье. ADS-файл можно не только просмотреть, но и скопировать в видимый файл. Например, с помощью команды

C:winntmylog.txt:gotchya.txt
> J:gotchya.txt

можно скопировать файл gotchya.txt в видимый файл на USB-диске в накопителе J. Необходимо соблюдать осторожность при копировании ADS-файла в видимый неименованный поток. Например, если не добавить J: ко второму экземпляру gotchya.txt в приведенной выше команде, ADS-файл будет записан в видимый неименованный поток на жестком диске исследуемой машины. Это непростительная оплошность, так как записи на данный диск необходимо избегать.

Этап 2. Поиск скрытых файлов

В любой файловой системе (NTFS, FAT32 и FAT) необходимо отыскать скрытые файлы и определить время последнего обращения к ним. В отличие от файлов ADS, скрытые файлы имеют соответствующие отметки в файловой системе и не скрыты, подобно файлам ADS. Для поиска скрытых файлов в файловой системе можно воспользоваться утилитой HFind из пакета Forensic Toolkit.

hfind.exe C:

Время последнего обращения к скрытым файлам, обнаруженным с помощью HFind, можно установить, используя инструмент FileStat компании Forensic Toolkit. FileStat выдает полный список атрибутов файла и безопасности для указанного файла. Синтаксис команды:

filestat.exe HidFile

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

Этап 3. Поиск подозрительных обычных файлов

Для углубленного анализа полезно проследить время изменения файлов, время последнего доступа и время создания обычных файлов. Утилита MACMatch Арне Видстрема — чрезвычайно полезный инструмент, с помощью которого можно вести поиск файлов по времени последнего изменения, последнего доступа или создания в рамках определенного временного интервала. Например, если из журналов и других источников известно примерное время нападения, то можно получить список всех файлов, созданных в этот период. Если атака была предпринята между 14.00 6 января 2004 г. и 2.45 7 января 2004 г., то команда

macmatch C: -c
2004-01-06:14.00
2004-01-07:02.45

выдает список файлов, созданных в этот период. Ключ -c настраивает утилиту на проверку времени создания. Два других ключа: -m, который настраивает утилиту на поиск по последнему времени изменения, и -a, с помощью которого можно определить время, когда в последний раз был предоставлен доступ. Анализ файлов, которые были изменены или стали объектом обращений (чтения) в определенный момент, занимает больше времени, но может дать ценную информацию.

Этап 4. Получение прав доступа

Получить права доступа к файлам и разделам реестра можно с помощью инструмента AccessEnum компании Sysinternals. AccessEnum составляет список прав доступа Read, Write и Deny файлов, содержащихся в указанном каталоге или разделе реестра. По двойному щелчку на файле accessenum.exe запускается графический интерфейс, показанный на экране 1.

Экран 1. Интерфейс AccessEnum.

Анализ полученных данных — утомительное занятие. К счастью, если экспортировать их в формате с разделением табуляцией, их будет легче импортировать в электронную таблицу. Следует обратить внимание на пользователей, не являющихся администраторами, с правами Read или Write для важнейших системных файлов. Интерес представляют и неавторизованные пользователи, наделенные правами доступа к важнейшим данным организации. В последнем случае необходимо ознакомиться с политиками доступа.

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

Таким образом мы можем собрать массу данных о пораженной машине и ее файловой системе. Этой информации достаточно, чтобы оценить состояние компьютера и найти решение обнаруженных проблем. Что делать, если существуют сомнения в точности анализа или возникла проблема другого рода (например, безопасность нарушена не извне, а в результате действий сотрудника компании)? В следующей статье я планирую рассказать о методах более детального криминалистического анализа пораженной машины.

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