那些年我研发的无用模块——攻击样本回放模块

攻击样本回放

Posted by tanjiti on October 28, 2022

1. 模块功能

实时检测策略白盒测试模块,用于

  • 使用攻击正样本,发现漏报

  • 使用攻击负样本,发现误报

2. 实现方法

将攻击时的数据进行录制(包括采集、标记、格式化),然后流式序列化回放给实时检测模块,最后通过对比检测结果,来评估实时检测策略的有效性。

具体包括:

2.1 样本采集管理:

  • 样本采集:自动化采集(监听实时攻击事件数据源)与人工添加样本集(未被实时检测模块发现,人工发现的)

  • 样本标记:确定样本属性,区分正样本、负样本、灰样本

  • 样本存储:指标时序数据存储、结构化日志数据存储、非结构化大文件存储

2.2 样本回放管理:

  • 回放环境准备:线上策略检测环境模拟

  • 回放任务启动:样本集加载,样本集序列化,回放状态管理

  • 回放结果对比:生成回放结果报表,列举出通过项/不通过项

3. 技术点

  • 数据处理:

    • 数据源存储:不同类型的数据存储选型

    • 数据源异构:不同检测模块的接收数据格式不一致

    • 数据标记:人工纠错,不难但很烦

  • 任务调度:

    • 回放时间一致性:保证不同的时间粒度回放速度一致

4. 失败分析

伪需求, 实时检测模块的白盒测试是个伪需求, 后续被“攻防演练”这种黑盒的测试平台替换了。检测策略在通用型安全这种场景下,完全不需要做到这么精细,只要整体能扛住,小部分的误拦截与漏拦截根本不伤大雅。

5. 个人收获

  • 大数据处理技能:Influxdb,Hadoop+spark,BOS, Kafka

  • 调度:celery+bottle

  • DDoS攻击姿势:反射/flood/cc等攻击的攻击工具与样本包

  • 交互设计:Axure