OWASP Top 10 クライアントサイドセキュリティリスク

OWASP Top 10 クライアントサイドセキュリティリスク

ブラウザサイドアプリケーションはカスタム HTML, CSS, JavaScript の複雑な組み合わせであることが多く、いずれもカスタムアプリケーションによって提供される多数のサードパーティライブラリを活用し、独自のカスタムコードとライブラリを同じクライアントサイドアプリケーションに提供するサードパーティサービスと統合されることがよくあります。これらはすべて利用者のブラウザ上で野放しで実行されます。アプリケーション所有者が制御、管理、保護するサーバー上ではありません。ブラウザアプリケーションは多数のサーバーと頻繁にやり取りします。サーバーアプリケーションをホストし、クライアントサイド JavaScript のコア要素をユーザーのブラウザに提供するオリジナルサーバーだけではありません。

このため、クライアントサイドコードにはサーバーサイドアプリケーションとは大きく異なる数多くのリスクが生じます。したがって、クライアントサイドウェブアプリケーションコードのセキュリティには専用の Top 10 を必要とします。これはモバイルアプリ専用の Top 10 である OWASP Mobile Top 10 と似ています。多くの場合、モバイルアプリはウェブアプリのクライアントサイドであり、ウェブアプリのサーバーサイドがモバイルアプリに REST サービスを提供します。

このプロジェクトではクライアントサイドブラウザコード (JavaScript, Web Assembly など) のセキュリティリスクについて優先順位付けしたものを特定し整理することに焦点を当てています。

Top 10 クライアントサイドセキュリティリスクの候補

現在のチームは OWASP Top 10 クライアントサイドセキュリティリスクの候補を以下のようにまとめました。このリストに対して適切なコメント期間を設けた後、2022年後半に完全な Top 10 のドラフトを作成し、再度コメントを求める予定です。他の OWASP Top 10 と同様に、読者にとって最も役立つ形式で利用できるように、最終ドキュメントの PDF, Wiki, GitBook 版を作成する予定です。

以下は候補リストです (もちろんフィードバックに基づいて変更される可能性があります) 。

1. クライアントサイドのアクセス制御の不備

クライアントサイドアセット (データおよびコード) に対する JavaScript の不十分なアクセス制御、機密データの流出、悪意のある目的での (資産にアクセスするための) DOM の操作が該当します。 OWASP Top 10: A01-2021 - Broken Access Control (日本語リンク) と同様ですが、クライアントサイドコードに焦点を当てています。

2. DOM ベースの XSS

DOM 操作や悪用により XSS 攻撃を許してしまう脆弱性が該当します。

3. 機密データの漏洩

国内外の個人情報保護法を遵守するために、ウェブプロパティ全体でデジタルトラッカーやピクセルを検出・防止できないことが該当します。

4. 脆弱で古くなったコンポーネント

古いまたは既知の脆弱性を含む JavaScript ライブラリの検出と更新の欠如が該当します。 OWASP Top 10: A06-2021 - Vulnerable and Outdated Components (日本語リンク) と同様ですが、クライアントサイドライブラリに焦点を当てています。

5. サードパーティによるオリジンコントロールの欠如

オリジンコントロールはリソースのオリジンとサードパーティライブラリのオリジンを比較することで、特定のウェブアセットやリソースの制限を可能にします。このようなコントロールを活用しない場合、サイトのオリジンのデータにアクセスできる未知または未制御のサードパーティコードが含まれるため、サプライチェーンリスクが高まります。

6. JavaScript ドリフト

クライアントサイドで使用される JavaScript のアセットおよびコードレベルで変更を検出できないことが該当します。これにはこのコードの動作の変更を検出して、その変更が本質的に悪意のあるものであるかどうかを判断できないことが含まれます。これはサードパーティライブラリにとって特に重要です。

7. クライアントサイドに保存される機密データ

パスワード、暗号シークレット、API トークン、PII データなどの機密データを LocalStorage などのクライアントサイドの永続ストレージ、ブラウザキャッシュ、データレイヤの JavaScript 変数などの一時ストレージに保存することが該当します。

8. クライアントサイドのセキュリティログとモニタリングの不備

各ページがファーストパーティとサードパーティの両方のコードを使用してアセンブルおよび実行される際に、クライアントサイドの変更とデータアクセス、特に失敗とエラーについて、リアルタイムでのモニタリングと検出が不十分であることが該当します。 OWASP Top 10: A09-2021 - Security Logging and Monitoring Failures (日本語リンク) と同様ですが、クライアントサイドの動作に焦点を当てています。

9. 標準的なブラウザセキュリティコントロールの不採用

iframe サンドボックスなどのブラウザに組み込まれている一般的な標準ベースのセキュリティコントロールや、Content Security Policy (CSP)、サブリソース完全性、その他多くの標準セキュリティ機能などのセキュリティヘッダを使用していないことが該当します。

10. クライアントサイドにあるプロプライエタリ情報

クライアントサイドのコードや保存データに機密性の高いビジネスロジック、開発者コメント、プロプライエタリアルゴリズム、システム情報が含まれていることが該当します。

フィードバックの提供

フィードバックは右記の Google Group に参加し、プロジェクトへのフィードバックを投稿するのがもっともよい方法です。また、個人的にフィードバックを行いたい場合には、プロジェクトリーダーに直接電子メールを送ることもできます。

Last updated