あなたの Web サイトのデータ保護にも使える Cloudflare Remote Browser(もしも、ブラウザまで提供できたら・・・)
はじめに
Cloudflare の Remote Browser Isonation(RBI)の話です。
通常 RBI というと組織の IT セキュリティ管理者がユーザのブラウザを守る観点で検討することが多いと思います。もちろん Cloudflare の RBI もその目的で使えます。
ただ、この記事では Web サイトの運営者がデータ保護の観点で活用できることを紹介します。
下記のようなご要望にマッチします。
対象の方 | 実現したいこと | 条件 |
---|---|---|
Web サイト運営者 | データの閲覧は OK だが、コピーやダウンロードを禁止したい | ブラウザ側に RBI のためのエージェント類は入れ(られ)ない |
Cloudflare Access と Remote Browser のコンビネーションで実現します。
通信フロー
後述のデモ環境を想定したフローです。
イメージ掴むためのもので、正確さを目指したものではありません。
通常の Access でのアクセス制御は下記になります。
・RBI 無
ブラウザは Cloudflare のリバースプロキシを通じてオリジンからコンテンツをうけとり、サードパーティからロードするものがあれば取りに行きます。
一方、RBI をつけると下記のようになります。
・RBI 有
リバースプロキシの手前にリモートブラウザとフォワードプロキシの処理を噛ませているところが工夫です。
実装
準備
ローカルブラウザから Access 経由で Web サイトにアクセスできる環境を作ります。
- Web サイトを Cloudflare で リバースプロキシ
- Web サイトに Access の self-hosted アプリを適用、認証・認可を追加(Allow 条件)
ブラウザ | ユーザ識別 | コピー | ペースト | ダウンロード |
---|---|---|---|---|
ローカル | ◯ | ◯ | ◯ | ◯ |
データ保護の設定
Web サイトのデータを保護していきます。3 ステップで設定します。
Step 1
Web サイトをリモートブラウザ経由でアクセスさせます。
ユーザはペーストができなくなります。
- RBI を有効にしたい条件(特定のユーザなど)を定義した Access ポリシーを作成
- その Access ポリシーで isolate self-hosted application オプションを有効化
Access ポリシー
RBI を適用するユーザのポリシーでアプリケーションを分離する
オプションを有効化
Access アプリケーション
アプリケーションには
当該のポリシーを適用
ブラウザ | ユーザ識別 | コピー | ペースト | ダウンロード |
---|---|---|---|---|
リモート | ◯ | ◯ | ✘ | ◯ |
これで Web サイトへの接続はリモートブラウザ経由になります。
今回はコピーやダウンロードも防ぎたいので Step 2 を実施します。
Step 2
リモートブラウザからのリクエストに Gateway ポリシーが適用されます。
これを利用し、データのコピーやダウンロードを拒否します。
保護すべきデータがあるパスだけを対象にすることができます。
- Gateway ポリシーで isolation policies を設定
Gateway ポリシー
特定のパス /internal/
を
Isolate
し、より厳しい制限を適用
ブラウザ | ユーザ識別 | コピー | ペースト | ダウンロード |
---|---|---|---|---|
リモート | ◯ | ✘ | ✘ | ✘ |
Step 3
機密データが含まれている場合、転送しないよう網を張っておきます。
誤ってデータを配置した、うっかり directory listing を有効にした、などの状況を想定します。
- Gateway が持つ Data Loss Prevention(DLP)を利用
- 今回はクレジットカード番号の流出を止める例
DLP プロファイル
クレジットカードの識別は、あらかじめ組み込まれたプロファイル Financial Information あり
一致数をのしきい値を定義
Gateway ポリシー
Financial Information
の DLP プロファイルにマッチしていれば
Block
ブラウザ | 機密データの流出 |
---|---|
リモート | ✘ |
デモ
- 渡し船の会社
- 運航業務 Web サイト
- 船長たちは始業時にアクセスし、運航データをチェック
- 船長の役職は IDP(Entra ID)のグループで識別できるので、一律で下記のアクセスポリシーにする
提供機能 データ制御 アルコールチェッカーの数値入力 不正な入力は WAF で落とす 運航地点の地図や天気 データの印刷やコピーも可能 乗客の情報 閲覧のみ(コピーやダウンロード禁止) うっかり公開 機密データの流出は阻止 - RBI 適用の有無で比較
WAF コピー ダウンロード ペースト 機密データの流出 RBI 無 ◯ ◯ ◯ ◯ ◯ RBI 有 ◯ ✘ ✘ ✘ ✘
RBI 無
- ローカルブラウザがサードパーティの JavaScript や画像を直接読み込んでいる
- お客様情報の PDF を「コピーやダウンロードは禁止」と喚起しているが、強制はなく、できる状態
- 機密データ(クレジットカード情報)のあるディレクトリをうっかり公開している
- 入力文字列に関しては
- ペースト可能
- WAF が効いている
RBI 有
船長がログインします。
彼らのグループは Access ポリシーで isolate self-hosted application
が有効になっています。
Step 1 の効果
- 接続先が
content.browser.run
で Web サイトのスクリプト実行はリモートブラウザーに変わる - ペーストができない
Step 2 の効果
- パス
/internal/
(お客様情報)に関してはコピー・ダウンロードができない
Step 3 の効果
- クレジットカード情報の入ったファイルのダウンロードが阻止される
DLP Financial Information
でログをフィルターすると Adelev 船長のリクエストが Block されたログが確認できます。
その他の効果
RBI 対象の Web サイトだけでなく、読み込まれるサードパーティのリソースもリモートブラウザ経由となり Gateway ポリシーが適用されます。
たとえば Yahoo! Open Local Platform への通信が Gateway ポリシーを通過しています。
必要があれば、これらについても Gateway ポリシーで Inspect や Block などコントロール可能になります。
逆効果
得るものがあれば捨てるものがあります。
RBI の制限に従うことになります。
たとえば、WebGL には対応していないので
Web サイトに Yahoo!マップ(パソコン版)などを埋め込んでいた入りすると、その部分が動かなくなる可能性があります。
まとめ
以上 RBI を Web サイトに埋め込むことで、データ保護に利用できることを確認しました。
Web サイトのデータ漏洩対策などで候補の一つになるかと思います。
なお RBI は有償プランが必要になります。
Discussion