広告ブロックの進化のための手続き型コスメティックフィルター
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →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は間もなく、ローカルネットワークリソースを悪用するサイトからユーザーを保護するための新しいアプローチを搭載します。この新しいシステムは以下のように機能します。
Braveがこのような多段階の方法でローカルホスト許可を実装したことには、いくつかの理由があります。最も重要なのは、ローカルホストのリソースを悪用することは、ユーザーにとって有益なケースよりもはるかに一般的であることが考えられるため、害にしかならないと予想されるリクエストに対してユーザーにパーミッションダイアログを表示することを避けたいと考えていることです。
加えて、Webサイトが想定していないケース(または、サードパーティスクリプトがローカルホストリソースへのアクセスを試していることを認識していないケース)であえてパーミッションプロンプトを表示します。パーミッションプロンプトの表示はユーザーとサイトに等しく利点がある場合に限定させたいと考えています。
前述したように、他のほとんどのブラウザは、Webサイトがローカルホストのリソースにアクセスすることをほとんど制御していません。デスクトップ版のFirefoxとChromeは、セキュアなサイトとセキュアでないサイトの両方がローカルホストのリソースにアクセスすることを許可しており、セキュアなサイトがローカルホストのリソースにアクセスすることを無期限に許可しているように見えます。
セキュリティ強化の副作用として、(他のWebKitブラウザと同様に)Safariは安全なWebサイトからのlocalhostリソースへのリクエストを今はブロックしています。しかし、私たちが把握している範囲では、Safariは全てのWebサイトからのこれらのリクエストをはっきりとブロックしているようではありません。
私たちが知る限り、Braveは安全なサイトと安全でない公開サイトの両方からローカルホストリソースへのリクエストをブロックする一方で、ユーザーが信頼できるサイトの互換性を(紹介させていただいたlocalhostパーミッションの形で)維持できる唯一のブラウザです。
私たちはこの対応をBraveユーザーに紹介できることを嬉しく思い、そして今後もユーザープライバシーを犠牲することなくBraveブラウザをさらに強力にすべく改良を続けます。しかし、ブラウザによるローカルホストリソース管理については、まだまだやるべきことがあります。
まず、ローカルホストリソースが何であるかをどのようにBraveユーザーの皆さんに説明するのが効果的か模索しています。上級者でないユーザーにも理解できる権限管理に関する説明方法が見つかったら、リストにあるサイトだけでなく、すべてのサイトでパーミッション管理を利用できるようにする予定です。
第二に、私たちはこれらの保護機能をネットワークスタックのより深い部分にまで押し進め、Braveがローカルホストアクセスをリクエストするサイトによる(ローカルホストを参照するDNSレコードなどの)あまり一般的ではない方法からもユーザーを保護できるようにします。近日中に更なる詳細が共有できればと考えています。
第三に、ネットワークリクエスト全般に権限(または権限に近いコントロール)を適用する方法を統一し、拡張することを考えています。BraveはすでにサードパーティのCookieを必要とするGoogleログインリクエストに権限保護を適用しており、私たちは他にどのような類似の使い方ができるのか検討しています。ここでの主な困難は、しばしば同期的な動きが期待されているリクエストに非同期パーミッションモデルを適用することです。改めてになりますが、私たちはBrave内部と外部の研究者でいくつかの選択肢を模索しており、すぐにご報告させていただければと考えています。
バージョン1.73より、Braveはページ要素の手続き型コスメティックフィルターのサポートを追加することで、広告ブロック機能を大幅に改善します。
この記事を読む →iOSバージョン1.71より、Braveはユーザーの訪問を特定するブラウザデータを素早く削除する Shred(シュレッド) という新機能を搭載します。
この記事を読む →バージョン1.68から、BraveはiOSとして最初の、すべてのサイトをデフォルトでHTTPSにアップグレードするWebブラウザになります。
この記事を読む →