問題
- ModSecurityを有効にする方法と、それが機能しているかどうかをテストする方法を教えてください。
環境
- Liferay DXP 7.4
解像度
-
以下の手順に従って、OWASPルールでModSecurityを有効にしてください: (攻撃検知ルールはデフォルトでは提供されていないことに注意してください。 特定のニーズに応じたルールを提供する必要がある)
1.LCP_WEBSERVER_MODSECURITY 環境変数をプロジェクトリポジトリのwebserver/LCP.jsonファイルに追加して、ModSecurityをあなたの環境で有効にしてください。 (LCP_WEBSERVER_MODSECURITY 変数の値を「On」に設定)
2. 以下の手順に従って、OWASP FoundationのModSecurityコアルールセット(CRS)を追加してください:
- ルール集のダウンロードは こちらから.
- ファイルを一時フォルダに解凍します。
- ルールフォルダをプロジェクトリポジトリ /webserver/configs/[ENV]/modsec/ に移動する。
- crs-setup.conf.exampleファイルをプロジェクトリポジトリ/webserver/configs/[ENV]/modsec/に移動し、ファイル名をcrs-setup.confに変更する。
- crs-setup.confファイルを編集し、ファイルの最終行に「/etc/nginx/modsec/rules/*.confをインクルードする」というコードを""なしで追加する。
-
OWASP財団のModSecurityコアルールセット(CRS)をテストする(あるいはModSecurityが動作しているかどうかをチェックする)には、サードパーティのスキャンツール - Nikto Web Scanner (
GitHub - sullo/nikto:Niktoウェブサーバスキャナ) を使うことができます。 docker run --rm alpine/nikto -h https://webserver-myapp-prd.liferay.cloud/(https://webserver-myapp-prd.liferay.cloudを あなたの URL に置き換えてください) 。 - 上記コマンドの実行中、ウェブサーバーはコンソールに以下のようなメッセージを記録する。:
ModSecurity:コード403でアクセス拒否(フェーズ2)。 Operator `Ge' with
parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `5' )"
[file "/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "80"]
[id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 5)"]
[data ""] [severity "2"] [ver "OWASP_CRS/3.3.2"] [maturity "0"] [accuracy "0"]
[tag "application-multi"] [tag "language-multi"] [tag "platform-multi"]
[tag "attack-generic"] [hostname "10.192.2.190"] [uri "/KKPeaADb.axd"]
[unique_id "1653418308"] [ref ""], client: 200.138.53.22, server:リクエスト
"GET /KKPeaADb.axd HTTP/1.1", host: "webserver-myapp-prd.liferay.cloud"
上記のメッセージは、CRSが機能していることを示唆している(したがって、ModSecurityは機能している)。
追加情報
-
デフォルトのModSecurity設定を推奨します。 これらの設定を上書きしたい場合は、
modsecurity.confファイルをプロジェクトリポジトリのwebserver/configs/[ENV]/modsec/ディレクトリに作成してください。
Liferayクラウドのデフォルト
modsecurity.confを完全に上書きするので、必要な設定をすべて提供する必要があります。
- ModSecurityの機能をチェックするには 監査ログを使うこともできます。 どのルールがトリガーされているかを示す。 ウェブサーバーのシェルからログの内容を確認するには、次のパスに従います: /var/log/modsec_audit.log。
- ModSecurityの有効化
- 攻撃検知ルールの追加
- mod_security が実際に動作しているかテストする(この非公式な記事はLiferayの公式なドキュメントではないので、あなたの判断で従ってください)