Botwall - Bot Firewall??

Mountain View的El Camino Real和Castro交界的地方,有一栋大楼,地址是:800 W El Camino Real,里面入驻了不少创业公司,是创业者的乐园,也是下一波millionaire/billionaire的孵化地。去年因为一个在ooyala工作的朋友的缘故,没少在这里蹭饭,后来ooyala被全资收购,朋友离开后,我便很少过来。直到春节和前同事老慕约饭,得知他所在的公司shape security也在这里。今天故地重游,我才惊异地发现,原来这里已经快成了web security的大本营:除了shape security,前老板Meng所在的vArmour(software defined security)也在这里。

老慕神采奕奕,与几个月前辞职时大为不同,明显在shape security又找到了开发的快乐,成长的快乐。四十多岁的Principal Engineer,搁别人都是在大公司养老的节奏,但他还是义无反顾地跳出舒适区,抛开了写了估计有十几二十年的C,开始使用从来没有写过的java。

谈起shape security,老慕两眼放光。Web已经是这个网络世界的中心 —— 围绕着web构建安全产品才符合帕累托最优。web安全是个很大的范畴,往哪里使力呢?研究表明61.5% [1] 的web请求(注意是请求,不是所有流量)都来自于bot,更恐怖的是,超过90%的登录页面源自bot。嗯,firewall这个烂大街的名字不叫了,咱高大上叫botwall。

最早的bot来源于搜索引擎。搜索引擎们为了掌握这个网络世界的脉络,派出不计其数的bot游走到虚拟世界的每个角落。后来这技术逐渐被骇客用来嗅探,侦查,以及入侵各种各样的网络。

当听到你的网站的登陆页面有90%都非人类访问时,是不是有种脊背发凉的感觉?

来自bot的攻击主要有几种:

1) Reconnaissance:通过bot寻找整个网站的薄弱环节,一般是后续进攻的起点。最典型的应用是bot使用搜索引擎的结果漫无目标地嗅探合适的攻击对象,一旦发现条件符合者(比如说满足某个OS漏洞,或者某个web framework的漏洞),就发动攻击,占领被攻击的服务器。如果被占领的服务器没有有价值的数据,这个服务器可能会变成一个肉鸡,成为攻击者的帮凶。

2) DOS:攻击者通过bot找到目标网站的薄弱环节,然后施加拒绝服务攻击。举个例子,通过上面所述的侦查,攻击者发现某目标网站的搜索页面响应所花时间要明显长于其他请求,于是假定该网站的搜索功能是个耗费CPU资源的事情,随后,攻击者通过产生大量不重复的搜索请求(重复的请求一般会匹配之前的缓存,达不到效果),让目标网站疲于奔命,无法正常响应搜索请求,甚至进一步波及到网站的其他服务(如果decouple做得不好的话)。这是一种不对等的攻击,如果结合大量肉鸡发起DDOS,效果惊人。

3) Account penetration:去年被脱裤的网站太多,骇客掌握个几十上百万的用户资料库不成问题。有些被脱裤的知名网站连密码都是没打马赛克的,攻击者通过这些资料,在第三方网站上尝试用户名/密码的组合,可以很快试验出大量可以可以被渗透的用户名/密码组合。

这些都是常见的不能再常见的攻击行为,可传统的防火墙除了简陋的黑名单,访问限速外几乎没有太好的办法。而这些实实在在的攻击,让企业不得不花费巨大的财力去填补漏洞。这就给了shape security这样专攻bot protection的公司巨大的市场机会 —— 2014年它们拿到40MUSD的C轮就是佐证。

其实shape security的核心技术 —— polymorphism —— 简单直观,其网站上就有介绍。说起polymorphism,学过OO编程的人都知道,不就是多态么!shape security所宣称的polymorphism是指网站的页面资源的多态。bot之所以能够流行,就是因为访问同一个url,总能得到相同的内容(比如说登录页),所以能够从容攻击。如果同样的请求,每次访问都返回不同的页面呢?

乍一听这里破坏了RESTful的原则,不利于SEO。但由于它保护的是系统的动态资源,如登录,搜索等包含表单的页面,对SEO本来价值也不大(搜索价值大些),不RESTful也还可以。

接下来的问题是:如果让用户的访问体验不受到丝毫的影响?这是个学问。

下图是polymorphism的一个例子:

我们看到,从form的action,到各个input field的id/name等都做了混淆,而且,每次请求,混淆的内容都不一样。当然,这只是个例子,仅仅这么做,肯定还不够,因为:

1) form在dom里的位置依旧固定,form里input的位置也是固定的。bot依旧可以找到正确的form进行攻击。不过,这个好解决,多加些无关紧要的页面元素进行随机混淆就好。

2) 聪明的bot能通过input的type(password),整个form里input的个数等等,猜测出form的作用。这就需要有些域进一步通过javascript进行混淆。比如说类型是password的域,只有javascript使能的情况下才会被加载在dom。这可以过滤几乎所有不处理javascript的bot。

有同学会说,费这么大劲,用recaptcha不就行了?recaptcha已经有了人力破解的手段 —— 一些黑客组织会通过bot把recaptcha付费众包出去,通过人力识别,所以单纯依赖recaptcha并不完全解决问题。

使用polymorphism的botwall看上去是个简单的解决方案,真做起来并不容易。找到页面中需要保护的信息不算难事(规则库),难的在于用户使用混淆后的action和各种奇葩的form field名的请求需要能够被正确转换回去,然后proxy给原始的网站。每个http request将页面送给用户后,页面上被转换的内容的状态都需要被记录下来,以便在进一步访问时使用;而要命的是,用户可能打开登录页面,然后吃个午饭回来再登录,所以状态怎么个记录和ageout是个问题;如果不ageout,无数的bot访问,直接导致botwall被DDOS,问题更严重。

想来想去,觉得这状态要么是通过javascript写在cookie中,在下次请求中带给botwall,或者干脆这种转换在算法上是可逆的,botwall无需保持状态就能恢复出原始信息proxy给web服务器。否则,怎么看botwall怎么像瓶颈所在。

就想了这么多。一些浅见,欢迎讨论。感觉这技术如果没做太多专利保护的话CloudFlare可以在它的系统里实现,那估计就没shape security什么事了。不过shape security既然已经做了三年,还有fortune 500的客户,就必然有足够的技术沉淀,也许我看到的只是表面。国内倒是应该有公司去做做这个方向,银行,金融,小的电子商务站感觉在这方面需求旺盛啊。现在不是p2p金融火么,就别趟那浑水了,学学levis,别人淘金的时候,咱做耐用的牛仔服。

说真的,山石,天融信,赛门铁克的朋友们,要不想想这个方向?别谢我,我叫雷锋。

1. 见: http://www.incapsula.com/blog/bot-traffic-report-2013.html

原文发布于微信公众号 - 程序人生(programmer_life)

原文发表时间:2015-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

“风水逆转” | 获取云端虚拟机的完整控制权其实很容易

我们先前介绍过一种名为Bitsquatting的攻击手法,这是一种超高端的钓鱼攻击:我们假定内存、CPU缓存由于环境,或者制造缺陷,产生内存的比特位翻转,就可能...

22410
来自专栏玉树芝兰

互联网上的时光机器

移动互联网时代,搞社会研究的人总是需要从网络采集各种数据。假设你本周的任务是搜集世界主流媒体对某一主题的报道。你好不容易学习并且掌握了搜索引擎的各种窍门后,辛辛...

771
来自专栏程序人生

Policy Engine 的前世今生

作为一个 video streaming service,TubiTV 很重要的一项功能是保证影视剧按照合约上的要求在规定的时间(窗口期),规定的平台,以及规定...

39814
来自专栏程序员互动联盟

【程序人生】糟糕的程序员你会做?

一个好程序员不好做,那么一个糟糕的程序应该不难吧! 秘籍一:让你看不懂我写的是什么 都说让人看不懂的代码,才是牛逼代码。一类是算法高深,一般人实在是看不懂。另一...

3288
来自专栏FreeBuf

钓鱼攻防对抗战的今日现状:防守方完全落后挨打

网络钓鱼主要用来骗取个人敏感信息,从而用于一些恶意目的。今天主要谈钓鱼用来做金融欺诈和身份盗窃的行为,包括对网银、购物等欺诈行为。随着上网人群的增多,钓鱼潜在...

2355
来自专栏非著名程序员

编程不息,Bug 不止

今天不想聊别的,就想聊点 Bug,是不是感觉我有点傲娇呢?昨天大家的留言我都一一仔细看完了,看完之后,就想到了一句话:生命不息,坎坷不止。2016年大家真的是被...

1799
来自专栏施炯的IoT开发专栏

移动物联网 之 智能家居

本系列文章结合时下正热的“物联网”概念,介绍实现“智能家居”的一套解决方案。 引言     随着科技的发展,手机已经不简单地是个通讯设备,而是人们生活的必需...

2678
来自专栏FreeBuf

补卡的糟糕经历引发的思考:一点黑客技术让我们不再泄露那么多数据

概述: 笔者因为孩子生病n次去医院输液,终于在最后一次打吊针的时候被人偷走了手机(医院果然是作案高发区),于是有了我补办手机卡的经历。一张电信手机卡在电信营业厅...

2579
来自专栏FreeBuf

永生之火:相对持久的绕过方法和一点想

基于很多渗透测试的框架,和出色的 backdoor 程序,现在的后门已经不仅仅局限与 tcp/ip 了,今天分享的东西算不算干货呢?就靠读者朋友们来定义了。

1210
来自专栏信安之路

信息安全基础

确保授权的用户对数据和资源进行及时和可靠的访问。 网络由众多长时间不间断运行的硬件设备和软件组成,硬件设备像路由器、交换机、DNS服务器、DHCP服务器、代理和...

1220

扫码关注云+社区

领取腾讯云代金券