クライアントサイド保護とは、ウェブの閲覧時にエンドユーザー、つまり「クライアント」のブラウザを保護することを目的としたセキュリティ・ツール、実践、戦略を指します。クライアントサイド保護は、ユーザーがWebサイトを操作する際のあらゆる脅威を特定し、(防止する)ことに役立ちます。
Webがより複雑になり、高度に動的なコンテンツが増えるにつれて、悪意のある攻撃者にとっての機会も増えています。クライアントサイド保護は、ユーザー(クライアント)が Web を閲覧する際に、スクリプト、フォーム入力、クライアントの機密データを保護するのに役立ちます。クライアントサイドは、インターネットを利用するクライアントにとって不可欠な「番犬」であり、その体験の保護に特化しています。
クライアントサイド保護はどのように機能しますか?
最も単純なレベルでは、クライアント側保護は、ユーザーがブラウザを操作している間のブラウザ内の動作を監視することで機能します。これにより、疑わしいあらゆるものにリアルタイムでインサイトが得られます。一部のセキュリティツールは、既知のセキュリティ脆弱性や動作の特定に重点を置いています。
クライアント側のソリューションはさらに1つ深いレイヤーまで踏み込み、スクリプトがどのように動作しているかを確認します。これらのスクリプトは、Web ブラウザ内で直接実行されるコードのシーケンスであり、Web ページを動的またはインタラクティブにすることを目的としています。
クライアント側のツールでは、通常、次のプラクティスが実行されます:
これらは、JavaScript(前述したスクリプトの1つ)がページ上でどのように実行されているかをモニタリングします。つまり、想定どおりに読み込まれ、動作しているかどうかを分析するものです。
データが収集されたり、予期しない場所に送信されたりするなど、不審または異常な動作を特定します。
これらは、Webサイト上でスクリプトをどのように動作させたいかを定義するポリシーの適用に役立ちます。
定義したポリシーに反するあらゆるアクティビティをブロックし、警告します。
通常の機能に対するあらゆる変化を監視し、想定されるパターンの変化を利用して、不審なアクティビティをすばやく検知します。
クライアントサイド保護が重要な理由
クライアント側の保護が重要なのは、コンテンツがブラウザに到達した後のユーザーエクスペリエンスを保護するという特定の目的を果たすためです。サイバーセキュリティ対策の大半は、インフラストラクチャやコードなどの保護に重点を置いており、そのすべてはユーザーがWebサイトのコンテンツとやり取りする前に行われます。
より具体的には、クライアント側の保護が重要である理由は次のとおりです:
機密データの盗難(フォーム入力など)を防ぐのに役立ちます。
他のセキュリティツールにはない機能として、ブラウザ内のあらゆる悪意のあるアクティビティを発生時に検出します。
サードパーティスクリプトを評価し、それらがエコシステムにリスクを持ち込んでいないことを確認します
ユーザー(および顧客)の安全を確保し、ビジネスにつながる可能性を高めます。
クライアント側の保護が必要なのは誰ですか?
簡単に言えば、オンラインでビジネスを行うすべての人です。ビジネスを行うために自社のWebサイトに依存している組織は、クライアントサイド保護の実践とツールの導入を検討する必要があります。
クライアントサイド保護の必要性は、特に次のような組織にとって重要です。
支払いを処理したり、あらゆる種類の機密性の高い個人データを扱ったりする
厳格な規制またはコンプライアンス要件がある
JavaScriptとサードパーティの統合に依存します。
高度にパーソナライズされた、または動的なユーザーエクスペリエンスを実現
これらの業界の組織は、クライアントサイド保護戦略の実装に特に重点を置く必要があります:
料金プラン、在庫、カスタマイズされたユーザーエクスペリエンスのような高度に動的なコンテンツを使用する eコマースおよび小売業
高度に機密データや情報を扱い、PCI DSS 要件の対象となるファイナンスサービス。
機密データを扱い、厳格な規制を満たす必要がある医療機関。
動的で変化し続けるコンテンツを提供するメディアや高トラフィックのデジタルプラットフォーム。
クライアント側保護は、コンプライアンスおよび規制要件にどのように役立ちますか?
クライアントサイド保護は、広い意味では、組織が自社のサイトでどのようなコードが実行されているかを把握し、悪意のある活動に直面した際に問題を検出し、それらを迅速にコントロールできることを実証するのに役立ちます。これらは、規制とコンプライアンスに関して必要な機能です。
クライアントサイド保護ソリューションは、いくつかの重要な規制上の懸念事項に対応するのに役立ちます。
PCI DSSクライアントサイド保護は、PCI DSS v4.0 の要件を満たすうえで不可欠です。Webサイト上の決済ページに可視性とコントロールをもたらすのに役立ちます。これにより、組織はブラウザで実行されているすべてのスクリプトの正確なインベントリを維持し、適切な認可が設定されていることを確保できます。不審な動作を検出し、機密データを傍受または侵害しようとするあらゆる試みをリアルタイムで阻止するのに役立ちます。
GDPR / CCPA
クライアントサイド保護は、組織が GDPR および CCPA に基づくデータプライバシー義務を満たすのに役立ちます。ブラウザで収集されるすべての個人情報が、透明性とセキュリティをもって処理されることを確保するのに役立ちます。また、スクリプトがユーザーデータとどのようにやり取りするかについての可視性も得られるため、組織は許可されていない、または望ましくないデータ収集や共有を防ぐことができます。
SOC 2
クライアントサイド保護は、組織がアプリケーション環境をコントロールしていることを実証するのに役立ちます。強化された監視機能と検出機能、ならびにスクリプトの動作と潜在的な脅威に関するリアルタイムのインサイトにより、クライアントサイド保護は、データへのアクセス方法と送信方法を管理するポリシーの適用に役立ちます。これらはすべて、セキュリティ、可用性、機密性を含むSOC 2の主要な要件をサポートします。
クライアントサイド保護における主なセキュリティリスクは何ですか?
OWASP トップ10 では、サイバーセキュリティリスクに関する詳細なガイダンスと情報を提供しています。実際、組織が重点的に取り組むべきクライアント側保護のリスクに特化したリスト全体があります。
OWASP notes では、「ブラウザ側のアプリケーションは、多くの場合、カスタム HTML、CSS、JavaScript の複雑な組み合わせであり、カスタム アプリケーションによって提供される多数のサードパーティ・ライブラリを活用し、さらに同じクライアント側アプリケーションに独自のカスタム コードとライブラリを提供するサードパーティ・サービスと頻繁に統合されています」と述べています。これらすべては、アプリケーション所有者によってコントロール、管理、保護されたサーバー上ではなく、実環境にある顧客のブラウザ上で実行されます。」これにより、クライアント側には多くのリスクが生じるため、包括的なセキュリティ戦略が必要になります。
以下は、クライアント側の主要なセキュリティリスクに関する OWASP のリストとその正確な説明です:
1. クライアント側のアクセスコントロールの不備
クライアント側アセット(データとコード)への JavaScript アクセスのコントロールが不十分であること、機密データの流出、または悪意のある目的での DOM の操作(それらのアセットにアクセスするため)。OWASP トップ10:A01-2021 - Broken Access Controlと同様ですが、クライアントサイドのコードに焦点を当てています。
2. DOMベースのXSS
DOMの操作または悪用を通じてXSS攻撃を可能にする脆弱性です。
3. 機密データの漏えい
国内および国際的なプライバシー法の遵守を確実にするために、Web プロパティ全体にわたるデジタルトラッカーやピクセルを検出/防止できないこと。
4. 脆弱で古いコンポーネント
古くなっている、または既知の脆弱性を含む JavaScript ライブラリの検出と更新が不足していること。OWASP Top 10: A06-2021 - Vulnerable and Outdated Componentsと同様ですが、クライアントサイド・ライブラリに焦点を当てています。
5. サードパーティのオリジン・コントロールの欠如
オリジン・コントロールでは、リソースのオリジンをサードパーティのライブラリのオリジンと比較することで、特定のWebアセットまたはリソースを制限できます。このようなコントロールを活用しない場合、サイトのオリジン内のデータにアクセスできる未知または管理されていないサードパーティコードが含まれるため、サプライチェーンリスクが高まります。
6. JavaScriptドリフト
クライアント側で使用されるJavaScriptのアセットおよびコードレベルでの変更を検出できないことです。これには、このコードの変更が潜在的に悪意のあるものかどうかを判断するために、その動作の変化を検出できないことも含まれます。これはサードパーティ・ライブラリにとって特に重要です。
7. クライアント側に保存される機密データ
パスワード、暗号シークレット、API トークン、または個人を特定できる情報データなどの機密データを、LocalStorage、ブラウザキャッシュ、またはデータレイヤー内の JavaScript 変数などの一時的なストレージのような永続的なクライアント側ストレージに保存すること。
8. クライアント・サイドのセキュリティ・ログ記録および監視の不備
各ページがファースト・パーティおよびサード・パーティのコードを使用して組み立てられ、実行される際に、クライアント・サイドの変更やデータアクセス、特に障害やエラーをリアルタイムで十分に監視および検出できないこと。OWASP トップ10: A09-2021 - セキュリティ Logging and Monitoring Failuresと同様ですが、クライアント側の動作に焦点を当てています。
9. 標準的なブラウザ・セキュリティ・コントロールを使用していない
iframe サンドボックスや、Content Security Policy(CSP)、subresource integrity などのセキュリティヘッダー、およびその他多くの標準的なセキュリティ機能など、ブラウザに組み込まれている一般的な標準ベースのセキュリティコントロールを使用していません。
10. クライアント側に独自情報を含めること
クライアント側のコードまたは保存されたデータに、機密性の高いビジネス・ロジック、開発者コメント、独自アルゴリズム、またはシステム情報が含まれていること。
Fastly のソリューションが役立つ理由
Fastly Client-Side Protection を使用すると、コンテンツセキュリティポリシー(ポリシー)を策定して適用することで、Web アプリケーションの特定の領域からエンドユーザーのブラウザに読み込まれるリソース(スクリプト、画像、フォントなど)のインベントリを構築してコントロールできます。また、クライアント側の各スクリプトについて、許可される理由、または許可されない理由を提供することもできます。
これらの機能は、クロスサイトスクリプティング攻撃を防ぎ、PCI DSS への準拠を維持するのに役立ちます。