用途
该技能用于在安全事件调查中分析 Web 服务器日志以检测入侵行为。它适用于需要从 Web 访问日志中识别攻击痕迹的场景,也可用于构建该领域的检测规则或威胁狩猎查询、为 SOC 分析师提供结构化分析流程,以及验证相关攻击技术的安全监控覆盖情况。
主要能力
该技能解析 Apache 与 Nginx 的访问日志,支持 Combined Log Format(Apache)和 Nginx 默认格式。对每条日志记录,提取 IP、时间戳、请求方法、URI、状态码、响应大小、User-Agent 和 Referer。
在此基础上应用以下检测规则:
- SQL 注入:UNION SELECT、OR 1=1、' OR '、十六进制编码模式
- LFI/路径遍历:../、/etc/passwd、/proc/self、php://filter
- XSS:<script>、javascript:、onerror=、onload=
- 扫描器签名:nikto、sqlmap、dirbuster、gobuster、wfuzz 的 User-Agent
- 暴力破解:同一 IP 在 5 分钟内对登录端点发起超过 50 次 POST 请求
检测完成后,使用 GeoIP 数据丰富结果,并生成按优先级排序的发现报告。
使用方式
前置条件:熟悉安全运营概念与工具;可访问测试或实验环境以安全执行;Python 3.8+ 并安装所需依赖;对任何测试活动具备适当授权。
安装依赖:
pip install geoip2 user-agents
收集 Combined Log Format(Apache)或 Nginx 默认格式的 Web 服务器访问日志,然后运行脚本:
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
日志条目示例(SQLi 检测):
192.168.1.100 - - [15/Jan/2024:10:30:45 +0000] "GET /products?id=1' UNION SELECT username,password FROM users-- HTTP/1.1" 200 4532
扫描器 User-Agent 检测示例:
Nikto/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0
适用场景
- 调查需要分析 Web 服务器日志以检测入侵的安全事件
- 为该领域构建检测规则或威胁狩猎查询
- SOC 分析师需要该分析类型的结构化流程
- 验证相关攻击技术的安全监控覆盖情况
限制
关于该技能的收费、价格、平台与效果等事实暂未提供。使用前需确保具备对相关测试活动的适当授权,并在测试或实验环境中安全执行。