在2006年10月,推动许多互联网技术创新的Google公司推出了一项名为“Google代码搜索”(Google Code Search)的功能强大的新服务。这行新服务对于开源软件团体和信息安全行业都有重要的意义。
Google代码搜索的工作原理
在深入研究这些潜在的意义之前,我们应该首先考察这项服务是如何工作的。随着Google搜索引擎在互联网上缓慢运行,为Google的目录提取网页,这些搜索工具提取几十种语言的源代码,范围包括从Ada到Yacc的各种东西以及两者之间的东西。Google然后收集搜索引擎中的数据,并且以特殊的方式为其做索引,使这些源代码容易搜索到。但是,拥有这个特殊的索引,源代码能够比Google搜索指令和操作符提供的方式更容易搜索到。这个代码搜索接口现在支持正常的表达式,为解释搜索方式提供了令人难以置信的灵活方法。这个结果为搜索成千上万的项目代码提供了一种快速的服务。
Google代码搜索对开源软件团体的影响
目前,Google代码搜索仅仅正式面向开源软件项目。它在这方面的好处是能够帮助新的软件开发人员了解其他有经验的开发人员是如何解决某些问题的并且能够向有经验的开发人员学习技术,帮助有经验的开发人员查找代码片段并且在自己的代码中使用这些东西。但是,同大多数东西一样,Google代码搜索也可以用于恶意目的。坏蛋能够通过搜索查询发现安全漏洞并且利用这些安全漏洞为自己谋取财富。这些安全漏洞包括缓存溢出安全漏洞、格式串攻击和其它许多问题。
例如,Google代码搜索能够用来利用C编程语言提供的“gets()”函数调用功能中的漏洞。由于“gets()”函数调用没有输入的大小限制,它将接受固定大小的字符串变量,这可能导致拒绝服务攻击。攻击者能够使用Google代码搜索发现这个漏洞和开源软件中的其它全漏洞并且利用这些安全漏洞。
“gets()”函数的例子仅仅是使用Google代码搜索能够找到的这类问题的一个例子。著名安全研究人员Dug Song和Aaron Campbell在博客中指出,Google代码搜索能够用来发现十几种不同的安全漏洞,包括某些缓存溢出状况,格式串漏洞、off-by-one错误等等。
在近期,Google代码搜索将帮助开发人员找到和修复能够导致严重安全漏洞的编写不佳的代码。从长远看,Google代码搜索将改善安全状况,因为这项功能提供了一个令人难以置信的查看代码的功能强大的方法。然而,近期的发展是非常不平坦的,因为在其它团体努力修复漏洞的时候,坏蛋们也在挖掘安全漏洞。
[责任编辑:KV_ddvip]
本栏更新
相关链接