ホモグラフ攻撃 (Homograph Attack / IDN Homograph Attack) とは、見た目が同じまたは酷似した異なる Unicode 文字を使って、正規のドメイン名に偽装する攻撃手法です。たとえば、ラテン文字の「a」(U+0061) とキリル文字の「a」(U+0430) は肉眼では区別できませんが、コンピュータ上では異なる文字として扱われます。
具体例として、「apple.com」のラテン文字「a」をキリル文字「a」に置き換えた「apple.com」(見た目は同じだが実際は異なるドメイン) を登録し、Apple の偽サイトを構築するケースがあります。2017 年にセキュリティ研究者の Xudong Zheng 氏がこの手法を実証し、大きな注目を集めました。
国際化ドメイン名 (IDN) の仕組みがこの攻撃を可能にしています。IDN は日本語やアラビア語などの非 ASCII 文字をドメイン名に使えるようにする技術で、内部的には Punycode (xn-- で始まるエンコード) に変換されます。ブラウザのアドレスバーには Unicode 表示されるため、ユーザーは偽装に気づきにくくなります。
短縮 URL とホモグラフ攻撃の関係は二重のリスクを持ちます。第一に、短縮 URL サービス自体のドメインがホモグラフで偽装される可能性があります。第二に、短縮 URL のリダイレクト先がホモグラフドメインのフィッシングサイトである可能性があります。短縮 URL サービス側でも、登録される遷移先が偽装ドメインであれば受け付けない運用が求められますが、見た目の類似だけを根拠に機械的に線引きできるものではありません。
主要ブラウザはアドレスバーの表示側で対策を取っていますが、Punycode 表示に切り替える条件はブラウザごとに異なります。Chrome は公開している表示ポリシーで、紛らわしいスクリプト (文字体系) の混在だけでなく、単一のスクリプトだけで組まれた紛らわしい名前や、紛らわしい字を共通の形に揃えると有名ドメインと一致してしまう名前も Punycode 表示の対象としています。Firefox はトップレベルドメインのレジストリ側で対策方針が示されている場合に Unicode 表示を許す方式を軸にしており、1 つのスクリプト内で全文字を置き換えた偽装は表示側では防げないとして、登録を受け付ける側の責任範囲としています。2017 年に注目を集めた事例がすべてキリル文字で組まれていたのも、スクリプトの混在を手掛かりにする判定をこの形が通り抜けたためです。アドレスバーに Unicode がそのまま表示されていることは、そのドメインが正規である証拠にはなりません。