记一次应急响应
字数 1497 2025-08-09 09:46:33
应急响应实战教学:攻击流量分析与源码泄露处置
1. 事件背景与初始响应
1.1 事件发现
- 内网生产环境服务器出现异常外连行为
- 发生在攻防演练第五天
- 初步响应措施:
- 立即关停被攻击服务器的应用服务
- 收集分析演习总防提供的流量包和异常数据包
1.2 流量分析关键发现
- 攻击者尝试通过DNSLOG探测网络连通性
- 发现可疑POST请求特征:
- 包含大量
a=参数(可能是填充脏数据绕过WAF) - 成功写入文件的响应迹象
- 包含大量
2. 服务器现场取证
2.1 文件系统检查
- 发现可疑JSP文件:
- 原始攻击数据包中的文件已被删除
- 存在其他编码加密的Webshell文件
- 文件内容经沙箱检测显示为安全(存在绕过)
2.2 Webshell分析
- 确认是经过魔改的冰蝎马
- 特点:
- 高度混淆和加密
- 具备持久化能力
- 可绕过常规安全检测
2.3 共享文件夹风险
- 多台服务器共享同一文件夹
- 攻击者控制一台即等于控制多台
- 发现并清除10+个Webshell文件
3. 攻击路径还原
3.1 源码泄露调查
- 在Github/Gitlab发现:
- 建设厂商泄露的前端代码
- 包含敏感地址信息
- 通过Gitlab未授权RCE漏洞可能获取完整代码
3.2 漏洞定位
- 发现关键漏洞点:
saveLog方法- 未对写入内容进行过滤
- 允许任意文件写入
- 结合目录穿越实现任意位置写入
3.3 完整攻击链
- 通过业务域名信息收集
- 获取泄露的源码
- 审计发现可未授权调用的接口
- 利用
saveLog方法写入恶意代码 - 通过目录穿越将Webshell写入目标路径
4. 应急处理措施
4.1 短期处置
- 删除所有发现的Webshell
- 修改业务系统代码:
- 删除危险接口
- 增加输入过滤
- 服务重启(清除潜在内存马)
4.2 后门查杀
- 使用盒马工具进行一键查杀
- 全目录JSP文件内容检查(搜索特征字符串)
- 发现攻击者使用技术:
- 修改文件名和时间戳隐藏Webshell
- 利用共享文件夹特性
4.3 Nginx流量分析
- 发现被忽略的攻击路径:
- 共享文件夹意外可解析JSP
- 外网可直接访问共享文件夹中的JSP文件
5. 根本原因分析
5.1 主要漏洞
- 源代码泄露:
- 在Github/Gitee等平台公开
- 包含敏感接口信息
- 未授权接口:
saveLog方法无权限校验- 无输入过滤
- 配置不当:
- 共享文件夹可写且可执行脚本
- 目录穿越未防护
5.2 攻击者技术特点
- 使用脏数据填充绕过WAF
- 多阶段攻击:
- 信息收集
- 漏洞利用
- 持久化维持
- 隐蔽技术:
- 文件隐藏
- 编码混淆
6. 防护建议
6.1 代码管理
- 禁止将源代码托管到公开平台
- 建立内部代码管理制度
- 定期检查代码泄露情况
6.2 权限控制
- 共享文件夹:
- 默认设置为只读
- 严格限制可执行文件类型
- 应用权限:
- 最小权限原则
- 关键操作需授权
6.3 安全配置
- Web服务器:
- 禁止解析非必要目录的脚本
- 限制目录穿越
- 接口安全:
- 必须的权限校验
- 输入输出过滤
6.4 监控与响应
- 文件完整性监控
- 异常外连行为检测
- 定期应急演练
- 建立完善的应急响应流程
7. 总结与经验
7.1 关键教训
- 源码泄露是重大风险源
- 共享文件夹配置需谨慎
- 攻击者会使用多重隐蔽技术
- 应急响应需全面彻底
7.2 防御体系建议
- 建立纵深防御:
- 边界防护
- 主机防护
- 应用防护
- 数据防护
- 定期红蓝对抗演练
- 建立安全开发生命周期(SDLC)
7.3 后续改进方向
- 代码审计常态化
- 加强开发人员安全意识
- 完善日志审计系统
- 建立更严格的发布流程
本案例展示了从攻击发现到完整处置的全过程,强调了源码保护、权限控制和深度防御的重要性,为类似事件的应急响应提供了可参考的实战模板。