開発プロセスを高速化するために、第三者が提供するコンポーネントやスクリプトを使って、公開アプリケーションを構築する組織が増えています。同時に、これらのアプリケーションの利用者を標的にした攻撃も増えています。
この問題の背景には、時間の経過と共に、一部のWebアプリケーションのコードがサーバー側ではなくユーザーのブラウザ側で読み込まれるようになったことがあります。これにより、ユーザーはこれらの第三者が提供する、組織が直接セキュリティ対策を制御できないコンポーネントにさらされることになります。このサードパーティスクリプト、アプリケーション所有者、ユーザーが絡むこの関係は、ユーザーのデバイスでサプライチェーン攻撃を仕掛けるために悪用されます。
この記事では、これらの新たな脆弱性と、組織がユーザーを保護するためにそれらに対処する方法について説明します。
2018年前後から、アプリケーションのクライアント側を標的としたいくつかの有名な攻撃が、組織にかなりの損害をもたらしています。最も顕著なケースの1つは、ブリティッシュ・エアウェイズの顧客を対象とした攻撃で、同社の顧客は決済カードの情報だけでなく、50万人もの顧客の名前と住所の流出の被害に遭いました。この攻撃者が侵害して情報を盗み取った手段に使用したのはJavaScriptでした。
顧客による決済を処理する企業は、支払いカードのアカウントデータを保護し、安全な決済を実現するための新しいPayment Card Industry Data Security Standard(PCI DSS)を遵守するための要件を満たす必要があります。
ブリティッシュ・エアウェイズのケースと同様に、多くの場合こうした 攻撃はWebサイトの所有者が気付かないうちに行われます。これに対応するため、最新のPCI DSSコンプライアンスでは、クライアント側への攻撃という新たな脅威に対し、支払カード所有者がカード情報を盗まれるのを防ぐための積極的な保護が必要であることが認識されています。PCI Data Security Standard(DSS)4.0は、PCIの旧バージョンと比較して、カード決済を受け付けるすべての加盟店が満たさなければならない多くの新しい要件を導入していますが、ここではクライアント側のセキュリティに関する2つの新しい要件に焦点を当てます。
これら2つの新しい要件6.4.3と11.6.1を要約したものを以下に紹介します:
要件 6.4.3では、決済ページで使用するスクリプト(JavaScriptなど)の追跡、適切な一覧管理、必要な理由やコードが意図した通りに動作するかどうかの正当性を説明できることが求められています。
要件6.4.3を満たすために、コンテンツセキュリティポリシー(CSP)ヘッダーをデプロイすることができます。CSPはホワイトリスト型のセキュリティモデルの一種で、選択したJavaScriptが決済ページで実行され、明示的に許可されていないJavaScriptはデフォルトで拒否するように定義できます。常時実行するページモニターがCSPヘッダーの生成を支援し、これらのスクリプトの内容を継続的にチェックして悪意のある脅威がないかを確認します。
要件11.6.1は、前述したように決済ページで使用されるスクリプト(JavaScriptなど)への変更と、これらのスクリプトを保護するために使用されるHTTPヘッダー(CSPヘッダーなど)の変更について、Webサイト所有者に警告することに関するものです。このCSPヘッダーの展開方法によって、リバースプロキシまたはCDNプロバイダーがこのヘッダーの変更を検出し、それに応じてWebサイト所有者に通知することができます。これらのソリューションを組み合わせることで、要件11.6.1を満たすことができます。
これら両方の要件に対処することで、Webサイトの所有者は、ユーザーの決済カードアカウントデータを脅威アクターによる盗難から保護し、ユーザーとの信頼関係を維持し、リスクを軽減できます。
第三者が提供するJavaScriptの使用、またはサプライチェーン攻撃は、クライアント側の攻撃ベクトルだけではありません。第三者が提供するものの一部は、その依存関係を呼び出すこともできます。これは、4番目の(フォースパーティの)依存関係と呼ばれることもあります。これらによっても、安全性が脅かされる場合があります。
業界は過去数年でサプライチェーン攻撃から守るための対策を講じ、サプライチェーンリスクに対する一般的な認識も5年前より高まっています。しかし、クライアント側のリスクの中にはあまり注目されていないものもあり、その結果、攻撃対象領域が広がっています。
リスクの1つは、ユーザーの環境、使用されるブラウザ、ブラウザが実行されるオペレーティングシステムにあります。ユーザーがWebサイトを訪問した際に、ブラウザの拡張機能やその他のソフトウェアがWebサイトにJavaScriptを直接挿入して、Webページの内容を変更することができます。このように挿入されるJavaScriptがすべて悪意のあるものではありませんが、その影響は、広告の挿入から機密情報を盗む可能性まで、多岐にわたります。
もう1つの例は、 Cross-site scripting(XSS)で、悪意のある行為者が正規のWebサイトにコードを挿入するもので、このWebサイトを被害者が読み込むとその内容が実行されます。このような挿入が成功した場合、クライアント側の保護の観点からは、ファーストパーティから直接提供されるJavaScript、またはデフォルトで信頼と見なされるWebサイトそのもののであるかのように見えます。
もちろんこれがすべてではありません。すべてに対処できるレベルの保護を実現するには、クライアント側で、配信元に関係なくすべてのスクリプトを等しく監視する機能を持ったセキュリティソリューションが必要です。これにより、Webサイトの所有者は情報に基づいた意思決定ができるようになります。
カード決済を受け付ける加盟店は、2025年3月31日までにPCI DSS v4.0に対応したクライアント側の環境を保護する対策を実施する必要があります。Cloudflareのクライアント側セキュリティソリューションであるPage Shieldは、これらの新たな要件および将来の要件を満たすプロセスを容易にするのに役立ちます。
CloudflareのPage Shieldは、決済ページの保護に加えて、Webサイト全体を常時監視します。Magecart攻撃の分類に特化した社内で構築およびトレーニングされた機械学習モデルで各スクリプトをチェックし、ユーザーをWebサイトの 閲覧場所や利用方法を問わず保護します。
この記事は、技術関連の意思決定者に影響を及ぼす最新のトレンドとトピックについてお伝えするシリーズの一環です。
すべてのPCI要件に戦略的に対応する方法についてが、ホワイトペーパー「PCI DSS 4.0の遵守を維持するための戦略的アプローチ」をご覧ください。
この記事では、以下のことがわかるようになります。
クライアント側環境を標的とした主な攻撃ベクトル
2つの新しいPCI準拠要件
クライアント側環境と顧客を保護する手段
利用開始