攻撃者は、従来の検出を回避しながらフィッシングページやマルウェアを配信するために、JavaScriptやBase64エンコードされたペイロードを埋め込んだSVGファイルをますます武器にしています。MetaDefender Core™を駆動するコア技術の1つであるDeep CDR™は、すべてのアクティブコンテンツ(スクリプト、外部参照、イベントハンドラなど)を削除し、リスクを排除しながら機能を保持するクリーンで標準に準拠した画像を提供することによって、このクラスの攻撃を無力化します。通常の信頼できるSVG(Scalable Vector Graphics)はJavaScriptを必要としないため、デフォルトで削除されます。
なぜSVGなのか
フィッシング・ペイロードの完璧な乗り物
SVGはXMLベースのベクター画像フォーマットであり、単純なビットマップではない。
SVGファイルは以下を含むことができる:
- スクリプト
- イベントハンドラ
- 外部参考文献
これらの機能はインタラクティブなグラフィックスには便利だが、攻撃者はこれを悪用する:
- 悪意のあるコードを実行する
- 悪意のあるXMLデータの注入
- 外部コンテンツの取得
- 偽のログインページを表示する
攻撃者はまた、一見無害に見える画像の中にBase64ペイロードを埋め込み、実行時にデコードすることで、SVGとHTML/JSの密輸を組み合わせています。このテクニックは現在、MITRE ATT&CK "SVG Smuggling"(T1027.017)として正式に追跡されています。
主な収穫
In normal enterprise content workflows (logos, icons, diagrams), SVGs don’t require JavaScript or active content. If you find <script>, event handlers, or remote references in an inbound SVG, treat them as risky.
野生の選手たち
Base64デコードされたフィッシングメールの添付ファイル
- 配信:通常の電子メールには.svgの添付ファイルがあり、多くの電子メールゲートウェイはこれを画像として扱います。
- Technique: Inside the SVG, an obfuscated <script> reconstructs a phishing page from a Base64 blob and loads it in the browser.
リダイレクトにイベント・ハンドラを使用するDrive
- 配信:危殆化した、あるいはタイポスクワットされたサイトは、クリック可能な領域を持つ透明なSVGオーバーレイを使用する。
- テクニックイベント属性(onload、onclick)は、Base64デコードを使用してリダイレクトをトリガーする。
なぜここで検出が苦戦するのか
シグネチャ、パターン・ルール、静的コード検査といった従来のアプローチは、攻撃者が攻撃を仕掛けてきたときに失敗する:
- Base64、XOR、ジャンクテキストパディング、ポリモーフィックテンプレートで難読化する。
- 実行時まで実行を延期する(例:onload)ため、静的解析が信頼できなくなる。
- イベントハンドラや外部参照のような正当な SVG 機能の背後にあるロジックを隠す。
興味深い事実
HTTPアーカイブのデータによると、SVGはトップ1000のウェブサイトの92%でアイコンやグラフィックに使われている。
"アクティブならリスキー"
SVG用Deep CDR
Deep CDR、 MetaDefender Core支えるコアテクノロジーの1つであり、何が悪意のあるものかを推測しようとはしません。信頼できないファイル内の実行可能なコンテンツやアクティブなコンテンツはすべて危険であると判断し、削除またはサニタイズします。
SVGの場合、それはつまり
- Remove JavaScript: Strips out any <script> elements and inline scripts to prevent code execution.
- CDATAを削除:有害なロジックを埋め込む可能性のあるCDATAセクション内の隠れたコードを削除します。
- インジェクションを削除します:悪意のあるプログラムを実行する可能性のある注入されたコンテンツをブロックします。
- 画像を処理します:埋め込み画像を再帰的にサニタイズし、外部画像を削除します。
- 正規化と再構築:安全な視覚要素のみを含む標準に準拠した SVG を作成します。
- オプションでラスタライズ:ベクターのインタラクティブ性を必要としないワークフローのために、SVGをPNGまたはPDFに変換します。
このアプローチはセキュリティガイダンスと一致している:コードの実行を防ぐためにSVGをサニタイズするかサンドボックス化する(あるいはラスタライズする)。
Deep CDR主な使用例
メールゲートウェイ
配信前に、受信した添付ファイルやリンクされたファイル(ダウンロードによって解決されたURL)をサニタイズします。クリーンなSVGに変換されたSVGは、クレデンシャル・ハーベスターのレンダリングやダウンローダーの発火を防ぎます。
コラボレーション・プラットフォーム
Teams、Slack、SharePointなどのツールで共有されるファイルにDeep CDR 適用します。ここでSVGをサニタイズすることで、日常的なコラボレーション中に隠されたログイン画面や悪意のあるスクリプトがユーザーを騙すことがないようにします。
ウェブ・アップロード・ポータル
Webサイト、CMS、デジタルアセット管理システムにアップロードされるすべてのファイルにサニタイズを適用します。これにより、攻撃者が一見シンプルなロゴやグラフィックの中に有害なコードを隠すことを防ぎます。
ファイル転送とMFT Managed File Transfer
Deep CDR ファイル転送ワークフローに統合することで、すべてのファイル、特にパートナーやベンダーからのファイルが、ネットワークに入る前に安全に使用できるようになります。これにより、侵害された資産によるサプライチェーンリスクを低減できます。
ビジネスインパクト
SVGのサニタイズを無視すると、次のようなことが起こりうる:
- クレデンシャルの盗難:偽のログインページでユーザー認証情報を採取する。
- マルウェア感染:リダイレクトチェーンがランサムウェアやステアラーを配信。
- コンプライアンス違反:機密データに関わる違反は、罰金や風評被害を引き起こす可能性がある。
SVGベースの攻撃を防ぐためのベストプラクティス
- デフォルトのスタンス:信頼できないソースからの SVG に JavaScript を使わない。
- サニタイズまたはラスタライズ:すべての受信 SVG ファイルにDeep CDR 適用します。
- CSPとの併用:プライマリ・コントロールとしてではなく、ディフェンス・イン・デプスとして使用する。
- 監査とログ:コンプライアンスとフォレンジックのために、すべてのサニタイズ操作を追跡します。
おわりに
SVGベースのフィッシングは机上の空論ではなく、今まさに起こっている。検知ベースのツールでは、進化する難読化技術に追いつくことはできません。Deep CDR 、決定論的で信頼ゼロのアプローチを提供し、ユーザーに届く前にリスクを取り除きます。