自分のこと、知れてますか。　〜自分のPCをフォレンジック〜

フォレンジックの練習として、自分のPCに残された痕跡を調べてみます。
何個も手法はあると思いますが、そのうちのいくつかを実践してみました。

## プリフェッチファイル
Windows環境においてC:\Windows\Prefetchにある、プリフェッチについてまとめる。

プリフェッチ・・・CPUがデータをあらかじめキャッシュメモリに読み出しておく機能のこと(weblioより)
#### Prefetchの特徴
- プログラムが起動された10秒後に、C:\Windows\Prefetchフォルダに、ファイル名が「プログラム名-フルパスのハッシュ値.pf」として作成されるファイル
- pfファイルは、直近の128件について作られる
- ハッシュ値は、プログラムのフルパスから算出される
- つまり、異なるハッシュ値のファイルは異なるフォルダからじっこうされたと言える
- PF(プリフェッチ)ファイルには、プログラムのフルパス、実行日時、実行回数、プログラムが起動時に読み込んだファイル名（DLLファイルなど）、ボリューム関連情報が記録される
- コマンドラインやオートラン機能（autorun.inf）などにより実行したプログラムについてもPFファイルが作成される
- 管理者権限がないと確認できない
- Windows7以降で、SSDを搭載しているとPrefetchが無効化される場合がある
- 一部の環境と相性が悪く、Windows起動時にスタートアップに登録されているアプリケーションがエラーを起こして正しく起動できなくなることがある


##### 考察

> Windows7以降で、SSDを搭載しているとPrefetchが無効化される場合がある

は、なぜかを考察した。

SSDは読み書きのスピードが速いため、Prefetchをしなくても十分であり、一部の環境と相性が悪くてアプリケーションの起動に問題が生じるリスクを考えると、Prefetchのメリットがあまりないからではないか、と考えた。

###PFファイルの中身
今回、この解析ソフトを用いる。
https://www.nirsoft.net/utils/index.html

一部白塗りにしているが、このような画面である。
![スクリーンショット 2020-11-14 104739.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411088/bbc1859a-504c-6afa-7986-f7f6d7e322b4.png)

・プリフェッチファイル名
・作成日時
・変更日時
・ファイルサイズ
・プロセスファイル名	
・プロセスの場所
・実行された数
・最後に実行された日時
・プロセスの欠落
が表示されている。

上の段がPFファイルのリスト、下の段がそのPFファイルの情報を表している。
PFファイルの編集ができるため、マルウェアの感染の際のPFファイルの削除に使える。
ワンクリックで項目ごとにソートが行われるのも便利だった。


## イベントビューアー(GUI)
![スクリーンショット 2020-11-15 192215.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411088/9547cab8-f1cf-f0d3-65ef-36678610ae48.png)
これはwindowsのメニューから見られる。
Windows内で発生した複数のプログラムが関わる特定の作業の経過などを取り出し、その経過を追えるのがこれの目的である。
アプリケーションの実行時のエラー・正常終了を、発生するごとに出力してくれている。


## イベントログ(CUI)
上で書いたイベントビューアに似た、イベントログが出力されている.evtxファイルは、```C:\Windows\System32\winevt\Logs```のディレクトリ内に存在している。
これも管理者権限を持ってしか見ることができない。
イベントログは、作業が終わったものについての記録である。
ここに出力されるevtx形式のファイルは、例えば先ほど書いたイベントビューアで見ることができる。
```C:\Windows\System32\winevt\Logs```のディレクトリから取ってきたデータをちゃんとイベントビューアで見ることができたのが、下の図である。
![スクリーンショット 2020-11-15 223519.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411088/1b2241de-8fe6-7954-ff89-6f8e5c774902.png)

アプリケーションの起動や終了、実行時のエラー出力などのイベントについて一つずつ出力がされているのが分かった。
イベントの画面の上の項目が並ぶタブで、日時やカテゴリなど毎に並べ替えができるのがとても便利だった。

## FTK Imager
フォレンジックツールで、取得したイメージに対して、権限に関係なく情報にアクセスすることができる。
ディスクを直接解析し、調査対象ディスクの内容を書き換える機能を有していないため、証拠の改変のリスクを最小限に抑えることができる。
ディスクイメージを作成したり、エビデンス取得ができる。
例えば、下の画像ではこのFTK Imagerの言語設定と思われるファイルを開いてみた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411088/eec37206-5989-e39f-21af-ca8695df716b.png)

最終編集日時やhexdumpした結果を見ることができる。
以前このツールをフォレンジックで用いた際には、削除済みのアイテムに赤いバツ印 :x:がつく機能に感動した。
証拠隠滅をはかる際にユーザが重要なデータを削除することを想定すると、とても有用な機能だ。

この出力が実行痕跡だと思った根拠は、このツールによってファイルやイメージをエクスポートすることができるため、イメージ獲得時から改ざんのリスクがないまま、もし実行ファイルが実行に伴ってデータの中身が書き変わるものであれば、その変化を実行の根拠とすることができるからである。
なお、フォレンジック自体はAutopsyなどのフォレンジックツールを使う。

## Cmd History
コマンドプロンプトが開いている状態で、F7を押すとコマンド実行履歴を見ることができる。
![Inkedスクリーンショット 2020-11-16 001108_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/411088/7728366e-1a13-da87-d0f0-ddaafa0af827.jpeg)

これは、このF7ボタン実行時に参照するログファイルがどこのディレクトリにいるのか探している最中のコマンドである。
doskeyコマンドでも同じことができた。

```
doskey /history
dir
cd C:\path\to\cmdhistory.log
cd C:\path\to
code cmdhistory.log
code C:\cmdhistory.log
code C:\CmdHistory.log
doskey /history
```

(参考)
http://sectanlab.sblo.jp/article/115076023.html
https://www.losttechnology.jp/Tips/prefetch.html
http://sectanlab.sakura.ne.jp/report/Manual_FTKimager.pdf