我们的算法少女

来源:互联网 发布:非诚勿扰程序员专场 编辑:程序博客网 时间:2024/03/28 19:54

原文地址


2016年,阿里云安全与天池大数据众智平台合作,启动阿里云安全算法挑战赛:在全球范围内招募安全+算法的跨界挑战者,集顶尖智慧,帮助阿里云更好地保护云和云上用户,推动安全智能的技术发展。

image


在首届安全算法挑战赛中,上千名大数据领域的高校人才、资深人士,与安全行业的高手携手作战。而一位单枪匹马迎战的少女,徐道晨,以创新的算法和逻辑,给评委和主办方留下了深刻的印象,并成为最终加入阿里云安全团队的选手之一。

今年,第二届算法挑战赛启动,我们希望用人的智慧,推动安全智能更进一步。希望徐道晨的故事,能给你挑战的动力和灵感;安全智能的下一个故事,是否会由你来续写呢?

老刑警坐在街角,透过手中香烟的烟雾,瞥见车站旁的一个黑衣行人。

他眉头一皱,把烟头踩在脚下,跟着此人走上了公交。

果然不出所料。就在黑衣人把别人的钱夹塞进自己夹克的一瞬间,有人攥住了他的手腕。回头,老刑警赫然站在背后。

老刑警在和黑衣人眼神接触的一瞬间,经验告诉他此人一定有问题。在车站等车的时候,黑衣人仅仅用了十分之一秒,就把所有人的钱包位置检视了一遍。而正是这个普通人根本无法察觉到的动作,让老刑警确定这就是小偷。

对于老刑警来说,这一切都已经成为了职业嗅觉,判定过程连贯而准确。而实际上,在他的脑中,对小偷的判定可以抽象为一套复杂的算法流程。而对方的“眼神位置”“神态”“步态步速”“上车动作”等等一系列的特征都一一进入老刑警的算法流程进行筛查。最终在老刑警的内心得出此人是小偷的可能性,他正是根据这个“可能性参数”,才选择在公交车上进行抓捕。

以上的一切,在网络世界都有一套翻版。那就是:安全人员如何揪出入侵的黑客。


image


少女VS黑客
文 | 史中


闪光的“算法”

在赛博世界里,每天要应对各种花式黑客进攻次数最多的,恐怕非阿里云莫属。阿里云顶着一个颇为自豪的光环,那就是全中国有37%的网站建立在阿里云之上。这样庞大的数字,让阿里云每天都承受着来自宇宙各地的网络攻击。

所以,阿里云安全团队迫切需要一些“老刑警”。对于他们来说,已经没有任何一个实体的团队,可以人肉跟踪鉴别每天数十亿次的访问中,究竟哪些存在风险。解药只有一个:大数据算法。

阿里云高级安全专家刘志生告诉我:

所谓算法就是把所有的访问行为进行关联计算。以 Web 防护为例,把某些特定访问动作的“稀有度”“异常性”进行特定分析,形成计算模型。如果某个模型被证明和最终的入侵有关,那么这就是一个判定入侵的有效模型。

这和老刑警在脑中筛选小偷的模式大致相同。无数个算法模型,就如同一道道激光电网,对于各式各样的黑客来说,“总有一款适合你”。

刘志生说,对于阿里云的安全技术,占据总量 95% 的普通网络进攻都可以轻松防御。而剩下的 5% 来自高级黑客的攻击,才是他们的“重点关照对象”。

在和顶尖的黑客对抗中,攻防两方的技术都非常高,关键就看在顶尖技术中谁更有优势。目前来看,谁拥有大数据能力,谁就更有优势。

天文数字的访问量中,很多高级的进攻利用的都是最新的漏洞或进攻思路。有些方法从黑客的脑中创造出来之后,就直接用来攻击,属于未知的威胁。面对未知的威胁,防火墙的表现一定不尽如人意,这个时候,安全算法是唯一同时满足“自动化”和“感知未知威胁”的方案。

这场战争,阿里云打得并不轻松。发掘安全与算法的跨界人才,改进技术,是他们举办安全算法大赛的重要原因。


进击的颜值少女

选手们去年所迎战的赛题,大致如下:

1、线上赛,包括“Webshell 检测”和“钓鱼网站检测”

2、线下赛,为“入侵行为检测”

简单来说,线上赛的题目较为简单。参赛的童鞋要从无数文件和网址中,利用算法来筛选出恶意的文件和网址。而线下赛,就相对更接近于“老刑警”的实战模式了。需要综合各台机器的日志,利用算法综合判定出哪台主机有恶意动机。

只有在线上赛中晋级的选手,才能到杭州参加线下赛。

在这次比赛中,有一位特别的选手,在各个参赛队伍齐装满员的情况下,来自清华大学的颜值少女徐道晨居然单枪匹马手刃诸多大咖,拿到了第二名的成绩。

她以“新时代的萌妹子就该懂技术”为格言,杀入了评委和公众的视线。“道晨粉丝团”关注的,更多的是她深夜在电脑前独自迎战的美丽侧脸,而包括道哥吴翰清在内的评委们,更惊叹于她答辩时的缜密逻辑,和算法本身的创新度。比赛半年之后,徐道晨也正式加入了阿里云安全团队。


image
当时微博上徐道晨的粉丝团

故事的开始是这样的。

徐道晨和朋友杜海章组成了“Audi_RS7”战队,顺利晋级到了线下赛。然而,就在线下赛开始之前,杜海章童鞋因故不能来参赛。于是,徐道晨的“单骑冒险”就这样开始了。

从大二才开始学习编程和算法的徐道晨是一个死理性派,凡事喜欢刨根问底。之前只是在学校里简单接触过入侵检测的她从来没有反入侵的实践经验。这次上场前又失去队友,颇有一种“壮士一去兮不复返”的悲壮。

比赛时间是从当天下午两点到次日下午两点。每两个小时我们提交一次规则。主办方给出我们的检出率和误报率。我们根据这两个数据来改进算法,目标是找出其中25个恶意入侵行为。当时我就想,如果到第一天成绩不好,我就直接回家睡觉了。

作为主办方专家的刘志生告诉我,平常安全团队每天面临的是对几十万台服务器进行规则运算,而作为比赛,仅仅抽取了一百台服务器的日志,这在运算规模和难度方面,都比真实情况要小很多。

然而即使是这样,也有10亿条会话之多。参赛者的目标是,从中“算出”25个入侵的会话。

在简单的培训中,参赛者得到了一例黑名单(攻击案例)和一例白名单(正常访问)。而在比赛中,徐道晨拿到的所有信息,通俗来讲就是两个列表:

1、哪些机器进行了通信,谁连谁。

2、主机本身在什么时间被哪一个用户用什么进程做了什么事。

面对庞大的数据,徐道晨决定先用一条规则减小计算级别。


神奇的“Pagerank”

徐道晨告诉我,她的强项在于大数据算法。但作为非安全从业者,又是单打独斗的一个人,根本没有时间研究复杂函数的意义。所以她必须采用剑走偏锋的“玩法”,用一种独特的方法大幅缩减“嫌疑范围”。

她脑海里浮现出曾经做过社交网站的算法研究,在那个领域中,Pagerank 是一种颇为有效的技术。

简单科普一下,Pagerank 是由谷歌创始人,天才的拉里·佩奇创造的一项技术。大概可以理解为:

通过网络的超链接关系来确定一个页面的等级。即把从A页面到B页面的链接解释为A页面给B页面投票,然后根据投票来源(甚至来源的来源,即链接到A页面的页面)和投票目标的等级来决定新的等级。简单来的说,一个高等级的页面可以使其他低等级页面的等级提升。


image
Pagerank 示意图

她决定把和安全技术本不相关的 Pagerank 引入算法,她说:

主机之间要进行通信,这就像网页访问一样。例如百度每天有很多人访问,这样提供服务的流量是巨大的。所以我认为,访问量大的,也就是一台主机被其他很多主机连接,就应该是正常的。利用这个规则,我很快就把候选样本从十亿级别缩减到几十万级别。

这个方法,搭配上其他的限定条件,使得可能目标迅速减少。然而,由于对攻击代码不熟悉,她没有办法准确地定位出攻击行为所在。不过在第一天晚上,她的成绩突然冲到了第一,这让她信心大增。

仅仅睡了几个小时,她决定继续改进自己的算法。

如果要完成入侵,黑客就一定要利用漏洞。也就是说,对于某些动作而言,它在之前的动作中已经植入了木马或者利用了服务器漏洞。所以它的父进程为正常服务进程或脚本进程,子进程为攻击行为。通过这种对攻击方法的认识,我又成功定位出两三条。

对于25条恶意进程的基数来说,每增加一条检出,都是决定性的优势。最终徐道晨的算法保持了稳定,从25条中检出了12条。和第一名的成绩仅仅差了3条。她单枪匹马面对数十人的对手,拿到这个成绩让人惊叹。

不过,刘志生告诉我,虽说选手可以做到50%左右的检出率,但其实他们没有检出来的另一半,绝大多数是中等和高级的攻击。而要检出这样的攻击,不仅要结合算法,还需要相当齐备的安全对抗技术。


image



原文地址