
Varonis Threat Labsは、URLスプーフィングの扉を開く10年以上前から存在する脆弱性にスポットライトを当てています。
ブラウザが右から左(RTL)および左から右(LTR)のスクリプトを処理する方法を悪用することで、攻撃者は信頼できるように見えるが実際には別の場所に誘導するURLを作成できます。この手法はBiDi Swapとして知られ、フィッシング攻撃で頻繁に悪用されることがあります。
過去のUnicode攻撃とスプーフィング
BiDi Swap以前にも、ユーザーやブラウザを騙して偽のテキストやURLを表示させるUnicodeベースのトリックがいくつか使われてきました。代表的な例は以下の通りです:
- Punycode ホモグラフ攻撃:国際化ドメイン名(IDN)は、ウェブサイトが非ラテン文字(例:ロシア語の「а」、キリル文字の「с」、ギリシャ語の「ο」)を使用できるようにします。これらはラテン文字とほぼ見分けがつかず、「аpple.com」や「рayрal.com」のような偽装ドメインを作成できます。ブラウザは一貫した処理のためにこれらを変換します(例:「xn--something」)が、攻撃者は見た目が同じ文字を巧妙に使い、本物のサイトだと信じ込ませます。
- RTLオーバーライドの悪用:一部の攻撃者は特殊なUnicode文字(例:U+202E)を埋め込み、文字列の途中でテキスト方向を反転させます。これによりURLのパスを偽装したり、ファイル拡張子を無害に見せたり、テキストの順序を入れ替えて「blafdp.exe」→「blaexe.pdf」のように悪意あるファイルの末尾を隠すことができます。
これらの制御文字は右から左の言語を正しく処理するために必要ですが、危険な内容を隠したりレイアウトを入れ替えたりして、サイトやファイル名が一見安全に見えるようにすることもできます。
これら過去の攻撃は、テキスト処理の微妙な違いが大きなセキュリティリスクを生み出すこと、そしてこうしたスプーフィングトリックを防ぐために継続的な警戒が必要であることを明らかにし、BiDi Swapの舞台を整えました。
LTR、RTL、そしてBiDiとは?
テキストの方向に関しては、英語やスペイン語のように左から右(LTR)に流れる言語もあれば、アラビア語やヘブライ語のように右から左(RTL)に流れる言語もあります。この混在は、テキストがごちゃごちゃにならないようにすべてを整列させる必要があるコンピュータにとって課題となります。
そこで登場するのが双方向(Bidi)アルゴリズムです。
Unicode標準の一部であるBidiは、コンピュータが同じテキスト内でLTRとRTLのスクリプトを正しく表示できるようにします。
しかし、Bidiアルゴリズムは通常ドメインはうまく処理しますが、サブドメインやURLパラメータの扱いは苦手です。このギャップにより、混在したLTR–RTLのURLが意図した通りに表示されず、悪用の余地が生まれます。
URLの構造
URLとは何か、その構造を簡単におさらいしましょう。URL(Uniform Resource Locator)は、ウェブ上のリソースを指し示す標準化された方法であり、通常はいくつかの主要な要素で構成されています:
- プロトコル(スキーム):リソースへのアクセス方法を定義します。例:「http://」や「https://」
- サブドメイン:メインドメインの前に付く任意の部分(例:「www.example.com」の「www.」)。大規模なサイト内でコンテンツを整理するのに使われます。
- ドメイン:アドレスの中心部分(例:「example」)
- トップレベルドメイン(TLD):ドメイン名の末尾(例:「.com」「.org」「.net」)。用途や地理的な位置を示すことが多い。
- パス:ドメインの後に現れるディレクトリやファイル構造(例:「/blog/posts」)
- クエリ文字列/パラメータ:サーバーに追加情報を渡すためのキーと値のペア。通常「?」で始まる(例:「?id=123」)

BiDi Swap
まずはシンプルな例から始めましょう。通常の右から左(RTL)のホスト(ドメイン+TLD)は次のようになります(はい、一文字のホストです):
次に、プロトコルを追加し、RTLとLTRのパラメータを混在させてみます:
パラメータを右側に置くとすぐに混乱することに気づくでしょう。次に、別のドメイン名のように見える英語のパラメータを追加してみます:
それでも期待した動作にはなりません。今度はサブドメインを模倣しようとするとどうなるか見てみましょう:
LTRサブドメインといくつかのRTLパラメータを組み合わせると:
さらにペイロード例:
自分で試してみましょう: varonisサブドメインを好きなドメインに変えて、その挙動を観察してみてください!
免責事項:このサイトは現状のまま提供されており、教育および情報提供のみを目的としています。これはブラウザの挙動とその悪用の可能性に関する概念実証を示すものです。ここに記載されたコードや手法の使用、およびそれに起因するいかなる結果についても、すべて利用者の自己責任となります。本サイトの著者および管理者は、不正利用を推奨・容認せず、本内容に基づくいかなる行為についても責任を負いません。
ブラウザによる対策
Chrome
BiDi Swapは10年以上前からChromeで知られている問題です。Chromeの「類似URLへのナビゲーション提案」機能は部分的な保護を提供しますが、テストの結果、特定のドメイン(例:「google.com」)のみを警告し、多くは見逃されることが分かりました。

Firefox
Firefoxもこの問題を長年認識しています。ただし、類似URLの提案に頼るのではなく、アドレスバーでドメインの主要部分を強調表示するUIアプローチを採用しています。これにより、ユーザーが偽装や不審なリンクを見抜きやすくなっています。

Edge
Microsoftに報告したところ、問題は解決済みとされましたが、URLの表示方法は変わっていないようです。

ARC
Arcはすでに開発が終了していますが、正しく表示できたブラウザの例を紹介します:

まとめと推奨事項
BiDi Swapに対抗するため、以下の推奨事項を守りましょう:
- 意識が重要: 特にスクリプトが混在していたり、予期しないパターンが見られる疑わしいURLは必ず確認しましょう。
- 改善を促す: ブラウザ開発者は、ドメインのハイライトや類似URL検出など既存の保護機能をさらに強化し、セキュリティギャップを埋めるべきです。
- ユーザーやチームの教育: すべての人にリンクにマウスオーバーする、SSL証明書を確認する、ドメインの一貫性をチェックするよう促しましょう。数秒の確認が大きなセキュリティリスクを防ぎます。
Varonis Threat Labsチームによる他の記事もブログでご覧ください。
侵害を防ぐエンドツーエンドのアプローチ
Varonis Interceptorの卓越した脅威検知と Varonis Data Security Platform および MDDRサービスを組み合わせることで、攻撃チェーンの早い段階でデータ侵害の試みを阻止する能力を加速させています。
VaronisはMicrosoft Exchange Onlineのようなメールサービスと直接連携し、機密情報を含む受信・送信トラフィックを分類し、公開されたメールボックスの姿勢問題を修正し、業界最先端の行動分析を用いて内部リスクにつながる異常なメールトラフィックを監視します。
Varonis Interceptorの追加は、エンドツーエンドのメールおよびブラウザセキュリティにおける大きな進歩です。マルチモーダルAIの力を活用することで、市場の既存ソリューションよりも効果的にフィッシング脅威を特定・緩和します。Varonis Interceptorにより、企業は自信を持って受信トレイとデジタル資産内の機密データを保護できます。
Interceptorの実力をすぐに見たい方は、今すぐデモをお申し込みください。
スポンサーおよび執筆:Varonis