ModSecurity
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*ModSecurity [#ca781adf]
-[[OSS]]の[[WAF]]
-ホスト型[[WAF]]
-https://modsecurity.org/
**バージョン [#qccff2ac]
-V2
--[[Apache]]をサポート
-V3
--libModSecurity
--Nginx のConnectorモジュールがサポート(2021時点)
*CRS [#b15cf7ac]
-Core Rule Set
-攻撃の検知に使うシグネチャ
**OWASP CRS [#k01eaf33]
-https://owasp.org/www-project-modsecurity-core-rule-set/
*Apache [#i57d2430]
-mod_security
-mod_security_crs
-mod_security-mlogc
*設定ファイル(RHEL系) [#k9d67fbe]
**mod_security.conf [#x592e317]
***基本設定 [#q856f423]
-SecRuleEngine ※ルールエンジンの動作設定
SecRuleEngine On ※有効(遮断・ログの記録)
SecRuleEngine Off ※無効(マッチング処理停止)
SecRuleEngine DetectionOnly ※有効(ログの記録のみ)
-SecDataDir ※データの保存場所
SecDataDir /var/log/httpd/mod_security
***検査設定 [#q856f423]
-SecRequestBodyAccess ※リクエストボディの検査(有効/無効)
SecRequestBodyAccess On ※有効
SecRequestBodyAccess Off ※無効
-SecResponseBodyAccess ※レスポンスボディの検査(有効/無...
SecResponseBodyAccess On ※有効
SecResponseBodyAccess Off ※無効
-SecRequestBodyLimit ※HTTPリクエストボディのサイズ上限
SecRequestBodyLimit 13107200 ※13MB
-SecRequestBodyNoFilesLimit ※HTTPリクエストボディ(ファ...
SecRequestBodyNoFilesLimit 131072 ※120KB
-SecRequestBodyInMemoryLimit ※HTTPリクエストボディをメモ...
SecRequestBodyInMemoryLimit 131072 ※120KB
-SecRequestBodyLimitAction ※SecRequestBodyLimitで指定し...
SecRequestBodyLimitAction Reject ※遮断
SecRequestBodyLimitAction ProcessPartial ※SecRequestBod...
-SecPcreMatchLimit ※正規表現でマッチングを行うサイズ上限
SecPcreMatchLimit 1000 ※1KB
-SecPcreMatchLimitRecursion ※再帰的に正規表現でマッチン...
SecPcreMatchLimitRecursion 1000
***デフォルトアクション設定 [#seedffd3]
-SecDefaultAction ※マッチするルールがあった場合のデフォ...
SecDefaultAction [phase:X] [action1,action2,...] ※構文
SecDefaultAction "phase:2,log,auditlog,deny,status:403"...
| Phase | 設定の記述 |説明 | 備考 |h
| 1 | phase:1 |リクエストヘッダー受信時 | リクエストのリ...
| 2 | phase:2 |リクエストボディ解析後 | リクエストのパラ...
| 3 | phase:3 |レスポンスヘッダー送信前 | レスポンスのヘ...
| 4 | phase:4 |レスポンスボディ送信前 | レスポンスのヘッ...
| 5 | phase:5 |ロギングフェーズ | |
--Processing Phases~
https://github.com/owasp-modsecurity/ModSecurity/wiki/Ref...
| Action | 説明 |h
| allow | マッチしたルール以降の処理をスキップして許可 |
| pass | 検知はするがブロックしない |
| deny | 条件にマッチしたらアクセスを拒否(HTTP 403ステー...
| log | Apacheのエラーログに記録する |
| nolog | Apacheのエラーログに記録しない |
| auditlog | ModSecurityの監査ログに記録する |
| status:403 | 拒否時のHTTPステータスを指定する |
| t:none | トランスフォーメーション(入力変換)を無効化 |
***ログ:監査ログ [#fb439a7f]
-SecAuditEngine ※監査ログのエンジン
SecAuditEngine On ※全リクエストを出力
SecAuditEngine Off ※出力しない
SecAuditEngine RelevantOnly ※重要なリクエストのみ記録(...
-SecAuditLog ※監査ログの出力先
SecAuditLog /var/log/httpd/modsec_audit.log
-SecAuditLogParts ※監査ログに出力する情報の種類(パート)
SecAuditLogParts ABCFHZ
| Part | 説明 |h
| A | 監査ログヘッダー(必須) |
| B | リクエストヘッダー |
| C | リクエストボディ(SecRequestBodyAccessの有効化が必...
| D | レスポンスヘッダー(予約済みで未実装) |
| E | レスポンスボディ(SecResponseBodyAccessの有効化が必...
| F | レスポンスヘッダー(DateヘッダーとServerヘッダーを...
| G | レスポンスボディ(予約済みで未実装) |
| H | 監査ログトレーラー |
| I | "C"の代替部分 |
| J | multipart/form-data エンコーディングでアップロード...
| K | 一致した全ルールの完全なリスト(1行に1ルール) |
| Z | 最終境界。エントリの終了を示す(必須) |
***ログ:デバッグログ [#yfae2106]
-SecDebugLog ※デバッグログの出力先
SecAuditLog /var/log/httpd/modsec_debug.log
-SecDebugLogLevel ※デバッグログの詳細レベル
SecDebugLogLevel <レベル>
| Level | 説明 |h
| 0 | 出力なし |
| 1 | 重大なエラーのみ出力 |
| 2 | エラー・警告を出力 |
| 3 | 主要な処理の情報を出力 |
| 4〜5 | 詳細なリクエスト情報、ルール判定情報を出力 |
| 6〜9 | 非常に詳細(内部変数、PCREマッチ詳細など) |
***検査ルール [#ab2b93ca]
-SecRule
SecRule 変数 オペレータ [変換関数] アクション
--変数
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---ARGS ※リクエストパラメータ(URL/ボディ)
---ARGS_GET ※リクエストパラメータ(URL)
---ARGS_POST ※リクエストパラメータ(ボディ)
---REQUEST_HEADERS ※リクエストヘッダのKey-Value値
--オペレータ
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---@contains ※指定した文字列が含まれるか検査
---@rx ※正規表現による検査
---@detectSQLi ※SQLインジェクションの検査
---@detectXSS ※XSSの検査
--変換関数
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
--アクション
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---id ※定義したルールのID[id:xxxxx]
---phase ※処理するフェーズ(1〜5)[phase:x]
---deny ※リクエストをブロックする(403エラー)
---log ※監査ログを出力する
---nolog ※監査ログを出力しない
---msg ※ログに追加で出力するメッセージ
---status ※レスポンスステータスコード[status:403]
---ctl ※ModSecurityの設定をトランザクション単位で指定する
***その他 [#w1da1643]
-SecAction ※指定された処理を実行する
SecAction アクション
-SecRuleRemoveById ※指定したIDのルールを無効化する
SecRuleRemoveById <ルールID> ※単一指定
SecRuleRemoveById <ルールID> <ルールID> ※複数指定
SecRuleRemoveById <ルールID>-<ルールID> ※範囲指定
-SecRuleUpdateActionById ※指定したIDのルールのアクション...
SecRuleRemoveById <ルールID> <変更後のアクション>
*crs-setup.conf [#g9ba16f9]
*関連サイト [#l7d4c5e6]
-GitHub~
https://github.com/owasp-modsecurity/ModSecurity
-Wiki~
https://github.com/owasp-modsecurity/ModSecurity/wiki
-OWASP CRS~
https://owasp.org/www-project-modsecurity-core-rule-set/
*関連用語 [#af8b3122]
-[[OWASP]]
-[[WAF]]
終了行:
*ModSecurity [#ca781adf]
-[[OSS]]の[[WAF]]
-ホスト型[[WAF]]
-https://modsecurity.org/
**バージョン [#qccff2ac]
-V2
--[[Apache]]をサポート
-V3
--libModSecurity
--Nginx のConnectorモジュールがサポート(2021時点)
*CRS [#b15cf7ac]
-Core Rule Set
-攻撃の検知に使うシグネチャ
**OWASP CRS [#k01eaf33]
-https://owasp.org/www-project-modsecurity-core-rule-set/
*Apache [#i57d2430]
-mod_security
-mod_security_crs
-mod_security-mlogc
*設定ファイル(RHEL系) [#k9d67fbe]
**mod_security.conf [#x592e317]
***基本設定 [#q856f423]
-SecRuleEngine ※ルールエンジンの動作設定
SecRuleEngine On ※有効(遮断・ログの記録)
SecRuleEngine Off ※無効(マッチング処理停止)
SecRuleEngine DetectionOnly ※有効(ログの記録のみ)
-SecDataDir ※データの保存場所
SecDataDir /var/log/httpd/mod_security
***検査設定 [#q856f423]
-SecRequestBodyAccess ※リクエストボディの検査(有効/無効)
SecRequestBodyAccess On ※有効
SecRequestBodyAccess Off ※無効
-SecResponseBodyAccess ※レスポンスボディの検査(有効/無...
SecResponseBodyAccess On ※有効
SecResponseBodyAccess Off ※無効
-SecRequestBodyLimit ※HTTPリクエストボディのサイズ上限
SecRequestBodyLimit 13107200 ※13MB
-SecRequestBodyNoFilesLimit ※HTTPリクエストボディ(ファ...
SecRequestBodyNoFilesLimit 131072 ※120KB
-SecRequestBodyInMemoryLimit ※HTTPリクエストボディをメモ...
SecRequestBodyInMemoryLimit 131072 ※120KB
-SecRequestBodyLimitAction ※SecRequestBodyLimitで指定し...
SecRequestBodyLimitAction Reject ※遮断
SecRequestBodyLimitAction ProcessPartial ※SecRequestBod...
-SecPcreMatchLimit ※正規表現でマッチングを行うサイズ上限
SecPcreMatchLimit 1000 ※1KB
-SecPcreMatchLimitRecursion ※再帰的に正規表現でマッチン...
SecPcreMatchLimitRecursion 1000
***デフォルトアクション設定 [#seedffd3]
-SecDefaultAction ※マッチするルールがあった場合のデフォ...
SecDefaultAction [phase:X] [action1,action2,...] ※構文
SecDefaultAction "phase:2,log,auditlog,deny,status:403"...
| Phase | 設定の記述 |説明 | 備考 |h
| 1 | phase:1 |リクエストヘッダー受信時 | リクエストのリ...
| 2 | phase:2 |リクエストボディ解析後 | リクエストのパラ...
| 3 | phase:3 |レスポンスヘッダー送信前 | レスポンスのヘ...
| 4 | phase:4 |レスポンスボディ送信前 | レスポンスのヘッ...
| 5 | phase:5 |ロギングフェーズ | |
--Processing Phases~
https://github.com/owasp-modsecurity/ModSecurity/wiki/Ref...
| Action | 説明 |h
| allow | マッチしたルール以降の処理をスキップして許可 |
| pass | 検知はするがブロックしない |
| deny | 条件にマッチしたらアクセスを拒否(HTTP 403ステー...
| log | Apacheのエラーログに記録する |
| nolog | Apacheのエラーログに記録しない |
| auditlog | ModSecurityの監査ログに記録する |
| status:403 | 拒否時のHTTPステータスを指定する |
| t:none | トランスフォーメーション(入力変換)を無効化 |
***ログ:監査ログ [#fb439a7f]
-SecAuditEngine ※監査ログのエンジン
SecAuditEngine On ※全リクエストを出力
SecAuditEngine Off ※出力しない
SecAuditEngine RelevantOnly ※重要なリクエストのみ記録(...
-SecAuditLog ※監査ログの出力先
SecAuditLog /var/log/httpd/modsec_audit.log
-SecAuditLogParts ※監査ログに出力する情報の種類(パート)
SecAuditLogParts ABCFHZ
| Part | 説明 |h
| A | 監査ログヘッダー(必須) |
| B | リクエストヘッダー |
| C | リクエストボディ(SecRequestBodyAccessの有効化が必...
| D | レスポンスヘッダー(予約済みで未実装) |
| E | レスポンスボディ(SecResponseBodyAccessの有効化が必...
| F | レスポンスヘッダー(DateヘッダーとServerヘッダーを...
| G | レスポンスボディ(予約済みで未実装) |
| H | 監査ログトレーラー |
| I | "C"の代替部分 |
| J | multipart/form-data エンコーディングでアップロード...
| K | 一致した全ルールの完全なリスト(1行に1ルール) |
| Z | 最終境界。エントリの終了を示す(必須) |
***ログ:デバッグログ [#yfae2106]
-SecDebugLog ※デバッグログの出力先
SecAuditLog /var/log/httpd/modsec_debug.log
-SecDebugLogLevel ※デバッグログの詳細レベル
SecDebugLogLevel <レベル>
| Level | 説明 |h
| 0 | 出力なし |
| 1 | 重大なエラーのみ出力 |
| 2 | エラー・警告を出力 |
| 3 | 主要な処理の情報を出力 |
| 4〜5 | 詳細なリクエスト情報、ルール判定情報を出力 |
| 6〜9 | 非常に詳細(内部変数、PCREマッチ詳細など) |
***検査ルール [#ab2b93ca]
-SecRule
SecRule 変数 オペレータ [変換関数] アクション
--変数
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---ARGS ※リクエストパラメータ(URL/ボディ)
---ARGS_GET ※リクエストパラメータ(URL)
---ARGS_POST ※リクエストパラメータ(ボディ)
---REQUEST_HEADERS ※リクエストヘッダのKey-Value値
--オペレータ
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---@contains ※指定した文字列が含まれるか検査
---@rx ※正規表現による検査
---@detectSQLi ※SQLインジェクションの検査
---@detectXSS ※XSSの検査
--変換関数
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
--アクション
---https://github.com/owasp-modsecurity/ModSecurity/wiki/...
---id ※定義したルールのID[id:xxxxx]
---phase ※処理するフェーズ(1〜5)[phase:x]
---deny ※リクエストをブロックする(403エラー)
---log ※監査ログを出力する
---nolog ※監査ログを出力しない
---msg ※ログに追加で出力するメッセージ
---status ※レスポンスステータスコード[status:403]
---ctl ※ModSecurityの設定をトランザクション単位で指定する
***その他 [#w1da1643]
-SecAction ※指定された処理を実行する
SecAction アクション
-SecRuleRemoveById ※指定したIDのルールを無効化する
SecRuleRemoveById <ルールID> ※単一指定
SecRuleRemoveById <ルールID> <ルールID> ※複数指定
SecRuleRemoveById <ルールID>-<ルールID> ※範囲指定
-SecRuleUpdateActionById ※指定したIDのルールのアクション...
SecRuleRemoveById <ルールID> <変更後のアクション>
*crs-setup.conf [#g9ba16f9]
*関連サイト [#l7d4c5e6]
-GitHub~
https://github.com/owasp-modsecurity/ModSecurity
-Wiki~
https://github.com/owasp-modsecurity/ModSecurity/wiki
-OWASP CRS~
https://owasp.org/www-project-modsecurity-core-rule-set/
*関連用語 [#af8b3122]
-[[OWASP]]
-[[WAF]]
ページ名: