2016年,阿里云安全与天池大数据众智平台合作,启动阿里云安全算法挑战赛:在全球范围内招募安全+算法的跨界挑战者,集顶尖智慧,帮助阿里云更好地保护云和云上用户,推动安全智能的技术发展。
在首届安全算法挑战赛中,上千名大数据领域的高校人才、资深人士,与安全行业的高手携手作战。而一位单枪匹马迎战的少女,徐道晨,以创新的算法和逻辑,给评委和主办方留下了深刻的印象,并成为最终加入阿里云安全团队的选手之一。
今年,第二届算法挑战赛启动,我们希望用人的智慧,推动安全智能更进一步。希望徐道晨的故事,能给你挑战的动力和灵感;安全智能的下一个故事,是否会由你来续写呢?
老刑警坐在街角,透过手中香烟的烟雾,瞥见车站旁的一个黑衣行人。
他眉头一皱,把烟头踩在脚下,跟着此人走上了公交。
果然不出所料。就在黑衣人把别人的钱夹塞进自己夹克的一瞬间,有人攥住了他的手腕。回头,老刑警赫然站在背后。
老刑警在和黑衣人眼神接触的一瞬间,经验告诉他此人一定有问题。在车站等车的时候,黑衣人仅仅用了十分之一秒,就把所有人的钱包位置检视了一遍。而正是这个普通人根本无法察觉到的动作,让老刑警确定这就是小偷。
对于老刑警来说,这一切都已经成为了职业嗅觉,判定过程连贯而准确。而实际上,在他的脑中,对小偷的判定可以抽象为一套复杂的算法流程。而对方的“眼神位置”“神态”“步态步速”“上车动作”等等一系列的特征都一一进入老刑警的算法流程进行筛查。最终在老刑警的内心得出此人是小偷的可能性,他正是根据这个“可能性参数”,才选择在公交车上进行抓捕。
以上的一切,在网络世界都有一套翻版。那就是:安全人员如何揪出入侵的黑客。
少女VS黑客文 | 史中
闪光的“算法”
在赛博世界里,每天要应对各种花式黑客进攻次数最多的,恐怕非阿里云莫属。阿里云顶着一个颇为自豪的光环,那就是全中国有37%的网站建立在阿里云之上。这样庞大的数字,让阿里云每天都承受着来自宇宙各地的网络攻击。
所以,阿里云安全团队迫切需要一些“老刑警”。对于他们来说,已经没有任何一个实体的团队,可以人肉跟踪鉴别每天数十亿次的访问中,究竟哪些存在风险。解药只有一个:大数据算法。
阿里云高级安全专家刘志生告诉我:
所谓算法就是把所有的访问行为进行关联计算。以 Web 防护为例,把某些特定访问动作的“稀有度”“异常性”进行特定分析,形成计算模型。如果某个模型被证明和最终的入侵有关,那么这就是一个判定入侵的有效模型。
这和老刑警在脑中筛选小偷的模式大致相同。无数个算法模型,就如同一道道激光电网,对于各式各样的黑客来说,“总有一款适合你”。
刘志生说,对于阿里云的安全技术,占据总量 95% 的普通网络进攻都可以轻松防御。而剩下的 5% 来自高级黑客的攻击,才是他们的“重点关照对象”。
在和顶尖的黑客对抗中,攻防两方的技术都非常高,关键就看在顶尖技术中谁更有优势。目前来看,谁拥有大数据能力,谁就更有优势。
天文数字的访问量中,很多高级的进攻利用的都是最新的漏洞或进攻思路。有些方法从黑客的脑中创造出来之后,就直接用来攻击,属于未知的威胁。面对未知的威胁,防火墙的表现一定不尽如人意,这个时候,安全算法是唯一同时满足“自动化”和“感知未知威胁”的方案。
这场战争,阿里云打得并不轻松。发掘安全与算法的跨界人才,改进技术,是他们举办安全算法大赛的重要原因。
进击的颜值少女
选手们去年所迎战的赛题,大致如下:
1、线上赛,包括“Webshell 检测”和“钓鱼网站检测”
2、线下赛,为“入侵行为检测”
简单来说,线上赛的题目较为简单。参赛的童鞋要从无数文件和网址中,利用算法来筛选出恶意的文件和网址。而线下赛,就相对更接近于“老刑警”的实战模式了。需要综合各台机器的日志,利用算法综合判定出哪台主机有恶意动机。
只有在线上赛中晋级的选手,才能到杭州参加线下赛。
在这次比赛中,有一位特别的选手,在各个参赛队伍齐装满员的情况下,来自清华大学的颜值少女徐道晨居然单枪匹马手刃诸多大咖,拿到了第二名的成绩。
她以“新时代的萌妹子就该懂技术”为格言,杀入了评委和公众的视线。“道晨粉丝团”关注的,更多的是她深夜在电脑前独自迎战的美丽侧脸,而包括道哥吴翰清在内的评委们,更惊叹于她答辩时的缜密逻辑,和算法本身的创新度。比赛半年之后,徐道晨也正式加入了阿里云安全团队。
当时微博上徐道晨的粉丝团
故事的开始是这样的。
徐道晨和朋友杜海章组成了“Audi_RS7”战队,顺利晋级到了线下赛。然而,就在线下赛开始之前,杜海章童鞋因故不能来参赛。于是,徐道晨的“单骑冒险”就这样开始了。
从大二才开始学习编程和算法的徐道晨是一个死理性派,凡事喜欢刨根问底。之前只是在学校里简单接触过入侵检测的她从来没有反入侵的实践经验。这次上场前又失去队友,颇有一种“壮士一去兮不复返”的悲壮。
比赛时间是从当天下午两点到次日下午两点。每两个小时我们提交一次规则。主办方给出我们的检出率和误报率。我们根据这两个数据来改进算法,目标是找出其中25个恶意入侵行为。当时我就想,如果到第一天成绩不好,我就直接回家睡觉了。
作为主办方专家的刘志生告诉我,平常安全团队每天面临的是对几十万台服务器进行规则运算,而作为比赛,仅仅抽取了一百台服务器的日志,这在运算规模和难度方面,都比真实情况要小很多。
然而即使是这样,也有10亿条会话之多。参赛者的目标是,从中“算出”25个入侵的会话。
在简单的培训中,参赛者得到了一例黑名单(攻击案例)和一例白名单(正常访问)。而在比赛中,徐道晨拿到的所有信息,通俗来讲就是两个列表:
1、哪些机器进行了通信,谁连谁。
2、主机本身在什么时间被哪一个用户用什么进程做了什么事。
面对庞大的数据,徐道晨决定先用一条规则减小计算级别。
神奇的“Pagerank”
徐道晨告诉我,她的强项在于大数据算法。但作为非安全从业者,又是单打独斗的一个人,根本没有时间研究复杂函数的意义。所以她必须采用剑走偏锋的“玩法”,用一种独特的方法大幅缩减“嫌疑范围”。
她脑海里浮现出曾经做过社交网站的算法研究,在那个领域中,Pagerank 是一种颇为有效的技术。
简单科普一下,Pagerank 是由谷歌创始人,天才的拉里·佩奇创造的一项技术。大概可以理解为:
通过网络的超链接关系来确定一个页面的等级。即把从A页面到B页面的链接解释为A页面给B页面投票,然后根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。简单来的说,一个高等级的页面可以使其他低等级页面的等级提升。
Pagerank 示意图
她决定把和安全技术本不相关的 Pagerank 引入算法,她说:
主机之间要进行通信,这就像网页访问一样。例如百度每天有很多人访问,这样提供服务的流量是巨大的。所以我认为,访问量大的,也就是一台主机被其他很多主机连接,就应该是正常的。利用这个规则,我很快就把候选样本从十亿级别缩减到几十万级别。
这个方法,搭配上其他的限定条件,使得可能目标迅速减少。然而,由于对攻击代码不熟悉,她没有办法准确地定位出攻击行为所在。不过在第一天晚上,她的成绩突然冲到了第一,这让她信心大增。
仅仅睡了几个小时,她决定继续改进自己的算法。
如果要完成入侵,黑客就一定要利用漏洞。也就是说,对于某些动作而言,它在之前的动作中已经植入了木马或者利用了服务器漏洞。所以它的父进程为正常服务进程或脚本进程,子进程为攻击行为。通过这种对攻击方法的认识,我又成功定位出两三条。
对于25条恶意进程的基数来说,每增加一条检出,都是决定性的优势。最终徐道晨的算法保持了稳定,从25条中检出了12条。和第一名的成绩仅仅差了3条。她单枪匹马面对数十人的对手,拿到这个成绩让人惊叹。
不过,刘志生告诉我,虽说选手可以做到50%左右的检出率,但其实他们没有检出来的另一半,绝大多数是中等和高级的攻击。而要检出这样的攻击,不仅要结合算法,还需要相当齐备的安全对抗技术。
真实世界的“赛博大战”
徐道晨坦言:
如果我是安全专家。我就会更多地研究具体的行为,例如:命令的实施过程,连接的具体方式。用这方面的规则来防住进攻。但鉴于我对安全了解没有那么深,就不能过多纠结它的过程。转而需要更多异常统计的东西。
刘志生告诉我,虽然阿里云在安全算法方面有不错的技术积累,但黑客的攻击方式是无孔不入的,每一次攻击成功都是对已知的突破或未知的创新。
实际上,算法在安全的应用仍然处于开始阶段。在阿里云,会有许多针对内部全员的算法培训,目的是让每个安全工程师都掌握一些有关算法的知识,提升技术能力。
他举例说:
以常用的WAF(网络安全防火墙)为例,每天我们的系统可以产生几十条规则,经过人工审核之后,平均每天有不到一个规则被部署到系统中。那些未被采用的规则,主要是可能存在误杀的情况。
在保证不漏拦又不误杀的情况,我们把明确的正常请求和攻击请求进行训练,采用机器学习算法技术,最终产出纯算法模型,这样每个请求过来时会同时经过规则和算法的判断,既保证了不误杀又大大降低了漏报率。
那么,如何去验证这些算法规则切实有效,而不是“自我安慰”呢?
刘志生告诉我,阿里云采取了红蓝军对抗的办法。
玩法如下:
阿里云安全的童鞋全部作为红军,时刻处于待命状态。而其他部门的专家作为蓝军,目标就是用各种姿势对阿里云系统进行渗透,但是所有的进攻时间、方法,都不会预先通知红军。
在算法系统研发不到一年的时间里,大部分的蓝军攻击都被检测到了,漏过的蓝军攻击主要发生在算法模型上线的前几个月,通过不断训练调优,算法模型成熟后,蓝军变化再多的花样也基本都可以检测到了。
另外,之前基于人工规则的预警系统会产生出大量的误报,每天都需要投入安全工程师大量的人工成本做告警的分析和确认,算法模型可以从历史的海量数据中自动学习到正常用户的行为,可以对告警中正常的用户行为进行有效的过滤,并保持真正有威胁的告警,从而大大节省人工成本和提升安全工程师分析的效率,也做到了更智能化的检测防御联动。
徐道晨
热闹的比赛归于平静,徐道晨回到了北京。然而这个世界却有了些许的不同。“算法”,这个娴静的词汇,在世人面前展现了它的巨大力量。
一个柔弱的女孩,轻轻敲打几行代码,就召唤出洪荒巨力,抵御千军万马。
这样的情景,一如当年摩西举起手杖,劈开红海万顷波涛。
后记
一年过去了,徐道晨成为了阿里云安全团队的一员。这次,她要面对的是真实网络世界中的对抗。
这位颜值女学霸发现,真实世界的攻击场景比大赛中的题目更加凶残:
比赛过程中不存在攻防对抗,而真实场景中却并不是这样。我今天发现一种新的攻击方法,做了防护模块,黑客发现这样攻击失效以后,就会改变进攻的办法。
所以在比赛中那种“静态”的防护方法就不是那么好用了。所以我需要思考,有什么东西是黑客不管怎么绕都一定会干的事情。我需要找到这个点,就不会每天追着黑客屁股打,而是在这里守株待兔了。
据此,她对云安全有了新的认识:
传统模式下,是case by case地分析安全事件,生产力的源头是上报的安全事件。而云安全可以通过数据找出访问的异常,并针对各种异常做出不同反应,生产力的源头是多维数据的沉淀。
作为元老,徐道晨很期待今年8至10月第二届算法大赛的举行。因为,仅仅半年过去了,黑客的攻击手段又有了很多“创新”,这使得防护的难度又上了一个台阶。
我问徐道晨,经过了一年的实战和进步,如果她参加第二届算法大赛,有没有信心取胜。她想了想说,前浪很可能死在沙滩上。
来源:阿里云安全
本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。