事件跟踪:算算“超级加农炮(The Great Cannon)”的成本有多少?

2015-04-13 +4 337225人围观 ,发现 16 个不明物体 其他头条

最近美国媒体指责中方拥有网络武器“超级加农炮(The Great Cannon)”,一时间议论纷纷。先不论此事的真假,让我们一起来算算如此庞大的攻击系统建设成本几何?

成本问题

第一个问题是:需要监控多少带宽。据统计,在2015年年初全国使用量为1.9兆兆比特/秒(1899792-Mbps)。

第二个问题是:需要购买多少硬件来拦截网络流量、重组TCP数据流以及给出相应的应对方法?

让我们来算一下,每1千美元的一台台式电脑大约可以有10-Gbps的流量。那么换句话说,“超级加农炮(The Great Cannon)”的硬件成本约二十万美元。

这个结果还是有点争议。大多数人认为,仅仅只有台式电脑是无法处理10-Gbps的吞吐量,更谈不上做些类似TCP数据流重组的其他复杂的事情。然而,他们错了。英特尔已经把大量的功能载入到他们的硬件,这恰恰解决了这个问题。

如此规模的传输量大吗?

第一步我们先绕过操作系统。使用一些无需连接网卡和内核的数据包处理(DPDK,PF_RING,netmap)直接连接到你的软件。这操作起来相当简单,这里就不多说了。而且这些应用程序都能够无需流量就发送、接收报文。

根据英特尔模拟测出来80万个数据包/秒,我们可以发现这远远比你需要一个超级大炮处理10万个数据包/秒多得多。

之后是处理TCP数据流重组。几乎每个人都会处理错,因为这涉及到每一个缓冲进来的数据包。正确的方法是编写一个解析器作为状态机,缓冲数据包之间的状态而不是数据包本身。虽然没有序列号的数据包仍然需要被缓冲,但是这只是其中的一小部分可以忽略不计。于是,通过使用零流量的驱动器和解析器你就会发现,容易就可以有10 Gbps的数据流。

以上这些都是基本的操作,还有一堆其他你需要解决的问题。例如,你要考虑当Linux突然中断线程导致数据传输抖动的问题。线程中断会导致任何你正在处理的数据包向后延迟几毫秒。对网络设备来说这是死角。不过你可以在Linux里预留特定的CPU内核为无限运行,让你在运行线程时永远不会被中断。那么,由于微秒级的延时或抖动不断增加而最终导致数据传输延迟250毫秒就不是问题了。

你可能会认为十亿人同时使用大量的互联网流量会使系统运作困难。可事实上,就上述而言,这些流量是微不足道的。

*参考来源blog.erratasec,译/江湖小吓,转载请注明来自Freebuf.COM

相关推荐

这些评论亮了

  • cf浩哥 回复
    曙光计算机可不是吃干饭的
    )10( 亮了
发表评论

已有 16 条评论

取消
Loading...

特别推荐

文章目录

    文章目录

      推荐关注

      官方公众号

      聚焦企业安全

      活动预告

      填写个人信息

      姓名
      电话
      邮箱
      公司
      行业
      职位
      css.php