Введение
Добро пожаловать в мир цифровой криминалистики. Важнейшей частью любого расследования является надлежащее получение цифровых доказательств. Этот процесс включает в себя создание точной, побитовой копии запоминающего устройства без изменения исходных данных. Не менее важно обеспечить целостность этой копии, доказав, что она не была изменена с момента ее создания.
В этой лаборатории вы примете на себя роль младшего криминалистического аналитика. Вы научитесь использовать стандартные инструменты командной строки Linux для выполнения двух наиболее фундаментальных задач в цифровой криминалистике: получение доказательств и проверка их целостности. Мы будем использовать команду dd для создания образа диска и sha256sum для генерации криптографического хэша, гарантируя надежность наших доказательств.
Создание имитации образа диска с помощью dd
На этом шаге вы создадите криминалистический образ из имитированного файла доказательств. В цифровой криминалистике "образ" — это побитовая копия исходного диска. Мы используем команду dd, мощную и универсальную утилиту для копирования и преобразования данных. Это стандартный инструмент в криминалистике, поскольку он может создавать точную копию запоминающего устройства, сохраняя все данные, включая удаленные файлы и свободное пространство (slack space).
Сначала перейдем в каталог нашего дела и посмотрим на исходный файл доказательств, который был подготовлен для вас.
cd ~/project/forensics_case
ls -lh
Вы должны увидеть файл с именем original_evidence.dd.
-rw-rw-r-- 1 labex labex 11M Aug 5 15:28 original_evidence.dd
Теперь давайте используем dd для создания образа этого файла. Мы назовем наш образ evidence_image.img.
if=original_evidence.dd: Указывает input file (входной файл).of=evidence_image.img: Указывает output file (выходной файл).bs=4096: Устанавливает block size (размер блока) в 4096 байт. Это распространенный размер блока, который может влиять на производительность.
Выполните следующую команду:
dd if=original_evidence.dd of=evidence_image.img bs=4096
Команда выведет количество обработанных записей (входных и выходных) и общее количество скопированных байт.
2560+1 records in
2560+1 records out
10485809 bytes (10 MB, 10 MiB) copied, 0.0130138 s, 806 MB/s
Теперь снова выведем список файлов, чтобы увидеть как исходный, так и только что созданный образ.
ls -lh
Вы увидите, что evidence_image.img имеет тот же размер, что и original_evidence.dd, что является хорошим первым признаком успешного копирования.
-rw-rw-r-- 1 labex labex 11M Aug 5 15:43 evidence_image.img
-rw-rw-r-- 1 labex labex 11M Aug 5 15:28 original_evidence.dd
Расчет хэшей исходных файлов и образа
На этом шаге вы проверите целостность криминалистического образа, который вы только что создали. Просто иметь копию недостаточно; мы должны иметь возможность доказать, что копия является точной, неизмененной копией оригинала. Мы делаем это, вычисляя криптографический хэш как для исходного файла, так и для образа.
Хэш-функция принимает входные данные (в нашем случае, содержимое файла) и выдает строку символов фиксированного размера, которая и является "хэшем". Даже малейшее изменение во входном файле приведет к совершенно другому хэшу. Если хэш исходного файла и хэш файла образа совпадают, мы можем быть уверены, что копия идеальна. Мы будем использовать команду sha256sum, которая реализует алгоритм хэширования SHA-256.
Сначала рассчитайте хэш SHA256 для исходного файла доказательств:
sha256sum original_evidence.dd
Вывод будет представлять собой длинную строку символов (хэш), за которой следует имя файла.
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a original_evidence.dd
Затем рассчитайте хэш для созданного вами файла образа:
sha256sum evidence_image.img
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a evidence_image.img
Сравните два хэша. Они должны быть идентичны. Это математическое доказательство того, что ваш evidence_image.img является истинной и точной копией original_evidence.dd.
Для надлежащего документирования лучшей практикой является сохранение этих хэшей в лог-файл. Давайте сделаем это сейчас.
sha256sum original_evidence.dd evidence_image.img > hashes.txt
Теперь просмотрите содержимое вашего лог-файла хэшей.
cat hashes.txt
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a original_evidence.dd
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a evidence_image.img
Этот файл hashes.txt является важнейшей частью документации для вашего дела.
Извлечение базовых метаданных файлов, таких как временные метки
На этом шаге мы изучим метаданные файла. Метаданные — это "данные о данных", и они могут предоставить важный контекст для расследования. Для файлов это включает такую информацию, как время создания, время последнего изменения и время последнего доступа. Часто это называют MAC-временами (Modify, Access, Change — Изменение, Доступ, Изменение).
Мы будем использовать команду stat для просмотра этой подробной информации. Команда stat отображает статус файла или файловой системы.
Сначала давайте посмотрим на метаданные файла original_evidence.dd.
stat original_evidence.dd
Вывод предоставляет множество информации, но давайте сосредоточимся на временных метках.
File: original_evidence.dd
Size: 10485809 Blocks: 20488 IO Block: 4096 regular file
Device: 7eh/126d Inode: 11210686 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 5000/ labex) Gid: ( 5000/ labex)
Access: 2025-08-05 15:43:57.680473291 +0800
Modify: 2025-08-05 15:28:59.196596566 +0800
Change: 2025-08-05 15:28:59.196596566 +0800
Birth: 2025-08-05 15:28:59.164595416 +0800
Теперь сделаем то же самое для нашего evidence_image.img.
stat evidence_image.img
File: evidence_image.img
Size: 10485809 Blocks: 20488 IO Block: 4096 regular file
Device: 7eh/126d Inode: 11206338 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 5000/ labex) Gid: ( 5000/ labex)
Access: 2025-08-05 15:44:14.001048192 +0800
Modify: 2025-08-05 15:43:57.692473714 +0800
Change: 2025-08-05 15:43:57.692473714 +0800
Birth: 2025-08-05 15:43:57.680473291 +0800
Обратите внимание, что хотя содержимое файла идентично (как доказано хэшем), метаданные — нет. Временные метки для evidence_image.img отражают время создания образа, а не время создания или изменения исходного файла. Это ожидаемое поведение, и его важно документировать. Оно показывает, когда вы, следователь, выполнили сбор данных.
Создание журнала цепочки владения для полученных доказательств
На этом заключительном этапе вы создадите простой журнал цепочки владения (Chain of Custody). Цепочка владения является одним из наиболее критически важных документов в криминалистике. Это хронологическая запись, которая подробно описывает изъятие, владение, контроль, передачу, анализ и утилизацию доказательств. Надлежащим образом поддерживаемая цепочка владения доказывает, что с доказательствами обращались должным образом и что они не были подделаны.
Хотя реальная форма цепочки владения более сложна, мы можем создать базовый текстовый журнал для документирования наших действий. Этот журнал должен включать ключевую информацию о доказательствах и процессе их сбора.
Мы будем использовать команду echo для записи информации в файл с именем chain_of_custody.log. Нам потребуется собрать несколько сведений:
- Номер дела (Case Number): Уникальный идентификатор расследования. Мы будем использовать
CASE-001. - Описание предмета (Item Description): Что представляет собой доказательство.
- Дата/время сбора (Date/Time of Acquisition): Мы можем получить это с помощью команды
date. - Собрано кем (Acquired by): Аналитик, выполнивший сбор. Мы будем использовать вывод команды
whoami. - SHA256 хэш (SHA256 Hash): Хэш собранного образа, который мы получим из нашего файла
hashes.txt.
Давайте создадим журнал. Мы будем использовать echo с оператором > для создания файла и добавления первой строки, а затем >> для добавления последующих строк. Сначала получим хэш нашего файла образа.
IMAGE_HASH=$(grep 'evidence_image.img' hashes.txt | cut -d ' ' -f 1)
Теперь создадим файл журнала со всей необходимой информацией.
echo "--- CHAIN OF CUSTODY ---" > chain_of_custody.log
echo "Case Number: CASE-001" >> chain_of_custody.log
echo "------------------------" >> chain_of_custody.log
echo "Item ID: 1" >> chain_of_custody.log
echo "Description: Forensic image of original_evidence.dd" >> chain_of_custody.log
echo "Acquired By: $(whoami)" >> chain_of_custody.log
echo "Acquisition Date: $(date)" >> chain_of_custody.log
echo "SHA256 Hash: $IMAGE_HASH" >> chain_of_custody.log
echo "--- END OF LOG ---" >> chain_of_custody.log
Наконец, отобразим ваш заполненный журнал цепочки владения.
cat chain_of_custody.log
Ваш вывод должен быть похож на следующий:
--- CHAIN OF CUSTODY ---
Case Number: CASE-001
------------------------
Item ID: 1
Description: Forensic image of original_evidence.dd
Acquired By: labex
Acquisition Date: Tue Aug 5 15:44:43 CST 2025
SHA256 Hash: 55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a
--- END OF LOG ---
Теперь вы создали базовый, но важный документ, который фиксирует ваши действия и сохраняет целостность доказательств.
Резюме
В этой лабораторной работе вы успешно выполнили основные шаги по сбору цифровых криминалистических доказательств и проверке их целостности.
Вы научились:
- Использовать команду
ddдля создания побитового криминалистического образа источника данных. - Использовать команду
sha256sumдля вычисления криптографических хэшей, чтобы доказать, что криминалистический образ является точной копией исходных доказательств. - Использовать команду
statдля изучения метаданных файла, таких как временные метки, которые имеют решающее значение для понимания истории файла. - Создавать базовый журнал цепочки владения (Chain of Custody) для документирования обращения с доказательствами, что является критически важным требованием для судебных разбирательств.
Эти навыки являются основой надежной практики цифровой криминалистики. Обеспечивая правильный сбор доказательств и поддержание их целостности, вы закладываете основу для успешного расследования.



