开源Java框架带来的应用安全风险

日期: 2013-07-15 作者:Michael Cobb翻译:曾少宁 来源:TechTarget中国 英文

Java安全风险是重所周知的,但是您是否了解一些开源Java框架的安全问题呢?例如,Struts、Hibernate、JavaEE。哪一个框架最安全,又有哪些措施可以提高它们的安全性?

  只要开发者认真学习,许多开源Java框架都可以帮助完成应用开发。框架可以提高开发者生产力,但是大多数人都必须经过足够的学习过程,才能发挥框架的真正作用。CAST最近发布了一份报告,其中显示最流行的开源Java框架是Struts、JavaEE、Hibernate和Spring。然而,没有一种框架提供了足够的安全性,或者保证完美无瑕的代码。

  为了寻找最安全的框架,CAST调查了496个应用程序的1.52亿行代码,结果发现最大的问题是,大部分应用实际上都有错误配置。我并不确定这些统计结果是否可以推断出其他一些调查结果,但是这个结果突出了培训的重要性,只有通过培训才能让开发者知道如何正确使用所选择的框架。

  任何应用开发的计划阶段都应该确定一组特定的安全需求,如身份验证、授权和加密方式,使开发团队能够选择最适合这些需求的框架。而且,有可能需要使用多个框架才能支持所有需求,但是这样可能增加应用程序的整合难度。

  我个人认为,使用好的框架确实可以提高编码质量和减少Bug数量。CAST报告显示,不使用任何框架的应用程序会出现各种质量问题。影响框架选择的其他因素包括文档质量,特别是安全API的文档,因为它们可能非常复杂,显然有严格的使用要求。另一个问题是框架用户社区的响应速度,因为这是获取帮助和支持的重要来源。

  要提高框架安全性,有时需要修改其他人的代码,而这是非常难的。他们发布的任何更新或补丁都可能覆盖您所作的修改,或者影响它们的行为。如果您发现它很重要,那么必须检查所有处理用户输入及应用入口的代码。输入是否有效?是否处理了所有特殊字符或特殊值?如果没有,那么您必须自己增加验证和过滤功能,保证传递到应用程序的数据一定是安全的。

  在使用任何第三方代码或应用程序时,您必须紧跟供应商或Bug列表,及时了解所有安全警报。例如,Aspect Security的研究人员发现,Spring框架的“表达式语言”功能有一个缺陷,它允许执行远程代码,可能完全破坏相应用程序。这个问题很难解决,目前的建议是关闭表达式语言特性。如果开发者不了解这些漏洞,那么他们的应用程序就有可能无法避免这些攻击。开发团队应该有一位成员负责跟踪编程语言及开发工具的安全更新,而且他要知道如何处理警报和重要补丁更新。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。