欢迎光临
我们一直在努力
您的位置:首页>资讯 >

这台机器在DARPA的网络大挑战中获胜

早在2011年,当风险投资家Marc Andreessen说“软件正在吞噬世界”时,它仍然是一个新主意。现在很明显,软件渗透到我们的生活中。从医疗设备和自动驾驶汽车等复杂电子设备到互联网连接灯泡和温度计等简单物体,我们都被软件所包围。

这意味着我们比以往任何时候都更容易受到对该软件的攻击。

每年,现有的大量软件代码中都会增加1110亿行,每一行都有一个潜在的新目标。研究公司Cyber​​security Ventures的创始人兼主编Steve Morgan 预测,通过以前未知的弱点进行的系统闯入 - 业界称之为“零日攻击” - 到2021年将在美国平均每天发生一次,从2015年的每周一个。

为了解决这个问题,我和匹兹堡卡内基梅隆大学(CMU)的同事花了将近10年的时间来构建能够使软件安全自动化的技术。然后,在2012年,我们成立了ForAllSecure,将我们的产品推向世界。我们需要的一件事是证明我们可以做我们所说的可以做的事情的方式,并且我们以奖品竞赛的形式获得它。

快进到2016年:我的团队挤在拉斯维加斯的酒店宴会厅,咀嚼我们的指甲,并确信我们刚刚失去了我们花了数千小时准备的比赛。这是DARPA网络大挑战赛(CGC),是美国国防高级研究计划局(US Defense Advanced Research Projects Agency)为促进国家安全技术突破而在21世纪初推出的自驾车型之一。CGC源于DARPA的认识,即美国有朝一日可能会发现自己没有人力或工具来抵御网络威胁。

网络安全战场上充斥着技术熟练的黑客,并且在最高层次上,利用软件的弱点创造性地渗透到组织的防御中。为了自己的利益而这样做的罪犯通常被称为黑帽子,他们经常创造大量业余“ 脚本小子 ”可以用来释放破坏的工具,比如2016年物联网僵尸网络在获得后在互联网上发起大规模攻击控制人们家中的迷你摄像机和录像机。相比之下,“ 白帽子“利用他们的技能来阻止这种攻击。但是,没有足够的白帽黑客来保护商业世界中所有的软件,更不用说共同的基础设施和对国家和全球安全至关重要的军事平台。

2014年,DARPA宣布将网络大挑战作为一项为期两年的项目,旨在测试是否有可能开发能够查找,验证和修补软件缺陷的AI系统。2015年,约有100支队伍进入资格预审阶段。2016年,前七名晋级大赛冠军,他们需要进入一个完整的网络推理系统 - 一个不仅会注意到问题而且还可以推断其性质的系统。冠军将赢得200万美元,第二名和第三名的选手将分别获得100万美元和750,000美元。

在DARPA发布有关其竞争对手的详细信息之后,我和我的同事们明白,这是一个很好的机会来证明我们开发的自动化网络安全不仅仅是理论游戏。在推出ForAllSecure之后,我们一直对我们的解决方案的实用性持怀疑态度。我们认为我们最好赢得DARPA比赛,因为我们已经在这方面工作了十年。

我们在CMU的研究开始于一个简单的前提:人们需要一种方法来检查他们购买的软件并确保它是安全的。当然,编码人员会尽职尽责地消除安全漏洞,但他们的主要关注点总是更为基本:他们必须按时发货并确保它按照预期的方式运行。问题是,黑客会想方设法让软件做不应该做的事情。

今天,软件安全的最新技术涉及使用特殊工具来审查源代码并标记潜在的安全漏洞。因为这个过程产生了许多误报 - 标记事实上并非弱点 - 人类必须经过并检查每一个案例。为了提高漏洞发现率,一些公司依靠白帽黑客进行一次性分析或参与“ 漏洞赏金 ”计划,这些计划根据他们发现的漏洞的数量和严重程度向他们支付费用。但只有盈利能力最强的公司才能承受最强大的软件测试。由于完成的软件包含来自开源项目和其他第三方的更多组件,因此问题变得更加复杂。

我们参加竞赛的系统,Mayhem,自动化白帽黑客所做的事情。它不仅指出了可能的弱点,而且利用了它们,从而最终证明它们实际上是弱点。这也是CGC的一个关键部分,因为展示工作漏洞的漏洞证明是您的机器得分的一部分。而且由于Mayhem是一台可以在数百或数千个节点上扩展的机器,因此分析可以以人类无法比拟的速度进行。

为了构建Mayhem,我们开始使用我们在CMU开发的第一个软件分析系统,该系统基于对程序的正式分析。这种方法可以比作创建一个表示软件程序可能采用的每个路径的数学公式,从而产生一个永远分支的分析树。这样的树很快就会变得太大而无法管理,但是我们已经找到了解决某些路径的聪明方法,将树剪枝到几个分支。然后我们能够更深入地探索剩下的分支。

符号执行构建一个方程来表示程序中的所有逻辑 - 例如,“x + 5 = 7” - 然后求解方程。将此策略与另一种称为模糊测试的软件分析方法进行对比,在该方法中,您将数据的随机排列提供给程序以使其崩溃,之后您可以确定出现故障的漏洞以及如何在更故意的攻击中利用这些漏洞。模糊测试一直在输入随机数据,直到特定的数据串使方程为真,最后确定x = 2。

这两种方法都有其优势,但多年来模糊测试具有优势,因为它更容易实现,并且在尝试新输入时更快。与此同时,象征性的执行为任何能够学会驯服它的人提供了巨大的,未开发的潜力。在我们于2010年开始建造的Mayhem系统中,我们通过结合这两种方法实现了这一壮举。

模糊化就像以闪电般的速度进行智能猜测,关于哪些输入可能触发程序参与某些新行为,然后跟踪那些实际上这样做的输入。符号执行就像要求数学家试图正式确定哪些输入可以利用该程序。我们发现一些错误最好通过快速猜测找到,其他错误通过数学方法找到。所以我们决定并行运行这两种方法。符号执行将深入推理程序的一部分,提出触发该代码区域的输入。然后,系统可以将该输入传递给模糊测试程序,以快速敲击同一区域并消除漏洞。

Mayhem的另一个特性是它可以直接在二进制代码上工作,而不是人工编码的文本文件 - 即源代码。这意味着系统可以在没有开发程序的人的帮助下分析程序,这对于包含源代码可能不再存在的第三方组件的程序非常重要。但是关于二进制代码的推理很难,因为与源代码不同,它没有函数,没有局部变量,也没有数据抽象。二进制代码具有一个大存储区和固定长度位向量 - 一种有效存储位的数据结构。您必须成为使用此类代码的计算机,并且实际上需要进行大量工程才能构建可在这些约束下工作的计算机。

在Mayhem识别出漏洞后,它会生成一个有效的漏洞利用程序,即黑帽黑客可能用来闯入程序的代码。关键是要证明该漏洞可用于获取对操作系统的特权或root用户访问权限。结果是Mayhem可以绝对确定地识别漏洞,而不仅仅像大多数代码分析工具那样标记可能存在的问题。

2014年,我们对Debian发行版中的每个程序进行了Mayhem技术测试,这是一种在全球台式机和服务器上使用的流行版Linux。Mayhem发现了近14,000个独特的漏洞,然后它将该列表缩小到250个新的,因此应该得到最高优先级。整个测试是在不到一周的时间内完成的,通过在Amazon云中的大量服务器上扩展Mayhem,几乎没有人为干预。我们向在线Debian社区提交了更重要的调查结果。我们分拆研究公司的原因之一是能够与开发人员一起工作,因为我们分析了数千个具有大量漏洞的程序。

2015年6月3日,100多名参赛者参加了资格赛,并获得了131项独特的专用挑战,每项挑战都包含软件安全漏洞。安全性得分最高的七支球队(基于发现漏洞并修补它们)使其成为网络大挑战赛的最终赛事 - 而ForAllSecure的得分是下一个最佳半决赛选手的两倍多。意识到现在真正的压力,很快就成了一个临时的快乐时刻!

采用核心混乱技术并构建完全自主的网络推理系统是一项艰巨的任务。我们之所以能够做到这一点,部分是因为DARPA为所有七位决赛选手提供了足够的资金,用于一年的开发工作。我们的核心组件包括一个工具集,可将可执行程序转换为相对容易理解和分析的语言,以及用于查找和利用漏洞的攻击性工具,用于自动修补有缺陷的二进制代码的防御工具,以及用于协调有效地工作。

在准备最后一轮比赛时,我们面临两大挑战。首先,虽然我们对Mayhem发现漏洞的程度感到满意,但我们认为这些补丁不够高效。在竞争中,就像现实生活中一样,您不希望安装一个补丁,它可以增加处理能力,而不是解决一个问题。因此,在常见情况下,我们花费了大量时间来构建自动修补漏洞,这些漏洞的开销在0到5%之间。

其次,我们需要一种玩游戏和赢得游戏的策略。假设您发现了漏洞并为其制作了补丁。您可能不想立即对补丁进行求解,如果这意味着增加了太多的开销,您可以将程序减慢到爬行速度。相反,有时最好等待,并在绝对必要时进行补丁。我们开发了一个专家系统来决定何时进行修补。

当我们的团队于2016年8月5日走进拉斯维加斯的舞厅参加决赛时,我们看到七个笨重的架子,闪烁的灯光坐落在一个巨大的舞台上,下面是180吨的水,以保持每个团队的电脑凉爽。参赛者在比赛开始前的前一天晚上安装了机器,然后DARPA切断了对他们的所有访问。这些机器是空气密封的 - 它们与外界无关。我们所能做的只是观看Mayhem辛苦工作,观察每个系统机架报告的电源使用情况和系统温度统计数据。Mayhem一直是七个竞争对手中最艰难的人 - 这是一个好兆头,或者我们希望如此。

在近100轮竞争中,新的计划被提供给竞争系统,每个系统只需几分钟就能分析漏洞代码并快速发布补丁来保护自己。根据机器查找和证明漏洞以及补丁性能的能力对每轮进行评分。

为了让最终的CGC赛事对观众来说更加激动人心,比赛组织者决定只在最后报道比分,并逐个总结。这意味着我们并不真正知道我们是赢还是输,只是Mayhem正在提交已发现的漏洞。然而,在比赛进行了几个小时后,在第40轮之后,我们可以看出Mayhem已经停止了提交。该计划已经崩溃。

我们的肚子蹒跚着,因为我们最糟糕的噩梦似乎成真了。我们要求组织者重新启动,但他们不会允许。由于竞争仍有一半,我们开始考虑失败的羞辱。

在最后一轮结束时,逐个播放的评论开始了,花哨的可视化显示了每个团队的机器如何在几秒钟内找到并修复了安全漏洞,而人类团队将花费数月或数年。观众人数超过5000人,客座评论员 - 天体物理学家和明星黑客 - 让他们感到愤怒。我们支持看到我们的失败在屏幕上宣布并确认。

然而,当我们看到每一轮新成绩进入分数时,我们发现Mayhem的领先优势足以让它保持在第一位,即使它在第40轮之后已经停止了比赛。在最后几轮宣布时,重量从肩膀上抬起来。我们赢了。

DARPA项目主任Mike Walker表示,此次活动的自主网络防御示范“只是软件安全的一场革命的开始”。他将结果与莱特兄弟的初始飞行进行了比较,这些飞行并没有走得太远,而是指向了横贯大陆的路线。

目前,ForAllSecure正在向早期采用者销售其新服务的第一版,包括美国政府和高科技和航空航天业的公司。在这个阶段,该服务主要表明人类专家随后进入并修复的问题。在未来一段时间内,像Mayhem这样的系统将与人类安全专家合作,使世界软件更加安全。在更遥远的未来,我们相信机器智能将独自处理这项工作。

免责声明:本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。