プライバシーアップデート

ローカルホストリソース・パーミッション

Braveプライバシーチーム寄稿

この記事は、Braveブラウザの新しいプライバシー機能を紹介するシリーズの第27回目の投稿になります。今回はシニア・リサーチ・プライバシー・エンジニアのShivan Sahibによる対応の紹介です。この投稿はPeter Snyderによって書かれた記事の日本語訳です。

ローカルホストリソースへのアクセス許可を求めるブラウザプロンプト

バージョン1.54より、デスクトップとAndroidのBraveに、どのサイトが、どれくらいの時間ローカルネットワークリソースにアクセスできるか制御するための、強力な機能が搭載されます。ほとんどの一般的なブラウザは、保護機能や制限を設けずににWebサイトがローカルネットワークリソースにアクセスすることを許可しており、ユーザーのプライバシーとセキュリティが危険にさらされています。多くの一般的なWebサイトが、フィンガープリント技術を用いてあなたのローカルネットワークに問い合わせをしています。またWebサイトは、あなたの端末上で実行されている他のソフトウェアの情報を収集し、悪用しているかもしれません。

Braveは、サイトがローカルホストのリソースにいつアクセスするかを制御するためにWebパーミッションAPIを拡張する最初のポピュラーブラウザとなります。Braveの実装により、上級ユーザーはローカルホストリソースにアクセスするサイトを制御できるようになり、リクエストが悪意のあるものである可能性が高いことを示すプロンプトによる煩わしさを回避できます。この機能は、BraveがWebパーミッションに対して行ったこれまでの改善も活用しています。

ローカルホストのリソースとは何か、なぜサイトはそのリソースにアクセスしたいのか

「ローカルホストリソース」とは、Webサイトがアクセスできる(画像、Webページなどの)リソースを指す幅広い用語ですが、Webで使用されているものではありません。これらのリソースはあなたのコンピュータ上で、様々なソフトウェアによって(わからないところで)管理されています。

意外かもしれませんがほとんどのブラウザでは、Web上の様々なリソースにアクセスするのと同じように、Webサイトからローカルリソースへアクセスすることを許可しています。ブラウザがWebサイトに対してローカルホストリソースにアクセスすることを許可している理由はさまざまですが、主な理由は歴史的な遺産(これまでずっとこの方法が行われてきたのです)と互換性維持の2つです。かつてのブラウザは、ユーザーのプライバシーをあまり気にしていなかったため、ファーストパーティリソース(訪問しているサイトがホストしているもの)、サードパーティリソース(他のWebサイトでホストされているもの)、ローカルホストリソースの区別は明確ではありませんでした。

この歴史的な経緯のおかげで、多くはありませんが重要なソフトウェアが、Webサイトから自由にアクセスできることを想定して作られ、例えば、暗号通貨のウォレット、銀行やセキュリティ会社が提供するセキュリティ・ソフトウェア、特定のWebインターフェースを設定に使用するハードウェア・デバイスなど、良心的な用途で用いられてきました。

また状況によっては、ブラウザは、開発者によるソフトウェアテストのため、一般のWebサイトからのローカルホストリソースへのアクセスを許可することもあります。

残念ながら、ユーザーを傷つけるWeb上のさまざまなソフトウェアも、ローカルホストリソースへのアクセスを悪意をもって使用しています。例えば、フィンガープリンティング・スクリプトは、あなたがデバイス上で実行している他のソフトウェアからユニークなパターンを検出し、あなたを特定しようとします。また他のスクリプトは、マシン上の安全でない脆弱なソフトウェアを特定し、それを悪用しようとします。

この変更がBraveでのローカルホストリソースへのアクセスにどのように影響するのか

Braveは、悪意を持ってローカルホストのリソースにアクセスするサイトに対して複数の保護機能を提供する唯一のブラウザです。現在、Braveは以下のようなフィルターリストルールを使用しています。

  • ローカルホストのリソースを悪意を持ってスキャンすることが判明しているスクリプトをブロックしています
  • パブリックなWebサイトからのローカルホストリソースへのリクエストをブロックしています

これは他のブラウザとは対照的で、ローカルホストのリソースにアクセスするサイトに対するプロテクションは一般的にはありません(いくつかの注意点については次のセクションで説明します)。

Braveは間もなく、ローカルネットワークリソースを悪用するサイトからユーザーを保護するための新しいアプローチを搭載します。この新しいシステムは以下のように機能します。

  • ローカルホストコンテキストからのローカルホストリソースへのリクエストは自動的に許可されます。Braveは、ローカルホスト内で発生するアクセスに対してはブロックをしません。 1
  • Braveは引き続きフィルターリストルールを使用して、ローカルホストのリソースを悪用するスクリプトやサイトをブロックします。
  • Braveには localhost パーミッションという新しい権限が追加されます。この権限を持つサイトのみが、ローカルホストのリソースに対してサブリソースのリクエストを行うことができます。デフォルトでは、どのサイトもこの権限を持っておらず、ほとんどのサイトにおいてこの権限をユーザーに促すことはできません。ただし、上級ユーザーであれば既存のサイト設定インターフェイスを使用して、サイトに許可を与えることができます。 2
  • Braveには信頼済みサイト、つまり有益な理由でローカルホストのリソースにアクセスすることが知られているサイトのリストがあります。このリストにあるサイトが初めてローカルホストのリソースへのサブリクエストを開始すると、前述のローカルホストのパーミッションのプロンプトが表示されます。このリストは一般に公開され、Braveが管理します。

Braveがこのような多段階の方法でローカルホスト許可を実装したことには、いくつかの理由があります。最も重要なのは、ローカルホストのリソースを悪用することは、ユーザーにとって有益なケースよりもはるかに一般的であることが考えられるため、害にしかならないと予想されるリクエストに対してユーザーにパーミッションダイアログを表示することを避けたいと考えていることです。

加えて、Webサイトが想定していないケース(または、サードパーティスクリプトがローカルホストリソースへのアクセスを試していることを認識していないケース)であえてパーミッションプロンプトを表示します。パーミッションプロンプトの表示はユーザーとサイトに等しく利点がある場合に限定させたいと考えています。

他のブラウザはどのようにローカルホストリソースへの接続を管理しているか

前述したように、他のほとんどのブラウザは、Webサイトがローカルホストのリソースにアクセスすることをほとんど制御していません。デスクトップ版のFirefoxとChromeは、セキュアなサイトとセキュアでないサイトの両方がローカルホストのリソースにアクセスすることを許可しており、セキュアなサイトがローカルホストのリソースにアクセスすることを無期限に許可しているように見えます。

セキュリティ強化の副作用として、(他のWebKitブラウザと同様に)Safariは安全なWebサイトからのlocalhostリソースへのリクエストを今はブロックしています。しかし、私たちが把握している範囲では、Safariは全てのWebサイトからのこれらのリクエストをはっきりとブロックしているようではありません。

私たちが知る限り、Braveは安全なサイトと安全でない公開サイトの両方からローカルホストリソースへのリクエストをブロックする一方で、ユーザーが信頼できるサイトの互換性を(紹介させていただいたlocalhostパーミッションの形で)維持できる唯一のブラウザです。

ローカルホストリソースの管理に関する今後のBraveの対応

私たちはこの対応をBraveユーザーに紹介できることを嬉しく思い、そして今後もユーザープライバシーを犠牲することなくBraveブラウザをさらに強力にすべく改良を続けます。しかし、ブラウザによるローカルホストリソース管理については、まだまだやるべきことがあります。

まず、ローカルホストリソースが何であるかをどのようにBraveユーザーの皆さんに説明するのが効果的か模索しています。上級者でないユーザーにも理解できる権限管理に関する説明方法が見つかったら、リストにあるサイトだけでなく、すべてのサイトでパーミッション管理を利用できるようにする予定です。

第二に、私たちはこれらの保護機能をネットワークスタックのより深い部分にまで押し進め、Braveがローカルホストアクセスをリクエストするサイトによる(ローカルホストを参照するDNSレコードなどの)あまり一般的ではない方法からもユーザーを保護できるようにします。近日中に更なる詳細が共有できればと考えています。

第三に、ネットワークリクエスト全般に権限(または権限に近いコントロール)を適用する方法を統一し、拡張することを考えています。BraveはすでにサードパーティのCookieを必要とするGoogleログインリクエストに権限保護を適用しており、私たちは他にどのような類似の使い方ができるのか検討しています。ここでの主な困難は、しばしば同期的な動きが期待されているリクエストに非同期パーミッションモデルを適用することです。改めてになりますが、私たちはBrave内部と外部の研究者でいくつかの選択肢を模索しており、すぐにご報告させていただければと考えています。


  1. Braveのローカルホスト保護は、ユーザーが /etc/hosts などでローカルホスト用にインストールしたエイリアスには適用されません。詳細については、このブログ記事の最後のセクションをご覧ください。 ↩︎

  2. デスクトップでは、ユーザーはbrave://settings/content/localhostAccess でサイトにローカルホストへのアクセス許可を与えることができます。Androidユーザーは 設定 > サイトの設定 > localhostのアクセス で同じことができます。 ↩︎

Related articles

Braveで新しいWebを体験する準備はできましたか?

Braveはプライバシーとパフォーマンスを重視するWebのパイオニアからなるチームによって開発されています。Braveを利用しWebの再構築に協力していただけませんか?