脅威の調査

Scalable Vector Graphics のファイルがもたらす新たなフィッシングの脅威

SVG ファイル形式に悪意のある HTML、スクリプト、マルウェアが隠れている可能性

** 本記事は、Scalable Vector Graphics files pose a novel phishing threat の翻訳です。最新の情報は英語記事をご覧ください。**

電子メールによるフィッシング攻撃を行う犯罪者は、既存のスパム対策やフィッシング対策を回避するよう設計された新たな攻撃経路をますます悪用するようになっています。それが、SVG と呼ばれるグラフィックファイル形式の使用です。

.svg ファイルが添付された電子メールメッセージから始まったこの攻撃は、昨年末から広がり始め、1 月中旬以降、大幅に増加しています。

このファイル形式は、サイズ変更可能なベクターベースの画像をコンピュータ上で描画するためのものです。デフォルトでは、SVG ファイルは Windows コンピュータのデフォルトブラウザで開きます。しかし、SVG ファイルは JPEG、PNG、BMP 形式のように単にバイナリデータで構成されているわけではありません。SVG ファイルには、ブラウザウィンドウに描画するための XML 形式のテキスト命令が含まれています。

The content of a legitimate SVG file source alongside a thumbnail
サムネイルと並んだ正規の SVG ファイルソースの内容

しかし SVG 画像はブラウザ内でネイティブに読み込まれ、レンダリングされるため、アンカータグやスクリプト、その他のアクティブな Web コンテンツを含むこともできます。そのため、このファイル形式は脅威者に悪用され続けています。攻撃で使用されている SVG ファイルには、長方形などの単純な図形を描画する命令が含まれていますが、別の場所にホストされている Web ページにリンクするアンカータグも含まれています。

A malicious SVG links to a Google Doc file
悪意のある SVG から Google Docs ファイルへのリンク

この形式を知らないユーザーがメールの添付ファイルをダブルクリックすると、ブラウザで SVG ファイルが開きます。ブラウザはベクターグラフィックとアンカータグの両方を新しいタブでレンダリングします。

A simplistic malicious SVG hotlinks the recipient's email and some text to a phishing page
単純化された悪意のある SVG が、受信者の電子メールとテキストをフィッシングページにホットリンクします。

標的が SVG ファイルに埋め込まれたリンクをクリックすると、ブラウザによってリンクが開かれます。これにより、アカウントにログインする状況に標的が標的を誘い込むように設計されたソーシャルエンジニアリングが開始されます。

SVG フィッシング攻撃に使用されるソーシャルエンジニアリングの手口

ソフォスが確認した件名やメッセージには、一般的なフィッシング攻撃によく見られる手法が数多く使われています。

使用されているパターンの 1 つは、添付ファイルが署名を必要とする法的文書であると主張するものです。メッセージの件名は以下のようなものです。

  • 完了: [ランダムな文字]_Contract_and_Agreement_[数字] REF ID [数字]
  • 契約時期到来: 2025年 スーパー年金加入契約 (2025年 1月)。
  • 新しいボイスメール [受信者のメールユーザー名]
  • 新しいボイスメールがあります
  • [メールユーザー名] から新しいボイスメールがあります
  • 新しいベンダー PO#[数字] (提出番号: [ランダムな文字], 日付: [日付]/01/2025)
  • TT-[数字] 承認
  • XeroxVersaLink_[ランダムな文字]-2025-01-[日付]_契約書_[ランダムな文字].pdf
  • 健康保険・ボーナス給付登録 -Ref:-br#[数字], 日付: [日付]/01/2025
  • 支払通知書 – 参照: / RFQ優先支払 / 顧客番号:
  • [メールユーザー名]の KPI レビューとコミッションの発表 (参照番号: [数字], 日付 [曜日], [日付])。
  • 重要: 確定した文書を保存または印刷してください 文書の完成を確認—確認または修正 #BookingRef-[ランダムな文字]
  • 支払い確認書 – SWIFT [ランダム文字].pdf
  • 送金確認ファックス-[日付]/2025[時刻] 連絡先 – [メールアドレス]
  • 要電子署名: e-Docs経由の資本調達に関する文書 Ref-[ランダムな文字]
  • アクション: データスキャン: 代理店契約をご確認の上、ご署名ください。メッセージ ID: #[ランダムな文字]
  • Attn: オーディオ録音 REC#[数字].wav Transcript [日付] 2025年1月 $[ランダムな文字]

これらの攻撃により、以下のような有名ブランドやオンラインサービスが悪用されています。

  • DocuSign
  • Microsoft SharePoint
  • Dropbox
  • Google Voice
  • RingCentral

これらのメッセージの本文もまた初歩的な内容ですが、メッセージ本文に受信者/標的のメールユーザー名 (@ 記号の前に表示されるアドレスの部分) が含まれることがあります。

A malicious SVG attached to a fake "fax notification" email
偽の「ファックス通知」メールに添付された悪意のある SVG

攻撃の仕組み

SVG が添付されたメールを、標的ユーザーが受信して開くと、SVG ファイルを処理する別のプログラムがすでにインストールされていない限り、そのファイルはデフォルトのブラウザで開きます。

これらの悪意のある SVG ファイルのうち最も単純なものには、1 行または数行のハイパーリンクテキストが含まれており、電子メールのユーザー名の前に 「Click To Open (「クリックして開く)」 または 「Click the link below to listen to the voicemail (下のリンクをクリックしてボイスメールを聞く」)」 というフレーズが付加されます。

このリンクは CloudFlare キャプチャゲートの背後にあるフィッシングページにつながっています。人間であることを証明するチェックボックスをオンにすると、フィッシング詐欺グループが運営するページにリダイレクトされ、本物の Office365 のログインダイアログが表示されます。

A CAPTCHA protects a phishing site
CAPTCHA がフィッシングサイトを保護
An alternative CAPTCHA page gating a phishing site
フィッシングサイトに仕掛けられた代替の CAPTCHA ページ

しかし、もっと精巧に作られたファイルも見つかっています。あるバージョンでは、「svg」の中にリモート画像へのリンクが埋め込まれており、その画像は攻撃者の管理下にある別のドメインでホストされています。

The SVG contains a live link that points to a raster image resembling a SharePoint notification hosted elsewhere
SVG には、他の場所でホストされている SharePoint 通知に似たラスター画像を指すライブリンクが含まれています。

DocuSign や SharePoint のページに見えるようにデザインされた、異なるバージョンの埋め込み画像があります。画像をクリックすると、CAPTCHA が仕掛けられたフィッシングページが表示されます。別のバージョンは Google Doc から画像を読み込みます。

The "LegalSkillsTraining" website hosts nothing but images leveraged in SVG phishing campaigns
Web サイト「LegalSkillsTraining」は、SVG フィッシングキャンペーンに利用された画像のみをホストしています。

これらの悪意のある SVG の中で最も複雑なものには、Wikipedia の記事から一見ランダムに引用されたテキストブロックが含まれていました。このテキストは SVG のソースに埋め込まれていましたが、コメントアウトされていたため、画面には表示されませんでした。

A Wikipedia entry fills space in this malicious SVG that also includes Javascript
Wikipedia の 1 つの項目が、JavaScript を含むこの悪意のある SVG のスペースを埋めています。

また、別の SVG には、たとえユーザーがホットリンクされたコンテンツをクリックしなくても、少し遅れて自動的にフィッシングページを読み込む、手の込んだ JavaScript が含まれていました。

The "RaccoonClient" version of the SVG automatically loads the phishing page after a delay
「RaccoonClient」バージョンの SVG は、遅延後に自動的にフィッシングページを読み込みます。

フィッシングページはすべて、攻撃者の管理下にあるドメインでホストされていました。前述したように、自動的にアクセスするのを防ぐために、ほぼすべてのページに CloudFlare CAPTCHA が仕掛けられていました。これらのサイトは、login.live.com から Office365 のログインダイアログのコンテンツをプリフェッチし、O365 ユーザーには見慣れたアニメーションを表示します。

The source of the phishing page shows it loading the Microsoft login content inside a frame within the page
フィッシングページのソースを見ると、キー入力をキャプチャするページ内のフレームの中に Microsoft のログインコンテンツを読み込んでいることがわかります。

場合によっては、このスクリプトは SVG ファイルに埋め込まれたリンクからクエリ文字列で渡された標的のメールアドレスを、ログインダイアログに事前入力していました。iFrame 内の JavaScript「EventListener」は、ユーザーによるフォームへの入力内容すべてをキャプチャします。

実際のサイトに対して行ったテストでは、ほとんどのサイトでテキスト入力が即座にキャプチャされ、ログインダイアログが表示される iFrame をホストするドメインに直接流出しました。いくつかのケースでは、認証情報が複数のサイトに同時に送信されていることがわかりました。

One of the external sites that received exfiltrated data, "VirtualPorno," which had nothing of the sort but did have open directories
流出したデータを受け取った外部サイトの 1 つ「VirtualPorno」にはそのようなものはありませんでしたが、フィッシングスクリプトを含むオープンディレクトリが存在していました。

あるセッションでは、メッセージングサービスの API を使用して Telegram ボットに認証情報を渡していました。

An SVG phishing page exfiltrates data to a Telegram bot
SVG フィッシングページが Telegram ボットにデータを流出

1 週間の間に、ソフォスはフィッシングページがより巧妙なものになっていくのを観察することができました。この「ボイスメール」ページのように、デザイン性の低いページの見栄えがよくなっていきました。

A "voicemail" download link prompts for a password. The target's email address was prefilled.
「ボイスメール」のダウンロードリンクがパスワードの入力を要求。標的のメールアドレスは事前に入力されています。

また、Google Voice などのブランドが、いくつかのフィッシングページで綿密に模倣されていました。

A fake Google Voice login also had the target's email address as well as the name of their employer's organization embedded in the page.
Google Voice の偽ログインには、標的のメールアドレスや勤務先の組織名も埋め込まれていました。

最終的には、受信者のトップレベルドメインに基づいて、異なる言語をターゲットにしたバージョンも見つかりました。たとえば、日本の学術機関に勤める標的宛の電子メールと、そこに埋め込まれた SVG は、どちらに日本語で作成されていました。その結果、非常にリアルで日本語にローカライズされた Dropbox のログイン画面が再現されました。

A fake Dropbox login in Japanese prompts the target to download a voicemail message
標的にボイスメールメッセージのダウンロードを要求する、日本語の偽 Dropbox ログインページ

SVG ファイルの 1 つは、標的自身のネットワーク上にあるネットワークドライブを利用しようとしているようでした。このファイルには、URL の代わりに Microsoft のネットワークパスが含まれていました。

「共有ファイル」リンクをクリックすると、HTML ファイルがダウンロードされ、そのファイルを開くと、背景にぼやけた PDF 文書があるように見えるページが表示されます。

The local HTML file prompts the user to click the Open button
このローカルの HTML ファイルは、ユーザーに [Open] ボタンをクリックするよう促します。

しかし、テストしたところ、このサイトが Windows エクスプローラーでローカルネットワークパスを開こうとしている、という旨のエラーメッセージがブラウザに 表示されました。

The error message indicates that instead of a webpage it was trying to open a local network path
エラーメッセージは、Web ページの代わりにローカルネットワークのパスを開こうとしていることを示しています。

ページソースは「trycloudflare.com」の下にネットワークパスを開こうとしているようですが、ハードコードされた埋め込みのユーザー名とパスワードの受け渡しに失敗します。

A network path that contained a hardcoded username and password
ハードコードされたユーザー名とパスワードを含むネットワークパス

最後に、ソフォスが検出したもうひとつの SVG ファイルには、base64 としてエンコードされた大量のデータが含まれているようでした。そのデータを解読したところ、2 つのファイルが格納されている Zip アーカイブであることがわかりました。

The SVG with a base64 data blob inside
base64 データブロブを含む SVG

Zip ファイルに圧縮された 2 ファイルのうち、1 つはパスワードで保護されており、もう 1 つは保護されていませんでした。パスワードで保護されたファイルは Windows マルウェアの実行ファイルです。保護されていないファイルは平文の文書で、奇妙なことに、アーカイブ内のもう 1 つのファイルのパスワードが含まれていました。

The zip file contained a password-protected executable and an unprotected text file that contained the password for the other file
Zip ファイルには、パスワードで保護された実行ファイルと、もうひとつのファイルのパスワードが記された保護されていないテキストファイルが含まれていました。

筆者は今回、パスワード保護された Zip のパスワードが、Zip 自体に埋め込まれているのを初めて見ました。しかし、この方法は実際に機能していました。

The password in the text file compressed with the malware
マルウェアの実行ファイルで圧縮されたテキストファイル内のパスワード

圧縮されていないこのファイルは、現在「Troj/AutoIt-DHB」として検出されているマルウェアです。これは AutoIt スクリプトで、画像ファイルのように見えるものを標的がダブルクリックするだけで、キーストロークロガー「Nymeria」をセットアップしてインストールします。

深刻な被害

悪意のある SVG ファイルは、従来のエンドポイント保護ツールやメール保護ツールによる検出を回避するように設計されているようです。しかし、この研究の結果、アナリストは、ソフォスが観測したさまざまな種類の兵器化されたファイルの検出シグネチャを開発しました。この検出機能「Cxmail/EmSVG-C」は、現在 Sophos Central Email で稼働しています。

一般ユーザーがこの脅威からコンピュータを守るためにできることはいくつかあります。まず、本物の SVG グラフィックファイルを探してダウンロードし、デフォルトのブラウザではなく、常にメモ帳 (またはその他のブラウザ以外のプログラム) で開くように Windows を設定します。

これを行うには、こちらのような本物の SVG グラフィックをデスクトップにダウンロードします。ダウンロードしたファイルを右クリックし、[プログラムから開く] -> [別のプログラムを選択] を選び、ブラウザ以外 (メモ帳など) を選び、[常にこのアプリを使って .svg ファイルを開く] チェックボックスをオンにします。

First choose another app...
まず、別のアプリを選択します…
...then pick something benign that should open it instead of the browser
次に、ブラウザの代わりにファイルを開くアプリを選び、[常にこのアプリを使う」にチェックを入れます。

将来的に誤って悪意のある SVG をクリックしたとしても、メモ帳で開くだけなので、フィッシングされる可能性が低減します。(今後、本物の SVG ファイルを扱う必要が出てきた場合には、もう一度同じ手順を実行し、使用する予定のグラフィックアプリケーションを選択してください。)

この攻撃で読み込まれたフィッシングページは、明らかに Microsoft の通常の Web サイトではホストされていませんでした。ブラウザのアドレスバーの URL を見るだけで、トップレベルドメインが .ru のページを読み込んでいる場合、SharePoint や DocuSign にアクセスしていないことがわかるはずです。

Your first clue is the .ru
最初の手がかりは「.ru」

その他の手がかりとして、請求書などのメッセージが、標的にメールを送ったことのないメールアカウントから送信されており、連絡先などの詳細情報が少ない (場合によっては本文にメッセージがまったく無い) ことがありました。

 I hope your lawyer writes more than absolutely nothing when they send you a contract to sign
本物の担当弁護士であれば、契約書を送付する際には本文に何か書いてくるはずです。

ですから、怪しいメッセージには鋭く批判的な目を向けることが、最善のフィッシング対策かもしれません。

IoC(セキュリティ侵害の痕跡)

この脅威の IoC (セキュリティ侵害の痕跡) については、ソフォスの Github リポジトリに掲載されています。Central Email、SFOS、および一部のエンドポイント製品におけるスパム添付ファイルのサブタイプ (CXmail/EmSVG-C) の検出と、悪意のある SVG 添付ファイル (Troj/XMLPh-A、Troj/XMLPh-E、Troj/XMLPh-F、Troj/XMLDrp-AJ、Troj/XML-AV、Troj/XMLDl-K) のシグネチャベース検出が追加されました。

謝辞

Sophos X-Ops は、メールセキュリティチームの Brett Cove と Fan Ho、SophosLabs の Krupa Gajjar、Rutvik Panchal、Khushi Punia、Gyan Ranjan、Purva Shah、Kafil Ahmed Shaikh、Devang Sharma、Simran Sharma、Aaditya Trivedi、 Amey Vijaywargiya、Nirav Parekh、Rahil Shah、Rahul Dugar に謝意を表します。