フォレンジック調査における保全手順

#はじめに
フォレンジック調査の最初のステップが保全です。正確には証拠保全と書くべきですが、単に保全と呼ばれることが多いと思いますので保全で統一します。

フォレンジック調査は保全なしには実施不可能であるため、フォレンジックサービスを提供している会社や、フォレンジック調査を依頼する側にとって、保全は非常に重要な作業です。とはいえ意外と具体的な手順を記載した記事を見かけないため、書いてみることにしました。本記事に記載した手順は、ごく一般的な手順であるため、組織を問わずに利用可能だと思います。

#注意事項
保全の厳密な手順は、デジタルフォレンジック研究会の証拠保全ガイドラインを参照してください。ここで紹介する保全手順は、インシデントレスポンスにおける保全手順です。
**この手順で保全を行っても、裁判における証拠として認められない可能性があるのでご注意ください。**

#保全方法の種類
保全にはいくつかの種類があります。以下に紹介します。
##ディプリケータによる保全
本記事では記載しません。ディプリケーターはフォレンジックサービスを提供している会社や警察等の機関が所有する保全専用の機械です。一般人には手に入りませんし、それなりの金額になります。ディプリケーターによる保全方法は、取扱説明書や販売元にお問い合わせください。

##CDブートによる保全
保全用のOSを格納したCDやUSBメモリなどからブートして保全します。多くの環境で使用可能な汎用的な方法です。本記事で紹介します。

##OSが起動した状態で保全
Chain of Custodyの観点ではあまりよろしくない手順ですが、OSを起動した状態で保全する手順です。ディスク全体またはパーティションが暗号化されている場合に採用します。
通常はWindowsのクライアントPCで採用します。Linuxでも実施可能ですが、Linuxの場合は通常ディスクが暗号化されることが少ないため、通常は前述のCDブートによる保全を採用します。
この手順については別の記事で紹介予定です。

#保全手順
##CDブートによる保全
###保全用OSの準備
CDブートするだけであれば、Knoppixのようなlive CDを使えば可能です。しかし、保全用のツールがあらかじめインストールされているディストリビューションを使ったほうが良いです。
私は[Tsurugi Linux](https://tsurugi-linux.org/)をオススメします。リンク先のDownloadページから入手できるTsurugi Acquire [32-bit]を使います。保全に特化しており、保全に必要なツールにだけを厳選して収録しています。
また、[公式ドキュメント](https://tsurugi-linux.org/documentation_tsurugi_acquire.php)によれば、古い環境でも動作するように作られているようです。これは非常に重要な点です。CDブートによる保全では、ブートしなければ保全できません。多くの環境でブートすることは非常に重要です。
Tsurugi Acquireをダウンロードしたら、USBメモリやCDに書きこみます。現在のWindowsであれば、ISOファイルを右クリックし、「ディスクイメージの書き込み」を選択するだけでUSBやCDに書き込むことができます。（昔は専用のソフトが必要でした。。）

###ブートする前に
保全先となるHDDはまだ接続してはいけません。保全対象と混同するリスクを少しでも下げるためです。また、保全先HDDは事前にFAT32でフォーマットしておきます。


###ブートするデバイスの選択
Tsurugi Acquireの準備ができたら、保全したいマシンにUSBメモリやCDを挿入します。マシンを起動し、USBメモリやCDから起動するように設定します。この手順が最も難しいところです。なぜなら、マシンによって手順が大きく異なり、手順として記載することが難しいためです。
私の経験則では、電源投入直後から、F2、F10、F12、Delのいずれかを連打することで、起動するデバイスを選択できる画面が表示されることが多いです。メーカーによっては手順を公開している場合もあります。

###OS起動前の設定
すぐに起動したいところですが、日本語キーボードを使用している方はF3キーを押し、キーマップを日本語にした方が良いです。（日本語キーボードかどうかわからないという方は日本語キーボードだと思います）
普段から英語キーボードを使用している人はこの手順は必要ありません。

![tsurugi1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/60e84f4f-2556-2a3f-127c-bb3c3737a4b2.png)

GUIモードと、テキストモードの2つがあります。現在の環境であれば、ほぼGUIモードが使えると思います。以降はGUIモードを想定しますが、テキストモードでも手順は同じです。

![tsurugi2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/8e22d222-e5be-116c-bde2-3cbef9a5fd03.png)

###保全対象の確認
Tsurugi Linuxが起動したら、ターミナルを起動し、保全対象を確認します。
`fdisk -l`

以下の例だと、80GBのディスクが保全対象です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/ae8bf8ac-204f-bf41-6b3c-25dfa19bfb49.png)

保全対象を確認できたら、保全先となるHDDを接続します。
再度fdiskを実行すると、/dev/sdbが新たに確認できます。
**※ここで保全先HDDが確認できない場合、HDDの不良やUSBポートの不良の可能性があります。USBポートが不良の場合は、半刺しすると認識する場合があります。**

`fdisk -l`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/c308e269-5017-3e6d-1a23-107b50a18a25.png)

###書き込み禁止の解除
Tsurugi Linuxは、保全対象に誤って書き込むのを防ぐため、デフォルト設定でディスクへの書き込みが禁止されています。そのため、/dev/sdbおよび/dev/sdb1への書き込みを許可する必要があります。
GUIモードで起動している場合は、デスクトップにあるTSURUGI device unlockerを使えば書き込みを許可することができます。
書き込み禁止を解除したいデバイス（ここでは/dev/sdb）を選択して、Unlockを押すだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/f2a23f73-595c-7777-836b-c9387190cba6.png)

以下のように、/dev/sdbがread-writeになっていれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/4cfd907e-7343-cbf6-a53b-3002f721bdc9.png)

テキストモードで起動している場合は、blockdevコマンドを使用します。
--reportオプションで現在の設定を表示、--setrwオプションで指定したデバイスへの書き込みを許可します。
`blockdev --report`
`blockdev --setrw /dev/sdb /dev/sdb1`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/db02ac0b-dc09-f0d7-9d00-65469347bd07.png)

###保全先ディスクのマウント
保全先ディスクをマウントします。
`mount /dev/sdb1 /mnt`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/df7dd454-9501-9e0e-1638-a52259d306b4.png)

###保全開始
ようやく保全の準備が整いました。保全を開始しましょう。
保全するためのツールはいくつかありますが、ここではftkimagerコマンドを使います。
`ftkimager /dev/sda /mnt/image --e01 --compress 1 --frag 4G`
/dev/sdaは保全対象、/mnt/imageは保全先ディスクに作成するイメージのファイル名（拡張子は不要）です。**この2つは間違えないようによく確認してください。**
上記コマンドでは、--e01オプションでE01形式で保存し、--compressオプションにより圧縮を行っています。圧縮率は最も低い設定(1)にしています。
--fragはファイルを分割するオプションです。FAT32でフォーマットしているため、1ファイルの最大サイズが4GBに制限されています。NTFSなど、他のファイルシステムでフォーマットしている場合は、分割する必要はありません。
個人的な意見ですが、別のディスクにファイルコピーする場合などでは、ファイルを分割しておくと、何らかの原因で途中でエラーになった場合でも最初からやり直しとならずに済むため、特に事情がなければ分割した方が良いと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/5b26a207-0444-ded2-2f33-ad0fbf87deb6.png)


保全が完了すると、E01形式のイメージファイルと、テキストファイルが作成されます。このテキストファイルには保全が完了した日時やハッシュ値が記載されていますので、イメージファイルと共に保管します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/fd4fd467-56a2-ea8b-0f44-1f4bf0c19f5f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/549537/af972c11-c03f-8eb4-e285-abe8adcf0c7d.png)

#まとめ
Tsurugi Linuxを使った保全手順を紹介しました。参考になれば幸いです。