そのCHMには裏がある: IcedIDを配布するポリグロットCHMファイルの解析

Conceptual image representing malware, such as the information stealer IcedID, being delivered by a polyglot file.

This post is also available in: English (英語)

概要

Unit 42は最近、インフォスティーラーIcedIDの使う感染プロセスに、ポリグロット(=複数のプログラミング言語やファイル形式で書かれている)なMicrosoft Compiled HTML Help(CHM)ファイルが採用されていることを確認しました。そこで本稿は、ポリグロットなCHMファイルと最終ペイロードの解析方法を紹介し、このサンプルがどのように検出を回避しているかを理解できるようにします。

Starchy Taurus (別名APT41)やEvasive Serpens (旧称OilRig、Europium)をはじめとする複数の攻撃グループが、CHMファイルを悪用してPowerShellやJavaScriptを使って書かれたペイロードを隠蔽しています。本稿では、攻撃者が長いコードを書かずにすむようにすることで、悪意のあるファイルをセキュリティ製品による検出から逃れやすくさせている、興味深い攻撃について説明します。ポリグロットファイルを悪用すると、攻撃者はファイル形式の識別に依存するマルウェア対策システムを回避できます。この手法では感染プロセスで同じCHMファイルを2回実行します。1回目の実行では問題なく振る舞って見せ、2回目の実行で悪意のある振る舞いをひそかに実行します。

この特定の攻撃チェーンは2022年8月上旬に発見されており、最終ペイロードとしてIcedID (別名Bokbot)を配布していました。インフォスティーラーIcedID2019年からユーザーを攻撃している著名マルウェアです。

パロアルトネットワークスのお客様は、WildFire高度な脅威防御高度なURLフィルタリングDNSセキュリティなどのクラウド配信型セキュリティサービスを有効にした次世代ファイアウォールと、Cortex XDRにより、同様の解析対策技術を使うマルウェアファミリからの保護を受けています。

Unit 42の関連トピック Malware, IcedID, Evasion

目次

悪質なポリグロットCHMファイル
IcedID DLLの構成の抽出
結論
IoC

悪質なポリグロットCHMファイル

「ポリグロットファイル」は複数の異なるファイル形式をもつバイナリで、実行に使用するアプリケーションしだいでその振る舞いが変わるものです。

2022年8月上旬に発見されたこの攻撃は、erosstrucking-file-08.08.2022.zipという名前のZIPファイルを添付したフィッシングメールから始まっていました。zipファイルを展開するとorder-130722.28554.isoという名前のISOイメージファイルが作成されます。このISOファイルには、pss10r.chm (SHA256: 3d279aa8f56e468a014a916362540975958b9e9172d658eb57065a8a230632fa)というポリグロットCHMファイルが含まれていて、このCHMファイルがヘルプドキュメントの表示に使われます。ユーザーがこのCHMファイル(pss10r.chm)を起動した場合、無害なヘルプウィンドウが表示されます。

おとりとなるHTMLヘルプウィンドウには、この図のようにMicrosoft Customer Service and Supportからのメッセージが表示されます。
図1. デコイ(おとり)のHTMLヘルプウィンドウ

私たちは7zipを使ってこのCHMファイルの中身をダンプしました。ここで興味を引いたファイルがPSSXMicrosoftSupportServices_HP05221271.htmです。

デコイのHTMLヘルプウィンドウの内容。PSSXMicrosoftSupportServices_HP05221271.htmというファイルが興味を引く
図2. デコイHTMLヘルプウィンドウの内容

HTMLファイル内のコードのほとんどはおとり用ウィンドウの作成に使われます。ただしHTMLコード内には同一CHMファイルを再実行するコマンドが1行隠されています。このコマンドはMshta.exeを呼び出して自分自身(pss10r.chm)を再実行させます。Mshta.exeはMicrosoftのHTMLアプリケーション(HTA)ファイルを実行するユーティリティで、HTAはHTMLで作成されたれっきとしたアプリケーションです。

ここに表示した行でmshtaを呼び出してpss10r.chmを再実行する
図3. PSSXMicrosoftSupportServices_HP05221271.htm内のHTMLコード行。この行でMshta.exeを呼び出し、CHMファイルを再実行させている

HTAのコードはCHMファイルのバイナリ内に埋めこまれているので、実行中、被害者からは見えません。このHTAはapp.dllというバイナリの実行に使われます。

pss10r.chmに埋めこまれたHTAコードを示したスクリーンショット。これがバイナリapp.dllの実行に使われる
図4. pss10r.chm内に埋めこまれたHTAコード

実際にapp.dllというバイナリがISOイメージ内に隠されています。attribコマンドを使うとこの隠れたバイナリを明らかにできます。

attribコマンドで隠されたバイナリを明らかにする様子を示したスクリーンショット
図5. 隠されたバイナリを明らかに

このapp.dllというバイナリは、64ビット版IcedID DLLです。(SHA256: d240bd25a0516bf1a6f6b3f080b8d649ed2b116c145dd919f65c05d20fc73131)

IcedID DLLの構成の抽出

IcedID DLLからIoC(indicators of compromise: 侵害の痕跡)を得るため、その構成を調べました。IcedID DLLの構成はエンコードされた状態でバイナリのデータセクションに格納されています。エンコードされた構成は、図6に示したようなファイル形式になっています。

エンコードされたIcedID DLLの構成
図6. Encoded_config_blobの構造体

以下の関数がIcedID DLLの構成を実行時にデコードします。エンコードされた構成(enc_config)のアドレスはこの関数内に存在しています。

IcedID DLL
図7 IcedID DLLの構成をデコードする関数

デコードされたIcedID DLLの構成は以下のような形式です。

デコードされたIcedIDの構成の構造体
図8 デコードされたIcedIDの構成の構造体

デコードされた構成からは以下のIoCを抽出できます。

コマンド&コントロールのURL abegelkunic[.]com
攻撃キャンペーンID 4157420015

結論

脅威アクターは検知回避テクニックを進化させ続けています。上記の分析では、攻撃者がどのようにしてポリグロットMicrosoft Compiled HTMLファイルを悪用し、IcedIDペイロードを配布したのかを示しました。防御側はファイル形式にもとづいてバイナリを信用しないことが重要です。今回取り上げたようなポリグロットファイルには正しいファイルタイプが複数あるからです。

パロアルトネットワークスのお客様は、WildFire高度な脅威防御高度なURLフィルタリングDNSセキュリティなどのクラウド配信型セキュリティサービスを有効にした次世代ファイアウォールと、Cortex XDRにより、同様の解析対策技術を使うマルウェアファミリからの保護を受けています。

IoC

ファイル名: erosstrucking-file-08.08.2022.zip
SHA256: fb6d23f69d14d474ce096da4dcfea27a84c93f42c96f6dd8295d33ef2845b6c7

ファイル名: order-130722.28554.iso
SHA256:
d403df3fb181560d6ebf4885b538c5af86e718fecfabc73219b64924d74dd0eb

ファイル名: pss10r.chm
SHA256: 3d279aa8f56e468a014a916362540975958b9e9172d658eb57065a8a230632fa

ファイル名: app.dll
SHA256: d240bd25a0516bf1a6f6b3f080b8d649ed2b116c145dd919f65c05d20fc73131

コマンド&コントロールのURL: abegelkunic[.]com

 

追加リソース

有害なヘルプ: Agent Teslaを配信する悪性コンパイル済みHTMLヘルプファイル(.chm)の分析