Dispatcher フィルタールールを使用したAdobe Experience Manager Assetsでの認証バイパスのリスクの軽減

この記事では、SAML認証から除外されたAEM Assets ログインエンドポイントのDispatcher フィルタールールを確認する方法について説明します。 Dispatcher フィルターは、URLとメソッドによってリクエストを制限します。ユーザーを認証したり、AEM リポジトリの権限を置き換えたりすることはありません。 リスクに対処するには、エンドポイントとSAML コールバックパスを検証し、効果的なフィルターの順序とリポジトリー権限を確認し、実稼動環境ではない環境で変更を実稼動環境デプロイメント前にテストします。

説明 description

環境

AEM Assets、SAML認証、Dispatcherを使用したAdobe Experience Manager as a Cloud Service環境

問題/症状

  • セキュリティレビューは、SAML認証から除外されるAEM Assets ログインエンドポイントを識別します。
  • Dispatcher設定では、リクエストをそのエンドポイントに対して意図したとおりに制限しません。
  • セキュリティ部門は、エンドポイントが機能やデータを未認証のリクエストに公開しているかどうかを確認する必要があります。

原因

SAMLで除外されたエンドポイントは、そのパスへのリクエストに対してSAML チャレンジを呼び出しません。 Dispatcher フィルターは、URLやメソッドなどのリクエスト属性に一致します。呼び出し元は認証されません。 フィルター許可ルールは、認証を許可したり、リポジトリの権限を置き換えたりしません。 機密性の高い機能やデータを、該当するAEMの認証およびリポジトリー権限で保護し、Dispatcherをさらなるアクセスフィルターレイヤーとして使用できます。

解決策 resolution

問題を解決するには、次の手順に従います。

  1. Dispatcher フィルタールールを確認し、/libs/granite/core/content/login*など、ログインエンドポイントに適用されるエントリを特定します。

  2. Dispatcher設定を更新して、次のルールを追加します。

    • デフォルトでは、ログインノードへのすべてのリクエストを拒否します。

    /0100 { /type "deny" /url "/libs/granite/core/content/login*" }

    • ログインページへの正当なGET リクエストのみを許可します。

    /0101 { /type "allow" /method "GET" /url "/libs/granite/core/content/login.html" }

    • ログインフローで使用されるフォーム POST ターゲットのみを許可します。

    /0102 { /type "allow" /method "POST" /url "/libs/granite/core/content/login.html/j_security_check" }

  3. ルールが正しく順序付けられていることを確認します。 Dispatcher フィルタールールはlast-match-wins評価モデルを使用するため、より具体的な許可ルールの前に、より広範な拒否ルールを配置します。

  4. 更新されたDispatcher設定を実稼動以外の環境にデプロイします。

  5. 正当なログイン要求のみが許可され、ログインエンドポイントへのその他のすべての要求が拒否されていることを確認します。

  6. ログインプロセスが期待どおりに機能し続けることを確認します。

  7. 設定を検証したら、実稼動環境に変更をデプロイします。

  8. ログとアクセス試行を監視して、脆弱性が軽減され、不正なアクセス試行がブロックされていることを確認します。

recommendation-more-help
experience-cloud-kcs-help-kbarticles