This post is also available in: English (英語)
概要
先日、Palo Alto Networksは、悪意のあるマクロを利用する、Microsoft Office用の特異なローダーについて分析しました。このローダーは、多数のマルウェア ファミリの導入に使われ続けており、最初、2016年12月初旬に目撃されました。それ以降、650個を超える一意のサンプルが確認されています。数は多くありませんが、一部日本でも観測されました。これらのサンプルは12,000個の悪意のあるセッションを占めており、非常に多くの業種がこれらのセッションの標的になっています。ローダーそれ自体は主として電子メールを介して配信されます。そして、難読化が著しく施されている悪意のあるマクロを利用するだけでなく、2016年8月に最初に発見されたユーザー アカウント制御(UAC)回避手法も利用します。
配信
先ほど述べたとおり、このローダーは主にフィッシング電子メールを介して配信されます。約12,000個の悪意のあるセッションを調べてみると、以下の件名とファイル名が最も頻繁に現れます。
上位にランクされる電子メール件名
- ENQ RFQ19-SIS-2017
- Order 032.
- PURCHASE ORDER
- FINAL REMINDER!! TOP URGENT Saudi Arabian Oil Company : Request for quotation no.7202159560
- Obeikan Purchase Enquiry…
- ORDER TRIAL
- Re: Our policy
- RFQ PO 7700 8800 9900
- AW: Attachment
- Verify Your Email Now!!!
上位にランクされるファイル名
- Invoice #74267363.doc
- QING_SHUN 20161201_Q88.doc
- ProductList.doc
- Lebanon deposit slip.doc
- ENQ-19-0143-SIS.xls
- Company Profile.doc
- CONTRACT AND LABEL SABAROT.doc
- New-RFQ.doc
- PO#19651.doc
- WIRE SCANCOPY-001.doc
この脅威により最も影響を受けている業種について調べてみると、ハイテク産業、専門的法律サービス業、政府がその中に入っていました。しかし、このローダーはそれ以外の複数の業種にも打撃を与えていました。
このローダーがダウンロードするマルウェアは多岐にわたります。以下のマルウェア ファミリがドロップされているところが確認されました。
商品として流通しているマルウェア ファミリが大量にドロップされている他、広範囲への配信が確認されていることから、このローダーは、主に、拡散を目的とする攻撃活動に使われているように見受けられます。
ローダーの分析
サンプルすべてにわたって使われている様々なマクロを分析した結果、これらのほとんどすべてにおいて同じ手法が使われていることが分かりました。これらのマクロは、すべて、大量のガベージ コードとランダムに選択された変数を使って難読化されています。これが何かのビルダーを使ってこれらを生成した結果であることはほぼ間違いありません。
下記のマクロを4e56c777862ced487b4dd2556886bd429187c3c1c51c1f51fcba52e2ae350e12から取り出す際にどういうことが行われているのか、見ていきましょう。このサンプルは、SMTPにより複数の組織に配信されているところを目撃されました。その際の件名は'Request For Quotation [RFQ]'であり、ファイル名は'RFQ.doc'または'Order Details.doc'のいずれかでした。
マクロの後半部には、ガベージ コード、多数の難読化済みの文字列の他、Word文書に書き込まれている多数の文字列がありました。これらの文字列は、確認された前記の件名とファイル名から、攻撃者が用いている策と合致しています。
マクロの前半部には難読化された文字列をデコードする関数が含まれています。様々な文字列が、連結された後で、シェル コマンドを使って呼び出される前に、このデコード関数に渡されます。これらの文字列をデコードするのは極めて簡単で、マクロはブラックリスト文字列に現れている文字を取り除くだけです。例えば、'Haellbo'をブラックリスト文字列'ab'でデコードすると'Hello'という結果を得ます。
こうしたマクロの中におとり情報が常に存在するとは限りません。約650個のサンプルを分析したところ、半数強におとり情報が含まれていました。さらに、InStrRev()呼び出しも常に存在するとは限りません。他のサンプルでも以下の例に類似の手法を使っている場合があります。その例では'J8RRLQYA6Z'がブラックリスト文字列であり、denyoffer変数には難読化済み文字列の個々の文字が含まれています。
文字列をデコードすると、次のようになります。
この関数は、PowerShellによりファイルをダウンロードし、それを%TEMP%ディレクトリ内にドロップします。その後、新たにドロップされたこのファイルを指し示すよう特定のレジストリー キーを設定します。最後に、組み込みのeventvwr.exeプロセスを実行し、localhostに対するpingを15回実行することで約15秒間スリープし、実行可能ファイルおよびドロップ済みファイルを削除します。eventvwr.exeのレジストリ キー書き込みおよび実行は、ここで最初に考察されたUAC回避手法です。これは、組み込みのeventvwr.exeプロセスが最初に'HKCU\Software\Classes\mscfile\shell\open\command'レジストリ キー内のプロセス名を検索するMicrosoft Windowsの欠陥に依拠するものです。このキーを作成し、攻撃者が選んだ実行可能ファイルにこのキーを提供することで、実行可能ファイルは権限が昇格された状態でeventvwr.exeにより生成されます。
マルウェア アナリストの助けになるよう、スクリプトを用意しました。このスクリプトを使えば、Microsoft Officeファイルから、このローダーを使っている埋め込み済みマクロを抽出することができます。では、埋め込み済みマクロ文字列のセグメントをデコードしてみましょう。このスクリプトを4e56c777862ced487b4dd2556886bd429187c3c1c51c1f51fcba52e2ae350e12ファイルに対して実行すると、以下の結果を得ます。(注: URLは無害化した表記にしてあります)。
また、事例の数は少ないですが、攻撃者が組み込みのBITSAdminツールをPowerShellの代わりに利用する方を選んで、下記のサンプルに見られるマルウェアをダウンロードする場合がある、ということにも注意しておかなければなりません。
これらの事例では、同じマクロ難読化が用いられているので、UACを回避する手法やlocalhostに対するpingを15回実行する手法が同じであることが分かります。
650個のサンプル中11個だけが、BITSAdminを利用してこのローダー内にマルウェアをダウンロードしていました。BITSAdminが使われていた事例は、すべて、このローダーが最初に確認された2016年12月初旬に発生しました。攻撃者はこれをいちはやく変更し、ダウンロード用にPowerShellを採用した模様です。
結論
全体的に見て、この新型ローダーはUAC回避の実行を利用する点で興味深いものがあります。また、昨年の12月以降このローダーが広く利用されていることから、多数の攻撃活動でこのローダーが使われ続けていることが分かります。ローダーを利用している者が1人なのかグループなのか、はっきりとは分かりません。複数の業種がこのローダーの標的にされてきており、ローダーは複数のマルウェア ファミリを導入するのに利用されています。
Palo Alto Networksのお客様は、次の方法で脅威から保護されています。
- このローダーおよびドロップされたマルウェアのインスタンスは、すべて、WildFire内で悪意のあるものとしてフラグ付けされます。
- ドロップされた様々なマルウェア ファミリはAutoFocus内でタグ付されます(LuminosityLink、KeyBase、PredatorPain、Ancalog、Bartallex、Pony、DarkComet)。
- アンチスパイウェアおよびアンチウイルスに関する多数のシグネチャが、様々なマルウェア ファミリに関して提供されています。
侵害の痕跡の完全なリストは、タイムスタンプ、SHA256ハッシュ、ダウンロードURL、ドロップされたファイルの名前を含んだ形で、ここで提供されています。
このローダーのことを最初に教えていただいたことに対し、Brandon Levene氏に深く感謝します。