[周报全文]应用安全的“军备竞赛” (上)

2007-07-11 |  作者:孙红英 |  来源:互联网 |  查看原文

摘要黑客与开发人员在应用程序安全方面的较量正在发展成一场“军备竞赛”,尽管软件开发有了很多改进,但恶意软件仍然不断找到新的漏洞来发起攻击。难道安全漏洞将成为应用程序无法避免的宿命吗?

 

【CNW.com.cn 专稿】黑客与开发人员在应用程序安全方面的较量正在发展成一场“军备竞赛”,尽管软件开发有了很多改进,但恶意软件仍然不断找到新的漏洞来发起攻击。难道安全漏洞将成为应用程序无法避免的宿命吗?

无法回避的“军备竞赛”

越来越多的攻击发生在应用程序的漏洞上,应用程序安全防护解决方案也因此而迅速发展。每天,我们都能发现新的威胁、攻击技术和漏洞类型。此外,由于媒体对网络威胁以及它与全球性事件(如恐怖主义和犯罪活动)关联性的报道,人们开始对应用程序安全问题给予了前所未有的密切关注。尽管如此,核心 Internet 软件和常见客户端应用程序中的关键漏洞还是不断出现。事实上,在过去短短几年里,被发现的关键漏洞数量不但没有减少反而在不断增加。

这一趋势提出了一个无法回避的问题:究竟是什么原因导致如今的漏洞比以往要多?如果现在的应用程序开发人员都接受了更好的安全教育,他们编写的代码也经过了更严格的安全测试,那么,被发现的漏洞数应该有所下降才对。但答案令人担忧:应用程序安全成为了一场“军备竞赛”,黑客与软件开发人员在竞相你追我赶。随着更多有关计算机软件 bug 的本质以及如何利用这些 bug 进行攻击的信息被逐步公开,黑客可以利用这些信息来帮助他们寻觅目标,以发现曾被视为安全的软件组件中的漏洞。此外,开发人员并未做到尽善尽美,他们的错误可能会导致由已知 bug 引发的漏洞攻击问题。于是,最终的结果就是——我们面临着一个充斥着各种软件问题,并且不断加重的不安全的Internet。

认识到这种无止境的“军备竞赛”后,安全产品开发界已经开始尝试研发一些能减轻软件漏洞造成的威胁的技术——基于这样一种理念:bug 很难避免,但在某些情况下,要攻击它们非常困难或根本无法攻击。尽管如此,当遇到新的防护措施时,黑客决不会轻言放弃。他们或者想方设法绕过这些障碍,或者会去寻找那些未得到良好保护的目标。主机得到的保护的确比以前更加完善。但这远不能解决所有的问题。那么,未来的情况将会怎样?以下就是我们对未来几年可能的发展趋势的看法。

Web 技术

将来,Web 会继续成为一个主要的攻击目标,而且它遭受攻击的程度可能远比现在要大。为什么这些不法之徒如此青睐 Web?原因很简单,开放的 Web 功能为攻击者破坏企业创造了大量机会。

Web具备成为首选攻击目标的所有条件:它是面向公众的,未经验证和完全匿名的用户可以利用它们的大型代码库,而且开放的Web应用程序没有对安全问题进行有效的控制。许多Web应用程序和脚本是由小型设计公司和咨询公司开发的,他们中很多人对在Web环境中可能产生的微妙的安全问题所知甚少。尽管这种情况随着对开发人员培训的增多而有所改观,但由于Web框架和技术的飞速发展,Web开发人员仍处于弱势。

多年来,已知的几种破坏Web站点的攻击手段有:SQL 注入、跨站脚本(XSS)类攻击、HTTP响应指向、事故代码评估、文件包漏洞、未受保护的servlet访问、会话窃取、过期页面访问等。Web开发人员开始学会如何应对一些最主要的攻击(主要是SQL注入和XSS),但其他问题在一段时间内仍将继续存在。同时,更复杂的Web应用程序也越来越常见。这可能导致更多目前尚未发现的更复杂或更独特的问题出现。

例如,AJAX和其他对象序列化框架的广泛使用会产生过期对象、序列化/反序列化本身的分析错误、意外的继承性问题等。使用XML也可能导致XML注入 —带来一些值得关注的结果。最后,我们还看到目前出现了一种趋势,即采用多种其他协议而不是HTTP协议,这样做背后的理念是增强基于 Web 的应用,提供不会影响外围防火墙的功能。开发人员的确实现了这些目标,但却将大量新的未测试功能通过对黑客有利的方式暴露出来。

不断发展的功能

各个网络领域的领军企业都有一个共同的目标,即丰富用户的在线体验。为了努力实现这个目标,他们扩展了当前流行的Internet协议(+微信网络世界),并将其拓展到全新的应用功能。过去,大部分客户端机器是为人们收发电子邮件和浏览Web而服务的,如今,人们还希望使用流媒体、即时通信客户端、通话服务(如 IP 语音),以及接收新反馈等服务。但额外的功能会带来额外的费用,因为安全界经常发现自己在追逐一个不断变化的目标。我们不断地在新兴技术中(尤其在新兴技术尚未成熟的阶段)发现各种安全问题。每一个大规模应用的新协议或客户端/服务器应用程序都给黑客和搜寻bug的人提供了新的攻击目标。

如今最常见的一些bug漏洞,其严重性在将来可能会有所减轻。例如,随着防范内存漏洞攻击的内存保护技术的进步,内存破坏bug的影响在未来五年会逐渐减小。然而,这并不意味着在新代码库里查找bug就毫无用处了。随着新技术的不断涌现,攻击应用程序的新方法也会浮出水面。

例如,当Web页面主要涉及静态内容时,浏览Web从未被视为一项危险的活动,但现在却出现了针对服务器的客户端XSS攻击、ActiveX攻击、SQL注入等各种攻击。同样,新技术(如HTML/XML 内容服务扩展、受管理的应用程序和媒体软件)的出现将可能带来新的bug,而这些bug是安全界尚未讨论过或者软件厂商尚未预见到的。

丰富客户端的隐忧

客户端软件拥有更丰富、更灵活的功能设置,以便交互式客户端/服务器应用程序可以利用 HTTP(某些情况下,还需要其他协议)进行传输,这是一项不可避免的发展潮流。将 Java和JavaScript引入Web浏览器省却了客户端的部分工作,从而为用户提供一种更令人满意的体验。因为用户执行的每项操作都不再需要进行持续的Web服务器请求。

Microsoft的ActiveX技术将 Web 浏览器控制提升到一个新的水平,允许开发人员创建可以通过Web页面来激活的控制,并提供了一种独特的功能。ActiveX控制出现在游戏、软件版本检查、传输管理程序、文档嵌入以及许多其他需要扩展浏览器功能的情形中。这些技术中的每一项都能导致漏洞,只要用户访问了恶意Web页,黑客就能利用这些漏洞来控制用户的机器,对ActiveX而言尤其如此。因为这些控制在其可用功能方面没有任何限制,而且由于执行任务的复杂性,许多控制都存在漏洞。

尽管对使用这些丰富的客户端功能的限制不断增加,但一场要引入标准系统的客户端功能的浪潮悄然而至。Microsoft 的.NET 技术也提供了许多开发人员能用于执行嵌入式Web控制的功能。这些功能与Java Applet 有相似之处,但更具特色。

相关文章