Dispatcher のセキュリティチェックリスト the-dispatcher-security-checklist
実稼動させる前に、以下のチェックリストを確認することをお勧めします。
最新バージョンの Dispatcher の使用 use-the-latest-version-of-dispatcher
ご使用のプラットフォームで利用可能な最新バージョンをインストールします。製品とセキュリティの機能強化を活用するには、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 サイトを次のように設定する必要があります。
- Web サイトの物理パス設定で、「特定のユーザーとして接続」を選択します。
- ユーザーを設定します。
サービス拒否(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
外部アクセスを制限するための設定ファイルのサンプルを参照できます。これには、MIME タイプに関する制限も含まれます。
パブリッシュインスタンス上ですべての機能を有効にするには、以下のノードへのアクセスを防ぐようにフィルターを設定します。
/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 トークンサポートを許可リストに登録します。
/libs/granite/csrf/token.json
パスを許可するフィルターを作成する。- Dispatcher 設定の
clientheaders
セクションにCSRF-Token
ヘッダーを追加する。
クリックジャッキングの防止 prevent-clickjacking
クリックジャッキングを防ぐには、X-FRAME-OPTIONS
に設定した HTTP ヘッダー SAMEORIGIN
を指定するように web サーバーを設定することをお勧めします。
クリックジャッキングについて詳しくは、OWASP のサイトを参照してください。
侵入テストの実施 perform-a-penetration-test
アドビでは、実稼動に移行する前に、AEM インフラストラクチャの侵入テストを実施することを強くお勧めします。