SRUMのメモ。
SRUMとはSystem Resource Usage Monitorの略で、アプリケーションやサービス等の利用状況を監視するWindowsの機能のこと。
フォレンジック調査の観点ではSRUMを調べることで、読み書きが異常に多いプロセスが無いかとか、外部と大量の通信を行っているプロセスが無いか(データ漏洩)などを確認することが出来る。
SRUMについては、すでに詳しく解説している記事がたくさんあるので、ここでは個人的に抑えておきたいポイントだけメモする。
SRUMが収集したデータは、まずSOFTWARE
レジストリ(C:\Windows\System32\config\SOFTWARE
)に保存され、その後は約1時間に一回、さらにシャットダウン時にSOFTWARE
レジストリからC:\Windows\System32\SRU\SRUDB.dat
に保存される。
SRUMをパースするツールはいくつかあるが、自分のおすすめはSrumECmd (使用にあたりSOFTWARE
レジストリとSRUDB.dat
を取得しておく必要がある)
SRUMに記録される日時は通信や読み書きが発生した日時ではなく、SRUMのデータベースが更新された日時である。
SRUMのネットワーク関連のデータには通信を行ったアプリケーション名や送受信されたデータのバイト・サイズが記録されるが、通信先のIPアドレスやドメインは記録されない。
SRUMを活用したデータ漏洩の調査事例
先日、マルウェアに感染したシステムを調査したのだが、調査内容のひとつに「データ漏洩の有無」というのがあった。
マルウェアを解析した結果、このマルウェアは窃取した情報をZIPファイルに保存して、C2サーバーへアップロードする機能を有していたことが判明した。
感染システムにインストールされていたEDRがC2サーバーへの通信を検知していたが、通信のサイズや内容までは記録されていなかった。
感染システムからC:\Windows\System32\SRU\SRUDB.dat
とC:\Windows\System32\config\SOFTWARE
を取得し、SrumECmdでSRUMのデータベースをパースしたところ、NetworkUsages_Output.csv
にマルウェア・プロセスがネットワークに送信した通信のサイズが記録されていた。
このマルウェア・プロセスの通信のサイズが、マルウェアによってC2サーバーに送信されたとされるZIPファイルのサイズとほぼ一致したことから、かなりの確証を持って「データ漏洩が発生した」と結論付けることができた。
参考
https://jpn.nec.com/cybersecurity/blog/220722/index.html
https://muchipopo.com/forensic/srum/
https://digitalforensicsdotblog.wordpress.com/tag/srum/