10.4. Расследование происшествия

Расследование взлома компьютерной системы напоминает расследование преступления. Следователи собирают улики, записывают странные факты и делают опись пропавшего и испорченного имущества. Анализ скомпрометированного компьютера можно проводить и во время атаки, и после неё (после смерти).

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

Неплохой идеей также будет вести запись всех действий, выполняемых при изучении взломанной системы, с помощью команды script, как в следующем примере:

script -q <file-name>

Замените <file-name> именем файла журнала script. Никогда не сохраняйте файл журнала на жёстком диске скомпрометированной системы — для этого идеально подходит дискета.

Записывая все свои действия, вы соберёте дополнительные сведения, которые будут очень полезны, если взломщик будет пойман.

10.4.1. Получение образа диска с уликами

Создание побитовой копии среды — это вполне выполнимый первый шаг. Если вы намерены проводить судебное разбирательство, он обязателен. Рекомендуется сделать две копии: одну для анализа и исследования, а вторую хранить вместе с оригиналом в качестве улики для суда.

Вы можете создать монолитный образ взломанной системы, который будет уликой при расследовании или пригодится для сравнения с проверенными образами, с помощью команды dd из пакета coreutils, включённого в Red Hat Enterprise Linux. Предположим, что в компьютере, образ которого вы хотите сделать, один жёсткий диск. Подключите этот диск к другому компьютеру и создайте файл образа с помощью dd, например так:

dd if=/dev/hdd bs=1k conv=noerror,sync of=/home/evidence/image1

Эта команда создаёт один файл image1 и для ускорения использует размер блока 1k. Параметры conv=noerror,sync указывают dd продолжить чтение и сброс информации, даже если на подозрительном диске встречены плохие сектора. После этого можно приступать к изучению полученного образа или даже пытаться восстановить удалённые файлы.

10.4.2. Сбор информации после взлома

Тема цифровой судебной экспертизы и собственно анализа весьма широка, однако большинство инструментов зависят от архитектуры, и не могут применяться в общем случае. Несмотря на это, каким-то образом надо реагировать на происшествие, проводить анализ и восстановление. С подходящими знаниями и опытом Red Hat Enterprise Linux может стать превосходной платформой для проведения анализа, так как в неё включены различные утилиты для выполнения действий после взлома и восстановления.

В таблице 10-1 перечислены некоторые команды, связанные с аудитом и управлением файлами. Здесь также приведены некоторые примеры, помогающие правильно идентифицировать файлы и их атрибуты (например, разрешения и даты доступа) с целью сбора для анализа дальнейших улик или сведений. Все эти инструменты, в сочетании с системами обнаружения вторжения, брандмауэрами, защищёнными службами и другими мерами безопасности могут снизить возможный ущерб от атаки.

ЗамечаниеЗамечание
 

За подробными сведениями о каждом инструменте обратитесь к его странице man.

КомандаФункцияПример
ddСоздаёт побитовый образ (или дамп диска (disk dump)) файлов и разделов. Рассчитав контрольные суммы md5sums для каждого образа, и проверив их на совпадение, администраторы могут сравнить образ раздела или файла перед взломом с образом из взломанной системы. dd if=/bin/ls of=ls.dd |md5sum ls.dd >ls-sum.txt
grepНаходит нужную строковую (текстовую) информацию в файлах и каталогах, а также помогает определить разрешения, атрибуты файла, изменения сценариев и т.д. В основном используется для перенаправления вывода команд ls, ps и ifconfigps auxw |grep /bin
stringsВыводит строки печатаемых символов, содержащиеся в файле. Наиболее полезна для поиска аномалий в программах, например, команд mail с неизвестными адресами или операций записи в нестандартный файл журнала.strings /bin/ps |grep 'mail'
fileОпределяет характеристики файлов, исходя из формата, кодировки, связанных библиотек (если они есть) и типа файла (двоичный, текстовый и т.д.). Эта команда полезна для определения, изменился ли набор статических библиотек, используемых программой, например, /bin/ls, что будет верным знаком того, что эта программа заменена злоумышленником.file /bin/ls
findВыполняет поиск в каталогах определённых файлов. Это полезный инструмент для поиска по ключевому слову, дате и времени доступа, разрешениям и т.д. Он также полезен для администраторов, проводящих общесистемный аудит конкретных каталогов или файлов. find -atime +12 -name *log* -perm u+rw
statВыводит различную информацию о файле, включая время последнего доступа, разрешения, значения битов UID и GID, и т.д. Полезно для определения времени последнего использования или изменения программы во взломанной системе.stat /bin/netstat
md5sumВычисляет 128-битную контрольную сумму по алгоритму md5. Создайте с помощью этой команды текстовый файл, в котором будут перечислены все важные исполняемые файлы, часто изменяемые или заменяемые при взломе систем. Перенаправьте выводимые суммы в файл-базу данных контрольных сумм, а затем скопируйте его на носитель только для чтения, например CD-ROM.md5sum /usr/bin/gdm >>md5sum.txt

Таблица 10-1. Инструменты аудита файлов