美国国防部开发出能够发现软件漏洞的电子游戏
美国国防部似乎已经找到了发现软件代码漏洞的新方法,就是将这些转化为一系列游戏和谜题,并让志愿者来完成这些游戏,以期发现软件漏洞。让玩家去发现代码存在的问题,能够帮助工程师降低工作负担——斯坦福国际研究所(SRI International)计算机科学实验室的程序主管John Murray如是说。这个实验室就帮助开发出了其中一款名为Xylem的游戏。
DARPA(美国国防部高级研究计划局)已经建起了一家名为Verigames的网站,里面提供了5款可在线上进行的免费游戏,类似Xylem这样的还能在iPad上玩。Verigames比较类似于如SETI@homel这样的全民线上项目,后者是借由用户的电脑来发现天外来客信号的长期计划;又如Fold.it会邀请参与者进行蛋白质折叠的线上游戏。
这些游戏的设计方式是在用户解决问题后,进入更高一级的挑战。实际上游戏过程是在生成程序注释和数学证明,用以识别和确认采用C语言或Java所写的软件存在的漏洞。软件检验的过程原本主要是由工程师核查代码,发现可能被黑客利用的错误和漏洞,整个过程比较缓慢耗时。
DARPA就是希望将这项工作以游戏的形式表现出来,不仅有趣、具有足够的交互性,而且会有许多人一起进行这项工作,达到更高的效率。DARPA的材料中写道,这个想法就是要将复杂的数学问题转为有趣的解谜游戏。Murray解释说一款软件程序的大量分析就是由自动测试程序实施的,此程序可对存在疑问的部分做标记。
“我们能够将这些需要进一步分析的小篇幅代码段落转为具体的参数,生成相应的谜题。”Murray说,如缓存溢出或缺陷导致的特权提升等类型的漏洞,都可转为谜题的形式。比如Xylem游戏,用户在其中探索一个从未见过的热带岛屿,并且需要查探岛上不同寻常的植物,这些实际上就代表着代码的一部分。还有一款游戏名为CiruitBot,用户需要将机器人组队执行任务。Flow Jam游戏则要求用户分析和调整有线网络,并将其吞吐量达到最大化。
由于政府有关参与者的相关规定,超过18周岁的用户才可进行这些游戏。以后,DARPA还希望建起游戏社区,以期让软件错误变得更少。目前的游戏都是针对开源软件进行的排错,而这些软件的使用者正是国防部和其他政府部门与商业组织。在通过游戏发现错误后,国防部就会通知软件开发者所发现的问题。