Создание криминалистического образа диска
Этот урок объясняет, как снять побитовый образ диска и почему его, а не оригинал, анализируют.
Криминалистический образ — это побитовая (bit-for-bit) копия носителя, включающая не только файлы, но и удалённые данные, slack space и неразмеченные области.
Обычная копия файлов (например, cp или перетаскивание в проводнике) переносит только видимые файлы и теряет всё остальное: удалённое, остатки в slack space, метаданные. Криминалист же копирует диск целиком, бит за битом, чтобы образ был неотличим от оригинала и содержал всё. Это фундаментальный принцип дисковой форензики: мы анализируем не «файлы с диска», а полный слепок носителя, в котором сохранена даже та информация, которую файловая система считает несуществующей.
Здесь же действует золотое правило криминалистики — работать с копией, а не с оригиналом. Оригинал после снятия образа убирают в защищённое хранилище и больше не трогают; весь анализ ведут над образом (а лучше над его рабочей копией). Так оригинал остаётся эталоном, к которому при споре всегда можно вернуться и сверить хеш. Всё это, разумеется, относится к носителям, которые вы имеете право исследовать: своим, корпоративным с санкции владельца, или учебным.
Зачем write-blocker
Чтобы при подключении исходного диска ОС случайно ничего на него не записала (а она норовит обновить журналы, метки времени, индексы), используют write-blocker — аппаратный или программный барьер, пропускающий только чтение. Это гарантирует неизменность оригинала во время снятия образа.
Опасность не теоретическая. Стоит подключить диск к рабочей станции — и операционная система сама, без вашего ведома, может смонтировать тома, обновить время последнего доступа, переиндексировать содержимое, записать точки восстановления или «починить» журнал файловой системы. Каждая такая запись — изменение оригинала, то есть порча доказательства. Аппаратный write-blocker физически блокирует команды записи на уровне интерфейса; программный — запрещает монтирование на запись. На практике аппаратный блокировщик надёжнее, и его применение обязательно фиксируют в журнале (модель, серийный номер).
Снятие образа утилитой dd
Классический инструмент — dd (и его криминалистические версии dcfldd, dc3dd, которые сразу считают хеш).
# Побитовая копия диска /dev/sdb в файл-образ
# if = input file (источник), of = output file (образ)
# bs = размер блока, conv=noerror,sync — продолжать при ошибках
sudo dd if=/dev/sdb of=evidence.img bs=4M conv=noerror,sync status=progress
# Криминалистическая версия сразу считает хеш:
sudo dc3dd if=/dev/sdb of=evidence.img hash=sha256 log=dc3dd.logВажно: if — это оригинал (только чтение через write-blocker), of — создаваемый образ. Перепутать местами if и of — катастрофа: можно затереть оригинал. Всегда перепроверяют параметры.
Параметры выбраны не случайно. Опция conv=noerror,sync заставляет dd не падать на повреждённых секторах (на старых или сбойных дисках это частая ситуация), а заменять нечитаемый блок нулями той же длины — так смещения в образе не «съезжают» и образ остаётся побитово выровнен с оригиналом. Параметр bs=4M задаёт размер блока чтения/записи и влияет в основном на скорость. А status=progress показывает ход копирования, что важно: снятие образа диска на терабайты может идти часами, и нужно видеть, что процесс жив. Криминалистические варианты dc3dd/dcfldd вдобавок параллельно считают хеш и пишут подробный лог — это экономит шаг и сразу даёт материал для цепочки хранения.
Форматы образа
- RAW (.img/.dd) — «сырой» побайтовый дамп, максимально совместим.
- E01 (EnCase) — сжатие, встроенные хеши и метаданные дела; популярен в индустрии.
- AFF — открытый формат с метаданными.
RAW прост и работает где угодно, но занимает столько же места, сколько исходный диск, и сам по себе не несёт метаданных. E01 удобнее для «боевой» работы: сжимает пустые области, встраивает контрольные суммы по сегментам (что позволяет заметить повреждение конкретного куска) и хранит сведения о деле прямо внутри. AFF — открытая альтернатива с похожими возможностями. Выбор формата фиксируют в документации дела.
Отдельно стоит сказать про размер. RAW-образ диска на 1 ТБ займёт ровно 1 ТБ — даже если реальных данных там 50 ГБ, ведь копируются и все «пустые» области. Поэтому для хранения и передачи часто выбирают сжимающие форматы (E01) или сжимают RAW отдельно. Но важно понимать: сжатие — это про экономию места, а не про потерю информации. Образ остаётся побитово полным; восстановив его из сжатого вида, вы получите тот же поток байтов и тот же хеш. Криминалистическая ценность от формата не зависит — зависит лишь удобство работы и хранения.
Как работает под капотом
Диск для dd — это просто длинная последовательность байтов (блочное устройство /dev/sdb). Утилита читает её блоками и пишет в файл, не интересуясь файловой системой. Поэтому в образ попадает абсолютно всё, включая «пустое» место, где на самом деле лежат остатки удалённых данных.
Именно эта «слепота» dd к файловой системе и делает образ криминалистически ценным. Утилита не спрашивает, какой это диск — NTFS, ext4 или вовсе неформатированный, — она копирует поток байтов как есть. Поэтому в образ войдут и зоны, помеченные как свободные, и slack space, и неразмеченные области между разделами. Дальше уже задача аналитика — интерпретировать эту ленту байтов: смонтировать тома только на чтение, восстановить удалённое, провести carving. Сам же образ остаётся честным и полным слепком.
Оригинал /dev/sdb ==write-blocker (RO)==> dd ==> evidence.img
[файлы|удалённое|slack|свободно] ----- всё целиком ----->
|
SHA-256 (верификация)Частые ошибки
- Копировать файлами вместо образа. Теряется удалённое, slack и метаданные.
- Перепутать if и of. Можно перезаписать оригинал — необратимо.
- Работать без write-blocker. ОС изменит оригинал при подключении.
- Не считать хеш. Без верификации нельзя доказать точность копии (об этом следующий урок).
- Анализировать оригинал, а не образ. Любая работа должна идти над копией, оригинал — в хранилище.
Итоги
- Криминалистический образ — побитовая копия всего носителя, а не только файлов.
- Оригинал подключают через write-blocker (только чтение) и не изменяют.
- Снимают
dd/dc3dd; внимательно различаютif(оригинал) иof(образ). - Работают с копией; оригинал убирают в хранилище как эталон.