OWASP Top 10 owasp-top
Open Web Application Security Project(OWASP)は、Top 10 Web Application Security Risks(Web アプリケーションに関する上位 10 件のセキュリティリスク)のリストを保持しています。
これらのリスクおよび CRX での対処方法を以下に示します。
1. インジェクション injection
- SQL - 設計により防止されます。デフォルトのリポジトリ設定には従来のデータベースが含まれず、また必要でもありません。データはすべてコンテンツリポジトリに格納されます。すべてのアクセスは認証されたユーザーに制限され、JCR API を介してのみ実行可能です。SQL は検索クエリ(SELECT)のみをサポートします。さらに、SQL は値バインディングをサポートします。
- LDAP - 認証モジュールによって入力にフィルターが適用され、バインドメソッドを使用してユーザーの読み込みが実行されるので、LDAP インジェクションは不可能です。
- OS - アプリケーション内からのシェル実行はありません。
2. クロスサイトスクリプティング(XSS) cross-site-scripting-xss
このリスクを軽減する一般的な方法は、OWASP Encoder と AntiSamy に基づくサーバー側の XSS 保護ライブラリを使用して、ユーザーが生成したコンテンツのすべての出力をエンコードすることです。
XSS はテスト時および開発時における最優先事項であり、検出された問題は(通常)すぐに解決されます。
3. 認証とセッション管理の不備 broken-authentication-and-session-management
AEM では、Apache Jackrabbit と Apache Sling に基づく、堅実で実績のある認証手法を利用しています。ブラウザー/HTTP セッションは AEM では使用されません。
4. 安全でないオブジェクト直接参照 insecure-direct-object-references
データオブジェクトへのすべてのアクセスは、リポジトリが介在するので、役割に基づくアクセス制御によって制限されます。
5. クロスサイトリクエストフォージェリー(CSRF) cross-site-request-forgery-csrf
クロスサイトリクエストフォージェリ(CSRF)は、暗号トークンをあらゆる形式および AJAX リクエストに自動的に注入し、すべての POST についてこのトークンをサーバー上で検証することで軽減されます。
さらに、AEM に搭載されているリファラーヘッダーベースのフィルターを設定して、特定のホスト(リストで定義)からの POST リクエスト のみ を許可することができます。
6. セキュリティ設定のミス security-misconfiguration
すべてのソフトウェアを常に正しく設定した状態にしておくことは不可能です。しかし、アドビでは、できるだけ多くのガイダンスを提供し、設定をできるだけシンプルにするよう努めています。さらに、AEM に搭載されているセキュリティヘルスチェック機能により、一目でセキュリティ設定を監視できます。
詳しくは、セキュリティチェックリストを参照してください。セキュリティ強化の手順を段階的に説明します。
7. 安全でない暗号化データの保管 insecure-cryptographic-storage
パスワードは暗号化ハッシュとしてユーザーノードに格納されます。デフォルトでは、このようなノードは管理者とユーザー自身だけが確認できます。
サードパーティの資格情報などのような重要な情報は、FIPS 140-2 認定を受けた暗号ライブラリを使用して、暗号化された形式で保存されます。
8. URL アクセス制限の失敗 failure-to-restrict-url-access
リポジトリでは、アクセス制御エントリを使用して、特定のパスの特定のユーザーまたはグループに対して(JCR で指定された)詳細な権限を設定できます。アクセス制限はリポジトリによって適用されます。
9. 不十分なトランスポート層の保護 insufficient-transport-layer-protection
サーバー設定(例:HTTPS のみの使用)によって軽減されます。
10. 未検証のリダイレクトとフォワード unvalidated-redirects-and-forwards
ユーザーが指定した宛先へのすべてのリダイレクトを内部の場所に制限することで軽減されます。