12章
Hands-on-2
ここでは、CDIR-Aに含まれるプリフェッチ調査ツール「prefetch」により、複数のプリフェッチファイルから、実行ファイルの実行履歴や使用リソース一覧を抽出するハンズオンを行います。
CDIR-Aは、以下のURL(株式会社サイバーディフェンス研究所の公式Githubリポジトリ)から入手できます。(すでに最新版をセットアップ済みであれば、改めてダウンロードする必要はありません)
https://github.com/CyberDefenseInstitute/CDIR-A
解析対象のプリフェッチファイル
このハンズオンで解析対象とするプリフェッチファイルは、演習用データの次の相対パスに保存されています。
s12\h2\DESKTOP-G6RKBG5_20210319173608\Prefetch
エクスプローラーで上記「Prefetch」フォルダを開いてみましょう。

これらのプリフェッチファイルは、CDIR-C(CDIR Collector)により、サンプルPCから保全したものです。
サンプルPCでは、Windowsの正規プロセスである「svchost.exe」に偽装した実行ファイルが起動されていました。プリフェッチファイルを解析して、「svchost.exe」に偽装した実行ファイルのファイルパスや実行履歴、使用リソースを確認してみましょう。
prefetch(CDIR-A)の実行
prefetch(CDIR-A)を使用して、上記の解析対象プリフェッチファイルから、実行履歴や使用リソース一覧をCSVファイルに出力します。
コマンドプロンプトを起動し、以下の実行手順例を参考に、prefetch を実行して下さい。
1 cdコマンドでCDIR-A の「parser」フォルダ(prefetch.exeが保存されたフォルダ)へ移動
cd C:\CDIR-A\parser
- 出力先フォルダ(-o オプション)と解析対象プリフェッチファイルのフォルダを指定して、prefetchを実行
prefetch -o C:\prefetch-out C:\_data\s12\h2\DESKTOP-G6RKBG5_20210319173608\prefetch
※ 出力先フォルダ(ーo)は、任意のフォルダ名を設定します(※ regrunsと違い、存在しないフォルダ名の場合はエラーになりますので、事前にフォルダを準備して下さい)。
※ CDIR-Aの仕様上、出力先フォルダにすでに同じ出力ファイル名があると、上書きせずにデータを追加するため、データ追加の必要がなければ新規作成したフォルダの指定を推奨します。
- 以下の処理実行メッセージが表示されれば完了
Saved: C:\prefetch-out\prefetch_output.csv
Saved: C:\prefetch-out\prefetch_list_output.csv
この結果、指定した出力フォルダに、以下のファイルが作成されます。
- prefetch_output.csv:実行履歴
- prefetch_list_output.csv:使用リソース一覧
出力したCSVファイルの分析
実行履歴の調査
まず、上記で出力した実行履歴(prefetch_output.csv)をダブルクリック等で開きます。ここでは、LibreOfficeの表計算アプリケーション(Calc)が、CSVファイルのデフォルト編集用アプリケーションとして設定されている想定で説明します。
「テキストのインポート」設定画面が表示されますので、「文字エンコーディング」には「Unicode(UTF-8)」、区切り文字には「タブ」を指定して下さい。
表示されたCSVファイルから、実行履歴のリストをプリフェッチファイル名で並べ替えて、「svchost.exe」のプリフェッチ情報を確認しましょう。
列見出し「Prefetch Name」のセルを選択し、「データ」ー「並べ替え」をクリックします。

並べ替え後、検索機能(Ctrl + F キー)を使って、「svchost.exe」をキーワード検索します。
※ 次の表示例では、列見出しの先頭行を固定にしています。

「svchost.exe」のプリフェッチファイルは、合計10個あります。
それぞれの実行ファイルパス「Exe Path」を確認すると、以下の1件のみ、他の「svchost.exe」と異なるファイルパスから起動されていることがわかります。
プリフェッチファイル名(Prefetch Name):
SVCHOST.EXE-61AF6B27.pf実行ファイルパス(Exe Path):
\USERS\PUBLIC\SVCHOST.EXE(C:\Users\Public\svchost.exe)
上記のプリフェッチファイルに記録された「svchost.exe」の実行ファイルは、ファイルパスが他と異なり、かつ実行回数も1回のみであるという状況から、正規の「svchost.exe」に偽装されたファイルであると考えられます。
※ 実際に、正規の「svchost.exe」は 「C:\Windows\System32\svchost.exe」に配置されています。同じ実行ファイルパスであるにもかかわらず、複数のプリフェッチファイルが作成されている理由は、実行時のパラメータやオプション指定が異なるものと考えられます。
使用リソースの調査
次に、使用リソース一覧(prefetch_list_output.csv)をダブルクリックして、表計算アプリケーション(Calc)で開きます。偽装された「svchost.exe」の使用リソースを、正規の「svchost.exe」と比較してみましょう。
「Prefetch Name」のセルを「SVCHOST.EXE」でフィルタリングし、比較しやすいようにします。「データ」ー「オートフィルタ―」をクリックして下さい。

続いて、「Prefetch Name」のセルに表示されたドロップダウンボタン(▼)をクリックし、「標準フィルター」の入力欄に「SVCHOST.EXE」と入力して、OKボタンをクリックします。

「svchost.exe」のプリフェッチファイル(10個)のみにフィルタリングされました。使用リソースを比較してみましょう。
正規のものと比較すると、偽装された実行ファイルのプリフェッチファイルである「SVCHOST.EXE-61AF6B27.pf」に記録された使用リソースは、明らかに数が少なく、リソースのファイル名も異なっています。

ここまでの調査結果から「C:\Users\Public\svchost.exe」は、Windows正規のシステムプロセス実行ファイル「svchost.exe」に偽装した不審ファイルの可能性を疑うべきでしょう。理由は次の点が挙げられます。
- システムフォルダではない「
C:\Users\Public」に格納されている - 実行回数が1回のみである
- 使用リソースが正規の「svchost.exe」と大きく異なる
このように不審な実行ファイルを発見した場合は、実行ファイル自体はもちろん、使用リソースについてもハッシュ値を算出し、IoC情報を検索するなどして、悪性の有無を調査しましょう。
インシデントレスポンスや脅威ハンティングにおいては、「何らかのマルウェアに感染している可能性があるが、ファイル名も感染時期もはっきりしない」という状況で調査を行う場合もあります。そういったケースでは、プリフェッチファイルから抽出した実行履歴を対象にした、次のような調査手法も有効です。
- 実行ファイルパス名で並べ替えて、通常のインストール場所とは異なるフォルダから起動された、同名または類似名の実行ファイルを調査
- 実行日時で並べ替えて、ユーザーが操作していない時間帯に起動された実行ファイルを調査
問題
- 偽装された「svchost.exe」が実行された後、最も直近に実行された、実行回数が1回のみの実行ファイルを調査して下さい。
- Flagは、上記直近に実行された実行ファイルの使用リソースで、拡張子「.manifest」のファイル名(フォルダパスは省略)を回答して下さい。
- 回答例:ABCD.MANIFEST (アルファベットの大文字小文字は問いません)