2.1.3 系统守护进程的安全隐患
守护进程实际上是一组系统进程,它们总是等待相应条件的出现,一旦条件满足,进程便继续进行下去。这些进程特性是黑客能够利用的。值得注意的是,关键不是守护程序本身,而是这种守护进程是否具有与操作系统核心层软件同等的权利。
实际上,在Unix刚刚开发出来的时候,安全性还并不是它主要关注的因素。它的安全模型是为局域网环境下的小型或中等规模的工作组所设计的。1988年的Internet蠕虫事件就是一个明显的证据:在系统级别上的安全措施是非常不够的。尽管蠕虫事件导致Carnegie Mellon大学计算机紧急情况反应小组(Computer Emergence Response Team,CERT)的成立,并加强了系统供应商和系统管理员的安全意识,但现在人们对于安全问题的认识和准备还是远远落后于各种专业或业余黑客的能力和决心。幸运的是,现在有很多的OEM附加安全部件和第三方产品可以为承担风险的WWW、FTP、Email Unix服务器提供足够的保障。
2.2 应用软件系统安全的脆弱性
2.2.1 应用软件在安全设计上的滞后性
目前Internet上运行的很多应用软件在最初设计的时候根本或很少考虑到要抵挡黑客的攻击。为局域网设计的Client/Server结构的应用程序在未做任何修改的情况下,直接联到了Internet环境下,然后便面临着被攻击。即使这些软件获得了防火墙和其他安全手段的保护,这种危险依旧存在。实践表明,不管一个应用软件看起来可能会有多么安全,由于用来开发和运行这个程序的工具甚至用来保护它的组件都可能具有安全漏洞,使得该软件的安全可能变得非常脆弱。也就是说,软件安全是一个系统工程,系统各相互作用的组件必须放在安全这个统一的标尺去衡量、开发和使用维护。比如对于系统调用函数get(),如果孤立地去考察它,并没有致命的安全漏洞。但是当黑客借助特权程序利用get()函数不检查参数长度的缺陷,制造缓冲区溢出,并转而执行一个Shell,则普通用户就变成了root用户。可见,在一个相互作用的系统里,小小的设计缺陷可能导致致命的漏洞。
2.2.2 应用软件在安全评估上的困难性
由于在Internet上运行的诸如WWW、Email等服务软件代码规模较大、设计复杂,要从理论上证明这类复杂程序的安全性,以目前的技术手段,还是一个有待突破的世界难题。现在评估软件安全性的常用方法,就是在具体使用中去检测,甚至借助黑客们的攻击来发现软件的安全漏洞并加以修补。
这里以Sendmail和Netscape Messaging Server 3.6这两个著名的邮件服务软件为例说明这个问题。Sendmail是一个大型的复杂程序,可以在公司内部或在Internet间发送电子邮件。在过去,黑客们探索出Sendmail设计上的很多缺陷,因此它也被软件开发人员无数次地修改和打补丁。尽管如此,黑客们似乎总能发现新的缺陷。作为商业化的Email服务软件,Netscape Messaging Server 3.6的安全性比前者要好,如果去黑客网站浏览一下,Sendmail的漏洞公告牌触目皆是,而Netscape Messaging Server 3.6就少得多。但我们在使用中,发现其存在一个非常危险的漏洞。比如为禁绝非法邮件的攻击和干扰,需要利用其Plugin模块的Filter功能,编写filter.cfg脚本来过滤邮件。虽然非法邮件不会抵达最终用户或不会被转发,但不幸的是,大量的非法邮件依旧会存储在Email服务器内,一切的过滤操作均是在服务器无条件接收下所有邮件后才进行,且不能自动删除。这就为黑客后门程序驻留服务器提供了可能。可喜的是,Messaging Server 4.0以上的版本解决了这个致命问题。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。