Обработка ошибок

  Если во время чтения входного файла dd обнаруживает ошибку, по умолчанию копирование данных прерывается. Если в командной строке присутствует параметр conv=noerror, программа выводит сообщение об ошибке и продолжает работу. К сожалению, в этом случае поврежденные блоки пропускаются, образ имеет неверный размер, а данные располагаются по искаженным адресам.
Для сохранения адресов в образе необходимо использовать флаг sync, заставляющий dd записывать данные в блочном режиме. Если данных недостаточно для заполнения целого блока, данные дополняются нулями. Таким образом, при обнаружении ошибки недействительные данные будут заменены нулями. Недостаток такого решения заключается в том, что полученный образ всегда будет кратным размеру блока, что может не соответствовать фактическому размеру исходного носителя информации. Например, если я выберу размер блока равным 4 096 байт, но размер моего (совсем крошечного) диска составляет 6 144 байта, размер файла образа будет равен 8 192 байта вместо 6 144. Пример командной строки dd с обработкой ошибок: dd if=/dev/hda of=hda.dd bs=2k conv=noerror,sync
Программа dd_rescue, автором которой является Курт Гарлофф (Kurt Garloff) (http://www.garloff.de/kurt/Linux/ddrescue), похожа на исходную версию dd, но режим обработки ошибок включен в ней по умолчанию. Обнаружив ошибку, программа переходит на меньший размер блока и заполняет нулями блоки, которые не удалось прочитать. Программа dd_rescue также умеет копировать данные

от конца диска к началу — автор утверждает, что это может быть полезно при наличии поврежденных секторов.
Криптографическое хеширование
Как правило, для выполнения криптографического хеширования файла при использовании dd приходится пользоваться услугами другой программы (такой, как md5sum). Криптографический хеш-код образа вычисляется для последующей проверки его целостности. Джессе Корнблум (Jesse Kornblum) и Рейд Литцов (Reid Leatzow) из Центра киберпреступности Министерства обороны США создали версию dd с хешированием копируемых данных. В настоящее время существует две версии этой утилиты. Исходная версия dcfldd (http://source- forge.net/projects/biatchux) вычисляет только хеш-коды по алгоритму MD5. Новая версия dccidd (http://www.dc3.gov; также можно отправить сообщение электронной почты по адресу: dcci@dc3.gov) умеет параллельно вычислять хеш- коды MD5, SHA-1 и SHA-256. Переименование программы связано с реорганизацией лаборатории.
В этих программах работают те же базовые параметры, которые описывались ранее для dd. Кроме того, были добавлены новые параметры хеширования. Параметр hashwindow= задает частоту вычисления хеш-кода. Если значение равно 0, то для всего файла вычисляется один хеш-код. Если значение параметра представляет собой число байтов, отличное от нуля, то программа вычисляет промежуточные хеш-коды на заданном расстоянии, а затем вычисляет итоговый хеш-код. Хеш- коды сохраняются в файле, заданном параметром hashlog=.
Программа dcfldd поддерживает только алгоритм MD5, но dccidd поддерживает параметр hash= для определения алгоритма хеширования. По умолчанию выполняется параллельное хеширование MD5 и SHA-1, но вы можете задать значение md5, shal или sha256.
Например, следующая команда создает образ жесткого диска Linux с вычислением хеш-кода через каждые 1 Мбайт: dcfldd if=/dev/hda of=/mnt/hda.dd bs=2k hashwindow=lM hashlog=/mnt/hda.hashes
Журнал хеш-кодов имеет следующий формат:
О              - 1048576: 970653da48f047f3511196c8a230f64c 1048576 - 2097152: b6d81b360a5672d80c27430f39153е2с
103809024 - 104857600: b6d81b360a5672d80c27430f39153е2с 104857600 - 105906176: 94al71ec3908687fdlf456087576715b Total: 28dd34393f36958f8fc822ae39800f37c3
Строка начинается с диапазона байтов, для которого вычисляется хеш-код, и завершается значением хеш-кода. Последнее значение представляет собой хеш- код всего образа. Файл журнала dccidd имеет несколько иную структуру: в него включается хеш SHA-1, а поле диапазона дополняется нулями. Приведу фрагмент файла с окном хеширования, равным 512 байтам (хеши SHA-1 и MD5 обычно выводятся в одной строке): - 000511: 5dbdl21cad07429edl76f7fac6al33d6 09cae0d9f2a387bb3436al5aa514bl6f9378efbf 000512 - 001023: 91cf74d0ee95d4b60197e4c0ca710be4 Of71d8729ad39ae094e235ab31a9855b2a5a5900

001024 - 001535: 8a0al0f43b2bcd9el385628f7e3a8693 641b9b828e41cd391f93b5f3bfaf2dlb7b393da0
Упоминавшаяся ранее Windows-версия dd Джорджа Гарнера также содержит встроенную поддержку MD5. При передаче ключа -md5sum программа Гарнера хеширует файл по алгоритму MD5. Результат хеширования сохраняется в файле при помощи ключа -md5out.
Итоги
В современных цифровых расследованиях большинство улик находится именно на жестких дисках. Вероятно, ситуация сохранится в течение многих лет (по крайней мере до тех пор, пока содержимое всех жестких дисков не будет шифроваться). Снятие данных играет важную роль в процессе расследования: если оно выполняется некорректно, вы можете лишиться данных для расследования. В этой главе была представлена общая теория клонирования данных и рассмотрен практический пример использования dd. Программа относительно проста, но она работает в режиме командной строки, а обилие параметров может создать путаницу.
Библиография MyKey Technology, Inc. «Technical White Paper: No Write Design Notes.» 2003. https://mykeytech.com/nowritepaperl.htmL Skoudis, Ed, and Lenny Zeltser. Malware: Fighting Malicious Code. Upper Saddle River: Prentice Hall, 2004. Technology Pathways, Inc. «ProDiscover Image File Format». 2003. https:// www.techpathways.com/uploads/P{roDiscoverImageFi LeFormatv4.pdf. U.S. Department of Justice. «Test Results for Disc Imaging Tools: SafeBack 2.18» NCJ 200032, June 2003. https://www.ncjrs.org/pdffi4esl/nij720032.pdf.


<< | >>
Источник: Кэрриэ Б.. Криминалистический анализ файловых систем. 2007

Еще по теме Обработка ошибок:

  1. Обработка ошибок
  2. 4.5. Понятие ошибок и недобросовестных действий
  3. 21.2. Издержки ошибок в гражданских делах
  4. Интеграция: тысяча смертельных ошибок
  5. МЕНЬШЕ ОШИБОК
  6. Навык № 25 Избегайте десяти самых частых ошибок
  7. ПОЧЕМУ ОТСЛЕЖИВАНИЕ ЗАЩИЩЕНО ОТ ОШИБОК
  8. Статья 213. Исправление описок и явных арифмети- ческих ошибок в решении
  9. По пути ошибок: стратегии, которые заводят в тупик
  10. Глава 2 УСТРАНЕНИЕ ДИАЛЕКТНЫХ ОШИБОК В РЕЧИ СТУДЕНТОВ
  11. Snow Brand Milk не делает выводов из собственных ошибок
  12. Обработка корпуса
  13. Обработка камня
  14. Обработка камня