トレンドマイクロは、不正広告キャンペーン「AdGholas(アドゴラス)」について、ProofPoint の Kafeine氏と共に調査してきました。そして、ProofPoint は、2016年7月末、この調査結果を同社ブログ上にて報告しました。問題の不正広告キャンペーンは、2015年に開始され、最も活発な時には 1日当り百万人にものユーザに影響を及ぼし、その後 2016年に入り活動停止しました。この一連の不正広告活動において、エクスプロイトキット「Angler Exploit Kit(Angler EK)」と「Neutrino Exploit Kit(Neutrino EK)」が利用され、また、画像の中に不正コードを埋め込み隠ぺいする、「steganography(ステガノグラフィ)」の手法が利用されていました。
弊社は、「AdGholas」の調査上、Internet Explorer(IE)と Microsoft Edge(Edge)両方のブラウザに存在する脆弱性「CVE-2016-3351」について解析。この脆弱性が利用されると情報漏えいの恐れがありました。弊社は、当時はゼロデイだったこの脆弱性について Microsoft に報告し、その結果、9月13日のパッチチューズデイにおいて、Internet Explorer ではセキュリティ情報 MS16-104 で、Edge では MS16-105 としてセキュリティ更新プログラムが公開されました。
攻撃者は、脆弱性「CVE-2016-3351」を利用し、セキュリティリサーチャーによりこの不正広告活動に利用される不正コードが解析されるのを回避しています。そして、感染PC 上のファイルのファイル形式と拡張子を確認することを可能にしています。それほど重要な手法ではなさそうですが、実際に、リサーチャーが用いる「Fiddler」、「Python」、「Wireshark」のような解析ツールが PC にインストールされているかの確認に利用されていました。「CVE-2016-3351」は、2014年に確認されている「CVE-2013-7331」に類似しており、「CVE-2013-7331」も、利用された場合、情報漏えいにつながる恐れがあります。感染PC 上で上述の解析ツールを検知した場合、攻撃はそこで中止されます。それ以上不正なコードやプログラムのダウンロードは実行されません。なぜなら攻撃者は、リサーチャーによる不正広告の発信源への追跡を回避したいからです。このように拡散先を選別する手法は、リサーチャーの目から不正活動を隠ぺいするためによく利用されます。感染した PC が仮想マシンであるかかどうかを検知する、というのが典型的な手法です。
「AdGholas」の活動にはこの脆弱性が利用され、検出の回避に成功していました。この脆弱性とステガノグラフィを合わせて利用することで、リサーチャーによる不正活動の追跡を困難にし、脆弱性も見つけにくくしていました。
■ どのような脆弱性なのか
脆弱性は、IE と Edge の、リンクタグ<a>の MIMEタイプのプロパティ処理に存在しています。このプロパティには IE と Egde のみが対応しているため、Google Chrome や Firefox のような他のブラウザには影響がありません。典型的な攻撃の筋書きとしては、攻撃者が「a.href」に「.saz」を指定することにより、「a.mimeType」の値が返されるように設定します。PC に Fiddler がインストールされている場合、ここで「Fiddler Session Archive」と定義されます。Fiddler がインストールされていない場合には、例えば「SAZ File」といった、あまり特定されていない値が返されます。このようにして攻撃者は感染PC に Fiddler がインストールされているどうかを検知することが可能になります。
図1の擬似コードは、関数「get_MimeType」 がどのように機能するかを示しています。
図1:「get_MimeType」の擬似コード
関数「get_MimeType 」は、ハイパーリンクの URL を用いてファイルの拡張子を取得し、その拡張子は関数「GetFileTypeInfo」を呼び出すパラメータとなります。そして、レジストリを参照し必要な情報を入手します。
図2はリンクタグ<a>の「get_mimeType」のコールスタックです。
図2:「get_mimeType」のコールスタック
図3では、関数「MSHTML!CAnchorElement::get_mimeType」が、関数「MSHTML!GetFileTypeInfo」を呼び出し、ファイル形式を取得し、そしてレジストリを参照しています。
例えば、拡張子「.saz」を指定するとレジストリキー「HKCR\.saz\(Default)」を参照します。もし Fiddler がインストールされているなら、値は “Fiddler.ArchiveZip” になります。次にコードはレジストリキー「HKCR\Fiddler.ArchiveZip\(Default)」を参照し、その値は “Fiddler Session Archive” になります。
図3:レジストリを参照する
図4:関数「get_mimeType」と取得した値
- 0495d526575ac270e52eceb197a7d85436b2a64c
■ トレンドマイクロの対策
サーバ向け総合セキュリティ製品「Trend Micro Deep Security」およびエンドポイントの脆弱性対策製品「Trend Micro Virtual Patch for Endpoint(旧 Trend Micro 脆弱性対策オプション)」をご利用のお客様は、以下の DPIルールによって脆弱性を利用する脅威から保護されています。
- 1007924—Microsoft Internet Explorer And Edge Information Disclosure Vulnerability (CVE-2016-3351)
ネットワークセキュリティ対策製品「TippingPoint」では、以下の MainlineDVフィルターにより今回の脅威をブロックします。
- 40712: HTTP: Microsoft Internet Explorer and Edge mimeType Information Disclosure Vulnerability
参考記事:
- 「Microsoft Patches IE/Edge Zero-day Used in AdGholas Malvertising Campaign」
by Brooks Li (Threats Analyst) and Henry Li (Threats Analyst)
翻訳:室賀 美和(Core Technology Marketing, TrendLabs)