11章

2 Runキーのファストフォレンジック

レジストリファイルの解析

ここでは、調査対象PCから保全したレジストリファイルを解析し、Runキーを悪用した永続化の痕跡を調査する方法を紹介します。

保全したレジストリファイルの解析手順例

レジストリファイルの解析に対応したツールは数多くあります。ここでは株式会社サイバーディフェンス研究所のファストフォレンジック用解析ツール「CDIR Analyzer(CDIR-A)」に含まれる、「regruns」を紹介します。

regrunsは、各種レジストリファイル(SOFTWAREやNTUSER.datなど)を一括でパースして、永続化に関わるレジストリキー(Runキー)を抽出し、CSVファイルに出力することができます。

なお、事前に調査対象PCの各レジストリファイルを、証拠保全ツールの「CDIR Collector(CDIR-C)」(証拠保全ツール)で外部記録媒体などに保全しておく必要があります。

稼働中の調査対象PCで、regrunsによりシステムフォルダ内のレジストリファイルを直接解析しようとしても、OSの保護機能により何も出力されませんので注意して下さい。

CDIR-CとCDIR-Aを使用した実際の解析手順は、以下のような流れになります。


Lecture02_cdir


  1. 調査対象PCで、CDIR-Cを実行し、レジストリファイルを外部記録媒体やファイルサーバに保全する(上の図では、保全先として、CDIR-Cのデータを保存したUSBメモリを使用)。

  2. 解析用PCへ上記の外部記録媒体もしくはファイルサーバを接続し、CDIR-Aのregrunsにより、保全したレジストリファイルから永続化に関係するレジストリキーを抽出し、その結果を解析用PC内にCSVファイルの形式で出力する。

     

regrunsは、コマンドプロンプトから以下のコマンドにより実行します。

regruns  -o  "CSVファイルの出力フォルダ"   "CDIR-Cで収集した解析対象レジストリファイルの保存フォルダ"

例: regruns -o C:\work\reguruns_out D:\cdir-c\PC-Sales33_20230521142046\Registry

 

以下は、regrunsの実行例です。

cd C:\CDIR-A\parser

regruns -o C:\work\reguruns_out D:\cdir-c\PC-Sales33_20230521142046\Registry

(実行結果)
Finished: 'D:\cdir-c\PC-Sales33_20230521142046\Registry\SYSTEM'
Finished: 'D:\cdir-c\PC-Sales33_20230521142046\Registry\SOFTWARE'
Finished: 'D:\cdir-c\PC-Sales33_20230521142046\Registry\user015_NTUSER.dat'
  …(中略)…
Saved: 'C:\work\reguruns_out\regruns_output.csv'

 

CSVファイルは、指定した出力フォルダに「regruns_output.csv」というファイル名で保存されます。

 

regrunsにより抽出されたデータの分析

regrunsの出力ファイル「regruns_output.csv」を、表計算ソフトウェアを使用して分析し、永続化の痕跡を調査します。

CSVファイル内には、マルウェアによる永続化の痕跡が記録される多数のレジストリキー(Runキー)が抽出されています。表計算ソフトウェアの検索機能やフィルター機能などを活用して分析しましょう。

以下の表は、CSVファイルへ出力される項目と内容の一覧です。表の上段は、実際にCSVファイルに出力される列(カラム)の見出しになります。

ComputerName HiveName Key Name Value LastModified TimeZone
コンピュータ名 レジストリファイル名 レジストリキー 値の名前 値のデータ レジストリキーの最終更新日時 タイムゾーン


(実際の出力例)

Lecture02_regruns_output



各項目の具体的な出力内容は以下です。

  • ComputerName

    CDIR-Cを実行した収集元コンピュータ名が表示されます。

    なお、CDIR-A全般の留意事項となりますが、コンピュータ名はCDIR-Cによる保全時に自動作成される収集用フォルダ名から引用して表示しています。CDIR-Cが自動作成したフォルダ名(<コンピュータ名>_<収集日時>)は変更しないで下さい。フォルダ名がCDIR-Aのルールに合致していないと、実行エラーになる場合があります。

  • HiveName

    レジストリキーが記録されたレジストリファイル名(SOFTWARE、NTUSER.datなど)が表示されます。なお、CDIR-Cで収集した場合、「NTUSER.dat」のファイル名には、各ファイルが属するユーザーアカウント名が付加されています(例:User01_NTUSER.dat)。

  • Key

    各レジストリファイルから抽出された、永続化に関係するレジストリキー名が表示されます。なお、レジストリハイブ名(HKEY_LOCAL_MACHINE、HKEY_CURRENT_USER等)は省略されます。

    また、HKEY_LOCAL_MACHINEのレジストリキー場合、レジストリハイブの次のキー階層であるレジストリファイル名も省略されます(上記「HiveName」に表示されます)。

    例)

    • 「HKEY_LOCAL_MACHINE\ Software\ Microsoft\Windows\CurrentVersion\Run」の場合は、以下のように表示

      • HiveName:SOFTWARE

      • Key:Microsoft\Windows\CurrentVersion\Run 

  • Name

    「値の名前」が表示されます。

  • Value

    「値のデータ」が表示されます。マルウェアによる永続化の痕跡の場合は、マルウェアの実行ファイルパスになります。

  • LastModified

    レジストリキーの最終更新日時が表示されます。各「値」ごとの最終更新日時ではなく、レジストリキーに属するいずれかの「値」に対する更新が行われた最終の日時であることに注意して下さい。最後に更新された「値」がサイバー攻撃やマルウェアによるものと考えられる場合は、攻撃発生やマルウェア感染日時を推定する判断材料になります。

  • TimeZone

    収集元PCに設定されたタイムゾーンが表示されます。上記LastModifiedの日時は、このタイムゾーン情報を元に、レジストリ内部の世界標準時:UTCから自動変換されています。

     

不審な永続化痕跡の検出

上記の出力項目から、次のような不審点に着目して検索やフィルタリングを行い、効率的にマルウェアによる永続化の痕跡を探します。

  • Value(実行ファイルパスで着目すべき不審点)
    • 「tmp」や「temp」を名称に含むフォルダから起動されている
    • 英数字が意味なくランダムに並べれられたようなフォルダ名から起動されている
    • ユーザープロファイル(C:\Users\<ユーザー名>)配下のフォルダから起動されている(※ ユーザープロファイル配下にインストールされる正規ソフトウェアも存在します)
    • 上記の他、一般的なソフトウェアのデフォルトのインストールフォルダ(以下に例示)以外のフォルダから起動されている
      • 一般的なソフトウェアのデフォルトのインストールフォルダ
        • C:\Program Files
        • C:\Program Files(x86)
        • C:\Windows\System32
        • C:\Windows\SysWOW64
    • PowerShellやVBScriptなどの不審なコマンドが登録されている(悪性ファイルやペイロードを実行する悪意のスクリプトが登録されているケースあり)
    • OS標準の正規実行ファイル(rundll32.exe、regsvr32.exe、mshta.exe等)に、DLLやJavaScript等の悪性ファイルを引数として渡すことで、悪意のない永続化を偽装している(引数に指定されたファイルを調査する)
  • LastModified(最終更新日時で着目すべき不審点)
    • インシデントの発覚時期(不審な通信やデータ破壊など)に近接している
    • 不審なファイルのタイムスタンプに近接している 

不審なレジストリキーが見つかった場合は、Valueの実行ファイルパスに実在するファイルの検体調査(表層解析、VirusTotalや公開サンドボックス等でのハッシュ値検索など)を行い、ファイルの悪性を判定しましょう。

 

ライブレスポンスツールの活用

ここまでは、調査対象PCから保全したレジストリファイルを解析する方法を紹介してきました。

一方、ライブレスポンスにおいて、最低限の調査や保全作業だけでなく、ツールによる解析や分析作業も実施できる猶予がある場合、永続化の痕跡を調査できる高機能なツールとして有名な「AutoRuns」の利用を推奨します。

AutoRunsは、Sysinternalsツール群の1つとしてMicrosoft社から提供されています。

AutoRunsでは、以下のような永続化に関係する情報を、簡単な操作で稼働中のシステムから表示できます。

  • Runキー
  • Windowsサービスの登録情報
  • タスクスケジューラの登録情報
  • スタートアップフォルダに配置されているファイルの情報

AutoRunsには、CUIツールとして動作する「autorunsc.exe」と、GUIツールの「Autoruns.exe」があります。以下では、GUIツールの Autoruns.exe を使用した調査方法を紹介します。

Autoruns.exe は、管理者として実行します。実行後、特に操作は必要なく、自動的に永続化に関する情報を収集してくれます。

Autoruns.exe を起動すると自動的にスキャンが行われ、以下のように稼働中のPCの永続化に関係する情報が一覧表示されます。


autoruns_1



デフォルトでは、「Everything」タブが表示され、スキャンによって収集したすべての永続化に関係する情報が一覧表示されます。適宜タブを切り替えることによって、表示される情報をフィルタリングできます。

以下は、選択するタブとフィルタリング項目の例です。

  • Logonタブ

    Run、RunOnceなどのRunキー、スタートアップフォルダ

  • Servicesタブ

    Windowsサービスの登録情報

  • Scheduled Tasksタブ

    タスクスケジューラの登録情報

また、Filterの入力欄にキーワードや数字を指定することで、ファイルパスやエントリー名、タイムスタンプなどをフィルタリングすることもできます。 さらに、オプション指定により、Windowsのシステムが登録する一般的な正規のRunキーを表示から除外したり、実行ファイルのハッシュ値を自動計算して、VirusTotalでの検知数を表示する機能もあります。

不審なエントリーを見つけた場合は、右クリックメニューから、実行ファイルのメタ情報表示機能や、実行ファイルの保存フォルダへのジャンプ機能も利用できます。

Autorunsは、このように感覚的な操作が可能な高機能のツールです。必要なときにすぐ使えるよう、準備しておくことを推奨します。インシデントが発生していない平時においては、クライアントPCの健全性確認など、侵害有無の診断にも使うことができる便利なツールです。

 

レジストリ全般の調査ツール

レジストリには、永続化に関係する情報のほか、デジタルフォレンジックの調査対象となる情報が数多く記録されています。例えば、オフライン環境のPCがマルウェアに感染した場合は、感染経路を調べるため、レジストリファイルの「SYSTEM」に記録される、USBデバイスの接続履歴なども必要になるでしょう。また、攻撃者による侵入が疑われる場合、既存アカウントの改ざんや、不正なアカウント作成について調査するため、レジストリファイルの「SAM」に記録されるアカウント情報を解析する必要があります。

レジストリ全般の解析に使われている無償ツールには、

  • RegRipper

  • Registry Explorer

などがあります。これらのツールの詳細は、この章のAppendixに掲載されたリンクから、それぞれの公式サイトを参照して下さい。

以下は、SANS社DFIR Windows Forensic Analysis POSTER( https://www.sans.org/posters/windows-forensic-analysis/ )のv4.17から抜粋した、インシデントレスポンスにおいて有用な情報が取得できる主なレジストリキーのリストです。

  • システム情報
    • OSのプロダクト情報
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
      • HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS
    • コンピュータ名
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
    • アカウント(ユーザープロファイル)情報
      • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    • 最終ログオン・パスワード変更履歴 ※「SAM」のハイブをパースするツールが必要
      • SAM\Domains\Account\Users
  • プログラム実行履歴関連
    • BAM/DAM
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings\{SID}
      • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dam\State\UserSettings\{SID}
    • Task Bar Feature Usage
      • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FeatureUsage\TrayButtonClicked
    • UserAssist ※ROT13(換字式暗号)で難読化されているため復号ツールが必要
      • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
  • 外部メディア接続履歴関連
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SCSI
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
  • エクスプローラで参照したフォルダの履歴(Shell Bags) ※「UsrClass.dat」および「NTUSER.dat」のハイブをパースするツールが必要
    • UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell\Bags
    • UsrClass.dat\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
    • NTUSER.dat\Software\Microsoft\Windows\Shell\BagMRU
    • NTUSER.dat\Software\Microsoft\Windows\Shell\Bags

results matching ""

    No results matching ""