
- Cisco Talos は、カスケーディング スタイル シート(CSS)を悪用する攻撃者を確認しました。その目的は、1)スパムフィルタと検出エンジンを回避すること、2)ユーザーの行動や好みを追跡することです。
- このブログは、攻撃者が「非表示テキストによるソルティング」と呼ばれる手法を使用して CSS を悪用し、スパムフィルタ、電子メールのパーサー、検出エンジンを回避する方法に関する Talos の以前のレポートの続編です。この手法は、セキュリティに影響を与えます。
- さらに、追跡目的での CSS の悪用も確認しており、これはユーザーのプライバシーに影響を与えます。この悪用は、ユーザーの行動の追跡から好みの特定まで多岐にわたります。電子メールクライアントでは JavaScript の実行が制限されていますが、ユーザーのクライアントやシステム構成によっては、CSS のプロパティやルールを使用して、システムやハードウェア構成のフィンガープリント(識別情報)を取得することも可能だと指摘しておきます。
カスケーディング スタイル シート(CSS)は、HTML のコンテンツのレンダリング方法と表示方法を指定するものです。CSS の本来の用途では、受信者の画面の解像度に合わせて電子メールのコンテンツを調整するために主に使用されます。しかしこの記事では、検出を回避し、最低限の情報であったとしても受信者を追跡するために、CSS をどのように悪用できるかについて説明します。Web ブラウザと比べ、電子メールクライアントでは動的コンテンツ(JavaScript など)に関連する機能が制限されているにもかかわらず、CSS で利用可能な機能により、攻撃者やスパム発信者はユーザーの行動や好みを追跡することができます。以下では、検出回避とユーザーの追跡の両方について、実際に確認した CSS の悪用事例を紹介します。すべて、2024 年後半から 2025 年 2 月までに確認された事例です。
回避目的でのカスケーディング スタイル シートの悪用
HTML と CSS の機能を組み合わせて使用することで、コメントや無関係なコンテンツを埋め込むことができます。埋め込まれたコメントやコンテンツは、電子メールクライアントで電子メールを開いても、被害者(受信者)には表示されませんが、パーサーや検出エンジンの機能に悪影響を及ぼす場合があります。最近のブログ記事でいくつかの事例を取り上げましたが、このセクションでは、これ以降さらに多くの例を紹介します。なお、ゼロサイズのフォントの使用など、セキュリティコミュニティでよく知られているものについては、ここでは取り上げません。
CSS の text_indent プロパティを使用すれば、電子メール本文のコンテンツを隠すことができます。以下は、さまざまな場所にテキストが含まれているフィッシングメールの例ですが、電子メールクライアントで開いてもテキストは表示されません。
元の単語の間に無意味な文字が追加されたフィッシングメール
上記電子メールの HTML ソースを調べると、非表示テキストによるソルティングが複数箇所で使われていることがわかります。例を挙げると、以下に示すスニペットでは、CSS の text-indent と font-size プロパティが併用されており、この電子メールの受信者に表示される元の単語の間に無意味な文字を追加して隠しています。
電子メールの受信者に見える元の単語の間に挿入された無関係な文字を隠すために CSS の text-indent プロパティがどのように使用されているかを示す、上記フィッシングメールの HTML ソースのスニペット
text-indent プロパティが –9999px に設定されているので、電子メールクライアントでメールを表示すると、テキストが可視領域から大きく外れてしまいます。さらに、font-size プロパティが極端に小さいサイズに設定されているため、実質上、ほとんどの画面ではテキストが肉眼では見えません。場合によっては、テキストの色も透明に設定し、どのような背景でも表示されない色でレンダリングすることにより、テキストを完全に非表示にするという手法も使用されます。
また、CSS の opacity プロパティを使用して、無関係なコンテンツを隠すことも可能です。Blue Cross Blue Shield の組織を装ったフィッシングメールの例を以下に示します。
Blue Cross Blue Shield の組織を装ったフィッシングメール
上記電子メールの HTML ソースを詳しく調べると、電子メールの本文とプリヘッダーの複数箇所でコンテンツを隠そうとしていることがわかります。ほとんどの電子メールのテンプレートでは、電子メールにプリヘッダーテキストを追加できるようになっています。プリヘッダーテキストは電子メールの件名のすぐ後に表示され、追加した情報によって読者の興味を引くことができます。なお、このフィールドは、多くの電子メールマーケティングやスパム攻撃でも使用されています。
この例では、CSS の opacity プロパティをゼロに設定し、要素を完全に透明にすることで非表示にしています。このプリヘッダーテキストは color、height、max-height、max-width など、複数の CSS プロパティを使用して非表示にされていることに注目してください。さらに、mso-hide プロパティを「all」に設定しているので、Outlook の電子メールクライアントでもプリヘッダーが非表示になります。また、非表示のプリヘッダーテキストの内容はまったく無関係で、スパムフィルタに怪しまれないよう、無害に見えることにもご注意ください(「FOUR yummy soup recipes just for you!(4 種類のおいしいスープレシピをご紹介)」など)。
上記電子メールのプリヘッダーテキストを隠すために CSS の opacity プロパティがどのように使用されているかを示す、上記フィッシングメールの HTML ソースのスニペット
3 つ目の例では、ユーザーを最終的なフィッシングページにリダイレクトするために HTML スマグリングの手法が使われています。これは 2025 年 2 月に、あるお客様に送信されたスピアフィッシングメールです。さらに、HTML の添付ファイルには、明解な、あるいは文法的に正しい文章を形成しない一連のドイツ語の単語やフレーズが含まれており、これらは非表示テキストによるソルティングによって電子メールの受信者には見えないようになっています。
HTML ファイルが添付されたスピアフィッシングメール
この電子メールには「With regards」というフレーズが含まれており、他の 2 つの言語(フィンランド語とエストニア語)でも併記されています。以下に、HTML の添付ファイルの内容を表示したものも示しています。Microsoft SharePoint のロゴを表示することで、受信者がボタンをクリックして文書を確認するように仕向けていることに注目してください。
上記電子メールの HTML の添付ファイルの内容を表示した画像
上記電子メールの HTML の添付ファイルを調べると、無関係なドイツ語のフレーズを隠すために、CSS プロパティがさまざまな方法で使われていることがわかります。まず、段落の位置が「absolute」に設定されており、ページ上のどこにでも配置できるようになっています。これは、要素を画面外に移動させて隠すためによく使われる手法です。さらに、段落の width プロパティと height プロパティがゼロに設定されているので、レンダリングしても非表示になります。opacity プロパティもゼロに設定されているため、コンテンツは透明になり、受信者には見えません。さらに、追加した「ソルト」が被害者に見えないままにするために、クリッピング手法が利用されています。具体的には、最初の段落は幅と高さがゼロの CSS の clip プロパティ(この記事を書いている時点では廃止)を使用して矩形でクリッピングされており、可視領域を制限することで効果的に非表示になっています。他の段落は、より最新の CSS プロパティである clip-path を使用して円形にクリッピングされています。最後に、overflow プロパティが hidden に設定されているので、div 要素の外側のコンテンツは非表示のままになります。
受信者には見えない無関係なドイツ語のフレーズを電子メール本文に追加するために、非表示テキストによるソルティングがどのように使用されているかを示す、上記スピアフィッシングメールの HTML ソースのスニペット
追跡目的でのカスケーディング スタイル シートの悪用
電子メールクライアントによって、使用されるレンダリングエンジンも、サポートされる CSS ルールとプロパティも異なりますが、CSS プロパティを悪用すれば、ユーザーの行動や好みを追跡することができます。ここからは、受信者のシステムとハードウェアのフィンガープリント取得も可能であることについて説明しますが、これらのフィンガープリント手法の一部は特定の電子メールクライアントでのみ機能し、一定の構成を前提としている点にご注意ください。
マーケティングキャンペーンの場合は、CSS プロパティを使用してユーザーエンゲージメントを追跡し、今後のキャンペーンを最適化しますが、スパム発信者や攻撃者の場合は、標的型フィッシング攻撃の強化、情報の収集、標的型エクスプロイトの作成のためにこの手法を使用します。以下では、お客様のプライバシーを侵害しようとする試みをほんの数例だけ紹介します。
ユーザー(電子メール受信者)の行動や好みの追跡は、ここ数か月の間に Talos が実際に確認した CSS の悪用パターンの中で最も一般的なものです。この悪用は、受信者の好みのフォントやカラースキーム、クライアント言語を特定することから、受信者の行動(電子メールの閲覧や印刷など)を追跡することまで多岐にわたります。以下は、複数の追跡(トラッキング)機能を備えたスパムメールの例です。
スパムメールの例
下に示した上記メールの HTML ソースでは、複数のトラッキング手法が用いられています。まず、受信者が電子メールをいつ開いたかを記録するためにトラッキング画像を使用しています。次に、別々のトラッキング URL が、受信者の好みのカラースキームを記録します(URL 内の文字 rd と rl を参照)。これには、CSS の @media ルールが使用されます。その次に示しているトラッキング URL は、電子メールがいつ印刷されたかを記録します(URL 内の文字 p を参照)。最後に、別々のトラッキング URL を使用して、特定の電子メールクライアントでメールがいつ開かれたかを記録します。各受信者には固有の識別子が割り当てられていて、トラッキング URL でその識別子が使用されている点にも注目してください。
受信者の行動や好みの追跡方法を示す、上記スパムメールの HTML ソースのスニペット
以下に示した 2 つ目の電子メールの例では、受信者の地理的位置やデバイス固有の情報など、さらに多くの情報を追跡しています。
スパムメールの例
下に表示した上記メッセージの HTML ソースを調べると、追跡の手がかりが複数あることがわかります。まず、トラッキング画像を使用して、受信者がいつこの電子メールを開いたかが記録されています。次に、別々の URL を使用して受信者の好みのカラースキームが追跡されています。その次に、トラッキング URL がこのメッセージに埋め込まれ、いつ印刷されたかが記録されています。その後、別々のトラッキング URL を使用して、特定の電子メールクライアントでこのメールがいつ開かれたかが記録されています。最後に、電子メールの最後にトラッキングピクセルが追加され、受信者の IP アドレス、電子メールを開いたときに使用した電子メールクライアント、およびデバイス固有の情報が収集されています。
受信者の行動や好みの追跡方法と、地理的位置やデバイス固有の情報の収集方法を示す、上記スパムメールの HTML ソースのスニペット
先に説明したように、CSS では、ユーザー、Web メールや電子メールクライアント、システムのフィンガープリントを、スパム発信者や攻撃者が取得できるようになる幅広いルールとプロパティが提供されています。たとえば @media ルールを使用して、画面のサイズ、解像度、色深度など、ユーザー環境の特定の属性を検出することができます。以下の HTML コードのスニペットは、CSS の @media ルールをこうした目的にどのように使用できるかを示しています。受信者のデバイスの画面幅などの基準に基づいて、さまざまなスタイルを設定したり、さまざまなリソースをロードしたりできます。
受信者のデバイスの画面幅(画面の解像度)のフィンガープリント取得のために CSS の @media ルールをどのように使用できるかを示す、HTML コードのスニペットの例
受信者が使用しているデバイスのオペレーティングシステムのフィンガープリント取得も可能で、主に 2 つの方法があります。まず、受信者のシステム上で特定のフォントが使用可能かどうかを調べれば、受信者が使用しているオペレーティングシステムを推測できます。さらに、このオペレーティングシステムの推測に基づいて、特定の要素の表示をブロックすることが可能です。これには、CSS の @font-face ルールが使用されます。
下の例では、メッセージ本文で Segoe UI フォントが使用されていますが、これは Windows オペレーティングシステムではデフォルトで一般的に使用可能なフォントです。さらに、@font-face ルールで MacFont というフォントが定義されており、これは Helvetica Neue がローカルで利用可能かどうかに依存します。このフォントは通常、macOS システムで使用されます。この例では、.mac-style クラスを持つ要素は、デフォルトでは非表示(display: none;)であることに注目してください。これらの要素は、仮想のメディアルールが MacFont を検出した場合にのみ、受信者に表示されます(display: block;)。
CSS の @font-face ルールの使用方法(受信者が使用しているデバイスのオペレーティングシステムのフィンガープリントを取得し、特定のフォントが利用可能かどうかでコンテンツを表示またはブロック)を示す、HTML コードのスニペットの例
受信者が使用しているデバイスのオペレーティングシステムのフィンガープリント取得のために使用可能な 2 つ目の方法は、適用可能なスタイルに基づいたリソース(画像など)に固有の URL を使用することです。電子メールがこれらのリソースをロードするときには、サーバーログが受信者のオペレーティングシステムに関するヒントになる場合があります。以下に示すスニペットの例では、被害者のオペレーティングシステムに応じて別々の画像がロードされています。オペレーティングシステムは、適用された特定のフォントやスタイルの有無によって判断されます。
受信者が使用しているデバイスのオペレーティングシステムのフィンガープリント取得のために、CSS を使用して別々の画像をロードする方法を示す、HTML コードのスニペットの例
緩和策
複数の例を挙げて説明したように、スパムフィルタと検出エンジンを回避するためや、ユーザーとそのデバイスを追跡したり、フィンガープリントを取得したりする目的で、CSS が提供する機能、ルール、およびプロパティが攻撃者によって悪用される可能性があります。そのため、組織やビジネスのセキュリティとプライバシーの両方が危険にさらされています。以下では、それぞれの領域について、いくつかの緩和策を紹介します。
セキュリティリスク緩和策:1 つの方法は、非表示テキストによるソルティングやコンテンツの隠蔽を、より効果的に検出できる高度なフィルタリングメカニズムを使用することです。これらのシステムは、電子メールのさまざまな部分を検査し、隠されたコンテンツを検出し、フィルタリングすることができます。あるいは、テキストの部分だけでなく、電子メールの視覚的特徴など、他の特徴も検出に活用できれば役立つはずです。この方法は、画像ベースの脅威において特に有益です。
プライバシーリスク緩和策:この領域で最も効果的なソリューションの 1 つは、電子メールのプライバシープロキシを使用することです。この緩和策は電子メールクライアント用に設計されており、電子メールを書き換えることによって、プライバシーを強化し、異なるクライアント間で電子メールの完全性を維持します。特に、プロキシサービスでは主に 2 つの機能を実行できる必要があります。それは、1)トップレベルの CSS ルールをスタイル属性に変換する機能、2)リモートリソース(画像など)がデータ URL を介して電子メールに直接含まれるように書き換える機能です。前者の機能は、スタイルを電子メール自体に限定し、クライアント定義のスタイルとの競合を防ぎます。後者の機能は、情報の漏洩を防ぎ、トラッキングピクセルを無効にし、長期にわたって電子メールの完全性を確保します。
保護対策
このような複雑な脅威から保護するには、AI による検出を活用した、包括的な電子メール セキュリティ ソリューションが必要です。Cisco Secure Email Threat Defense は、その高度な脅威検出システム内で、自然言語処理を取り入れた独自のディープラーニングと機械学習モデルを採用しています。
Cisco Secure Email Threat Defense は、組織に対する攻撃で使用される有害な手法を検出し、特定のビジネスリスクに関する比類のないコンテキストを抽出し、検索可能な脅威データを提供します。また、脅威を分類することにより、攻撃に対して組織のどの部門のリスクが最も高いかを特定します。
高度な脅威に対抗するために、環境の強化に着手しましょう。Email Threat Defense の無料トライアルに今すぐご登録ください。
本稿は 2025 年 3 月 13 日にTalos Group
のブログに投稿された「Abusing with style: Leveraging cascading style sheets for evasion and tracking
」の抄訳です。