当前位置:WooYun(白帽子技术社区) >> 十万个为什么 >> 一些计算流量的CDN厂商(比如加速乐)是怎么计算域名流量的

一些计算流量的CDN厂商(比如加速乐)是怎么计算域名流量的

huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-12 23:59

不是http的流量
是计算纯流量的
比如骇客A 使用UDP碎片攻击了加速乐保护的网站,结果流量太大回源
那么加速乐是怎么知道这个域名流量很大呢?

分享到:
  1. 1#
    回复此人 感谢
    小熊饼干 | | 2015-10-13 23:17

    一般人我都不告诉他。

    最基本的原理是二分法,当你ip足够多时,检测出那个域名正在被攻击不是很难。

    CDN 厂商一般有很多个节点,分布在全球/全国各地,如果是攻击源很分散(如肉鸡),则由于智能调度的存在,这些攻击流量会被分散到各个节点,导致攻击效果会差很多,所以这种不在这里讨论。这种其实cdn最喜欢了,像cloudflare也是使用anycast等将攻击流量分散到全球节点,这样防御能力就相当于将各个节点的带宽加起来。

    另外,有个基础,检测某个目的IP(CDN的ip)的流量大小是很简单的。

    先以国内的为例,国内的CDN就比较苦逼,anycast实施起来很贵,只能使用unicast,这样,智能调度只能在dns解析上做文章了。比如电信的用户调度到电信的节点,河南的调度到河南的节点。

    先来分析一个简单的攻击例子,比如你有一个20G的攻击带宽,syn/udp flood 某个域名时,可能你的攻击目标会集中到少数几个(如2个,记为ip1,ip2)。

    这样,我们来看下,如果我是cdn我会怎么做:
    0.  上面说了,CDN检测到了自己的这两个ip流量异常是很easy的。
    1.  这两个ip上的域名是‘嫌疑人’,但是可能多达N个。
    2.  那我们就将这N个二分,分到2个新的ip上,ip3, ip4,这样ip3, ip4 各有N/2个域名。
    3.  如果攻击不会跟随dns解析,即攻击还傻傻打ip1,ip2,那我大不了放弃这两个ip,或者将其引入黑洞。(此时找不出谁被打)
    4.  如果攻击跟随dns解析,那么好玩的来了,或者打ip3, 或者打ip4(注意,我们先只考虑同一时间只有一个域名)
    5.  假设打ip3, 我们就继续二分,将N/2 个域名解析到ip5,ip6,这也ip5,ip6上只有N/4个域名。
    6.  以此下去,就可以找到是哪个倒霉鬼被打。
    7.  当逻辑梳理清楚,其实这些都是可以自动化的。

    cloudflare 使用了anycast,如果定位到某个ip被攻击,很方便的可以将此ip的流量分散到全球节点,或者放到黑洞类的设备。

    上面只是简单的原理说明,大家可以自己想下更复杂的场景:
    1.  多个域名同时被打怎么办。
    2.  攻击不跟随,把ip1,ip2 所在机房打卦怎么办。
    3.  cdn 应该怎么把客户分配到不同的ip上去
    4.  国内没有anycast,即每个节点都是独立作战,这时候该怎么办。

  2. 2#
    回复此人 感谢
    Mujj (为何我的眼中饱含泪水?因为我装逼装的深沉) | 2015-10-13 01:00

    这是一个难题,cloudflare、阿里云还有另外一些CDN商已经有方案出来了,但是都没公开过,或许谷歌专利上面能找到?

  3. 3#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-13 18:38

    @Mujj  那有什么可能的方法呢

  4. 4#
    回复此人 感谢
    小哲哥 | 2015-10-14 07:34

    楼上说的涨姿势了,虽然我不懂

  5. 5# 感谢(1)
    回复此人 感谢
    我是小号6 (1:8.5长期收购wb,QQ1136036036) | 2015-10-14 08:19

    楼上的楼上说的涨姿势了,虽然我不懂

  6. 6#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 10:41

    @小熊饼干 我是说这么计算被攻击的流量

  7. 7#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 10:42

    @小熊饼干  怎么计算CDN节点上一个域名的流量呢

  8. 8#
    回复此人 感谢
    小熊饼干 | 2015-10-14 10:57

    找到了哪个域名被攻击,然后将其防到单个IP上,然后看下这个ip的流量多大,是不是就计算出来了?

    BTW: 你在加速乐面板上看到的流量大小 根本不是syn/udp 流量的的大小。
    如果是CC攻击,计算流量大小很简单是吧?

  9. 9#
    回复此人 感谢
    %230CC (Who's Your Daddy ---lordi) | 2015-10-14 11:25

    其次应该是CDN有标识吧。
    你从哪来要到哪去
    都会有标识和记录
    所有你流量打站的时候
    可能我不知道你从哪里来
    但是我知道你是要到哪里去 ……
    哎呦我去

  10. 10#
    回复此人 感谢
    GaRY | 2015-10-14 12:44

    基本是 @小熊饼干 所说的那些方法。这是针对目前那种非应用层攻击的协议层攻击类型最普遍的查找方式。
    这里补充一下,在很多云CDN厂商,很多情况下他也同时是被攻击网站的DNS服务者。在被攻击的时候,利用同时针对DNS的分析也能找到一些蛛丝马迹。如果不通过DNS解析的,说明并不是针对某一站点,通常就当作是针对节点进行攻击进行防御就OK了,这些攻击不会计入到单个站点的流量中。
    至于协议层攻击,对于国外厂商,anycast的作用下,让他们其实不care究竟是哪个域名带来的。如何防御才是第一位的。在这个时候,屏蔽攻击来源更容易实现。
    而对于国内厂商,没有anycast让他们没法发挥最大防御能力,因此才会经常用到二分法之类的方式,定位攻击站点,在实在无法防御的大型攻击情况下,才会剔除他来保其他。

    顺带说下,绝大多数云CDN厂商在控制面板里显示的攻击流量,都单纯的是应用层攻击流量(CC+web攻击)。

  11. 11#
    回复此人 感谢
    小熊饼干 | 2015-10-14 13:00

    @GaRY 多谢大牛补充。

  12. 12#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 13:14

    @小熊饼干  还有一个问题,某些免费cdn,比如360网站卫士。
    当有udp攻击的时候,我服务器上的金盾 会发现是360的节点发动了udp攻击,,看情况很像是360把“流量”转发到了我服务器上。。。这又是咋回事。

  13. 13#
    回复此人 感谢
    小熊饼干 | 2015-10-14 13:41

    @huoji UDP “转发”这个问题就要具体分析了。 按说360也算一个‘正规’厂商,应该不会转发UDP的。怀疑是他们DNS服务器被利用放大攻击了?  
    只是猜测,需要你抓包分析下。

  14. 14#
    回复此人 感谢
    Mujj (为何我的眼中饱含泪水?因为我装逼装的深沉) | 2015-10-14 13:56

    国内这些厂商里面数电信的云堤有优势,来自电信的攻击基本上算全过滤了,近源压制、近源清洗,基本上来自电信的攻击源流量还没出省攻击源和流量就被处理了,X里云的X盾里面有他的影子。

  15. 15#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 18:43

    @Mujj  晚点拿几个肉鸡试一下给你看看吧,我当时就很奇怪。

  16. 16#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 20:16

    @Mujj  你可以无视我的回复。

  17. 17#
    回复此人 感谢
    huoji (有时候,想象力是突破技术瓶颈的关键!) | 2015-10-14 20:16

    @小熊饼干  晚点我要试一下。。

  18. 18#
    回复此人 感谢
    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2015-10-18 23:06

    分配的CNAME解析次数多、分布广也会被发现。

  19. 19#
    回复此人 感谢
    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2015-10-18 23:12

    大多数CDN是禁止非HTTP流量通过的,一般UDP流量在上级网络中就被过滤掉了,所以很多“高防”服务器是禁止UDP流量通过的。

  20. 20#
    回复此人 感谢
    Mujj (为何我的眼中饱含泪水?因为我装逼装的深沉) | 2015-10-19 02:22

    @无敌L.t.H 哪来的撸哪

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录