收躲该文基于浏览器的僵尸收集就是DDoS世界里的T-1000s。他们之所以如斯危险是因为他们就跟终结者里的反派一样,被设计的可以适应各类环境的报复打击。当其他原始的收集僵尸还在暴力破解你的防御的时辰,基于浏览器的僵尸就已摹拟真实的人类畴前门进进了。
当你意想到环境不合弊端时,他们已冲破鸿沟,弄宕办事器,已无力回天了。
那么应当如何防御T-1000呢,如何辩白一次拜候是来自与真实的浏览器仍是一个基于浏览器的僵尸?传统的过滤僵尸的策略在面对可以或许保留cookie和履行javascript的僵尸时都掉效了。而不分青红皂白地让所有效户都填写验证码无异于自我毁灭,特别是当这类报复打击可能延续数个礼拜的时辰。
为了研究防御编制,我们来看一个真实的案例:
此次报复打击是一个未知的僵尸收集倡议的。这些基于浏览器的僵尸可以保留cookie,履行javascript。报复打击的初期我们辨认出是PhantomJS无界面浏览器。
PhanomJS是一套开辟无界面浏览器的东西。它供给所有浏览器的功能可是没有界面,没有按钮,没有地址栏。一般被用在主动化测试和收集监控上。
此次报复打击延续了150个小时以上。这个过程中,我们记实了全球超越180000个歹意IP。岑岭期每秒6000次报复打击,平均一天有690000000次以上。报复打击IP的数量和漫衍范围让我们感觉这应当不但仅是一个僵尸收集,而是可能整合了多个。下图是报复打击ip的地舆漫衍。
报复打击过程中我们截获了861个不合的user-agent。报复打击者点窜了头部的布局试图绕过我们的防御。
下图是报复打击最多的ip:
有趣的是报复打击者除利用摹拟浏览器的僵尸,还试图摹拟人类的行动来遁藏基于行动检测的安然法则。这些僵尸会先拜候不合的页面,然后像人类那样拜候一些随机的页面,最后才会堆积在一路耗损资本。
虽然基于浏览器的僵尸可以或许冲破传统的过滤。可是因为它利用了一个已知的无界面浏览器,这模样便可以经由过程我们的客户端分类机制检测到。
我们的客户端分类机制基于我们已汇集的大年夜量信息总结出来的签名。产生此次报复打击的时辰,我们的信息库已有超越10000000个签名。每个签名都包含:
User-agent
IPs and ASN info
HTTP Headers
JavaScript footprint
Cookie/Protocol support variations
我们不但仅汇集一些较着的信息,好比user-agent,还汇集一些浏览器之间复杂的细微不同。安然的匹敌是封锁的,所以不说一些手艺细节的话很难把这个机制诠释清晰。略微说一点,我们会寻觅浏览器措置编码方面细微的不同,好比,我们经由过程浏览器措置HTTP头里两次空格和特别字符来辨别不合的浏览器。
所以我们的数据库里有不计其数个已知的浏览器和僵尸签名,笼盖各类场景。在这个案例中,报复打击者的兵器PhantomJS webkit当然也是我们签名库中的一个。
当报复打击者在打算若何让他的僵尸看起来更像人类的时辰,我们的团队必需做的就是让我们的系统发现报复打击者用的无界面浏览器是哪一种。以后我们做的就是简单的樊篱了所有的PhantomJS的实例。我们乃至留了一个备选,让用户填一个验证码,以避免樊篱掉落了真实的人类拜候。
不出料想的,没有验证码被填写。
几天以后,当我们已完全依托机械辨认,不需要人工干涉干与了。报复打击者仍然在利用新的user-agent和新的ip试图绕过防御。可是所有残暴的T-1000s都已被我们冰冻起来了。他们利用的编制,签名,模式都已被记实下来作为将来的参考。
原文地址:http://thehackernews.com/2013/11/ddos-attack-from-browser-based-botnets.html