Trustwave社は、コマンド&コントロール(C2)活動にインターネット制御メッセージプロトコル(ICMP)を使用する新しいWindowsマルウェアの「Pingback」に関する調査結果を公開しました。
このマルウェアは、Microsoft Windowsの64ビットシステムを標的とし、DLLハイジャッキングを利用します。
本物のWindowsサービスを悪用して悪意のあるDLLをロード
このマルウェアは通信プロトコルとしてICMPを使用します。ICMPは一般的なpingコマンドやWindowsのtracerouteユーティリティでも使用されている一般的な通信プロトコルです。
悪意のあるファイルは「oci.dll」というわずか66KBのDLLで、他の悪意のあるプロセスや攻撃手法によってWindowsの「システム」フォルダ内に配置されます。
Trustwave社は、このDLLがWindowsの通常のアプリケーションであるrundll32.exeによって読み込まれるのではなく、DLLハイジャッキングに使用されていることを発見しました。
DLLハイジャッキングとは、Windowsシステム上で攻撃者が使用する技術のことで、悪意のあるDLLファイルをWindowsOSが信頼するフォルダの1つに配置し、正規のシステムアプリケーションが悪意のあるDLLファイルを実行してしまうというもの。
これにより攻撃者は本物のWindowsプロセスを悪用して、任意の悪意のあるコードを実行することができます。
このケースでは、悪意のあるoci.dllをロードするために、Microsoft Distributed Transaction Control (msdtc)サービスが悪用していることがわかっています。
PwCの研究者であるWietze Beukema氏がまとめた、DLLハイジャックのターゲットになる300以上のWindows実行ファイルのリストにmsdtc.exeは含まれており、攻撃可能であることがわかっています。
起動時にWindowsのmsdtcサービスはロードする3つのDLL(oci.dll, SqlLib80.dll, xa80.dll)を探しますが、oci.dllはOracleデータベースをサポートするために存在するOracleライブラリ(Oracle Call Interface)です。
ただデフォルトでは、3つのOracle DLLは、Windowsのシステムディレクトリに存在しません。
そのためシステム特権を持つ攻撃者は、悪意のあるDLLを配置して、MTxOCIがロードするDLLファイル名の1つを使って保存することができます。
Trustwave社は、Windows上で3つのDLLファイルを配置するテストを実施し、oci.dllだけはmsdtcサービスによって読み込まれてしまうことを発見しました。
oci.dllの配置経路
現在Trustwave社も調査中ですが、別のマルウェアであるupdata.exeが悪意のあるoci.dllをWindowsの「System」フォルダに配置し、msdtcをスタートアップごとに実行するように設定したりするのではないかと言われています。
通信にICMPトンネリングを使用
msdtcによって起動されたoci.dllマルウェアは、C2サーバーからのコマンドを密かに受信するためICMPを使用します。
通信にICMPを使用することの利点は、Pingbackの通信がユーザーから見えないようにするのに効果的であるとしています。
ICMPには「ポート」という概念がなく、TCPもUDPも使用しないためであり、oci.dllはnetstatのような診断ツールでは検出できないとされています。
しかし、ICMPのパケットには「データ」フィールドが存在するため、その中に任意のデータを挿入して2つのシステム間で送受信するのには十分なスペースが備わっているのです。
ICMPパケットのデータセクションは、攻撃者が任意のデータをリモートホストに送信するための箱として機能します。リモートホストは同じように、別のICMPパケットに応答を梱包して送り返します。
Pingbackマルウェア(oci.dll)は、感染したシステム上のすべての受信ICMPパケットを単純に待受けすればよく、1234・1235・1236のいずれかのシーケンス番号を持つパケットを解析します。
受信したデータには、shell、download、upload、execなどのC2コマンドが含まれている可能性があります。
これらの仕組みを利用して、攻撃者は制御するサーバーと感染したシステムの間でデータをやり取りさせることができ、リモートの攻撃者が感染したシステム上で他の任意のコマンドを実行できるようにすることが可能です。
「ICMPトンネリングは新しい技術ではありませんが、検出を回避するためにこの技術を使用するマルウェアの実例としては効果的な手法です。しかし、ICMPには診断ツールとしての正当な用途もあるため、ICMPを無効にするのではなく、不審なICMPトラフィックを検出するための監視メカニズムを導入したほうがいいと考えます。」
Pingbackマルウェアに関連する侵害指標(IOC)を以下に示します。
ファイル: oci.dll
SHA256: E50943D9F361830502DCFDB00971CBEE76877AA73665245427D817047523667F
SHA1: 0190495D0C3BE6C0EDBAB0D4DBD5A7E122EFBB3F
MD5: 264C2EDE235DC7232D673D4748437969
ネットワーク
ICMPタイプ=8
シーケンス番号:1234|1235|1236
データサイズ:788バイト
Comments