
プロセス、モジュール、ハンドル、トークン、スレッド、.NETアセンブリ、メモリアドレス空間、環境変数におけるマルウェアIOCを検出するライブメモリ分析。フック、シェルコード、メモリ領域、モジュール、プロセスをダンプ、検出、逆アセンブルします。

WhacAMole は、メモリ内のプロセスを統合的に分析し、マルウェアに関連する異常を検出・警告し、検証・相関・分析に必要なすべての関連情報を画面表示およびファイルに保存するとともに、メモリ領域、プロセス、不審なモジュールをダンプするプログラムです。
これを実現するために、プロセスやロードされたモジュールのメモリ領域の異常だけでなく、プロセスが使用しているメモリ空間全体を詳細に分析します。
現在、WhacAMole は、悪意のある動作、またはマルウェアにのみ起因する可能性がある動作に関連する67のアラートを識別できます。
プロセス、メモリ、モジュールの70以上のプロパティを表示し、メモリから読み取った多くの属性と、ディスク上の対応するファイルに表示される属性を比較し、不審なメモリ領域を部分的に逆アセンブルし、メモリ内で変更されたエクスポート関数を部分的に逆アセンブルして、アナリストが独自の調査を行えるようにします。

他の類似プログラムとは異なり、プロセスに関するすべての関連情報をアナリストが利用できるようにし、マルウェアに関連する特性をさまざまなアラートでラベル付けすることで、独自の分析を実行したり、悪意のあるプロセスの存在に関する他の兆候を探したりできるようにします。
アラートは、その危険性と、同じ動作が現れるプロセスの数に応じて、6段階の値で分類され、HTMLドキュメントに色スケールで反映されます。6(黒色)は検出された特性がマルウェアに起因する確率が最も高いことを示し、1(灰色)は動作は異常であるものの、同じ動作が多数のシステムプロセスで観察されていることを示します。

アナリストの作業を容易にするために、情報は画面、分析されたプロセスのナビゲーションパネル付きのHTMLファイル、およびCSVテキストファイルで表示されます。HTMLドキュメントのサイドパネルには、プロセスツリーが表示され、それらで検出された最高アラートに対応する色、ドキュメント内の場所へのハイパーリンク、32ビットプロセスの場合はPIDが青色、.NETプロセスの場合は緑色で表示されます。Control Flow Guard(CFG)が有効なプロセスはイタリックで表示されます。

リモートRDPセッションに関する情報は、プロセス情報の先頭に表示されます。

ネットワーク機能は2つの方法で表示されます。TCP接続が検出された場合は地球のシンボルで表示され、接続されたソケットが検出された場合は空の地球のシンボルで表示されます。メモリ内にHTTPナビゲーションライブラリ(wininet.dll および winhttp.dll)を持つプロセスには、追加のシンボル(白丸)が表示されます。

ネットワーク詳細:

接続されたソケット:

Mimikatz のようなアクティビティが検出された場合、特別なシンボル(鍵)が表示されます。

HTMLドキュメントのナビゲーションパネルの下部には、すべてのアラートがその色とともに表示され、それらが検出されたプロセスのPIDが、プロセスが表示されているドキュメントの位置へのハイパーリンクの形式で示されます。

アラートが検出されたプロセスがない場合、その名前は白い背景で表示されます。
メインパネルには、すべてのプロセスとその情報が、デフォルトで非表示の折りたたみ可能なセクションに表示されます。すべてのアラートは常に表示されます。

保存されたメモリ領域は、アンチウイルスによる削除を防ぐためにキー 0x0E でXORされます。
以下から情報を分析、比較、表示します。
1. プロセス:
• 警告:
[Admin Privs]
[Alternate credentials]
[Alternate network credentials]
[Delphi 4 – Delphi 2006]
[Entry Point]
[LogonType]
[Managed code but no Assemblies detected - .NET ETW disabled]
[Mismatching Path]
[Name of the module hidden in memory]
[NTLM Authentication]
[PE anomalies]
[PEB ImageBaseAddress forgery]
[Possible .NET in memory loaded as Assembly.Load(byte[])]
[Process checkSum is 0]
[Process checkSum mismatch]
[Process Ghosting]
[Process Hollowing]
[Process Memory region hash mismatch]
[Process Memory region Protection value modified]
[Process Memory region WX]
[Process Name != Internal Name]
[PROCESS NOT SIGNED]
[Process Private memory region]
[Process Unknown executable memory region]
[Section Table]
[Shared memory subversion]
[SizeOfInitializedData is 0]
[SUSPENDED PROCESS]
[Suspicious Commandline]
[Suspicious Environment Variable]
[TimeDateStamp Inequality]
[Transaction detected: TxF/TxR]
[Unmanaged process/managed code execution detected]
[Unusual CWD]

2. モジュール:
通常のモジュールで予想されるのは LMIVH です:
L = InLoadOrderModuleList(PEB)。
M = InMemoryOrderModuleList (PEB)。
I = InInitializationOrderModuleList (PEB)。
V = プロセスの仮想メモリで検出。
H = PEB ハッシュリストで検出。
3 つの PEB リンクリストからリンクが解除されている場合、次のように表示されます:
---VH
モジュールがマルウェアによって手動でロードされた場合、PEB リストのいずれにも表示されませんが、メモリスキャンで検出される可能性があります。
その場合、次のように表示されます:
−−−V−
DLL Hollowing with Moat 手法(POCについては https://github.com/forrest-orr/artifacts-kit を参照)を使用すると、結果は次のようになります:
-----
• 警告:
[Abnormal PE Header]
[Delphi 4 – Delphi 2006]
[DLL Hiding]
[DLL Hollowing]
[Mismatching Path]
[Module checkSum is 0]
[Module checkSum mismatch]
[Module Name != OriginalFileName]
[MODULE NOT SIGNED]
[Module PE anomalies]
[Module SizeOfInitializedData is 0]
[Module TimeDateStamp Inequality]
[Name of the module hidden in memory]
[Phantom DLL Hollowing TxF]
[Private memory region]
[Section Table]
[Signed PE NOT MEM_IMAGE]
[Unsigned PE NOT MEM_IMAGE]
[Unusual module]

3. ハンドル: File、Key、Mutant、Process、Thread、Token、Section タイプのすべてのプロセスハンドルが表示されます。ハンドルの種類に応じて、次の情報が表示されます:








• 警告:
[Handle-Section Phantom DLL Hollowing TxF]
[Handle-Section Suspicious: Injection]
[Pipe Handle to another process]
[Process Handle to another process]
[ShadowMove Lateral Movement]
4. トークン: トークンが検出されたスレッドでは、以下が表示されます:
• 警告:
[Thread with TOKEN]

5. スレッド:
• 警告:
[Thread-Memory NOT MEM_IMAGE]
[Thread-Possible Ekko technique]
[Thread-Possible Foliage technique]
[Thread-Unknown module in Stack]

6. .NET アセンブリ
• 警告:
[.NET Assembly w/o ILPath]

7. メモリアドレス空間。 プロセスのすべてのメモリ領域から以下の値を表示します:
• 警告:
[Executable memory region not MEM_IMAGE]
[Hidden PE]
[Lagos Island Method]
[Mapped Image]
[Memory region hash]
[Memory region Protection value modified]
[Memory region WX]
[Memory/File values mismatch]
[Moat detected]
[MZ/PE Not Present]
[Shellcode]
[Unknown executable memory region]

