谷歌AlphaGo弱爆了 人机***颠峰大战揭秘
作者:互联网
谷歌阿尔法狗完胜天才高手李世石,全球瞩目的人机围旗大战落下帷幕。但另一场网络空间社区的人机大战已经悄悄点燃战火,并将在今年8月的拉斯维加斯,上演人类有史以来的首次人机***大战!
别说圈外人,就算是安全社区的专业人员也鲜有人了解CGC人机***大战的来龙去脉。安全牛为此查询了大量资料,并分别采访了国内网络安全对抗联赛XCTF创始人诸葛建伟博士,以及今年入围决赛的两支机器程序战队的两位华人学者——李康教授和张超博士。接下来我们就从头开始了解这场将在人机对抗领域掀起更大波澜的颠峰之战!
什么是CGC?
想要了解人机***大战,就要先了解CGC(Cyber Grand Challenge,即网络超级挑战赛)。CGC是美国国防部先进项目研究局(DARPA)于2013年发起的全球性网络安全竞赛,举办CGC的主要原因是日益严重的网络安全问题,而目前基于漏洞的软件安全***很大程度上依赖于人。CGC的目标是推动程序自动***的能力并超越人的手动能力,最终实现全自动的网络安全***系统。也就是说,CGC的参赛队伍全部都是代表着机器程序的战队,可以将其视作机器***CTF战队。
了解完CGC的举办背景,我们再来看一看CGC的赛程和赛制。
赛程及赛制
CGC的赛程主要分为两轮,2015年6月预选赛开始,2016年8月进行决赛。预选赛阶段的参赛队伍分为资助(Funded Track)和公开(Open Track)两种。Funded Track 是预先向DARPA提交项目申请并获得75万美元资助的团队。Open Track 则是面向全球公开报名,由民间自由组织的团队。
Funded Track共有七支队伍,通俗地讲它们是DARPA资助扶持的 “正规军”。其中包括伯克利、卡内基梅隆、弗吉尼亚等大学的研究团队以及几支企业团队。Open Track是来自全球的近100支队伍,北美以外的包括至少18支来自欧洲、亚洲等地区的队伍。Open Track 有很多象 disekt,shellphish 这样的传统CTF强队,也有由知名安全企业(如雷神)资助的比赛团队。
预赛是由Funded Track 和 Open Track 所有团队一同参加,排名前七位的队伍成为进入第二阶段决赛的队伍。目前这七支决赛队伍已经胜出,其中三支来自 Funded Track,四支来自Open Track,均为北美地区参赛队伍。
初赛有104支来自全球的队伍参加竞争,初赛后现在还剩七支队伍有资格参加决赛。
值得一提的是,七支入围决赛的机器战队中,有多名华人的面孔。如disekt的领队李康教授,CodeJitsu领队宋晓东教授,以及协助领队张超和战队成员杨坤,shellphish战队的fish等。而且他们大多与国内著名CTF战队百度-蓝莲花有关。李康教授是蓝莲花启蒙导师,杨坤博士是蓝莲花队长、张超博士是蓝莲花队员,fish则是前蓝莲花队员。此篇文章的主要采访对象诸葛建伟老师,更是蓝莲花的联合创始人。
决赛阶段从2015年7月末开始,七支通过预赛进入决赛的队伍均获得DARPA的奖金和计算资源资助。决赛将于2016年8月在拉斯维加斯举行。挑战的内容是:在更贴近实际网络***的对战环境中,自动化地挖掘漏洞并生成利用程序(exploit)***其他队伍,同时自动化地防护自己队伍的程序,包括系统和网络层面防护。
DARPA官方提供的决赛计算资源总价值达60万美元:
每个独立的HPC包含64个节点,每个节点包括20 Xeon cores256GB of RAM2TB of storage
总计:1,280 Xeon cores16,384GB of RAM128TB of storage
介绍了这么多,最吸引人的奖金是如何分发的呢?
一向财大气粗的DAPRA在预赛阶段就投入了825万美元,含7支Funded Track队伍的资助和4支入围决赛的Open Track队伍的奖金。决赛阶段奖金总计 375万美元,其中冠军奖金200万美元,第二名100万,第三名75万,奖金直接发给相应名次的战队。把资助、奖金、设备提供、平台和赛题的开发等费用全部统计起来,本次CGC的总投入至少在2500万美元以上!美国政府在高科技的投入上一向不乏大手笔。
奖金虽然诱人,但如何在比赛中胜出呢?像这种机器程序的竞赛,比赛规则和赛题又是什么样的呢?
赛题与赛规
比赛的最重要规则是全自动,每支队伍在比赛前有一年时间开发系统,在比赛系统上线后必须全自动***。
赛题由主办方开发,针对自动漏洞挖掘所面临的困难所设计。初赛包括131道赛题,即已知存在漏洞的Linux二进制程序(无源码),所有程序都存在内存处理方面的漏洞,漏洞种类覆盖 53 个不同类型的CWE(常见缺陷列表)。在预赛以前,每支参赛团队需要开发一套全自动的程序分析工具,可以对Linux二进制程序进行全自动化的分析发现其中的漏洞,并自动生成能够触发漏洞的验证代码(POC),自动对程序漏洞进行防御和修补。在CGC正式初赛前有几次系统自动化的预演,用来调试系统自动化程度以及与主办方系统对接。
无论来自OpenTrack还是Funded Track,所有团队面对的是同样的挑战。正式预选赛是一个在线自动分析和异步***的过程,在指定的24小时内,每支队伍的自动分析系统需要在无人干预的情况下自动从主办方下载应用程序,分析程序查找漏洞,提交可触发漏洞的***输入,并提交修补后的加固程序。 在24小时的时间段之后,主办方对所有提交的***输入与加固过的程序在队伍之间进行交叉***比较,通过***成功率和加固程序的性能综合评测来决定预赛的名次。本次预赛中,开发者预留的590个漏洞,均被参赛队伍成功修补。
决赛的挑战内容基本相同,但是引入了线上的实时对抗,是一个在线实时***的过程。决赛开始后,主办方会不定时发布新的二进制应用,每个战队的系统需要实时对应用程序进行分析和修补,部署修补后的程序,同时生成***程序,提交给主办方。与预赛不同的是,决赛的系统增加了网络防御能力,系统可以自动生成IDS规则,系统还可以选择***目标。另外决赛阶段的***输入不再是POC,而是实际可用的exploit,即它可用直接用于获取程序控制权限或者泄露信息。
整个决赛过程类似 DEF CON CTF 的决赛过程,主要区别是对战系统需要赛前准备好,比赛中无人工参与。与CTF竞赛赛制一样。各队伍的自动化分析系统需要实时地分析目标程序,找到漏洞并生成***样本,进而***其他队伍。各队伍还需要在软件层面和网络层面部署防御措施,保护自身的程序不受***。通过综合计算***得分、防御得分、以及防御措施引入的性能损失和功能损失,最终评判出优胜队伍。
CGC决赛规则
网络超级挑战赛的技术亮点和难点相同,即系统的全自动化。主要的难点在于,如何在“无限”的状态下如何尽快找到触发漏洞的输入,尤其是在复杂输入和有不确定因素(例如随机数生成)等情况下。程序运行的“无限状态”是指,由于程序多样化和单一复杂程序中大量分支循环运行路径,导致程序中的状态要比类似于围棋、国际象棋等“封闭有限状态集”更加“无限”,自动化***的分析搜索空间更大,也更加无法穷尽。围棋原理上大致的上界是19*19,即361的阶乘种可能性选择。
CGC的内容介绍了这么多,细心的人也许会问,这与前面提到的 DEF CON CTF 有何关系?人机***的世纪之战又在哪里?
人机***颠峰对决
起初,在决赛的七支队伍最终决出冠军之后,本届CGC即宣告结束。也就是说,产生出一支机器***的CTF冠军队伍。有意思的是,DARPA在2015年DEFCON大会上宣传CGC比赛时,受到 DEF CON CTF 组织者的现场挑战,引起现场参会者的极大兴趣。
之前,包括深蓝与国际象棋大师、中国超算天梭与象棋大师、认知计算沃森与智力竞赛冠军等类似的人机大战已经举行过数次,但把计算机程序用到******对抗上面还是首次。人类和程序相比到底谁会更“黑”的争议得到了业界乃至美国政府的关注,最终成就了这场极具历史意义的人机CTF竞赛之约。而且就在上周,主办方刚刚确定在今年的DEF CON CTF 期间,人类CTF竞赛的冠军队伍与CGC竞赛的机器冠军队伍,将进行一场独立的***对抗赛。而人类CTF竞赛的传统国际强队也将在今年4月份XCTF联赛上海站国际赛0CTF齐聚上海,争夺直通到DEF CON CTF总决赛的名额。
据分析,由于人机***大战的具体规则细节尚未完全敲定,目前阶段人机大战的结果很难预测。机器的优势在于能够快速分析程序,并快速部署不同的防御方案,但难于部署针对性的高级***技术。人类队伍的优势在于对程序语义的准确理解,并针对性地开发***技术。
人机***颠峰对决,不仅仅是对于安全社区,甚至对于整个社会,都将是一场值得瞩目的比赛,一个历史性的时刻,一个机器***的时代即将到来!
别说圈外人,就算是安全社区的专业人员也鲜有人了解CGC人机***大战的来龙去脉。安全牛为此查询了大量资料,并分别采访了国内网络安全对抗联赛XCTF创始人诸葛建伟博士,以及今年入围决赛的两支机器程序战队的两位华人学者——李康教授和张超博士。接下来我们就从头开始了解这场将在人机对抗领域掀起更大波澜的颠峰之战!
什么是CGC?
想要了解人机***大战,就要先了解CGC(Cyber Grand Challenge,即网络超级挑战赛)。CGC是美国国防部先进项目研究局(DARPA)于2013年发起的全球性网络安全竞赛,举办CGC的主要原因是日益严重的网络安全问题,而目前基于漏洞的软件安全***很大程度上依赖于人。CGC的目标是推动程序自动***的能力并超越人的手动能力,最终实现全自动的网络安全***系统。也就是说,CGC的参赛队伍全部都是代表着机器程序的战队,可以将其视作机器***CTF战队。
DARPA一向有通过举办挑战赛来加速科技实用化的传统,网络超级挑战赛的思路来源于过去成功举办的超级挑战赛(Grand Challenge),如2004首届超级挑战赛的目标是推动无人驾驶技术。参赛者从首次比赛没有任何队伍完成赛程,到后来实现了自动沙漠穿越(2005年),再到后来实现了复杂城市路段自动穿越(2007年)。DARPA举办的另一项知名度较高的比赛是机器人挑战赛(DARPA Robotics Challenge)。
了解完CGC的举办背景,我们再来看一看CGC的赛程和赛制。
赛程及赛制
CGC的赛程主要分为两轮,2015年6月预选赛开始,2016年8月进行决赛。预选赛阶段的参赛队伍分为资助(Funded Track)和公开(Open Track)两种。Funded Track 是预先向DARPA提交项目申请并获得75万美元资助的团队。Open Track 则是面向全球公开报名,由民间自由组织的团队。
Funded Track共有七支队伍,通俗地讲它们是DARPA资助扶持的 “正规军”。其中包括伯克利、卡内基梅隆、弗吉尼亚等大学的研究团队以及几支企业团队。Open Track是来自全球的近100支队伍,北美以外的包括至少18支来自欧洲、亚洲等地区的队伍。Open Track 有很多象 disekt,shellphish 这样的传统CTF强队,也有由知名安全企业(如雷神)资助的比赛团队。
预赛是由Funded Track 和 Open Track 所有团队一同参加,排名前七位的队伍成为进入第二阶段决赛的队伍。目前这七支决赛队伍已经胜出,其中三支来自 Funded Track,四支来自Open Track,均为北美地区参赛队伍。
初赛有104支来自全球的队伍参加竞争,初赛后现在还剩七支队伍有资格参加决赛。
值得一提的是,七支入围决赛的机器战队中,有多名华人的面孔。如disekt的领队李康教授,CodeJitsu领队宋晓东教授,以及协助领队张超和战队成员杨坤,shellphish战队的fish等。而且他们大多与国内著名CTF战队百度-蓝莲花有关。李康教授是蓝莲花启蒙导师,杨坤博士是蓝莲花队长、张超博士是蓝莲花队员,fish则是前蓝莲花队员。此篇文章的主要采访对象诸葛建伟老师,更是蓝莲花的联合创始人。
张超博士(左)和李康教授(右)
决赛阶段从2015年7月末开始,七支通过预赛进入决赛的队伍均获得DARPA的奖金和计算资源资助。决赛将于2016年8月在拉斯维加斯举行。挑战的内容是:在更贴近实际网络***的对战环境中,自动化地挖掘漏洞并生成利用程序(exploit)***其他队伍,同时自动化地防护自己队伍的程序,包括系统和网络层面防护。
DARPA官方提供的决赛计算资源总价值达60万美元:
每个独立的HPC包含64个节点,每个节点包括20 Xeon cores256GB of RAM2TB of storage
总计:1,280 Xeon cores16,384GB of RAM128TB of storage
介绍了这么多,最吸引人的奖金是如何分发的呢?
一向财大气粗的DAPRA在预赛阶段就投入了825万美元,含7支Funded Track队伍的资助和4支入围决赛的Open Track队伍的奖金。决赛阶段奖金总计 375万美元,其中冠军奖金200万美元,第二名100万,第三名75万,奖金直接发给相应名次的战队。把资助、奖金、设备提供、平台和赛题的开发等费用全部统计起来,本次CGC的总投入至少在2500万美元以上!美国政府在高科技的投入上一向不乏大手笔。
奖金虽然诱人,但如何在比赛中胜出呢?像这种机器程序的竞赛,比赛规则和赛题又是什么样的呢?
赛题与赛规
比赛的最重要规则是全自动,每支队伍在比赛前有一年时间开发系统,在比赛系统上线后必须全自动***。
赛题由主办方开发,针对自动漏洞挖掘所面临的困难所设计。初赛包括131道赛题,即已知存在漏洞的Linux二进制程序(无源码),所有程序都存在内存处理方面的漏洞,漏洞种类覆盖 53 个不同类型的CWE(常见缺陷列表)。在预赛以前,每支参赛团队需要开发一套全自动的程序分析工具,可以对Linux二进制程序进行全自动化的分析发现其中的漏洞,并自动生成能够触发漏洞的验证代码(POC),自动对程序漏洞进行防御和修补。在CGC正式初赛前有几次系统自动化的预演,用来调试系统自动化程度以及与主办方系统对接。
CGC所涉及到的程序、网络分析及防御生成
无论来自OpenTrack还是Funded Track,所有团队面对的是同样的挑战。正式预选赛是一个在线自动分析和异步***的过程,在指定的24小时内,每支队伍的自动分析系统需要在无人干预的情况下自动从主办方下载应用程序,分析程序查找漏洞,提交可触发漏洞的***输入,并提交修补后的加固程序。 在24小时的时间段之后,主办方对所有提交的***输入与加固过的程序在队伍之间进行交叉***比较,通过***成功率和加固程序的性能综合评测来决定预赛的名次。本次预赛中,开发者预留的590个漏洞,均被参赛队伍成功修补。
决赛的挑战内容基本相同,但是引入了线上的实时对抗,是一个在线实时***的过程。决赛开始后,主办方会不定时发布新的二进制应用,每个战队的系统需要实时对应用程序进行分析和修补,部署修补后的程序,同时生成***程序,提交给主办方。与预赛不同的是,决赛的系统增加了网络防御能力,系统可以自动生成IDS规则,系统还可以选择***目标。另外决赛阶段的***输入不再是POC,而是实际可用的exploit,即它可用直接用于获取程序控制权限或者泄露信息。
整个决赛过程类似 DEF CON CTF 的决赛过程,主要区别是对战系统需要赛前准备好,比赛中无人工参与。与CTF竞赛赛制一样。各队伍的自动化分析系统需要实时地分析目标程序,找到漏洞并生成***样本,进而***其他队伍。各队伍还需要在软件层面和网络层面部署防御措施,保护自身的程序不受***。通过综合计算***得分、防御得分、以及防御措施引入的性能损失和功能损失,最终评判出优胜队伍。
1. 回合制在线***赛2. ***类型1:崩溃在指定无效地址+控制一个寄存器为指定值类型2:泄露flag内存页任意4字节3. 防御自动修补自动生成IDS规则4. 策略流量分析,重放对手的***分析对手补丁,定位漏洞分析对手IDS规则,绕过检测
CGC决赛规则
网络超级挑战赛的技术亮点和难点相同,即系统的全自动化。主要的难点在于,如何在“无限”的状态下如何尽快找到触发漏洞的输入,尤其是在复杂输入和有不确定因素(例如随机数生成)等情况下。程序运行的“无限状态”是指,由于程序多样化和单一复杂程序中大量分支循环运行路径,导致程序中的状态要比类似于围棋、国际象棋等“封闭有限状态集”更加“无限”,自动化***的分析搜索空间更大,也更加无法穷尽。围棋原理上大致的上界是19*19,即361的阶乘种可能性选择。
CGC的内容介绍了这么多,细心的人也许会问,这与前面提到的 DEF CON CTF 有何关系?人机***的世纪之战又在哪里?
人机***颠峰对决
起初,在决赛的七支队伍最终决出冠军之后,本届CGC即宣告结束。也就是说,产生出一支机器***的CTF冠军队伍。有意思的是,DARPA在2015年DEFCON大会上宣传CGC比赛时,受到 DEF CON CTF 组织者的现场挑战,引起现场参会者的极大兴趣。
之前,包括深蓝与国际象棋大师、中国超算天梭与象棋大师、认知计算沃森与智力竞赛冠军等类似的人机大战已经举行过数次,但把计算机程序用到******对抗上面还是首次。人类和程序相比到底谁会更“黑”的争议得到了业界乃至美国政府的关注,最终成就了这场极具历史意义的人机CTF竞赛之约。而且就在上周,主办方刚刚确定在今年的DEF CON CTF 期间,人类CTF竞赛的冠军队伍与CGC竞赛的机器冠军队伍,将进行一场独立的***对抗赛。而人类CTF竞赛的传统国际强队也将在今年4月份XCTF联赛上海站国际赛0CTF齐聚上海,争夺直通到DEF CON CTF总决赛的名额。
这次比赛对于安全领域的意义类似于1970年的首届机器国际象棋比赛,虽然CGC系统的初期表现还没有迹象能够全面超越人类***的能力,但自动系统用于安全***实践可能来的很快,就像无人驾驶技术在三届 Grand Challenge 比赛之后,技术成熟程度就已经颇为清晰。
据分析,由于人机***大战的具体规则细节尚未完全敲定,目前阶段人机大战的结果很难预测。机器的优势在于能够快速分析程序,并快速部署不同的防御方案,但难于部署针对性的高级***技术。人类队伍的优势在于对程序语义的准确理解,并针对性地开发***技术。
人机***颠峰对决,不仅仅是对于安全社区,甚至对于整个社会,都将是一场值得瞩目的比赛,一个历史性的时刻,一个机器***的时代即将到来!
标签:决赛,Track,CGC,程序,队伍,AlphaGo,颠峰,人机,CTF 来源: https://blog.51cto.com/u_15127683/2833684