Java安全陷阱变得更糟
一年前的JavaOne上,Fortify 软件公司的创始人 和首席科学家Brian Chess做了一个题为“12个Java技术安全陷阱和如何避免它们”的演讲。
【IT专家网独家】一年前的JavaOne上,Fortify 软件公司的创始人 和首席科学家Brian Chess做了一个题为“12个Java技术安全陷阱和如何避免它们”的演讲。
一年后,我们在解决那些固有的弱点,包括XSS,跨平台脚步,SQL注入,以及允许导入C或者C++代码的本地方法上——还有伴随它们的bug上,有何长进呢?毫无进展——除非你认为后退也是一种进展的话。
情况变得更糟了,Chess在eWEEK的采访中说,“我有证据证明这一点。”
Fortify作为原代码分析技术的销售商,它有个常见Java编程错误和弱点的大数据库,不仅是从它的客户那里收集来的,还有Java Open Review项目运行一年以来的收集到的。
在那个项目中,Fortify使用了FindBugs,这是一个静态分析工具,可以寻找Java代码中的bug,查看开源项目中的代码,例如Apache, Azureus 和Tomcat。Fortify对每个受到怀疑的代码集进行分析,在线发布它找到的问题,然后将其与项目维护者共享弱点的细节。
那么Fortify从运行的项目中找到的是否代表了开源代码的错误密度是“庞大的”,Chess说,他特别指出了去年Fortify检查的一个项目:Net Trust,每1000行代码中大约有12.215个错误。
“这对于名字里面带着一个‘可靠’字眼的项目来说是个巨大的数字,”Chess说。
足够讽刺的是,Net Trust 是Google的一个项目,用来创建一个针对单点登录和认证机制的安全机制。“但是他们是学生做的,所以代码不是很好,”Chess说。
Net Trust是众多显示Java安全陷阱的例子中的一个,尽管这件事情公布于众已经有一段时间了,但是它还是在继续诱惑更多的程序员将全部时间投入到这种语言的成长中来。
Java 专家 William Pugh同意Chess关于Java安全陷阱变得更糟的看法。“XSS正在逐渐成为一个非常大的问题,”他在eWEEK的采访中说。“类似Fortify公司的工具集的工具可以寻找XSS的问题,但是要在你的代码中清除XSS(漏洞)是不容易的。我们看到的统计数字表明它正在成为Java应用程序中的最大的安全漏洞,如果不算所有的网络攻击的话,”他说。
Pugh是位于College Park的马里兰大学计算机科学系的教授,也是Fortify公司用在Java Open Review项目中的FindBug的作者。
除了XSS之外,Pugh说人们在谈论Java安全的时候最经常说的另外2个问题通常就是不被信任的恶意代码和SQL注入。“在你运行applet的时候……(问题是,)那些applet能做什么?它们可以用任何方式修改你正在运行的程序的行为吗?”
“人们在服务器上运行原始材料,他们不运行不受信任的代码,”他说。“但是另一种受到更大关注的安全攻击类型是SQL注入……那些一直都是大问题。”
令问题更严重的是安全代码的教学在最好的情况下,也是良莠不齐的。
要解释安全编码指导的缺乏,Chess指出了他最近的发现,就是Java巨人,Sun公司,特别是Sun servlet编程指导(Sun公司的将Java连接到网络上的最简单方法)中包含了跨网站脚本攻击的内容。
- 本文关键词:

