那些年我研发的80%有用模块——攻击事件评估模块

DDoS攻击事件/CC攻击事件评估

Posted by tanjiti on November 17, 2022

1. 模块功能

DDoS攻击事件评估

  • 检测防御能力评估
    • 检测能力
      • 误报:将正常的流量突发识别为攻击
        • 流量调度
        • 业务热点活动
        • API周期性调用
      • 漏报:对抗检测策略
        • 低频小流量——>绕过基线检测
        • 模拟业务流量——>绕过深度流/深度包检测
        • 低频攻击源,e.x.拨测ip ——>绕过IP黑白灰名单检测
      • 其他:
        • 攻击类型判定错误
        • 攻击特征提取错误
        • 流量数据统计不准确(接收流量、攻击流量、牵引流量、清洗流量、回源流量)
    • 防御能力
      • 基础防御有效性:
        • 正常业务流量被错误清洗
        • 攻击流量被漏清洗
        • 正常业务未按预期回源到可用源站节点
        • 清洗(限速/黑洞)生效滞后
      • 防御对抗:
        • 瞬时大流量攻击 ——> 资源军备竞赛
        • 扫段攻击防御 ——> 对抗主流的单IP的黑洞路由策略
        • 脉冲攻击防御 ——> 使得清洗设备状态频繁变更(检测-牵引-清洗-回注)
  • 业务受损情况评估
    • 额外增加的带宽计费成本
    • 正常访问失败比例
  • 攻击溯源
    • 攻击手法:技术、战术
    • 攻击团伙:身份、活动

2. 实现方法

2.1 模块关系

2.1.1 异常检测模块

  • 基础分析:
    • 下钻 e.x. 发现机房整体流量增长,下钻增长的VIP,定位是否发生扫段攻击
    • 上卷 e.x. 发现单VIP流量增长,按服务聚合,定位是否为正常的流量调度
  • 异常算法:
    • 箱线异常
    • 3δ原则
  • 异常准出:
    • 绝对值,e.x. 流量增长大于3Gbits,触发攻击分析
    • 相对值,e.x. 流量增长超过机房带宽的85%,触发攻击分析
  • 实效性:
    • 及时发现攻击漏报,应对短时突发大流量,以及生成报表
  • 特征选取

    指标 说明 攻击类型
    bps 每秒bit数 带宽消耗攻击
    pps 每秒包数 协议层攻击
    rps 每秒请求数 应用层攻击
    IPs 每秒独立IP数 ——

2.1.2 事件评估模块

访问源评估与攻击源提取

  1. 工程问题:数据处理性能。大型业务源访问源百万级
  2. 智能化运维:自动判定攻击漏报并进行防御策略调优

2.1.3 数据包分析模块

当防护对象出现异常事件或攻击事件会触发数据包采样,通过分析数据包来实现

  • 策略的合理性评估
  • 发现新型反射攻击
  • 业务异常定位

2.1.4 攻击源溯源模块

  • 攻击源ip情报关联:
    • 样本关联
    • 样本ioc提取
  • 攻击特征关联:
    • 明文:url/head/body
    • 加密流量:ja3

2.1.5 报表模块

  • grafana

3. 技术点

3.1 攻击源识别

  • 对非连接型的攻击,清洗伪造源,识别真实源
    • 伪造源识别:ttl
  • 对连接型攻击,清洗正常源,识别攻击源
    • botnet的傀儡主机识别
    • 匿名代理服务器识别

3.2 攻击包分析

  • 新型UDP反射识别
  • ja3提取
  • 代理源站ip提取

3.3 攻击溯源

  • 攻击源ip的威胁情报关联
    • bot ip关联的恶意样本发现
    • 恶意样本的c2提取
    关系prefix 说明 角色
    referrer embedded ioc内置在恶意文件中 1.网络基础设施,e.x. dns服务器 反射器 2.C2
    communicate contacted ioc与恶意文件有通信关系 1.网络基础设施 2.C2 3.攻击目标
    download itw 从ioc下载该恶意文件 1.下载器 2.C2

4. 失败分析

理想中的评估结果,发现可以在报表中展示的”亮眼”数据

  1. 规模更大峰值更高的攻击
  2. 新型的攻击
  3. 攻击溯源
  4. 攻击预测

实际的评估结果,用数据来发现抗D系统存在问题(坏消息报道者)

  1. 攻击误判,例如将正常的tcp业务当成tcp反射
  2. 攻击漏判,未发现攻击,或者直到业务明显受损才发现攻击
  3. 漏清洗,发现了攻击,但攻击流量的清洗达不到预期
  4. 误清洗,将正常流量当攻击流量清洗掉了
  5. 牵引延迟生效
  6. 回源失败,回源探活故障,错误的白名单机制

“亮眼”攻击的发现,需要在”大数据基础建设”与”威胁安全分析”上投入成本。

但本质是军备竞赛的DDoS攻防,会将重点资源投入在以下方面:

  1. 部署机房,扩容建设
  2. 合作,与运营商合作,与网络基础部合作,与业务部合作
  3. 销售产品,推进产品使用与售卖
  4. 构建品牌影响力,发布专利、与会演讲、产品PR、攻防演练
  5. 研发,报表数据开发、性能优化

而在”大数据基础建设”上进行主动或者被动节流(丢包/丢日志),例如

  1. 缩减数据采集资源,调低流量采样的比例,导致攻击取证关键信息损失
  2. 缩减数据存储资源,取证数据采用临时的本地文件存储方式,不做持久化
  3. 缩减数据计算资源,缩减大数据计算资源,甚至缩减安全分析的机器资源

同时对”溯源有效率”的预期也与投入成本不符的:

由攻击源到立案需要(简化的):

  1. c2定位
    • 攻击源ip扫描,找到可以渗透的主机ip,登陆主机获得攻击样本,逆向分析找到c2
    • 购买情报产品,由ip-关联样本-关联c2(准确性不如上面,但成本低些)
  2. 定位到攻击者
    • c2是国外的,基本放弃
    • c2是国内的,但身份特征,放弃
  3. 立案抓人

可以看到一次成功的溯源需要要数据齐全+分析专家技术+运气好,所以往往溯源以报告结束(你要非说是xxx干的,对方跳出来说不是自己的几率很小)还不是抓人结束

5. 个人收获

5.1 DDoS攻防的认知

  • 攻击的本质:
    • 锁定攻击目标:识别攻击目标的网络资产,并在切换资产后做到攻击跟随
    • 识别资产弱点:踩点响应最耗时的资源
      • 网络链路带宽资源
      • 网络设备(负载均衡、防火墙、IPS等的)会话资源
      • 业务系统资源: 数据库,web服务器等
    • 扩大攻击武器:
      • botnet扩容: linux botnet、iot botnet
      • 开放服务器收集:用来打四两拨千斤的反射
    • 对抗安全检测
      • 低频小流量——>绕过基线检测
      • 模拟业务流量——>绕过深度流/深度包检测
      • 拨测/CDN代理 ——>绕过IP黑白灰名单检测
      • 扫段攻击——> 对抗单IP的黑洞路由策略
      • 脉冲攻击——> 利用防御规则的生效灰度期躲避清洗,例如DNS牵引的灰度期(DNS修改记录后,需要等待TTL超时才生效)、黑洞的灰度期(API调用到生效存在时延)
      • 瞬时大流量——> 来不及检测,来不及响应 DDoS攻击基本是朝着2个方向发展
        • 攻击流量快速上升,攻击源低频
        • 针对弱点资产发起攻击,用最小的攻击资源达到最大的拒绝服务效果,e.x. 攻击最消耗db资源的api请求
  • 防御的本质:流量管控,将攻击流量进行稀释、分散与清洗来缓解攻击
    • 防御资源建设:运营商清洗资源建设、云清洗资源建设、本地清洗资源建设(背靠运营商,大力建机房)
    • 防御协同:多个团队协作防御,一般会涉及到基础网络部、业务部与安全部三个部门。而团队的协作磨合是靠周期性的攻防演练来推进
    • 应急响应:
      • 策略调优:目前的自动化防御的触发机制都是基于阈值的,而阈值是基于业务流量基线的,需要人工协助阈值调整
      • 应用层防御模版定制:为特定协议定制细粒度的访问控制策略
  • 检测的本质:
    • 基线:vip速率、访问源速率:
    • 特征:包特征
    • 行为:访问源机器人行为识别,周期性+聚集性v.s.随机性 (攻击复盘中使用,实时检测不会使用)
    • 源认证:网络层源认证+应用层源认证
      • 被动认证:首包丢弃
      • 主动认证:syn proxy, syn cookie
  • DDoS技术演变:
    • 网络基础架构的演变:
      • 终端 -> 云上
      • BGP
      • Anycast
      • 可编程智能交换机
    • 系统架构的演变: web网站->APP->API
    • 应用(通信协议)的演变:
      • ipv4 -> ipv6
      • http/1 -> http/2 -> quic
      • udp反射资源
  • DDoS冷知识:
    • DDoS监测(发现DDoS攻击)与DDoS防御(限流、清洗)的处理逻辑是基本独立的
    • DDoS监测是误判容忍的,并且出于商业考虑,倾向于多报攻击
    • DDoS防御是误清洗容忍的,发生攻击时,服务降级的有损防御是可以接受的
    • DDoS的防御策略主要靠用户填写”防御模版”来实现拦截、限速与挑战(e.x.验证码),自动化不高
    • DDoS的防御遇到特殊的业务场景时,需要防御定制,例如对实时要求高的游戏协议防御,DNS/IP牵引的延迟是无法容忍的,需要给包添加指纹来验证有效性
    • DDoS防御随着”降本增效”成为支撑型业务的关键字后,攻击流量计费减免也成为价值体现点
    • DDoS运维的日常工作,是防御组件故障维护,不是黑客对抗
    • 抗D实际是SRE工程问题,依赖于基础设施是否强大
    • 应用层的防御机制,与产品设计有关

5.2 botnet的认知