ホモグリフ攻撃:サイバー詐欺で類似キャラクターがどのように悪用されるか
目次:
- イントロダクション
- ホモグリフ攻撃とは何ですか?
- 実用的な同形文字の混同
- 実用的な同形文字混同表
- ホモグリフ攻撃が効果的な理由
- 一般的なホモグリフの使用例と攻撃ベクトル
- 実例とキャンペーンパターン
- 技術的な詳細解説 ― Unicode、IDN、そしてPunycode
- Unicodeとスクリプト
- IDNとPunycode
- 混在した文字体系と紛らわしい
- 攻撃の流れ ― ステップバイステップ
- 検出が失敗する理由 ― 微妙な技術的落とし穴
- MITRE ATT&CK マッピング (高レベル)
- 防御措置および運用上の勧告
- ポリシーとガバナンス
- 技術的制御
- 運用慣行
- ベストプラクティスチェックリスト
- 注目すべき新たなトレンド
- 結論
イントロダクション
URLを一瞥し、見覚えのあるブランド名を見つけてクリックすると、攻撃者に認証情報を渡してしまうことになります。この小さな視覚的なミス(実際にはギリシャ文字のオミクロンである「o」、小文字の「l」が大文字の「I」に置き換えられているなど)こそ、ホモグリフ攻撃が悪用する点です。ホモグリフとは、異なる文字セット(ラテン文字、キリル文字、ギリシャ文字、全角文字など)に属する、視覚的に類似した文字のことです。攻撃者がドメイン名、ファイル名、メッセージ表示名、またはコード内の文字を入れ替えると、人間はもちろん、多くの場合、自動化された防御システムも騙されてしまいます。
ホモグリフ攻撃は、低コストで影響力の大きい欺瞞手法です。フィッシング、ブランドなりすまし、マルウェア配布、サプライチェーンの混乱、単純な検出ルールの回避などに使用されます。このブログでは、技術的な仕組み(Unicode、IDN、Punycode)、攻撃者がホモグリフをどのように運用するか、検出とハンティングのアプローチ、実際の使用パターン、MITREマッピング、Quick Healなどの階層型保護を含む実用的な防御について説明します。 Seqrite 助けて。
ホモグリフ攻撃とは何ですか?
ホモグリフとは、別の文字に似ている文字のことです。例えば:
- ラテン文字の a (U+0061) とキリル文字の а (U+0430)
- ラテン語の o (U+006F) とギリシャ語の ο (オミクロン、U+03BF)
- ラテン文字のI(大文字のi、U+0049)と小文字のl(ell、U+006C)とキリル文字のI(U+0406)
ホモグリフ攻撃とは、識別子(ドメイン名、ファイル名、メール表示名など)の1文字以上を、視覚的に紛らわしい代替文字に置き換えることで、信頼できるリソースになりすます攻撃です。国際化ドメイン名(IDN)で使用される場合、これらのドメインはPunycode(接頭辞xn--)を使用してASCIIで表現されますが、ブラウザでは元のUnicode文字でレンダリングされることが多く、ユーザーには本物そっくりのURLが表示されます。
Punycodeの簡単な例(概念的な、匿名化されたもの):
表示されているドメイン: google-example[.]com (ラテン語の「o」の代わりにギリシャ語のオミクロンを使用)
Punycode (ASCII): xn--gogle-example-abc[.]com
実用的な同形文字の混同
ホモグリフ攻撃は、ラテン文字、キリル文字、ギリシャ文字など、異なる言語の文字体系における視覚的に類似した文字を悪用する攻撃です。これらの類似した文字は、ユーザーを欺いたり、信頼できるドメインを偽装したり、さらには一部の自動フィルターを回避したりする可能性があります。
以下は、フィッシングやなりすましキャンペーンでよく悪用される同形文字の組み合わせを簡単にまとめたものです。
実用的な同形文字混同表
| ビジュアル | 正当な人物 | そっくりさん | スクリプト | 攻撃における一般的な使用例 |
| a | a (U+0061) | а (U+0430) | キリル | 「ペイパル」、「フェイスブック」 |
| e | e (U+0065) | е (U+0435) | キリル | 「マイクロソフト」、「テスラ」 |
| o | o (U+006F) | ο (U+03BF)、ο (U+043E) | ギリシャ語 / キリル文字 | 「グーグル」、「マイクロソフト」 |
| i | i (U+0069) | ı (U+0131)、 І (U+0406) | トルコ語 / キリル文字 | 「インスタグラム」、「マイクロソフト」 |
| l | l (U+006C) | 私(U+0049) | ローマ字 | 「グーグル」、「マイクロソフト」 |
| c | c (U+0063) | c (U+0441) | キリル | 「フェイスブック」、「マイクロソフト」 |
| p | p (U+0070) | р (U+0440) | キリル | 「raypal」、「dropbox」 |
| s | s (U+0073) | ѕ (U+0455) | キリル | 「マイクロソフト」、「Slack」 |
| y | y (U+0079) | у (U+0443) | キリル | 「уahoo」、「раypal」 |
| x | x (U+0078) | x (U+0445) | キリル | 「xbox」、「linux」 |
| d | d (U+0064) | ԁ (U+0501) | キリル | 「雲のフレア」 |
| h | h (U+0068) | һ (U+04BB) | キリル | 「һbo」、「һulu」 |
| n | n (U+006E) | n (U+0578) | アルメニア語 | 「リプケディン」、「アマゾパン」 |
| m | m (U+006D) | rn(シーケンス) | ラテン語(視覚トリック) | 「マイクロソフト」ではなく「rnicrosoft」 |
| 0 | 0(数字のゼロ) | O (U+004F)、O (U+043E) | ラテン文字/キリル文字 | 「マイクロソフト」、「グーグル」 |
なぜ同形文字攻撃は効果的なのか?
- 人間の知覚: 人々はURLを視覚的に評価するため、微妙な文字の違いを見分けるのが苦手である。
- ディスプレイとストレージの不一致: システムはASCII(Punycode)を保存しながらUnicodeを表示する場合があり、混乱を招く可能性がある。
- ポリシー/許可リストのギャップ: 可視文字列に基づく許可リスト作成(正規化なし)では、IDNベースの類似文字列を見逃す可能性があります。
- 証明書とホスティングの可用性: 攻撃者は、類似ドメイン(Let's Encryptなど)のTLS証明書を取得し、正当性があるように見せかけることができる。
- 自動化のギャップ: 多くのセキュリティパイプラインはUnicodeの正規化や混在文字の検出を行わないため、同形異義語がすり抜けてしまう。
一般的な同形文字の使用例と攻撃経路
- スピアフィッシングと認証情報窃盗: フィッシングメールには、認証情報収集フォームをホストする偽ドメインへのリンクが含まれています。
- ビジネスメール侵害 (BEC): 請求書/支払い詐欺では、請求書に記載されている送信者の表示名やドメインが正しく見えるが、同形文字が含まれている。
- マルバタイジング/マルウェア配布: 実行ファイルとアップデートは、アナリストやサンドボックスを欺くために、類似のドメイン上にホストされている。
- ユーザー名/表示名の偽装: Slack、Teams、メールなどのプラットフォーム上で、攻撃者は同僚になりすますために、表示名に同形文字を使用したアカウントを登録する。
- サプライチェーンと開発者の混乱: パッケージ名、リポジトリ名、または変数識別子に類似した文字が含まれていると、開発者が悪意のあるコードをダウンロードしたり、誤ったバイナリを実行したりする原因となります。
実際の事例とキャンペーンパターン
行動力と責任感を維持するため、以下は匿名化されたパターンと公表された行動です(特定のブランドを非難するものではありません)。
- 金融業界を標的としたフィッシング詐欺: キャンペーンでは、ラテン文字とキリル文字を混在させた決済ポータルの類似ドメインを登録し、認証情報入力フォームを設置し、フォローアップメールを送信することで成功率を高めます。
- SaaSのなりすまし: 攻撃者は、人気のあるSaaSのログインページと見た目が全く同じIDNを登録して認証情報を盗み出そうとし、多くの場合、有効なTLS証明書と本物そっくりのHTMLログインフォームをドメインと組み合わせていた。
- BECにおける経営者のなりすまし: メールクライアントの表示名(またはドメインのわずかな変更)は、緊急転送を要求するために利用されます。犯人は、ユーザーが実際の返信先ドメインを確認しないことを当てにしています。
- 類似ダウンロードサイトを介したマルウェアの配布: 偽のダウンロードポータル(インストーラー用など)を同形ドメインでホストし、ドメインの評判が新しいためサンドボックスの検出を見逃す悪意のあるペイロードをプッシュする。
技術的な詳細解説 ― Unicode、IDN、そしてPunycode
Unicodeとスクリプト
Unicodeは、ラテン文字、キリル文字、ギリシャ文字、アルメニア文字、ヘブライ文字、アラビア文字など、多くの文字体系を含む包括的な文字セットです。異なる文字体系間でも、多くのグリフは一般的なフォントサイズでは似ているか、あるいは全く同じに見えます。
IDNとPunycode
ドメインネームシステム(DNS)は、従来ASCIIのみをサポートしていました。非ASCII名に対応するため、IDNA(Internationalized Domain Names in Applications)では、ASCII互換のエンコーディングであるPunycodeを採用しています。Punycodeは、xn--を接頭辞として付けます。例えば、пример(キリル文字)はxn--e1afmkfdとなります。
ブラウザは、ヒューリスティックに基づいて、Unicode形式を表示するかPunycode形式を表示するかを決定します。ドメインが単一のスクリプトの文字を使用し、そのスクリプトがユーザーのロケールと一致する場合、ブラウザは多くの場合Unicode文字列を表示します。これは、ラテン文字に慣れているユーザーにとっては視覚的に誤解を招く可能性があります。
混在した文字体系と紛らわしい
攻撃者は、視覚的に重要な位置(ブランド名の中心部分、ドメインラベルの開始/終了部分など)にラテン文字と少数のキリル文字またはギリシャ文字を組み合わせた、混合文字ドメインをよく使用します。
検出において重要な技術的メカニズム:
- 正規化形式(NFC、NFD、NFKC)は、正規分解/合成を変更し、文字列比較に影響を与えます。
- 混同しやすい文字一覧表(Unicodeコンソーシアム)には、視覚的に混同しやすい文字がリストされています。防御側は、これらの文字をあいまい一致検索に利用できます。
- BIDI(双方向)制御はテキストのレンダリング(\u202E)を反転させることができ、攻撃者はこれを利用してファイル名や表示名を難読化します。
攻撃の流れ ― ステップバイステップ
- 偵察とブランディング攻撃者は、標的が使用するブランド名、一般的なサブドメイン、およびローカライズされたスクリプトを収集します。
- ドメイン準備: IDNを受け入れるレジストラを通じて、同形文字ドメインを登録します。必要に応じてTLS証明書を取得します。
- ホスティングとコンテンツ: フィッシングページ、ダウンロードポータル、またはリダイレクトフローを設定し、メールテンプレートをドメインを指すように設定します。
- 配達: 同形文字ドメインへのリンクを含むメール、広告、またはソーシャルメッセージを送信する。典型的な信頼の手がかり(ロゴ、類似した文言)を利用する。
- 収集と利用: 認証情報を収集し、マルウェアを拡散させ、不正行為やアクセスマーケットでの販売によって収益を得る。
- 持続性: 収集した認証情報を使用してアクセス範囲を拡大したり、類似ドメインをさらに登録してキャンペーンをローテーションさせたりします。
検出が失敗する理由 ― 微妙な技術的落とし穴
- Unicode正規化なし: Unicode正規化を行わずに文字列を直接比較するツールは、一致を見逃すことがある。
- フォント/レンダリングの差異: フォントによっては、文字のセリフなど、文字の差異が目立つものもあれば、サンセリフなど、文字の差異が目立たないものもある(特に小さいサイズのサンセリフ)。
- 混合スクリプトのヒューリスティック: すべてのフィルターが混在するスクリプトを検出するわけではありません。一部の正当性チェックでは、ASCII文字のみを確認するものもあります。
- TLSによる誤った安心感: 有効な証明書は身元証明にはなりません。証明書の透明性は役立ちますが、登録パターンを阻止するものではありません。
MITRE ATT&CK マッピング (高レベル)
- ホモグリフ攻撃は、フィッシングをベースとした初期アクセスと最もよく関連しており、類似ドメインが認証情報収集ページをホストしている。
- 攻撃者は、リソース開発段階において、オープンソースの情報源を利用して、信憑性の高いなりすましターゲットを作成し、偽のドメインやTLS証明書を取得する。
- なりすまし技術は防御を回避するために使用され、最終的には認証情報の窃盗、詐欺、またはより広範な侵入活動を可能にする。
| ステージ | 技術 | ATT&CK ID | ホモグリフの関連性 |
| 初期アクセス | フィッシング:スピアフィッシング リンク | T1566.002 | 類似ドメインが認証情報ページをホスト |
| 偵察 | 公開されているウェブサイト/ドメインを検索する | T1593 | OSINTを用いて標的固有の同形文字を作成する |
| リソース開発 | ドメインを取得する | T1583.001 | ホモグリフドメインとTLS証明書を登録する |
| 防御回避 | 偽装/欺瞞的な名称 | T1036 | ホモグリフは信頼できる名前を装う |
| クレデンシャルアクセス | 認証情報のフィッシング | T1531 / T1556 | 乗っ取りに使用された盗まれた認証情報 |
| 影響 | 衝撃や不正行為を防ぐため、データは暗号化されています。 | T1486 / T1490 | 初期ベクトルはより大きな侵入につながる |
防御措置および運用上の勧告
政策とガバナンス
- 組織は、価値の高いブランドやサービスについて、類似性の高いドメインを登録することを含む、正式なドメイン防御戦略を維持すべきである。
- 明確な国際化ドメイン名(IDN)使用ポリシーは、公式通信における混在文字ドメインの使用を禁止すべきである。
技術的制御
- メールゲートウェイとウェブプロキシは、Unicodeを正規化し、疑わしいリンクに対してPunycode警告を明確に表示する必要があります。
- DNSフィルタリングシステムは、新たに検出されたxn--ドメインを、レビューされるまで高リスクとして扱うべきである。
- 証明書の透明性監視機能は、類似ドメインに対して証明書が発行された場合に、セキュリティチームに警告を発するべきである。
運用慣行
- ブランド監視プログラムは、ドメイン登録と不正利用報告をほぼリアルタイムで追跡する必要がある。
- フィッシングシミュレーションには、ユーザーの意識向上を図るため、現実的な同形文字を用いたシナリオを含めるべきである。
- インシデント対応手順書には、レジストラやホスティングプロバイダーへのエスカレーションを含む、削除作業のワークフローを文書化する必要があります。
ベストプラクティスチェックリスト
- 機密性の高いすべてのサービスにおいて、多要素認証を強制する。
- すべての受信URLを正規化および検査し、必要に応じてPunycodeを表示します。
- 新規登録された類似ドメインについて、証明書の透明性とパッシブDNSデータを監視します。
- 複数の言語が混在するドメインはブロックするか、厳しく審査する。
- 同形文字を利用したフィッシングシミュレーションを実行する。
- 重要なブランドについては、防御的なドメインバリエーションを登録してください。
- 財務情報または資格情報に関する要求には、二次的な確認を要求する。
注目すべき新たなトレンド
- 攻撃者は、同形文字の生成とドメイン登録を大規模に自動化する傾向を強めている。
- AIを活用したフィッシングは、誘い文句の信憑性を高める一方、同形文字ドメインは欺瞞層を担う。
- 同形異義語の悪用は、欺瞞的なパッケージ名やリポジトリ名を通じて、ソフトウェアサプライチェーンにまで拡大している。
- クロスチャネルなりすましは、ホモグリフとチャットプラットフォーム、音声クローン技術を組み合わせることで、信頼性と成功率を高める。
結論
ホモグリフ攻撃は、些細な視覚操作が重大なセキュリティ侵害につながる可能性を示しています。攻撃者は、Unicodeの複雑さと人間の知覚を悪用することで、ユーザーと不十分な正規化対策の両方を回避します。
効果的な対策には、Unicode正規化、混同しやすいマッチング、混在文字の検出、プロアクティブなドメイン監視、強力なユーザー認証プロセスといった多層的な制御が必要です。これらの対策を組み合わせることで、攻撃者にとってのコストと複雑さが大幅に増加し、単純な欺瞞手法がはるかに効果の低い脅威へと変わります。
著者
著者: マティン・タドヴィ
共著者ニラジ・マカサレ



