Dispatcher のセキュリティチェックリスト the-dispatcher-security-checklist

実稼動させる前に、以下のチェックリストを確認することを強くお勧めします。

CAUTION
稼動させる前に、使用するバージョンの AEM のセキュリティチェックリストも確認する必要があります。対応する Adobe Experience Manager のドキュメントを参照してください。

最新バージョンの Dispatcher の使用 use-the-latest-version-of-dispatcher

使用するプラットフォームに適した、使用可能な最新バージョンをインストールしてください。製品とセキュリティの機能強化を利用するには、Dispatcher インスタンスをアップグレードして最新バージョンを使用する必要があります。Dispatcher のインストールを参照してください。

NOTE
Dispatcher のログファイルを見て、インストールされている Dispatcher の現在のバージョンを確認できます。
[Thu Apr 30 17:30:49 2015] [I] [23171(140735307338496)] Dispatcher initialized (build 4.1.9)
ログファイルを見つけるには、httpd.conf の Dispatcher 設定を調べます。

キャッシュをフラッシュできるクライアントの制限 restrict-clients-that-can-flush-your-cache

キャッシュをフラッシュできるクライアントを制限することをお勧めします。

トランスポート層のセキュリティ用に HTTPS を有効にする enable-https-for-transport-layer-security

オーサーインスタンスとパブリッシュインスタンスの両方で HTTPS トランスポート層を有効にすることをお勧めします。

アクセスの制限 restrict-access

Dispatcher の設定時に、できる限り外部アクセスを制限してください。Dispatcher に関するドキュメントのサンプルの /filter セクションを参照してください。

管理 URL へのアクセスの拒否 make-sure-access-to-administrative-urls-is-denied

フィルターを使用して、Web コンソールなどすべての管理 URL への外部アクセスを確実にブロックします。

ブロックする必要がある URL のリストについては、Dispatcher のセキュリティのテストを参照してください。

ブロックリストの代わりに許可リストを使用 use-allowlists-instead-of-blocklists

アクセスを制御する方法としては、許可リストのほうが優れています。許可リストは、明示的に許可リストに含まれているもの以外はすべてのアクセス要求を拒否するからです。このモデルでは、未確認だったり、特定の設定ステージで考慮されていなかった可能性がある新しい要求に対して、より厳しい制御を適用できます。

専用システムユーザーでの Dispatcher の実行 run-dispatcher-with-a-dedicated-system-user

Dispatcher の設定時に、最低限の権限を持つ専用ユーザーによって web サーバーが実行されていることを確認してください。Dispatcher のキャッシュフォルダーへの書き込みアクセス権のみを付与することをお勧めします。

さらに、IIS ユーザーは、Web サイトを以下のように設定する必要があります。

  1. Web サイトの物理パス設定で、「特定のユーザーとして接続」を選択します。
  2. ユーザーを設定します。

サービス拒否(DoS)攻撃の防止 prevent-denial-of-service-dos-attacks

サービス拒否(DoS)攻撃は、対象となるユーザーがコンピューターリソースを使用できない状態にするものです。

Dispatcher レベルでは、DoS 攻撃を防御するように設定する方法は 2 つあります。

  • mod_rewrite モジュール(Apache 2.4 など)を使用し、URL 検証を実行します(URL パターン規則がそれほど複雑ではない場合)。

  • フィルターを使用することで、疑わしい拡張子を持つ URL を Dispatcher がキャッシングするのを阻止します。
    例えば、キャッシング規則を変更して、以下のような mime タイプのみをキャッシングするよう制限します。

    • .html
    • .jpg
    • .gif
    • .swf
    • .js
    • .doc
    • .pdf
    • .ppt

    外部アクセスを制限するための設定ファイルのサンプルを参照できます。このファイルには、mine タイプの制限も含まれます。

パブリッシュインスタンス上ですべての機能を安全に有効にするには、以下のノードへのアクセスを防ぐようにフィルターを設定します。

  • /etc/
  • /libs/

次に、以下のノードパスへのアクセスを許可するようにフィルターを設定します。

  • /etc/designs/*

  • /etc/clientlibs/*

  • /etc/segmentation.segment.js

  • /libs/cq/personalization/components/clickstreamcloud/content/config.json

  • /libs/wcm/stats/tracker.js

  • /libs/cq/personalization/*(JS、CSS および JSON)

  • /libs/cq/security/userinfo.json (CQ ユーザー情報)

  • /libs/granite/security/currentuser.jsonデータをキャッシュしてはいけません

  • /libs/cq/i18n/* (内部化)

CSRF 攻撃を防止するための Dispatcher の設定 configure-dispatcher-to-prevent-csrf-attacks

AEM には、クロスサイトリクエストフォージェリ攻撃を防ぐことを目的としたフレームワークがあります。このフレームワークを適切に利用するには、Dispatcher で CSRF トークンサポートを許可リストに加える必要があります。手順は次のとおりです。

  1. /libs/granite/csrf/token.json パスを許可するフィルターを作成する。
  2. Dispatcher 設定の clientheaders セクションに CSRF-Token ヘッダーを追加する。

クリックジャッキングの防止 prevent-clickjacking

クリックジャッキングを防ぐには、SAMEORIGIN に設定した HTTP ヘッダー X-FRAME-OPTIONS を指定するように web サーバーを設定することをお勧めします。

クリックジャッキングについて詳しくは、OWASP のサイトを参照してください。

侵入テストの実施 perform-a-penetration-test

実稼動に移行する前に、AEM インフラストラクチャの侵入テストを実施することを強くお勧めします。

recommendation-more-help
ce382601-480f-4a99-8be7-73178d4b6ef5