Admin
Администратор
Введение в форензику
Компьютерная криминалистика (форензика) — прикладная наука о раскрытии преступлений, связанных с компьютерной информацией, об исследовании цифровых доказательств, методах поиска, получения и закрепления таких доказательств. Она состоит из трёх частей:
Сбор данных — процесс получения информации из первоисточника без их повреждения или изменения. Для этого есть множество инструментов в зависимости от ОС и других особенностей, в статье рассмотрим инструменты на основе Linux.
Сохранение данных — полученные цифровые улики должны быть сохранены в своем первоначальном состоянии, используя криптографические алгоритмы хэширования.
Анализ данных — интерпретация данных и извлечение информации из них.
Сбор данных
Если подозреваемый установил руткиты для уничтожения улик по команде, существует вероятность потери важного контента. В таких случаях применяется цепочка хранения доказательств — документ с информацией о том, как обрабатывались улики, для дальнейшей отчётности. Цепочка начинается с обработки улик.
Перед началом нужна подготовка:
загрузочный диск или флешка, поскольку инструментам подозреваемых нельзя доверять;
мощная машина для следователя.
Сначала нужно получить данные, которые наиболее изменчивы. На самом деле они изменяются уже при их сборе, поэтому надо постараться оставить как можно меньше следов. Это сложная задача, поскольку обычные инструменты могут внести изменения в исследуемую среду. Например, использование команды cp изменит время последнего доступа к исходному файлу. Рассмотрим некоторые инструменты.
Код:
$ lsof
Код:
$ nc
Также стоит взглянуть на uname -a, ifconfig, date и uptime. Всё это может пригодиться для сбора улик. Можно проверить, подключён ли злоумышленник к целевой машине, используя w.
Для считывания памяти можно использовать lime — загружаемый модуль ядра, который позволяет извлекать данные из энергозависимой памяти Linux.
Для энергонезависимых данных следует использовать dd. Этот инструмент встроен в большинство систем Linux. Допустим, для подготовки экспертного диска и затирания /dev/hda одними нулями можно использовать dd if=/dev/zero of=example. Скопировать улики можно следующим образом: dd if=stuff of=evidence/stuff.dd. Если использовать dd с netcat, сначала устанавливается слушатель, а затем ему отправляются данные.
Терминал слушателя:
Код:
$ nc -l 8888 > nc_info
Код:
$ dd if=stuff | nc localhost 8888
Сохранение данных
Для сохранения доказательств экспертиза использует криптографические алгоритмы хеширования . Суть компьютерной криминалистики — доказать, что улики совпадают с первоисточником, для этого достаточно вычислить хеши. Если хеши одинаковы, два файла должны быть одинаковыми.
Для этого хорошо подойдёт MD5 или SHA. Рассмотрим команду md5sum. Создадим файл ex_file, содержащий строку «hello there». Прочтём исходное содержимое с помощью cat, а затем вычислим хеш.
Код:
$ echo "hello there" > ex_file
$ cat ex_file
hello there
$ md5sum ex_file
2d01d5d9c24034d54fe4fba0ede5182d ex_file
Код:
$ echo "hiya" >> ex_file
$ cat ex_file
hello there
hiya
$ md5sum ex_file
ddfdaf6c131be9a522038488f6823537 ex_file
Код:
$ echo "hello world" > file1
$ echo "hello world" > file2
$ md5sum file1
6f5902ac237024bdd0c176cb93063dc4 file1
$ md5sum file2
6f5902ac237024bdd0c176cb93063dc4 file2
Код:
$ chmod g-r file2
$ md5sum file2
6f5902ac237024bdd0c176cb93063dc4 file2
Анализ данных
Получение полезной информации из данных является важной задачей. Начать можно с определения разделов с помощью fdisk our_device. После этого можно использовать dd для выделения наиболее примечательных разделов. С помощью инструмента Sleuthkit получаем файл с информацией о разделах (команда mmls our_file.dd). Можно определить тип носителя с помощью опции -t (команда mmls -t dos our_file.dd). Для монтирования образов можно использовать mount. Монтирование должно быть только в режиме чтения (read-only).
Код:
mount –o ro,loop /my_file.dd/mnt/example
Код:
$ fls -f ext3 -m "/" -r images/root.dd > data/body
$ mactime -b filename [time]
Спасибо за прочтение!