分析Web服务器日志中的入侵行为 是做什么的?
何时使用
- 在调查需要分析Web服务器日志以发现入侵行为的安全事件时
- 在为此领域构建检测规则或威胁狩猎查询时
- 当SOC分析师需要此分析类型的结构化流程时
- 在验证相关攻击技术的安全监控覆盖范围时
前提条件
- 熟悉安全运营概念和工具
- 能够访问测试或实验环境以安全执行
- Python 3.8+ 并安装所需依赖
- 对任何测试活动拥有适当的授权
操作说明
- 安装依赖:
pip install geoip2 user-agents
- 收集Combined Log Format(Apache)或Nginx默认格式的Web服务器访问日志。
- 解析每条日志条目,提取:IP、时间戳、方法、URI、状态码、响应大小、用户代理、引用来源。
- 应用检测规则:
- SQL注入:
UNION SELECT、OR 1=1、' OR '、十六进制编码模式
- LFI/路径遍历:
../、/etc/passwd、/proc/self、php://filter
- XSS:
<script>、javascript:、onerror=、onload=
- 扫描器特征:nikto、sqlmap、dirbuster、gobuster、wfuzz 用户代理
- 暴力破解:在5分钟内,来自同一IP对登录端点的POST请求超过50次
- 使用GeoIP数据丰富信息,并生成一份优先级排序的发现报告。
python scripts/agent.py --log-file /var/log/nginx/access.log --geoip-db GeoLite2-City.mmdb --output web_intrusion_report.json
示例
检测URI中的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
扫描器用户代理检测
Nikto/2.1.6, sqlmap/1.7, DirBuster-1.0-RC1, gobuster/3.1.0