使用 ModSecurity 实现 Web 应用程序日志记录(Implementing Web Application Logging with ModSecurity)
概述
ModSecurity 是一个开源 WAF(Web 应用防火墙)引擎,可与 Apache、Nginx 和 IIS 协同工作。OWASP 核心规则集(CRS)提供通用攻击检测规则,覆盖 SQL 注入、XSS、RCE、LFI 及其他 OWASP Top 10 攻击。 ModSecurity 在审计日志中记录完整的请求/响应数据以供取证分析,并生成可接入 SIEM 平台的告警。
前置条件
- 带有 ModSecurity v3 模块的 Web 服务器(Apache 2.4+ 或 Nginx)
- 已安装 OWASP CRS v4.x
- 日志聚合基础设施(ELK、Splunk 或 Wazuh)
步骤
- 安装 ModSecurity 并在 DetectionOnly 模式下配置 SecRuleEngine
- 部署 OWASP CRS v4 并设置偏执级别(PL1-PL4)
- 为仅相关日志配置 SecAuditEngine
- 使用 SecRuleRemoveById 和规则排除调整误报
- 调整期结束后切换到阻断模式(SecRuleEngine On)
- 将审计日志转发到 SIEM 进行关联和告警
预期输出
ModSecurity: Warning. Pattern match "(?:union\s+select)" [file "/etc/modsecurity/crs/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf"] [line "45"] [id "942100"] [msg "SQL Injection Attack Detected via libinjection"] [severity "CRITICAL"]