昨日(3月1日)凌晨1点15分,知名代码托管网站 GitHub 遭遇了有史以来最严重的DDoS网络攻击,峰值流量达到了前所未有的1.35Tbps。消息一出,全世界的程序员立马炸了锅,知道我们这里有多少牛人么,连我们都敢黑?!
作为开源代码库以及版本控制系统,Github 拥有上百万的开发者用户,被坊间称为程序员的“另类”社交网络、 全球最大的黑客聚集地。
但即使社区牛人再多,它也未逃DDoS攻击魔掌,据外媒 bleepingcomputer透露,攻击者是利用前不久公开的 Memcached 漏洞执行攻击,能成倍的放大攻击效果,被称为DRDoS反射攻击。
那么,与传统的DDoS 相比,何为DRDoS反射攻击?Github 目前情况如何?如再有黑客利用Memcached 漏洞进行攻击,应该怎么防?
大家都知道,DDoS 攻击的特点就是利用如潮水般的流量同时涌入网站,不过本次攻击不同之处在于采用了更厉害的放大技术,目的是能对主机服务器产生更严重的影响。
其实,Memcache 本身是一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站效果显著。
其实早有安全团队在去年年中就针对Memcache 放大的攻击技术发布了预警。
之所以被称作放大的DDoS攻击,是因为攻击者利用 Memcached 协议,发送大量带有被害者IP地址的 UDP 数据包给主机,然后放大,主机对伪造的IP地址源做回应,形成分布式拒绝服务攻击,从而形成DRDoS反射。
对这次事件和相关技术进行了持续监控的360安全团队0Kee Team李丰沛介绍,之所以Memcached 被黑客盯上,有两个原因。
一是因为当被用作反射点时,它的放大倍数超高,可超过5万倍。对比其他常见 DDoS 的反射点,放大比率通常只有 10 到 100 倍之前。
比如,一个203字节的传入Memcached 请求会导致大约 100 兆字节的响应。
如果说之前传统的 DDoS攻击是小米加步枪,这次针对 Memcache 的 DRDoS 攻击则是飞机加大炮。
二是,Memcached 服务器往往是企业用来做数据服务的,所以服务器的资源好,有比较大的带宽。如果单台服务器能打出1Gbps攻击带宽的话,只要 1000 台服务器就能打出 1Tbps 的攻击带宽了。而11月份统计的数据线网中受影响的设备可能有 6 万台。
其实,为了安全起见,Memcache 应该是不能暴露在互联网中的。此类服务器没有认证协议,连接到互联网中意味着任何人都可以查询它们。
在此前的研究报告中,360的0Kee 团队预估 Memcached 服务器可能会被滥用以发起约 2Tbps 的DDoS攻击,也就是说,这次针对 GitHub 的攻击也许只用了六七成的功力。
据雷峰网(公众号:雷峰网)了解,GitHub在得到 Akamai 的帮助后,在不到10分钟的时间内化解了这次危机。GitHub 也证实,网站上用户数据的机密性和完整性没有受到影响。
恩,程序员哥哥们的头发没有白掉,代码还在。
雷峰网了解到,目前在外开放的 Memcache 存储系统数量级在十万左右,都可能会受到此类攻击影响。而且预计会出现更多利用 Memcached 进行 DRDoS 的事件,如果本次攻击效果被其他DDoS团队所效仿,将会带来后果更严重的攻击。
李丰沛告诉雷峰网,暴露在互联网中归根结底是用户和他的供应商的选择,之后建议大家就不要轻易暴露,即使暴露,也应该加上用户口令认证或者网络访问限制等。
以下是他提出的相关建议。
对于 Memcache 使用者,
1.Memcache的用户建议将服务放置于可信域内,有外网时不要监听 0.0.0.0,有特殊需求可以设置acl或者添加安全组。
2.为预防机器器扫描和ssrf等攻击,修改memcache默认监听端口。
3.升级到最新版本的memcache,并且使用SASL设置密码来进行权限控制。
对于网络层防御,
1.多个ISP已经对UDP11211进行限速。
2.打击攻击源:互联网服务提供商应当禁止在网络上执行IP欺骗。IP欺骗DRDoS的根本原因。具体措施可以参考BCP38。
3.ISP应允许用户使用 BGP flowspec 限制入站UDP11211的流量,以减轻大型DRDoS攻击时的拥堵。
要说,这也不是 GitHub 第一次被黑客盯上了。
早在2015年3月26日,它就遭遇了当时也被称为“史上最大规模的DDoS攻击”,而且一直持续到了4月7号,算下来有将近两周的时间。
GitHub指出,攻击者的目的是逼迫 Github 移除反审查项目Greatfire。
GitHub官方博客发文指出,攻击者的目的是逼迫 Github 删除某些特定内容的页面。根据第三方的研究称,此次攻击采用了HTTP劫持,加密连接不受影响。攻击者的设备设在国际互联网和国内互联网的边界上,用恶意的代码替代百度的 js 文件,载入恶意代码后用户的浏览器将会以每2秒一次的频率,访问域名https://github.com/greatfire/和https://github.com/cn-nytimes/。
据悉,攻击者先后使用了四种DDoS技术攻击GitHub:
第一波是创造性的劫持百度JS文件利用中国海外用户的浏览器每2秒向托管在GitHub上的两个反审查项目发出请求,这一手段被GitHub用弹出JS警告alert()防住;
第二轮是跨域<img> 攻击,被GitHub检查Referer挡住;
第三波是DDoS攻击GitHub Pages;
第四波是正在进行中的TCP SYN洪水攻击,利用TCP协议缺陷发送大量伪造的TCP连接请求,让GitHub耗尽资源
最后,Github的反制措施是用alert(“WARNING: malicious javascript detected on this domain”)替换了原网页的内容。