@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

イメージを取るツール

SIFT 環境の中には「SIFT Workstation Cheat Sheet 1.5.pdf」という親切な PDF ファイルが提供されており、ここに Imaging Systems という項目として dcfldd の実行例が記載されています。SIFT に収納されている取得用ツールについては、「SIFT WORKSTATION README and TOOL LIST.pdf」の 5. Digital Evidence Acquisition に記載がありますが、抜粋すると以下が含まれているようですね。

5.1. guymager - GUI Imager
5.2. linen - Guidance Image
5.3. dd
5.4. ddrescue
5.5. dc3dd
5.6. dcfldd
5.7. sdd
5.8. ewfacquire - create EWF (E01) file format images
5.9. aimage

代表的なツールがほぼ含まれてますのでヨリドリミドリという感じですが、最近 AccessData からリリースされた Command Line Versions of FTK Imager(http://www.accessdata.com/downloads.html) については今後の収録になるんでしょうかね。Debian 版と Fedora 版がありますが、Ubuntu版はないので、実行できるのか私にはわかりませんけども、どなたか Ubuntu 上で CLI 版の FTK Imager 使われてます?

とりあえず収録されている linen のバージョンを確認・・・あれ?、Linen 入っているはずなのに見つけられないなぁ、どこに入っているんだろうか...まぁ SIFT 上で Linen 使うケースはすぐに思いつかないのでこれもスルーでいいか。
aimageは実行するとエラーがでますね...ライブラリ入れれば済むんだと思いますが、まぁ使わないからいいや(ぉぃ

dcfldd はコマンドラインなので面倒だ!という場合には、GUI で動作する guymager を sudo guymager などで起動すると、GUI 画面上から DD やら EnCase 証拠ファイル形式でデバイスをイメージファイルとして取得することができます。*1

guymager homepage
http://guymager.sourceforge.net/

DD 形式は単なるバイナリファイルで、デバイスから読み取った内容をそのままファイルに出力したものになります。RAW イメージなどと呼ばれる場合もありますが、TSK&Autopsy を含め、様々なフォレンジックツールでサポートされており、汎用性が一番高いファイル形式になるかと思います。
Expert Witness 形式は、EnCase で使っている .E01 形式のファイルフォーマットになり、デバイスから読み取ったデータ以外に、ヘッダやブロック毎の CRC チェックなどが入る形式です。専用形式であるため、EWF というか EnCase 証拠ファイル形式をサポートしているツールでなければ正常に取り扱うことができません。とはいえ、TSK&Autopsy 含め一般的なフォレンジックツールは EnCase 証拠ファイルサポートしているので、この形式でも特には困らないかもしれません。どちらのイメージ形式を使うかはお好みに応じてになりますが、EnCase 証拠ファイルは整合性を維持する仕組みがあるのと、圧縮を指定することもできたりします。「オレはバイナリエディタしか使わないぜ!!」という方は DD 形式ですね。

guymager って初めて使ってみたんですけが、なかなか便利そうです、ただ、ファイルの分割サイズを画面上から指定できないんですね。

例えば 100GB とかの巨大な一つのイメージファイルを作成するのではなく、2GB 単位でファイルを分割して欲しいとかいう場合には、設定ファイル(guymager.cfg)で制御できるみたいですね。デフォルトでは 640MB で分割になっているので、この辺りは 2000 などの値に修正したほうがよいかもしれません。その昔、CD-R のサイズがまだ小さかった頃の名残ですね。

EwfFormat = Encase5
EwfCompression = FAST
AffCompression = 1
AffMarkBadSectors = TRUE
EwfSegmentSize = 640

試しに上記のデフォルトで 2GB の USB メモリを Acquire してみたのですが、読み取り速度がかなり遅いですねぇ。
VMware経由でUSBデバイスに接続している影響なのかは不明ですが、2GBのUSBメモリ全体をイメージ化するのに 22分かかりました。圧縮無しにしたらもう少し早いかもしれないですが、Ewf形式の処理が遅いのかもしれません。しかし、この速度だとちょっと HDD とかのイメージ作成はありえないかもですねぇ。もし、イメージファイルを作成するのであれば、SIFT 環境上でイメージ作成を実行するのではなく、HELIX とか DEFT で作業した方が早いのではないかと思います。
ちなみに、同じ USB メモリを dcfldd if=/dev/sdc of=usb.dd conv=noerror で実行した場合でも22分かかりましたので、EWF 形式だから遅いってことではないような気がします。読み込みブロックサイズをもっと大きくするなどの対策をすれば早くなるかもしれませんが、いずれにしても SIFT 上からイメージ作成するのはお奨めできない気が個人的にはします。

guymager のログを確認してみたところ、HPA 領域の有無も確認しているんですね、とはいえ USB 接続のデバイスでは HPA や DCO 確認できないので関係ないですけど、ちょうどその辺りの取り扱いが気になっていたので興味深いです。guymager はログもちゃんとしているので、不精かつO型で超適当な私向きのツールな気がします。

GUYMAGER ACQUISITION INFO FILE
==============================

Guymager
========

Version              : 0.4.2-1                                          
Compilation timestamp: 2009-10-02-11.56.29                              
Compiled with        : gcc 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
libewf version       : 20100126                                         
libguytools version  : 1.1.1                                            


Device information
==================
Command executed: bash -c "search="`basename /dev/sdc`: H..t P.......d A..a de.....d" && dmesg | grep -A3 "$search" || echo "No kernel HPA messages for /dev/sdc""
Information returned:
----------------------------------------------------------------------------------------------------
   No kernel HPA messages for /dev/sdc

...以下省略...
<<
HPA・DCO についてはライトブロッカー装置で対応しているものがあれば、そちらで解除させた方が簡単でしょうね。

*1:ddなどのコマンドラインを使う場合も、基本的なコマンドはいつも同じなのでオマジナイとして覚えてしまえばあまり苦にはならないと思います