IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    DDoS 攻击与防御:从原理到实践(上)

    shentou发表于 2017-05-24 15:24:56
    love 0

    可怕的 DDoS

    出于打击报复、敲诈勒索、政治需要等各种原因,加上攻击成本越来越低、效果特别明显等趋势,DDoS 攻击已经演变成全球性的网络安全威胁。

    危害

    根据卡巴斯基 2016Q3 的调查报告,DDoS 攻击造成 61% 的公司无法访问其关键业务信息,38% 的公司无法访问其关键业务,33% 的受害者因此有商业合同或者合同上的损失。

    DDoS 攻击与防御:从原理到实践(上)

    趋势

    总结来看,现在的 DDoS 攻击具有以下趋势:

    1. 国际化

    现在的 DDoS 攻击越来越国际化,而我国已经成为仅次于美国的第二大 DDoS 攻击受害国,而国内的 DDoS 攻击源海外占比也越来越高。

    DDoS 攻击与防御:从原理到实践(上)

    2. 超大规模化

    由于跨网调度流量越来越方便、流量购买价格越来越低廉,现在 DDoS 攻击的流量规模越来越大。在 2014 年底,国内曾有云服务提供商遭受过高达 450Gbps 的攻击。

    3. 市场化

    市场化势必带来成本优势,现在各种在线 DDoS 平台、肉鸡交易渠道层出不穷,使得攻击者可以以很低的成本发起规模化攻击。按流量获取方式进行的对比可参考下表:

    DDoS 攻击与防御:从原理到实践(上)

    DDoS 攻击科普

    DDoS 的攻击原理,往简单说,其实就是利用 tcp/udp 协议规律,通过占用协议栈资源或者发起大流量拥塞,达到消耗目标机器性能或者网络的目的。下面我们先简单回顾 TCP “三次握手” 与 “四次挥手” 以及 UDP 通信流程。

    TCP 三次握手与四次挥手

    DDoS 攻击与防御:从原理到实践(上)

    TCP 建立连接:三次握手

    1.client: syn

    2.server: syn+ack

    3.client: ack

    TCP 断开连接:四次挥手

    1.client: fin

    2.server: ack

    3.server: fin

    4.client: ack

    UDP 通信流程

    DDoS 攻击与防御:从原理到实践(上) 根据上图可发现,udp 通信是无连接、不可靠的,数据是直接传输的,并没有协商的过程。

    攻击原理与攻击危害

    按照攻击对象的不同,将对攻击原理和攻击危害的分析分成 3 类,分别是攻击网络带宽资源、系统以及应用。

    攻击网络带宽资源

    DDoS 攻击与防御:从原理到实践(上)

    攻击系统资源

    DDoS 攻击与防御:从原理到实践(上)

    攻击应用资源

    DDoS 攻击与防御:从原理到实践(上)

    DDoS 防护科普

    攻击防护原理

    从 tcp/udp 协议栈原理介绍 DDoS 防护原理:

    DDoS 攻击与防御:从原理到实践(上)

    syn flood:

    可以在收到客户端第三次握手 reset 、第二次握手发送错误的 ack,等 Client 回复 Reset,结合信任机制进行判断。

    ack flood:

    丢弃三次 ack,让对方重连:重发 syn 建立链接,后续是 syn flood 防护原理;学习正常 ack 的源,超过阈值后,该 ack 没有在正常源列表里面就丢弃 ack 三次,让对方重连:重发 syn 建立链接,后续是 syn flood 防护。

    udp flood:

    DDoS 攻击与防御:从原理到实践(上)

    不同层面的防护

    按攻击流量规模分类

    较小流量

    小于 1000Mbps,且在服务器硬件与应用接受范围之内,并不影响业务的:

    利用 iptables 或者 DDoS 防护应用实现软件层防护。

    大型流量

    大于 1000Mbps,但在 DDoS 清洗设备性能范围之内,且小于机房出口,可能影响相同机房的其他业务的:

    利用 iptables 或者 DDoS 防护应用实现软件层防护,或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务 IP 修改为高负载 Proxy 集群外网 IP 或者 CDN 高仿 IP 或者公有云 DDoS 防护网关 IP,由其代理到 RealServer;或者直接接入 DDoS 清洗设备。

    超大规模流量

    在 DDoS 清洗设备性能范围之外,但在机房出口性能之内,可能影响相同机房的其他业务,或者大于机房出口,已经影响相同机房的所有业务或大部分业务的:

    联系运营商检查分组限流配置部署情况,并观察业务恢复情况。

    按攻击流量协议分类

    syn/fin/ack 等 tcp 协议包

    设置预警阀值和响应阀值,前者开始报警,后者开始处理,根据流量大小和影响程度调整防护策略和防护手段,逐步升级。

    udp/dns query 等 udp 协议包

    对于大部分游戏业务来说,都是 TCP 协议的,所以可以根据业务协议制定一份 tcp 协议白名单,如果遇到大量 udp 请求,可以不经产品确认或者延迟跟产品确认,直接在系统层面 /HPPS 或者清洗设备上丢弃 udp 包。

    http flood/CC 等需要跟数据库交互的攻击

    这种一般会导致数据库或者 webserver 负载很高或者连接数过高,在限流或者清洗流量后可能需要重启服务才能释放连接数,因此更倾向在系统资源能够支撑的情况下调大支持的连接数。相对来说,这种攻击防护难度较大,对防护设备性能消耗很大。

    其他

    icmp 包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。



沪ICP备19023445号-2号
友情链接