web-dev-qa-db-ja.com

ホモグラフ攻撃からどのように防御しますか?

ホモグラフ攻撃 のこのWikipediaの例を参照すると、WikipediaのURLにはラテン文字のAとEが同様のキリル文字のコピー(wikipediа.org)。これらのキャラクターは非常によく似ていますが、どのように区別できますか?

16
toffee.beanns

ブラウザベンダーはすでにtryを使用してホモグラフ攻撃から保護し、IDN( Internationalized Domain Names )をURLバー。

その対策には、潜在的に混乱しやすい記号(֊、 "アルメニア語のハイフン" U + 058Aなど)をブラックリストに登録し、特定の状況下で Punycode として非ラテン系アルファベットの文字を含むURLを表示することが含まれます。だから、あなたが訪問した場合

https://wikipediа.org

uRLはURLバーに次のように表示されます

https://xn--wikipedi-86g.org/

wikipedia.orgと簡単に区別できるPunycode変換ルールに従います。

ブラウザがIDNを表示するために使用する特定のアルゴリズムに興味がある場合は、以下を参照してください。

ただし、使いやすさを維持しながら悪いIDNを変換する(たとえば、ドイツ語の誰かにäをリテラルで表示したい)とは、ややわかりにくいことが判明しました 2018年でも 新規攻撃が発生しています。

ブラウザーの組み込み保護を信頼しない場合は、IDNドメインについて警告する ブラウザー拡張 も使用できます(@defaltが指摘しているように)。または、@ wcharginが 彼の回答 で説明しているように、手動で検出する方法を選択できます。

18
Arminius

Arminiusの答え は、ブラウザが実際のUnicodeグリフではなくpunycodeをレンダリングする条件について言及しています。私の経験では、これらの条件は十分ではありません。たとえば、URL https://аррӏе.com/ (リンクは安全ですが、フィッシングサイトである可能性があります)は、Chrome、Firefox以外:

Screenshot of Firefox's URL bar demonstrating a homograph attack

これが私が個人的に使用するソリューションです。やり過ぎかもしれませんが、この攻撃から完全に保護します。

このソリューションの前提条件は、任意のWebサイトに資格情報を入力するときは常に、データを入力する前に常にアドレスバーを読み取ることです。 )*とにかくこれを行う必要があります!—しかし、実際には次のことが必要です。

私の手順は簡単です。資格情報を入力する前に、テキストをアドレスバーにコピーし、次のように定義したプログラムhexobを起動します(ファイル~/bin/hexobで):

#!/bin/sh
xsel -ob | xxd | xmessage -file -

このプログラムは、クリップボードのUTF-8エンコーディングのコード単位を次のようにメッセージボックスに表示します。

Screenshot of the result of <code>hexob</code>: an <code>xmessage</code> box with a hex dump of a legitimate login URL

ホストを読み取ることで、これが有効なログインURLであることをすばやく確認できます。ホストは右側に正しく表示されるため、ホストのすべてのコードポイントはASCIIです。

一方、誰かが私を https://аррӏе.com/ にリンクしていた場合、ホモグラフ攻撃の例であり、メッセージボックスは次のようになります。

Screenshot of the result of <code>hexob</code> for a deceptive URL

ここでは、https://аррӏе.com/のUTF-8エンコーディングのコード単位がわかります。これは、https://Apple.com/のUTF-8エンコーディングとは大きく異なります。ほとんどのコードポイントはASCIIではないため、それらのUTF-8コードユニットにはMSBが設定されているため、右側にある数の.sとして表示されます。 URLのホスト部分の右側に.sが表示される場合、私はstopであり、資格情報を入力していません。

C-l C-c Super-p hexob RETと入力してこのプロセス全体を完了します。これには数秒しかかかりません。 (私のSuper-pはあなたのAlt-F2かもしれません。)

*これは、データを入力するたびに毎回実行する必要があることに注意してください。たとえば、Googleにログインしているときにパスワードを入力すると、Googleは「パスワードが正しくありません」と言ったので、この手順をもう一度実行する必要があります。これは、Googleのログインページにオープンリダイレクトがあるためです。Googleの実際のログインシステムにリダイレクトするページを作成できます。ログインすると、フィッシングに自動的にリダイレクトされますGoogleのログインシステムとまったく同じように見えますが、私が管理しているページです。

7
wchargin

他の回答で言及されていないもう1つのこと:他の利点に加えて、password managerはこれらの攻撃から保護するのに役立ちます:www.google.comに保存された資格情報はwwwに自動的に入力されません。 googIe.com(最後から2番目の文字は大文字のI)で、何かがオフになっていることを示唆しています。そのサイトにログオンするには、パスワードを手動で明示的にコピーして貼り付ける必要があります。

4
Federico Poloni