Page Shield is generally available

サプライチェーン攻撃は、CIOやセキュリティ専門家の間で懸念が高まっています。

サプライチェーン攻撃では、攻撃者は、ターゲットアプリケーションで使用されているサードパーティのツールやライブラリを侵害します。この結果、攻撃者は通常、アプリケーションの環境に特権的にアクセスできるようになり、個人データの窃取や後続の攻撃を実行できるようになります。例えば、Magecartは非常に一般的なタイプのサプライチェーン攻撃で、攻撃者が、サイトで用いられるサードパーティライブラリを侵害することによって、電子商取引サイトのチェックアウトフォームからクレジットカードデータをスキミングするものです。

Webアプリケーションのコンテキストにおいてサプライチェーン攻撃を識別して軽減できるようにするため、当社は本日、Page Shield in General Availability(GA)をローンチします。

Page Shieldを使用すると、アプリケーション上で実行されているスクリプトを可視化し、スクリプトが侵害されたり、ユーザーデータの流出を試みるなど悪意のある動作が見られる場合に通知を受けることができます。

Page Shieldを簡単に使えるよう懸命に工夫しました。ファイアウォールタブの下で見つけることができ、ワンクリックするだけでオンにすることができます。追加の設定は必要ありません。アラートは、さまざまなイベントに対して個別に設定することができます。

The Page Shield interface showing the list of scripts detected on the zone

Page Shieldとは?

今年3月に、ブラウザを標的とした不正利用からエンドユーザーのデータを保護するソリューションであるPage Shieldの早期アクセスを発表しました

本日、当社はZarazの買収を発表しました。Workers上に構築されたこのツールにより、お客様はブラウザでJavaScriptコードを読み込む代わりに、Cloudflare UIから直接、即時パフォーマンスとセキュリティの利点を活用して、簡単にサードパーティツールをクラウド上に読み込むことができるようになりました。しかし、すべてのアプリケーションがサードパーティマネージャーを使用しているわけでも、使用を希望しているわけでもありません。それでも、私たちがカバーします。

Page Shieldは、リバースプロキシとしてネットワーク上の位置を活用して、どのJavaScriptファイルやモジュールが読み込まれているかについての情報をブラウザから直接受け取ります。そして、JavaScriptファイルが悪意のある動作を示している場合、可視化、分析を提供し、警告を行います。

侵害されたJavaScriptファイルの例としては、Magecart攻撃、暗号マイニング、アドウェアなどが挙げられます。SaaSベースのアプリケーションやサービスの人気が高まる中、アプリケーションの所有者が管理できないサードパーティから直接JavaScriptコードを活用したり読み込んだりしていないアプリケーションを見つけることは非常にまれであり、侵害されたファイルの検出と緩和がさらに困難になっています。

クライアント側のセキュリティはどの程度難しいのか?

Page Shieldの初期表示によると、ある特定のアプリケーションは平均して8つのサードパーティホストからスクリプトを読み込んでいることが判明しました。これらのホストは、Googleのような大企業から、Webアプリケーションの機能を迅速に拡張する「プラグアンドプレイ」モジュールを提供する中小企業までが所有している可能性があります(チャットシステム、日付ピッカー、チェックアウトプラットフォームなどを想定しています)。これらのサードパーティは、それぞれが潜在的なサプライチェーン攻撃のターゲットとなり得るため、攻撃対象が非常に大きくなり、監視が困難になります。

さらに悪いことに、事態は急速に変化します。平均して、毎月約50%のアプリケーションが新しいサードパーティホストからスクリプトを読み込んでいます。このことは、攻撃対象が大きいだけでなく、急速に変化していることを示しています。

Page Shieldの仕組みとは?

他のセキュリティ製品と同様に、Page Shieldは、可視化、検出、緩和および予防を提供すると考えることができます。最初のステップは可視化です。

可視性

オンにすると、Page Shieldの現在のイテレーションでは、コンテンツセキュリティポリシー(CSP)がレポート専用ディレクティブで展開されて、ブラウザから情報を収集するようになっています。これにより、アプリケーション上で実行されているすべてのスクリプトのリストを提供することができます。

HTTPの用語で、オリジンサーバーからブラウザに戻るページレスポンスのサンプルに追加されるHTTP応答ヘッダーのことです。CSPヘッダーは次のようなものです。

content-security-policy-report-only: script-src 'none'; report-uri /cdn-cgi/script_monitor/report

上記のヘッダーは、スクリプトを読み込まないこと (script-src 'none')と、違反した場合は指定されたエンドポイントに報告することv  (report-uri /cdn-cgi/script_monitor/report)  をブラウザに指示しています。また、違反レポートのエンドポイントはCloudflareネットワークに解決し、そこで処理されるため、オリジンサーバーに追加のトラフィックが到達しないことにご注意ください。

HTTP POSTリクエストとして実装されたブラウザから送信される各違反レポートは、スクリプトに関する情報を提供してくれます。以下はその例です。

{
   "csp-report":{
      "document-uri":"https://www.example.com/",
      "referrer":"",
      "violated-directive":"script-src-elem",
      "effective-directive":"script-src-elem",
      "original-policy":"script-src 'none'; report-uri /cdn-cgi/script_monitor/report",
      "Disposition":"report",
      "blocked-uri":"https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js",
      "status-code":200,
      "script-sample":""
   }
}

このレポートが伝えること:

  • (document-uri)からスクリプトが読み込まれたページ
  • リファラー(該当する場合)
  • どのCSPディレクティブに違反したのか
  • ディレクティブを含む完全なCSP
  • JavaScriptファイルへのフルリンク
  • ファイルを読み込む際にブラウザが受け取ったレスポンスコード。上記の例では、レスポンスコードが200となっており、ファイルの読み込みに成功したことを示しています。

レポートで提供されるすべての情報を照合し、追加データで強化することで、Cloudflare UIとAPIの両方で、アプリケーションで読み込まれているすべてのスクリプトに関する詳細な情報を提供することができます。

Cloudflare Proの全ゾーンでは、Page Shieldのスクリプトレポートを利用できます。また、BusinessとEnterpriseのゾーンでは、ページの属性情報にアクセスでき、アプリケーション内のどこからスクリプトが読み込まれているかを素早く特定することができます。BusinessとEnterpriseゾーンでは、多くのスクリプト変更イベントに関するアラートを設定することもできます。

検出

アプリケーションの所有者は、すでにコンテンツセキュリティポリシーを活用して、特定のスクリプトのみが読み込まれるようにしているかもしれません。しかし、CSPは往々にして自由すぎる傾向があり、ブラウザは、JavaScriptファイルが悪意のある動作を示したときにそれを検出するネイティブなメカニズムを提供しません。これには、コンテンツセキュリティポリシーによって読み込みが許可されているJavaScriptコードも含まれるため、その有効性は非常に低くなります。

Page Shieldで悪意のある動作を検出し、お客様を支援する真の機会を得たと信じています。

システムによってゾーンで見つかったJavaScriptファイルに対して、悪意のある動作の検出を目的としたいくつかのアクションを実行します。

  1. 当社の脅威フィードで悪意のあるものとして分類されたホスト名から読み込まれたすべてのJavaScriptファイルは、適切にフラグが立てられます。これには親ドメインも含まれます。
  2. 同様に、フィードの中で特定のURLが悪意のあるものとして分類された場合にも、フラグが立てられます。後者の場合、正確なファイルが悪意のあるものとして分類されていることから、攻撃が進行中である可能性が高いと考えられます。
  3. 最後に、ファイルをダウンロードし、分類器にかけます。分類器は、難読化解除、正規化および復号化のステップを実行した後、フォームフィールドのフェッチとデータ流出の呼び出しの相関関係を探します。相関関係が強ければ強いほど、そのスクリプトがMagecartタイプの攻撃を実行している可能性が高くなります。この技術に関する詳細な情報は、追って掲載する予定です。しばらくお待ちください!

当社のEnterpriseプランのお客様は、検出機能を含むPage Shieldの機能一式を購入することができます。アカウントマネージャーまでお問い合わせください。

来年にかけてさらに製品を構築していく中で、検出シグナルの追加や分類器の改良を行い、アドウェア、ランサムウェアおよび暗号マイニングなどの追加攻撃タイプを検出していく予定です。

JavaScriptファイルに悪意のあるシグナルがトリガーされると、Cloudflareはメール、Webhook、PagerDutyなどのフォーマットで設定可能なアラートで通知することができます。

予防と緩和

大手のお客様の多くはすでにコンテンツセキュリティポリシーをお持ちで、Cloudflare経由でCSPを実装するHTTP応答ヘッダーを追加するのは簡単ですが、もっと良い方法があります。

今回の即時リリースには含まれていませんが、当社はすでに、予防と緩和の両方のオプションをPage Shieldにもたらすために懸命に取り組んでいます。

  • 観測されたアクティブなスクリプトに基づいてCSPを簡単に生成し、ダッシュボード経由またはAPI経由で直接、デプロイメントパイプラインの一部として、必要に応じてポリシーを編集して再デプロイできるようにすることで、予防を行います。
  • 当社のプロキシを活用し、HTTP応答本文から悪意のあるスクリプトをインラインで削除できるようにすることでブロックします。

開始する

すでにCloudflareでWebサイトを運営している場合、当社の有料プランにアップグレードすれば、追加の設定なしで今日からPage Shieldの機能を活用することができます。また、 当社のAPIを使用してPage Shieldの機能を使用することができます

まだCloudflareにWebサイトをお持ちでない場合、サインアップはわずか5分で完了します!