Создание криминалистического образа диска

Этот урок объясняет, как снять побитовый образ диска и почему его, а не оригинал, анализируют.

Криминалистический образ — это побитовая (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 (образ).
  • Работают с копией; оригинал убирают в хранилище как эталон.
Проверьте себя
1. Чем криминалистический образ отличается от обычного копирования файлов?
AОн быстрее
BЭто побитовая копия всего носителя, включая удалённое и slack space
CОн меньше по размеру
DОн копирует только видимые файлы
2. Зачем при снятии образа используют write-blocker?
AЧтобы ускорить копирование
BЧтобы ОС не записала ничего на оригинал и не изменила его
CЧтобы сжать образ
DЧтобы зашифровать диск
3. Что критично не перепутать в команде dd?
Abs и status
Bif (источник) и of (образ) — иначе можно затереть оригинал
Chash и log
Dconv и sync