根除不良软件 解决恶意软件(一)

日期: 2012-07-03 作者:Gary McGraw翻译:杨帆 来源:TechTarget中国 英文

不良软件、或是恶意软件哪个更糟糕呢?事实上,它们有区别么?不幸的是,不良软件与恶意软件经常被混淆在一起——有时甚至年长的安全老手也会犯这样的错误。在本文中我会把它们两个分开来,并且阐述它们之间共生的关系。   好消息是消灭不良软件会有助于控制恶意软件问题。   不良软件   现如今每个人都明白软件的缺点导致绝大多数的安全问题。

对不良软件“漏洞扫描”的快速检查可以显示我们听说的所有问题:“缓冲区溢出、竞争条件、跨站点脚本(cross-site scripting,简称XSS)、SQL注入、跨站点请求伪造(cross-site request forgery,简称CSRF),以及上千不出名的bug……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

不良软件、或是恶意软件哪个更糟糕呢?事实上,它们有区别么?不幸的是,不良软件与恶意软件经常被混淆在一起——有时甚至年长的安全老手也会犯这样的错误。在本文中我会把它们两个分开来,并且阐述它们之间共生的关系。

  好消息是消灭不良软件会有助于控制恶意软件问题。

  不良软件

  现如今每个人都明白软件的缺点导致绝大多数的安全问题。对不良软件“漏洞扫描”的快速检查可以显示我们听说的所有问题:“缓冲区溢出、竞争条件、跨站点脚本(cross-site scripting,简称XSS)、SQL注入、跨站点请求伪造(cross-site request forgery,简称CSRF),以及上千不出名的bug(参见CWE的顶级不良软件列表)。并且不要忘记软件缺陷的设计问题,它占到其余50%的严重软件安全缺点。

  本文最重要的事情是介绍明白这些bug和缺陷很可能是由于开发人员和软件架构师的疏忽、马虎或是普遍的安全愚昧等原因造成的。尽管过去几年中,我们已经对数以千计的开发人员培训了软件安全的基础知识,比起那些已经参与过一个课程、或是阅读软件安全书籍的开发人员来说,还有更多的编程人员根本没有参加过任何安全培训。

  好的消息是开发人员们讨厌bug、软件架构师们也讨厌缺陷。所以如果我们不断地教育他们这些缺点的本质。他们可能会不再编写出新的缺陷。再加之越来越多的静态分析工具用于评审代码、架构性风险分析工具用于发现缺陷,以及其它的软件安全接触点,你可以看到我们正在取得一些进展。

  这是我的主要观点:大多数的bug不是由决心毁灭整个世界的邪恶开发人员编写蹩脚的软件故意放到软件中。它们是错误、意外事故、或是不良后果的问题,但不是由邪恶意图所导致的。

  恶意软件

  病毒、蠕虫、木马、间谍软件、广告软件、rootkits等高级持续威胁(advanced persistent threats,简称APT)都是各种类型的恶意软件。恶意软件是那些按照编写它的人的目的,故意设计用来做坏事的代码。这是值得重复说的,恶意软件在许多方面都不同于不良软件,并且首要的区别是编写该软件的人的意图。

  许多病毒和蠕虫(但不是所有的)利用它们攻击的系统的缺点。Ed Felten和我在90年代中期撰文写的Java安全问题(不良软件)被攻击者用于编写exploit代码(恶意软件)。Zeus木马同时利用浏览器的特定bug和其设计上的缺陷来感染目标机器的浏览器,并且执行阴险的中间人攻击(大多数是瞄准金融服务机构)。Zeus木马属于恶意软件。问题在于它为不良软件确立了立足点。Stuxnet蠕虫是恶意软件。它故意用来攻击伊朗的控制离心分离机的过程控制系统。Stuxnet蠕虫利用了西门子可编程逻辑控制器设计中的不安全因素(不良软件)。值得注意的是西门子不是开发恶意软件的公司,而且它一直致力于提高软件安全。

相关推荐