【活用ガイド】

[English]

JVNDB-2020-018328

Web Rehosting サービスにおいて複数ウェブサイトに跨ったコンテンツの改ざん・盗聴等が行われる問題

概要

NTT セキュアプラットフォーム研究所および早稲田大学の研究チームにより、Web Rehosting と呼ばれるサービスを利用するユーザのブラウザ上で複数ウェブサイトのコンテンツを跨ったコンテンツ改ざんや盗聴などが可能となるセキュリティ上の問題が発見されました。この問題は研究チームにより NDSS 2020 において公表されました。

Web Rehosting サービスとは、本研究において提唱されたウェブサービス群の名称であり、指定された他のウェブサイトからコンテンツを取得し、変換などの処理を加えた後に自らのサーバに再度ホスティングして表示させる(再ホストする)機能を持っています。Web Rehosting サービスに該当するサービスとして、ウェブインターフェースから閲覧したいURLを指定する Web プロキシ、ウェブサイト全体を翻訳する Web 翻訳、ウェブサイトのスナップショットを保存する Web アーカイブなどが含まれます。

Web Rehosting に該当するサービスが対策を講じていない場合、ユーザのブラウザリソースの一部が悪意ある第三者によって不正に操作され、セキュリティ・プライバシー上の被害を受ける可能性があります。Web Rehosting の運用者が対策を講じる上では、当記事の「対策方法」を参照してください。

詳細については、JVNTA#96129397 を参照してください。

本文書はサービス事業者やユーザへの注意喚起を目的として、NTT セキュアプラットフォーム研究所の渡邉卓弥氏、塩治榮太朗氏、秋山満昭氏、および JPCERT/CC が共同で執筆しました。
CVSS による深刻度 (CVSS とは?)

影響を受けるシステム

Web Rehosting サービス利用者のブラウザ

(複数のベンダ)
  • (複数の製品)

想定される影響

(I) Persistent-MITM
Web Rehosting サービス経由でアクセスした悪性ウェブサイトのコンテンツに Service Worker もしくは AppCache が含まれている場合に、ブラウザ上でそれらが永続的に動作し、以降の Web Rehosting を経由したあらゆるウェブサイトへのアクセスに対して中間者攻撃を受ける可能性があります。

(II) Privilege Abuse
Web Rehosting サービス経由でアクセスしたウェブサイトに対してカメラや位置情報等のリソースへのアクセスを許可した場合、それ以降に Web Rehosting サービス経由でアクセスする悪性ウェブサイトのコンテンツにも同様のアクセス権限が付与されることから、そのアクセス権限を悪用してカメラや位置情報を利用される可能性があります。

(III) Credential Theft
Web Rehosting サービス経由でアクセスしたウェブサイトの認証情報(ID・パスワード情報)をブラウザに保存した場合、それ以降に Web Rehosting サービス経由でアクセスする悪性ウェブサイトのコンテンツでもブラウザの自動補完機能によって上記の認証情報を送信するため、その認証情報を悪用される可能性があります。

(IV) History Theft
Web Rehosting サービス経由でアクセスしたウェブサイトで Cookie や localStorage などのリソースを保存する場合、それ以降に Web Rehosting サービス経由でアクセスする悪性ウェブサイトのコンテンツが Cookie や localStorage の内容が漏洩し、これまでアクセスしたウェブサイトの履歴を推測され、トラッキングや個人特定につながる可能性があります。

(V) Session Hijacking and Injection
Session Hijacking において、ユーザのセッション Cookie を取得した攻撃者は、ユーザのログイン状態を引き継いだ状態で SNS やショッピングサイトを利用できてしまうため、登録されている個人情報の窃取や、ユーザになりすました投稿などが可能となります。Session Injection において、攻撃者が用意したアカウントへ強制的にログインさせられたユーザは、検索履歴、動画視聴履歴、商品閲覧履歴といったプライバシー情報を窃取されます。
対策

Web Rehostingサービスが実施できる対策

再ホストされるウェブサイトごとに異なるドメイン名を設定する
この対策は攻撃(I)〜(V)のすべてに対して有効です。

再ホストされるウェブサイトごとに異なるサブドメインを設定することで、オリジンが分割され、Same Origin Policy による保護が有効になります。

(例)
<https://rehosted.example/?url=a.example>
<https://rehosted.example/?url=b.example>

<https://a-example.rehosted.example/>
<https://b-example.rehosted.example/>

再ホストしたページの URL を一時リンクにして第三者からのアクセスを防ぐ
この対策は攻撃(I)〜(V)のすべてに対して有効です。

一時的なトークン等を用いて、再ホストしたページの URL を、第三者からアクセスできないようにします。ただし、Web アーカイブのように、URL を第三者と共有することを想定しているサービスでは採用できません。

Service Worker と AppCache を無効化する
この対策は攻撃(I)に対して有効です。

Service Worker を読み込む際に、コンテンツのリクエストヘッダに Service-Worker : script が含まれます。リクエストヘッダに含まれる Service-Worker : script を削除することで、悪性な Service Worker をユーザのブラウザへインストールさせることを防ぐことができます。
同様に、AppCache を利用するために宣言されるキャッシュマニフェストファイルの再ホストを拒否することで、ユーザのブラウザ上での悪性な AppCache の動作を防ぐことができます。

一般的な Web Rehosting サービスは Service Worker や AppCache を利用しているウェブサイトに対応していません。これは、コンテンツの再ホストによって URL が変更されるため、Service Worker や AppCache を利用するためにあらかじめ指定した Service Worker スクリプトの URL や AppCache のキャッシュマニフェストファイルに記述した URL が無効になるためです。攻撃者が、Service Worker スクリプトおよびキャッシュマニフェストがどういった URL に再ホストされるかを予測して指定した場合にのみ、有効となります。つまり、Service Worker や AppCache が正規には利用できない一方で、悪用は可能になります。したがって、上記のような対策を施したとしても、一般的な Web Rehosting サービスにおいては本来の機能を阻害することはありません。ただし、Service Worker や AppCache をサポートする Web Rehosting サービスについては、対策によって Service Worker や AppCache が動作しなくなることを考慮してください。

再ホストしたコンテンツを、sandbox 属性を宣言した iframe 内に格納する
この対策は攻撃(III)に対して有効です。

sandbox 属性を宣言した iframe 内のコンテンツはサンドボックス化されておりパーミッションの要求を挙げることができません。よって、再ホストされたコンテンツを iframe 内で表示することによって悪意のあるパーミッション要求を防ぐことができます。なお、iframe 内で再ホストされたコンテンツを表示する方法はいくつかの Web Rehosting サービスではすでに導入されています。

セッションを管理する Cookie に対して HttpOnly 属性を付与する
この対策は攻撃(V)に対して有効です。

Web Rehosting サービスが HTTP ヘッダの Cookie を中継する際に、セッションを管理する Cookie に対して HttpOnly 属性を付与することで、JavaScript から Cookie 情報にアクセスすることを防止できます。Cookie の HttpOnly 属性付与は従来の XSS によるセッションハイジャック対策として推奨されているものです。

ユーザが実施できる対策

ブラウザのプライベートモードを利用する
この対策は攻撃(I)〜(V)のすべてに対して有効です。

ブラウザのプライベートモード機能を有効にして Web Rehosting サービスを利用した場合、攻撃に Service Worker や Cookie などのリソースに保存されるデータは、ブラウザを閉じる度にすべて削除されるため、各攻撃が極めて成立しにくいものとなります。

Web Rehosting を介して閲覧しているウェブサイト(SNSやショッピングサイトなど)へのログインを行わない
この対策は攻撃(III)、(V)に対して有効です。

Web Rehostingを介して閲覧しているウェブサイト上で、位置情報やカメラ等へのパーミッション要求に対して許可しない
この対策は攻撃(II)に対して有効です。

ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

共通脆弱性識別子(CVE)  CVEとは?

参考情報

  1. JVN : JVNTA#96129397
  2. 関連文書 : Melting Pot of Origins: Compromising the Intermediary Web Services that Rehost Websites
更新履歴

  • [2024年09月12日]
      掲載