日志审计实战:通过访问日志溯源攻击行为
2026/6/11 17:17:53 网站建设 项目流程

日志审计的基本流程

日志审计的核心是从海量访问日志中提取关键线索,定位异常行为。通常需要结合时间戳、IP、请求路径、状态码等字段进行多维分析。

关键字段提取

HTTP访问日志的标准格式包含以下关键字段:

  • 远程IP地址:攻击源IP(可能被伪造)
  • 时间戳:攻击发生的时间区间
  • 请求方法:GET/POST/PUT等HTTP方法
  • 请求URL:被攻击的路径和参数
  • 状态码:200/403/500等响应状态
  • User-Agent:攻击者使用的工具特征

示例日志片段:

192.168.1.100 - - [15/Jul/2023:14:23:45 +0800] "GET /admin.php?cmd=uname%20-a HTTP/1.1" 200 437 "-" "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)"

异常行为识别模式

高频访问检测使用命令行工具统计IP访问频率:

awk '{print $1}' access.log | sort | uniq -c | sort -nr

敏感路径扫描通过正则匹配管理后台、API等敏感路径:

grep -E "(admin|api|login|\.php\?)" access.log

非常规状态码筛选非常规成功响应(如403/404突然变200):

awk '$9==200 {print $0}' access.log | grep -v "static"

攻击链重构技术

时间轴分析使用时间范围过滤攻击时段:

sed -n '/15\/Jul\/2023:14:00/,/15\/Jul\/2023:15:00/p' access.log

会话追踪通过Cookie或SessionID关联操作序列:

grep "SESSIONID=abc123" access.log | sort -k4

载荷解码对URL编码的攻击载荷进行还原:

from urllib.parse import unquote print(unquote("uname%20-a")) # 输出: uname -a

自动化审计工具

ELK Stack方案

  • 使用Filebeat收集日志
  • Logstash进行实时过滤
  • Elasticsearch建立索引
  • Kibana可视化分析

OSSEC告警规则示例检测SQL注入的规则:

<rule id="100101" level="10"> <match>select.+from|union.+select</match> <description>SQL injection attempt</description> </rule>

证据固定方法

原始日志保全

# 计算校验值 sha256sum access.log > access.log.sha256 # 创建只读副本 cp --preserve=all access.log evidence.log

时间戳转换将日志时间转为UTC标准时间:

from datetime import datetime dt = datetime.strptime("15/Jul/2023:14:23:45 +0800", "%d/%b/%Y:%H:%M:%S %z") print(dt.isoformat()) # 输出: 2023-07-15T14:23:45+08:00

溯源扩展技巧

IP反向追踪

whois 192.168.1.100 | grep -E "netname|country"

威胁情报关联查询IP是否在恶意IP库:

curl -s https://otx.alienvault.com/api/v1/indicators/IPv4/192.168.1.100

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询