マルウェア分析の重要な部分の1つは、ランダムアクセスメモリ(RAM)分析です。侵害されたシステムで実行中の悪意のあるプロセス、ネットワークアクティビティ、開いている接続などを特定するのに役立ちます。この記事は、揮発性メモリ分析のためのオープンソースセキュリティツール「Volatility」についてです。 32/64ビットシステムのRAM分析の両方に使用でき、Windows、Linux、Mac、Androidシステムの分析をサポートします。 Volatility FrameworkはPythonスクリプト言語で実装されており、LinuxおよびWindowsオペレーティングシステムで簡単に使用できます。クラッシュダンプ、rawダンプ、VMwareおよびVirtualBoxダンプの分析に使用されます。抽出手法は、調査対象のシステムとは完全に独立して実行され、システムの実行時の状態を完全に可視化します。したがって、この記事では、揮発性ツールを使用したRAMメモリダンプのフォレンジック分析について説明します。ボラティリティの「malfind」プラグインは、悪意のあるプロセスをダンプして分析するのに役立ちます。ボラティリティのもう1つのプラグインは、侵害されたマシンの最後のコマンドを一覧表示するためにも使用される「cmdscan」です。このフォレンジック調査では、「virustotal」や「payloadsecurity」のWebサイトなどのオンラインリソースを使用して結果を検証します。最終的には、WindowsDefenderとMalwareBytesを使用して悪意のあるプログラムをスキャンします。
メモリフォーマットのサポート
次のメモリ形式は、最新のVolatilityリリース[1]でサポートされています。
- 生/パッド付き物理メモリ
- Firewire(IEEE 1394)
- 専門家証人(EWF)
- 32ビットおよび64ビットのWindowsクラッシュダンプ
- 32ビットおよび64ビットのWindowsハイバネーション
- 32ビットおよび64ビットのMachOファイル
- Virtualboxコアダンプ
- VMwareの保存状態(.vmss)とスナップショット(.vmsn)
- HPAK形式(FastDump)
- QEMUメモリダンプ
インストール
Volatilityツールは、Windows、Linux、およびMacオペレーティングシステムで使用できます。 WindowsおよびMacOSの場合、スタンドアロンの実行可能ファイルが利用可能であり、次のコマンドを使用してUbuntu16.04LTSにインストールできます。
apt-get install volatility
メモリ分析
このチュートリアルでは、Volatilityツールのスタンドアロン実行可能ファイルを使用してWindowsプラットフォームでrawメモリダンプのフォレンジック分析を実行します。調査プロセスでは、フォレンジック調査担当者が侵害されたハードディスク上にいくつかの悪意のあるプログラムを見つけることがよくあります。そのため、悪意のあるプログラムやマルウェアが侵入先のシステムで実行されている可能性があるため、このようなイベントではメモリ分析が非常に重要になります。
悪意のあるシステムのメモリダンプのMD5ハッシュを以下に示します。フォレンジック分析を開始する前に、取得した画像を検証するために計算されます。
MD5: ee043142485a83f4d49a3a7899408500
ボラティリティ分析
揮発性ツールは、PCが感染しているかどうかを判断するために使用されます。ご存知のとおり、悪意のあるプログラムは、実行中のプロセスからメモリダンプから抽出される可能性があります。したがって、まず、ダンプされたメモリイメージでサポートされている「プロファイル」を特定する必要があります。以下に示すように、次のコマンドを使用して、画像の「プロファイル」を識別します。
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw
したがって、「imageinfo」コマンドによって次の2つのプロファイルが提案されます。
Win7SP0x86 , Win7SP1x86
ここで、以下のコマンドを使用して、メモリダンプで実行中のプロセスのリストを取得します。
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw
part-1
パート2
揮発性ツールの「pslist」プラグインは、メモリダンプ内のプロセスを表示します。上記の出力に示されているように、「 0KqEC12.exe」のようなプログラムはほとんどありません。 」および「rdpclip.exe 」はWindowsOSの新機能です。これらは、WindowsOSの悪意のあるアプリケーションまたは新しいアプリケーションである可能性があります。同様に、複数の「 iexplore.exe 」プログラムも疑わしいようです。
したがって、次のコマンドの目的は、プロセスをツリー(親/子)形式で表示することです。これにより、プロセスと親プロセスのリンクが表示されます。悪意のあるプログラムの親プロセスを特定するのに役立ちます。
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw
パート1
パート2
上記の「pstree」の出力に示されているように 」揮発性ツールのプラグインであるプロセスは、PIDとPPIDとともに表示されます。被害者のマシンをさらに調査するために、悪意のあるプログラムを強調しました。さて、「 malfind ” Volatilityのプラグイン(プロセス内の悪意のあるDLLを検出するために使用されます)は、強調表示されたプロセスに対して使用されます。
プロセスID:1120(svchost.exe)
次のmalfindスイッチを使用したコマンドを使用して、悪意のあるDLLを「出力」ディレクトリにダンプします。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw
以下に示すように、malfindプラグインによってdllが見つかりません。
プロセスID:1788(rdpclip.exe)
再度、PID 1788で同じコマンドを実行して、プロセスのDLLを抽出します。ただし、プラグインでDLLが見つかりません。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1788 -p 1788 -f memdump3.raw
プロセスID:2104(explorer.exe)
以下に示すように、次のコマンドはPID「2104」で実行され、malfindはプロセスからDLLを抽出しました。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw
malfindプラグインの出力には、悪意のあるプロセスの抽出されたDLLのダンプが表示されます。
プロセスID:2240(0kqEC12.exe)
malfindプラグインは、WindowsOSでは疑わしいと思われるPID「2240」で実行されています。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2240 -p 2240 -f memdump3.raw
PID「2240」のmalfindプラグインの出力を以下に示します。
プロセスID:2840(iexplore.exe)
PID「2840」に対するボラティリティツールの出力を以下に示します。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2840 -p 2840 -f memdump3.raw
このプロセスも、Windowsプロセス「iexplorer」と同じ名前を使用しているため、悪意があるように見えます。
プロセスID:2364(iexplore.exe)
同様に、malfindはPID「2364」の悪意のあるプログラム「iexplore」に対して実行されます。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2364 -p 2364 -f memdump3.raw
PID「2364」に対するmalfindのダンプを以下に示します。
プロセスID:3728(iexplore.exe)
以下に示すように、悪意のあるプログラムをダンプするための揮発性プラグインは、PID「3728」に対して実行されます
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-3728 -p 3728 -f memdump3.raw
次のスナップショットは、PID「3728」に対するmalfindプラグインのダンプを示しています。
スキャン結果
悪意のあるプログラムのダンプは、WindowsDefenderとMalwareバイトを使用してスキャンしています。
Windows Defender
Windows Defenderのスキャン結果を以下に示します。これは、「Trojan:Win32 / EyeStye.N」および「Trojan:Win32/EyeStye.plugin」として識別されます。
トロイの木馬の詳細を以下に示します。
このトロイの木馬は、キーストロークをログに記録し、インターネットアクティビティを監視し、特定のログインクレデンシャルを盗み、キャプチャしたデータをリモートの攻撃者に送信して金銭的な利益を得ます。追加のマルウェアをダウンロードし、Webブラウザーのセキュリティを低下させ、ルートキットを使用して悪意のあるアクティビティを隠す可能性があります[2]。マルウェアは、検出と削除を妨げるためにコードインジェクションを利用します。 「EyeStye.N」を実行すると、cmd.exeやexplorer.exeなどの実行中のプロセスにコードが挿入される場合があります。
分析の結果、悪意のあるプログラム「iexplore.exe」の親である「explorer.exe」プログラムに悪意のあるプログラムが挿入されていることがわかりました。
MalwareBytes
次のスナップショットは、MalwareBytesが抽出されたDLLも悪意のあるものとして検出し、「Trojan.Grabber」という名前を付けたことを示しています。
コマンド履歴(CMD履歴)
Volatilityツールのもう1つのプラグインは、マシンで実行されたコマンドの履歴をスキャンする「cmdscan」です。次のコマンドの結果は、侵入先のPCで実行されたコマンドの履歴を示しています。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw
「cmdscan」の出力は、攻撃者がコマンドプロンプトでいくつかのコマンドを実行し、悪意のあるプログラム「iexplorer.exe」および「ieplore.exe」を実行したことを示しています。上記の出力に示されているもう1つの疑わしいのは、「_lt112.spn」です。オンラインリソースで検索された結果、マルウェアプログラムにリンクされていることがわかりました。
_lt112.spnファイル
アナリストは「_lt112.spn」を検索しました 」という文字列がインターネット上にあり、次のサイトで見つかりました。
- https://malwr.com/analysis/ODMwYzM1NGViZDkwNDc4YTllYWU4ZTVlMTE1YzJmNGQ/
- https://www.hybrid-analysis.com/sample/1416ff3fca01d4d4854799f2d3880fb6e100de3f7fa1c54465d4d6b9cf9b5d96?environmentId=100
ネットワーク接続
ネットワーク接続がメモリ分析で見つかることがわかっているので、「netscan」プラグインがメモリイメージに対して実行され、その結果は、悪意のあるプログラム「iexplore」が被害者のマシンでいくつかの接続を開いたことを示しています。
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw
パート1
パート2
パート3
したがって、詳細なメモリ分析は、被害者のマシン上で「explorer.exe」および「iexplore.exe」として実行されているマルウェアによってPCが侵害されていることを示しています。また、悪意のあるプログラム「iexplore.exe」が被害者のマシンからポート80に接続していることも示しています。
- http://www.volatilityfoundation.org/24
- https://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Trojan:Win32/EyeStye.N