在世界的隐秘角落,无数扫描和控制指令正在从一个 IP 涌出。站在云端俯视,偌大的版图上,一台台服务器甚至没来得及挣扎就放弃了抵抗。它们的“眼睛”变得通红。在暗色的夜里集结成军,准备听命于撒旦的指引,向安睡的世界发起攻击。
平行世界中,一个僵尸网络正在诞生。
黑客如巫师一般,挥一挥黑袍的衣袖,所有的机器同时喷射出巨大的数据,打向某个平台。瞬间可怜的服务器就被巨大的流量淹没。在我们的世界里,这被称为 DDoS 攻击。
然而,巫师手上的“俘虏”——可怜的服务器,并不是无脑的僵尸。他们同样可以用强大的计算资源,为黑客“挖”比特币;当然,他们也可以列队整齐,为某个服务刷单。
靠吸血敛财,是黑帽黑客的生活方式。
【僵尸网络】
控制,是一切黑客进攻的根本方法。
无论是控制僵尸网络,还是窃取企业信息,首要的一步就是入侵企业的服务器。而目前,中国绝大多数的网站服务器都在云端。
如果黑客想要入侵的服务器恰好位于阿里云(其实这个几率相当高),那么他首先要面临的,就是一位安驻云端的门神——叶敏。
叶敏的官方 Title 是阿里云云盾的安全技术负责人。从2010年加入阿里开始,他见证了云计算从踽踽独行到百万雄兵;他同样见证了云计算的城池之外,黑客们从散兵游勇到集结成军。
“企业的数据和服务都运作在阿里云上, 所以我们有义务给客户展示周围正在发生的事情。”他说。
【叶敏】
叶敏告诉雷锋网,根据他掌握的资料,就连他自己的某些低强度的(并不是那么重要的)密码也被泄露在了互联网上。黑产用这些数以亿计的数据库不断地“撞库”,从而获得同一个用户在不同网站上的信息。
为了保护阿里云的客户,一旦遇到客户被撞库的情况,需要对恶意 IP 做出“处罚决策”。例如,最简单的,封禁这个 IP。
粗略地一想,识别撞库很简单。那就是某个 IP 高频率地登陆不同的账户。但是我们在研发监测模型的时候发现,事情远不是这么简单。因为 IP 的类型很复杂。
有一些 IP 是出口 IP,比如一个学校所有的学生都共用一个IP 出口;
有一些是功能性的 CDN;
另外还有一些高频尝试并不是撞库,而是暴力破解,或者垃圾注册。
叶敏说。
在这种情况下, 如果简简单单封禁一个IP,就不一定是明智的选择。如果这是一个学校 IP,那么整个学校都无法访问这个业务;如果这是一个公司 IP,那么整个公司都无法访问;如果这是一个出口 IP,有可能几万人都被“误杀”。显然没有一个网站愿意动不动就有好几万人无妨访问自己的业务,气愤地打电话过来投诉。
至于叶敏如何解决这个问题,我们后文分解,且看黑客的下一个武器。
在绝大多数以赚钱为目的“信息窃取”攻击里(当然有少量为了政治和商业目的针对进攻),黑产从业者往往会采用工具化的程序,大批量地在网站里植入后门,然后统一加以控制。
Webshell,就是黑客挖进网站的地道出口中, 做常见的一种。
看过地道战的童鞋们还记得,日本兵即使绞尽脑汁,也经常猜不到地道的出口到底在什么奇葩的位置。在网络攻防中,情况也有类似之处。因为 Webshell 的位置和形态千奇百怪。在一般人看来,一个文件究竟是后门还是正常的程序,就像夜读的才郎看到窗口的姑娘,分不清究竟是美女还是画皮。而且,通过一个 webshell,如何追溯到黑客的行踪,也是一个高难度的问题。
不过,这难不倒像叶敏一样的福尔摩斯。“对于一个有经验的安全人员来说,查看一下网站日志的基本情况,就差不多可以知道黑客进攻到哪一步,是否已经得手。”他说。
难倒叶敏的是,全中国有30%的商业网站坐落在阿里云上。而叶敏的团队只有8个人。
如果你只服务一个客户,那么只要两三个技术人员,就可以用手工排查的方法全部搞定,当这个数量乘以万,乘以十万,就出现了完全不一样的情况。你需要一个全自动的机器。
他说。
“对于人来说,很多技巧已经烂熟于心。比如开车,我甚至可以边聊天边开车。但是你让程序去开车,难度就不是一个级别了。
同样,对安全人员来说并不难的进攻检测,如果想让机器学会,就要付出很多努力。”
正如上文所说,面对如此大量的工作,叶敏别无选择,只能拼尽团队的智商制造一个“机械战警”。制造这个机械战警的究极奥义在于:把人的经验传授给机器。
这个福尔摩斯名叫云盾。
为了改进云盾检测入侵的效果,叶敏仔细研究了黑客进攻的每一个招式。
有一些入侵方式,并不是自动化程序可以防御的。比如弱口令,黑客一旦掌握了网络口令,我们是没有办法阻止一个使用正确密码登陆的。另外,有一些漏洞在没有登录权限的情况下,是无法被自动化工具检查到的。
叶敏和团队总结了一百多种黑客入侵的奇葩方式,然后把这些方式的对抗方法做成自动化的规则输入到阿里云盾中。
当然,福尔摩斯不仅是能够发现案件,最大的功力在于:可以抓到凶手。
我们的工作是训练机器可以读取日志文件。针对一个 Webshell,根据日志的时间,查看 Webshell 产生前一秒,是否有某一个 Java 漏洞被利用,而这个漏洞被利用的同时,网络上产生了什么流量,这个流量是哪里发出来的。
这,就是叶敏训练“机器战警”的方法。
机器福尔摩斯,从某种程度上说是一个失败。因为福尔摩斯发现问题的时候,往往黑客已经成功植入后门。在一切都没发生之前,你需要一个“机器卫队”。
一个正常访问者和恶意访问者的动作和频率都是不一样的,这就让自动化判断成为了可能。
当然,世界上已经存在众多自动化的网络防火墙。不过叶敏想要用更加智能的方法改进防火墙。
以往的防火墙往往使用规则识别,我希望研发一个纯数学模型来识别web攻击。例如一段URL,有经验的安全员看到这些数字和字母就基本能够判断它的危险性。所以我希望机器也能做到。
我们把这些数字和字母的参数样本交给机器,让它自己去学习,这样它就可以学习出一个模型,用来识别攻击。
目前在阿里云上,基于规则的防火墙和基于数据的防火墙在同时运行,两个系统存在一些差异,互相可以检查出对方的误报和漏报。
改进这套系统,也是叶敏近期的重要工作之一。
现在,需要回答一个悬而未决的问题。那就是如何用自动化程序判断一个 IP 究竟是不是“撞库 IP”呢?
叶敏告诉雷锋网,他和团队设计了一套系统。让所有的流量经过一个分析系统,把其中所有的登陆请求抽取出来,放到数学模型里计算。这个数学模型里,有诸多筛选条件:
登录频率的分布;
用户名、密码的特征;
IP的信誉度。
这些条件,恰恰可以筛选出一个 IP 究竟是出口IP、CDN IP还是个人 IP。这就为阻断撞库行为提供了非常精准的情报。
当然,尊崇技术的叶敏同样承认,机器判断会存在误判的可能。不过他表示,这个系统的准确率应该是非常高的。
我们用来判断准确率的一个重要指标就是用户的投诉率,虽然在系统开始运行的时候,会有用户投诉被“误杀”。不过最近几个月我们都没有接到误杀的投诉了。
在偌大的云版图上,黑客武器和叶敏研发的“机器战警”上演着旷日持久的战争。
等等,好像还有一件事没有解决。你还记得文章开头的那些僵尸网络和它们背后的巫师吗?即使把黑客控制的服务器全部“解救”,仍然难以阻止黑客本人法外逍遥。
你别忘了,全网30%的网站都在阿里云上。
叶敏不无骄傲。这个数据是阿里云的必杀王牌。
由于使用阿里云服务的企业众多,所以这些被黑客控制的“肉鸡”很大概率也处在阿里云上。通过分析肉鸡的流量和行为,加上我们的秘密技术,就可以感知到控制方的来源。
叶敏告诉雷锋网,对于200G流量以上的 DDoS 攻击,已经有90%可以定位到控制端。这些都是通过自动化的工具完成的。“去年我们总共溯源了30起 DDoS 攻击,其中80%-90%都找到了背后具体的人。”
神秘巫师的面纱被无情地撕下,这是一场技术的胜利。
实际上,这是一个典型的大数据应用场景。每天有无数黑客攻防战争发生在阿里云的地盘上,这些数据可以被汇总,成为一个 IP 信誉库。在大数据库中,每一个 IP 都会有相应的黑白标签。
在这个“机械战警”心里,来人究竟是人是鬼是妖是魔,也许早就有了定论。
以上这些,都是叶敏和团队在进行的前沿研究,这些技术正在试错和完善中。
叶敏为雷锋网描绘了一幅场景:
当一个访问者出现,我们能立刻拿出一个IP画像,包含了他的所有属性,他历史上有没有过恶意行为,他的惯用攻击手法是什么。通过分析他的访问行为,再结合当前业务,我们能判断出攻击者的意图,他是想拉数据还是想控制服务器。并且及时阻止这种情况发生。
不需要太久的时间,我们就能实现,他说。为了网络世界的阳光普照,像叶敏一样的安全大牛任重而道远。