前々回(dd)、前回(dcfldd)に続いて、フォレンジクス前準備のコピー(証拠保全)作業を行うツールの話。
dd、dcfldd、dc3ddはほぼ同じ機能を持つツールで、後に行くほどフォレンクス向けの高機能となります。
dc3dd=dc3+dd
dc3:アメリカ国防総省DC3(Defense Cyber Crime Center)
3つのツールの比較表
| 項目 | dd | dcfldd | dc3dd |
|---|---|---|---|
| 基本コピー機能 | ○ | ○ | ○ |
| 進捗表示 | △ (オプションにstatus=progressを指定) | ○ | ○ |
| ハッシュ計算 | × | ○ (同時計算可) | ○ (同時計算可) |
| ハッシュログ出力 | × | ○ | ○ |
| 複数出力 (同時コピー) | × | ○ | △ (一部可) |
| 分割出力 | × | ○ | ○ |
| エラー処理強化 | △ | ○ | ◎ |
| Verify (コピー後検証) | × | × | ○ (自動検証可能) |
| 開発主体 | GNU | DoD DCFL | DoD DC3 |
つまり “dc3dd” は、 “dcfldd” に比べて、自動検証を行ってくれるという利点があります。
ヘルプ表示
15-Forensics ー Digital Forensics ー dc3dd
にてヘルプが表示されます。


ヘルプは “dc3dd –help” でも表示されます。
実行
まずはコピー元の確認を行います。
コピー元の確認
今回もコピー元には、15年前くらいに使っていた32GBのUSBメモリを使用します。

lsblkコマンドでファイル名を確認します。

ターゲットのファイル名は、 “/dev/sda” です。
デスクトップにマウントされている名称ではありません。
コピー実行
下記構文にてコピーを実行します。
sudo dc3dd if=入力ファイル hof=出力ファイル hash=ハッシュ log=ログファイル
- if=:コピー元ファイル(lsblkコマンドで特定します)
- hof=:コピー先ファイル(検証付きのオプション。普通の “of=” オプションに加えてハッシュの検証を行います))
- hash=:ハッシュアルゴリズムの指定(md5, sha1, sha256, sha512):複数指定可能
- log=:ハッシュや検証結果のログファイルの指定
ハッシュは複数の指定が可能です。
下の例ではハッシュアルゴリズムは、md5とsha256の2種類設定しています。
実行結果
実行結果です。32GB分のコピー&検証処理に26分かかりました。

ハッシュ値と検証結果の表示
input時とoutput時でハッシュ値を計算し、それを比較検証しています。
ハッシュ値が一致しているので行頭に {OK} の表示が出ています。
コピーとログの確認
コピーとログが生成されています。

ログ表示
ログでも同じ表示です。

補足)実行手順のまとめ
ツール内で行われているコピー手順をまとめると以下の通りです。
- “if=” で指定したファイルからコピーデータを入力
- 入力データをコピーしながら入力ハッシュも同時に計算
- 入力コピー終了(=出力ファイル完成)後に出力ハッシュを計算
- 入力ハッシュと出力ハッシュを比較検証
- ログ保存
まとめ
これまで、ほぼ同機能の “dd” コマンド、 “dcfldd” ツール、 “dc3dd” ツールを取り上げました。
この3者のうちでは “dc3dd” が、本番のフォレンジック作業で最も利便性が高いようです。
次回は、これを解析する “autopsy” を取り上げたいと思います。


コメント