OWASP CSRは大体どんなルールなのかを把握
OWASP CSR
# cd /etc/httpd/modsecurity.d/activated_rules/ # ls modsecurity_35_bad_robots.data modsecurity_35_scanners.data modsecurity_40_generic_attacks.data modsecurity_41_sql_injection_attacks.data modsecurity_50_outbound.data modsecurity_50_outbound_malware.data modsecurity_crs_20_protocol_violations.conf modsecurity_crs_21_protocol_anomalies.conf modsecurity_crs_23_request_limits.conf modsecurity_crs_30_http_policy.conf modsecurity_crs_35_bad_robots.conf modsecurity_crs_40_generic_attacks.conf modsecurity_crs_41_sql_injection_attacks.conf modsecurity_crs_41_xss_attacks.conf modsecurity_crs_42_tight_security.conf modsecurity_crs_45_trojans.conf modsecurity_crs_47_common_exceptions.conf modsecurity_crs_48_local_exceptions.conf.example modsecurity_crs_49_inbound_blocking.conf modsecurity_crs_50_outbound.conf modsecurity_crs_59_outbound_blocking.conf modsecurity_crs_60_correlation.conf
大体こんな感じ(あんまり中身は見ず適当)なのです。
あくまでもだいたい。
modsecurity_crs_20_protocol_violations
# Validate request line against the format specified in the HTTP RFC リクエストラインがhttpのrfcに沿っているか # Identify Invalid URIs Blocked by Apache ApacheによるURI不正チェック # Identify multipart/form-data name evasion attempts ヘッダのfilename-parmのチェック # Verify that we've correctly processed the request body. request bodyのパースチェック # Strict Multipart Parsing Checks マルチパートのパースチェック # Multipart Unmatched Boundary Check マルチパートのバウンダリーチェック # Accept only digits in content length content length は数値か # Do not accept GET or HEAD requests with bodies GET、HEADの場合BODYを含んでいないか # Require Content-Length to be provided with every POST request. POSTの場合Content-Lengthを含んでいるか # Deny inbound compressed content Content-Encodingヘッダのチェック # Expect header is an HTTP/1.1 protocol feature HTTP/1.1でヘッダのチェック # Pragma Header requires a Cache-Control Header Pragma HeaderがCache-Controlを含んでいるか # Range Header Checks リクエストヘッダのRangeチェック # Broken/Malicous clients often have duplicate or conflicting headers ヘッダの重複がないか # Check URL encodings URLエンコードのチェック # Check UTF enconding UTFエンコードのチェック # Disallow use of full-width unicode as decoding evasions my be possible. 全角ユニコードのデコードが可能か # Restrict type of characters sent ASCIIコードの範囲か
modsecurity_crs_21_protocol_anomalies.conf
# Missing/Empty Host Header hostヘッダが空でないか # Missing/Empty Accept Header Acceptヘッダが空でないか # Missing/Empty User-Agent Header User-Agentヘッダが空でないか # Missing Content-Type Header with Request Body Content-Typeヘッダが空でないか # Check that the host header is not an IP address hostヘッダがIPアドレスでないか
modsecurity_crs_23_request_limits.conf
# Limit argument name length URLパラメータ名の上限長 # Limit value name length URLパラメータ値のの上限長 # Maximum number of arguments in request limited URLパラメータ数の上限 # Limit arguments total length URLパラメータ全体の上限長 # Individual file size is limited ファイルサイズの上限 # Combined file size is limited 入力ファイルサイズの上限
modsecurity_crs_30_http_policy.conf
# allow request methods 許容するリクエストメソッド # Restrict which content-types we accept. 許容するcontent-type # Restrict protocol versions. 許容するHTTPプロトコルバージョン # Restrict file extension 許容するファイル拡張子 # Restricted HTTP headers 許容するHTTPヘッダ
modsecurity_crs_35_bad_robots.conf
User-Agentでスキャナとか許容しないロボットをチェック
modsecurity_crs_40_generic_attacks.conf
いろんなインジェクションをチェック
# OS Command Injection Attacks # Coldfusion Injection # LDAP Injection # SSI injection # UPDF XSS # Email Injection # HTTP Request Smuggling # HTTP Response Splitting # RFI Attack # Prequalify Request Matches # Session fixation # File Injection # Command access # Command injection # PHP injection
modsecurity_crs_41_sql_injection_attacks.conf
modsecurity_crs_42_tight_security.conf
# Directory Traversal ディレクトリトラバーサル
modsecurity_crs_45_trojans.conf
トロイの木馬チェック
modsecurity_crs_47_common_exceptions.conf
# Exception for Apache SSL pinger # Exception for Apache internal dummy connection # Exception for Adobe Flash Player