Часть 2. Сбор данных о файловой системе пораженной машины
Нарушения безопасности компьютеров в современной корпоративной среде происходят довольно часто, и чрезвычайно важно научиться быстро и квалифицированно реагировать на них. В первой части статьи, опубликованной в предыдущем номере журнала, рассказывалось о том, как собрать основные данные о пораженной машине. Во второй части я покажу, каким образом быстро получить данные о файловой системе пострадавшего компьютера.
Сбор данных о файловой системе
Аварийный инструментальный пакет позволяет собрать информацию о файловой системе. Идеальное решение — скопировать жесткий диск компьютера, найти контрольную сумму содержимого диска, проанализировать содержимое на другой рабочей станции, а затем вновь вычислить контрольную сумму после того, как будет завершен сбор всей возможной информации. Альтернативный способ — задействовать блокировщик записи IDE или SCSI на пораженной машине. Блокировщик записи — это устройство, которое позволяет исследовать жесткий диск, но препятствует записи на него. Однако скопировать диск и применить блокировщик записи не всегда удается из-за ограничений времени или бюджета. Для быстрого чернового анализа можно использовать утилиты из пакета инструментов. В утилитах сделано все возможное для предотвращения записи на диск, но, как видно из дальнейшего изложения, риск нельзя исключить полностью.
Данные о файловой системе пораженной машины можно собрать в четыре этапа.
- Если в машине используется NTFS, то следует провести поиск файлов в альтернативных потоках данных (alternate data stream, ADS), которые также называются скрытыми именованными потоками (hidden named stream).
- Поиск скрытых файлов.
- Поиск подозрительных обычных файлов по времени последнего изменения, времени последнего доступа и времени создания.
- Получение прав доступа к файлам и разделам реестра.
При выполнении этих операций следует запускать утилиты с компакт-диска с инструментальным набором, как рассказано в первой части статьи. Необходимо также по-прежнему записывать результаты утилит на надежный носитель. Для краткости в большинстве команд не показаны операции записи результатов на надежный носитель, но их необходимо указывать при вводе команд в окне командной оболочки (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 для важнейших системных файлов. Интерес представляют и неавторизованные пользователи, наделенные правами доступа к важнейшим данным организации. В последнем случае необходимо ознакомиться с политиками доступа.
Завершив все четыре операции, следует составить список всех использованных команд и вычислить контрольную сумму для каждого из созданных файлов, следуя рекомендациям из первой части данной статьи. Контрольные суммы необходимо сохранить в отдельном файле. Кроме того, следует сделать копию файла, чтобы впоследствии подтвердить достоверность свидетельств.
Таким образом мы можем собрать массу данных о пораженной машине и ее файловой системе. Этой информации достаточно, чтобы оценить состояние компьютера и найти решение обнаруженных проблем. Что делать, если существуют сомнения в точности анализа или возникла проблема другого рода (например, безопасность нарушена не извне, а в результате действий сотрудника компании)? В следующей статье я планирую рассказать о методах более детального криминалистического анализа пораженной машины.
Тщательная подготовка — ключ к эффективной реакции на попытки взлома. Необходимо собрать инструменты, протестировать их и понять, как работает система в нормальном состоянии. Корректное применение инструментов поможет быстро обнаружить место вторжения и возобновить нормальную работу предприятия.