应急响应日志分析
字数 1264 2025-08-18 11:38:49

应急响应日志分析实战指南

一、常见攻击日志特征分析

1. 菜刀连接记录

特征

  • Web日志中仅显示对菜刀马的POST连接请求
  • 无法直接看到具体操作内容
  • 可通过发送字节数粗略判断操作类型(读取/下载文件等)

绕过方式

  • 攻击者可能使用流量中转方式绕过安全设备拦截

分析要点

  • 关注异常POST请求,特别是对非常见文件的POST访问
  • 检查请求数据包大小异常的文件访问

2. 端口扫描

特征

  • 使用Nmap等工具扫描时,access log中通常只有一条GET请求记录
  • 主要扫描方式:TCP、UDP、Ping扫描

分析要点

  • 关注短时间内来自同一IP的多种协议请求
  • 检查服务器防火墙或IDS/IPS的拦截记录

3. SQL注入攻击

特征

  • 向指定参数提交SQL查询语句
  • 常见于GET/POST参数中
  • 可能包含单引号、union、select等关键词

典型日志示例

192.168.1.100 - - [31/Jul/2019:10:00:00 +0800] "GET /index.php?id=1' UNION SELECT 1,2,3-- HTTP/1.1" 200 1234

4. Shell连接记录

写入方式

  • 文件上传漏洞
  • 中间件、CMS、编辑器漏洞利用
  • 框架命令执行漏洞
  • SQL注入写入
  • phpMyAdmin等管理工具漏洞利用

分析要点

  • 检查对可疑文件的访问记录(如非预期的.php、.jsp、.asp文件)
  • 关注文件创建时间与首次访问时间的关联性

5. 目录枚举攻击

特征

  • 大量GET或HEAD方式的URL路径遍历请求
  • 高频出现404状态码
  • 使用常见目录字典进行爆破

分析要点

  • 统计404错误请求的分布
  • 分析请求路径模式(如连续尝试/admin、/backup等敏感目录)
  • 可收集攻击者使用的目录字典丰富自身防御资源

二、高效日志分析方法

1. 基于已知威胁的追踪

步骤

  1. 通过扫描确定Webshell文件名(如5678.php)
  2. 在日志中搜索该文件名,定位访问IP
  3. 过滤该IP的所有操作记录

Python示例代码

import re

webshell_name = "5678.php"
log_file = "access.log"

with open(log_file) as f:
    for line in f:
        if webshell_name in line:
            ip_match = re.search(r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', line)
            if ip_match:
                print(f"发现可疑IP访问Webshell: {ip_match.group()}")

2. 基于访问频率的分析

方法

  1. 统计各IP的访问频率
  2. 重点关注高频访问IP
  3. 分析这些IP的具体操作

Shell命令示例

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

3. 请求内容过滤技巧

优化方法

  1. 排除静态资源请求(如图片、CSS、JS等)
  2. 重点关注动态页面请求(如.php、.asp、.jsp)
  3. 过滤特定HTTP方法(如只查看POST请求)

过滤示例

grep -v "\.jpg\|\.png\|\.css\|\.js" access.log | grep "POST"

三、高级分析策略

1. 时间关联分析

  • 对比文件修改时间与访问记录
  • 分析攻击时间窗口特征

2. 行为序列重建

  • 将分散的日志条目按时间线重组
  • 还原攻击者完整的操作流程

3. 自动化分析工具

  • 使用现成的日志分析脚本(如LogParser、GoAccess)
  • 开发定制化分析工具应对特定场景

四、防御建议

  1. 日志配置优化

    • 确保记录完整请求信息(包括请求头、请求体)
    • 设置合理的日志轮转策略
  2. 实时监控

    • 部署SIEM系统进行实时日志分析
    • 设置关键操作告警阈值
  3. 基线建立

    • 建立正常访问行为基线
    • 通过机器学习识别异常模式
  4. 日志保护

    • 确保日志文件不可篡改
    • 定期备份重要日志

通过系统化的日志分析方法,可以有效识别攻击行为,缩短应急响应时间,提升整体安全防护能力。

应急响应日志分析实战指南 一、常见攻击日志特征分析 1. 菜刀连接记录 特征 : Web日志中仅显示对菜刀马的POST连接请求 无法直接看到具体操作内容 可通过发送字节数粗略判断操作类型(读取/下载文件等) 绕过方式 : 攻击者可能使用流量中转方式绕过安全设备拦截 分析要点 : 关注异常POST请求,特别是对非常见文件的POST访问 检查请求数据包大小异常的文件访问 2. 端口扫描 特征 : 使用Nmap等工具扫描时,access log中通常只有一条GET请求记录 主要扫描方式:TCP、UDP、Ping扫描 分析要点 : 关注短时间内来自同一IP的多种协议请求 检查服务器防火墙或IDS/IPS的拦截记录 3. SQL注入攻击 特征 : 向指定参数提交SQL查询语句 常见于GET/POST参数中 可能包含单引号、union、select等关键词 典型日志示例 : 4. Shell连接记录 写入方式 : 文件上传漏洞 中间件、CMS、编辑器漏洞利用 框架命令执行漏洞 SQL注入写入 phpMyAdmin等管理工具漏洞利用 分析要点 : 检查对可疑文件的访问记录(如非预期的.php、.jsp、.asp文件) 关注文件创建时间与首次访问时间的关联性 5. 目录枚举攻击 特征 : 大量GET或HEAD方式的URL路径遍历请求 高频出现404状态码 使用常见目录字典进行爆破 分析要点 : 统计404错误请求的分布 分析请求路径模式(如连续尝试/admin、/backup等敏感目录) 可收集攻击者使用的目录字典丰富自身防御资源 二、高效日志分析方法 1. 基于已知威胁的追踪 步骤 : 通过扫描确定Webshell文件名(如5678.php) 在日志中搜索该文件名,定位访问IP 过滤该IP的所有操作记录 Python示例代码 : 2. 基于访问频率的分析 方法 : 统计各IP的访问频率 重点关注高频访问IP 分析这些IP的具体操作 Shell命令示例 : 3. 请求内容过滤技巧 优化方法 : 排除静态资源请求(如图片、CSS、JS等) 重点关注动态页面请求(如.php、.asp、.jsp) 过滤特定HTTP方法(如只查看POST请求) 过滤示例 : 三、高级分析策略 1. 时间关联分析 对比文件修改时间与访问记录 分析攻击时间窗口特征 2. 行为序列重建 将分散的日志条目按时间线重组 还原攻击者完整的操作流程 3. 自动化分析工具 使用现成的日志分析脚本(如LogParser、GoAccess) 开发定制化分析工具应对特定场景 四、防御建议 日志配置优化 : 确保记录完整请求信息(包括请求头、请求体) 设置合理的日志轮转策略 实时监控 : 部署SIEM系统进行实时日志分析 设置关键操作告警阈值 基线建立 : 建立正常访问行为基线 通过机器学习识别异常模式 日志保护 : 确保日志文件不可篡改 定期备份重要日志 通过系统化的日志分析方法,可以有效识别攻击行为,缩短应急响应时间,提升整体安全防护能力。