
(開発中) 悪質なページを監視するブラウザ拡張機能。
NB: これはプロジェクトのコードリポジトリです。パックされた拡張機能をお探しの場合は:
Firefox: https://addons.mozilla.org/en-US/firefox/addon/behave/
Chrome: https://chrome.google.com/webstore/detail/mppjbkhgconmemoeagfbgilblohhcica/
Behave! は、ウェブページが以下のいずれかのアクションを実行した場合に監視し警告します:
以下は、Behave! がログ内の at.tack.er ページを指摘している例です:

Behave! は、ブラウザセッション中に使用されるポートまたはプロトコルの数が特定の制限を超えた場合にユーザーに警告します。
デフォルトの制限は20ですが、ユーザーは設定から変更できます。
BehaveはDNSリクエストを一切行わないため、
Behave! は、ウェブページが以下のブロックに属するIPアドレスに直接アクセスしようとした場合に警告します:
悪意のあるスクリプトがブラウザに対して、権威DNSがプライベートIPに解決するFQDNへの接続を指示した場合、Behave! は解決されたIPがプライベートかどうかをチェックします。
ただし、解決されたホスト名のIP情報は、ポートが開いている場合にのみ利用可能です。
Behave! はTOCTOU問題を防ぐために外部DNSリクエストを一切行わないため、ポートが閉じている場合はIP解決ができず、したがって警告もありません。
Behave! は直接的なDNSリクエストを行わず、IPは傍受した応答から取得されます。
つまり、DNSリバインディングのようなTOCTOU攻撃にさらされることはありません。
Behave! は、ホスト名が複数のIPで解決された場合を追跡し、パブリックIPとプライベートIPが混在している場合に警告します。
Behave! はパックされた拡張機能として以下で入手できます:
Firefox Extension: https://addons.mozilla.org/en-US/firefox/addon/behave/
Chrome Extension: https://chrome.google.com/webstore/detail/mppjbkhgconmemoeagfbgilblohhcica/
ただし、コードを少し試してみたい場合は、以下の手順に従ってください:
以下のいずれかにアクセスすると何が起こるか見てみましょう:
Singularity of Origin DNS Rebinding Attack: http://rebind.it:8080/manager.html
JavaScript Port Scan: http://jsscan.sourceforge.net/jsscan2.html
注意: 現時点では、以下のような非プライベートIPに対してDNSリバインディング攻撃が行われた場合には警告しません: https://www.alf.nu/BrowserCacheAndDnsRebinding
ぜひご協力ください! 気軽にIssueを作成するか、プロジェクトをフォークしてPRを送ってください。