Cisco Japan Blog
Share

SVG 画像を悪用する HTML スマグリング


2022年12月21日


  • HTML スマグリングpopup_iconは、エンコードされた悪意のあるスクリプトを電子メールの HTML 添付ファイルや Web ページに隠す攻撃手法です。
  • 被害者が電子メールを受信して添付ファイルを開くと、ブラウザがスクリプトを復号化して実行し、そのスクリプトが悪意のあるペイロードを被害者のデバイスで直接組み立てます。
  • Talos は、スケーラブル ベクター グラフィックス(SVG)画像を電子メールの HTML 添付ファイルに埋め込んで悪用する比較的新しい手法が Qakbot 攻撃で使用されたことを確認しました。

SVG を使用した HTML スマグリング

SVG を使用した HTML スマグリング

JavaScript と HTML の正当な機能を悪用する HTML スマグリングにはさまざまな手法があることが確認されています。Talos はこのほど、スケーラブル ベクター グラフィックス(SVG)画像を悪用した比較的新しい HTML スマグリングの手法が攻撃に使用されたことを確認しました。

SVG はベクトルベースの画像です。JPEG などのピクセルベースのラスター画像とは異なり、拡大しても画質が落ちないのが特徴です。SVG 画像は XML を使用して作成するので、通常の XML マークアップタグを使用して HTML 内に配置できます。Talos は、悪意のある電子メールの HTML 添付ファイルにエンコードされた SVG 画像が含まれており、その SVG 画像自体に HTML の <script> タグが含まれている事例を確認しました。SVG 画像にスクリプトタグを含めるのは SVG の正当な機能ですが、この攻撃では、被害者のコンピュータに JavaScript を送り込むのにこの機能が悪用されていました。攻撃者は、ほとんどの Web ブラウザで JavaScript が許可されているのに付け込んで、ドキュメントの HTML の標準的な部分を装ってこの JavaScript を復号化および実行させています。

この事例では、SVG 画像に仕込まれた JavaScript に悪意のある zip アーカイブ全体が含まれており、JavaScript が実行されるとエンドユーザーのデバイスでマルウェアが直接組み立てられます。この HTML スマグリングの手法を使用すると、悪意のあるコンテンツを受信したら排除するように設計されているセキュリティデバイスで検出を逃れることができます。マルウェアペイロードは被害者のマシンで直接組み立てられており、ネットワークは通過していないからです。

下に示すのは、悪意のある Qakbot メールの例です。Qakbot は、被害者の電子メールを乗っ取り、既存の電子メールスレッドに対する返信として Qakbot メールを送信することが知られていますが、下の例でもそのとおりの振る舞いを見せています。電子メールスレッドを乗っ取る攻撃の多くには興味深い共通点があります。その 1 つが、非常に古い電子メールスレッドが乗っ取られるケースが多いということです。この例のスレッドは 2020 年のものです。

Qakbot メール。窃取された電子メールスレッドと悪意のある HTML 添付ファイルが含まれている。

被害者が電子メールの HTML 添付ファイルを開くと、SVG 画像に仕込まれた JavaScript コードが実行されて、悪意のある zip アーカイブが作成され、ファイルの保存を求めるダイアログボックスが表示されます。

添付ファイルを開くと SVG 画像の JavaScript によってファイル保存ダイアログボックスが表示される。

また、パスワードも HTML 添付ファイルに表示されます。これは被害者のマシンでローカルに作成された暗号化 zip アーカイブを開くためのパスワードです。

JavaScript によって作成された zip ファイルのパスワードも HTML 添付ファイルに表示される。

HTML 添付ファイルの内部には、JavaScript を被害者のマシンに送り込むためのコードが含まれています。File の「F」や Password の「P」が HTML エンコードされているなど、明らかな難読化手法がいくつか見て取れます。また、base64 エンコードされた SVG 画像が <embed> タグに含まれていることも明確に確認できます。

SVG 画像が base64 エンコードされて HTML 添付ファイルに埋め込まれている。

base64 を復号化し、JavaScript の難読化を解除すると、この Qakbot 攻撃で使用された SVG HTML スマグリングの手法が見えてきます。JavaScript 変数に格納されているテキストは charCodeAt() という関数によってバイナリ blob に変換されます。その後 createObjectURL() という関数によってバイナリ blob が zip アーカイブに変換され、ローカルファイルシステムへの保存を求めるプロンプトが表示されます。

悪意のある Qakbot メールの base64 SVG 画像を復号化した例。

攻撃者から提供されたパスワードをユーザーが入力して zip アーカイブを開くと、.iso ファイルが抽出されます。Cisco Secure Malware Analytics によると、この .iso ファイルは Qakbot を被害者に感染させることを目的としています。

まとめ

HTML スマグリングは従来のネットワーク防御を回避する可能性があるため、何らかのセキュリティ保護を環境内のエンドポイントに導入することが重要になります。堅牢なエンドポイント保護を導入して、難読化されていることがあるスクリプトの実行を防ぎ、ダウンロードされた実行コンテンツがスクリプトによって起動されないようにしてください。環境内で実行されてもよい信頼できる実行ファイルについて、エンドポイントセキュリティでルールを適用することもできます。

HTML スマグリングを防止するうえで重要なもう 1 つの対策は、HTML スマグリング攻撃についてユーザーを教育することです。電子メールセキュリティの分野では、不審な電子メールの添付ファイルを開いたり、不審なメッセージのリンクをクリックしたりしないようにという呼びかけが長年にわたって行われています。HTML スマグリングはセキュリティデバイスを回避する可能性があり、頻度も増加傾向にあるため、この呼びかけに従うことがますます重要になっています。

ネットワーク防御製品では悪意のあるコンテンツのスキャン能力が向上してきており、攻撃者もそうしたコンテンツフィルタリングを回避する対抗策を編み出そうとしています。HTML スマグリングはコンテンツスキャンフィルタを回避する能力を持っているため、この手法を使用する攻撃者や攻撃事例は今後増えていくものと思われます。

 

本稿は 2022 年 12 月 13 日に Talos Grouppopup_icon のブログに投稿された「HTML smugglers turn to SVG imagespopup_icon」の抄訳です。

 

Tags:
コメントを書く