自从1993年Internet上首次采用第一种图形用户界面NCSA MOSAIC以来,这一全球最大网络的用户数量与服务内容都有了迅猛增加。商业集团和个人用户都很快意识到,由Internet带来的革命化通信时代,为通信应用领域开辟了无限的前景。如今,计算机互联网技术在信息交互、信息处理、信息查找、信息管理等方面起着越来越重要的作用。互连网络为人们获取信息、交换信息、管理信息和进行各种社会活动提供了一个快速而方便的平台,为社会的发展带来了巨大效益。
引言
然而,在人们得益于信息革命所带来的巨大机遇的同时,也不得不面对信息安全问题的严峻挑战。西方发达国家将由计算机武装起来的社会称为"脆弱的社会",就是基于以下事实:计算机主机和网络系统不断被非法入侵、计算机病毒不断在产生和传播,导致重要的经济、政治和军事情报资料被窃取,重要的网络服务时时有被攻破和崩溃的危险。这些给各行各业带来了巨大的经济损失,甚至危及国家安全。在中国,形势同样不容乐观。随着网络经济的发展,在我们这个拥有2250万网民(据CNNIC 2000年的有关统计)的国度里,各网站也时常受到国内黑客和境外黑客及垮客(Cracker)的攻击和威胁。
综上所述,信息革命在改变人类传统的生产、生活方式并极大促进生产力发展的同时,也带来了不容忽视的负面影响。网络和主机安全正成为每一个计算机用户都面临的紧迫问题。就是在这样的背景下,为了解决这些问题,一系列的网络安全技术应运而生。主机漏洞扫描技术可以说是网络安全技术中除了防火墙技术、入侵检测技术、加密和认证之外的另一项重要的安全技术。不管攻击者是从外部还是从内部攻击某一网络系统,攻击机会是由于他利用该系统的已经知道的漏洞而得到的。对于系统管理员来说,漏洞扫描器是最好的助手,能够主动发现Web服务器主机系统的漏洞,在主机系统安全保卫战中做到"有的放矢",及时修补漏洞,构筑坚固的安全长城。
目前,连接于互联网中的服务器大都采用Unix操作系统,因此,我们设计并实现了一个Unix主机漏洞扫描器,设计该漏洞扫描器的出发点是:以系统管理员的视野,发掘Unix主机系统漏洞,目的是增强主机系统的安全性。如今,在计算机安全领域,漏洞扫描器的作用与PC机病毒检测软件相似,对于系统管理员来说已经是不可或缺的重要工具软件。
Unix主机系统安全漏洞存在的必然性分析
这里,我们将从以下四个方面分析Unix主机系统安全漏洞存在的必然性。
2.1 操作系统安全的脆弱性
2.1.1 操作系统体系结构的安全隐患
这是计算机系统脆弱性的根本原因。如Unix系统的许多版本升级开发都是采用打补丁(Patch)的方式进行的,这种方式黑客同样也可以使用。另外,操作系统的程序可以动态链接,包括I/O驱动程序与系统服务,但这同样为黑客提供了可乘之机。如黑客可将磁带设备的软链接点/dev/rmt/0进行修改,添加某种后门程序,那么当用户执行tar cvf /dev/rmt/0 *这类命令的时候,可能激活该后门程序从而导致漏洞的产生。可是操作系统支持程序动态链接和数据动态交换又是现代操作系统集成和扩展必备的功能,因而出现了自相矛盾之处。
2.1.2 进程创建和远程过程调用(RPC)的安全隐患
一方面,Unix操作系统支持远程加载程序,另一方面,它又可以创建进程,支持在网络节点上创建和激活远程进程,并且被创建的进程能够继承父进程的权限。这两点结合在一起就为黑客在远程服务器上安装"间谍"软件提供了可能。
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等服务软件代码规模较大、设计复杂,要从理论上证明这类复杂程序的安全性,以目前的技术手段,还是一个有待突破的世界难题。现在评估软件安全性的常用方法,就是在具体使用中去检测,甚至借助黑客们的攻击来发现软件的安全漏洞并加以修补。#p#分页标题#e#
这里以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以上的版本解决了这个致命问题。
2.3 计算机网络安全的脆弱性
Internet使用的TCP/IP协议以及FTP、NFS等都包含许多不安全的因素,存在可为黑客所利用的漏洞。
2.3.1 TCP/IP协议漏洞
Internet技术屏蔽了底层网络硬件细节,使得异种网络之间可以互相通信。TCP/IP协议组是目前使用最广泛的网络互连协议之一。但TCP/IP协议组本身存在着一些安全性问题。这就给"黑客"们攻击网络以可乘之机。由于大量重要的应用程序都以TCP作为它们的传输层协议,因此TCP的安全性问题会给网络带来严重的后果。
2.3.2 NFS(Network File System)的安全漏洞
NFS实际上是互信主机间的share-mount 文件和目录共享机制,其主要作用就是将网络上的其他计算机对外共享的文件和目录资源挂接在另一台主机上,供用户对数据进行访问。NFS服务器在共享目录时如果未设置相应的限制(实际应用中常常如此),其结果是有太多的客户机(包括黑客)可以访问共享目录,导致数据泄露。如果共享目录可写或存在可执行的文件,甚至允许客户在NFS装入的目录上创建SetUID程序(可能使黑客获得root权限),则数据和系统安全性大大降低;即使NFS服务器在共享目录时设置了相应的限制,包括安全身份验证模式,但对于能够伪造身份进行攻击的黑客或对于局域网内部的使用者来说,安全级别不高。实践表明,NFS是一个网站计算机基础设施中的薄弱环节。
2.3.3 FTP(File Transfer Protocol)漏洞
FTP往往被黑客用于获取远程系统的访问权限或存放非法取得的文件(即FTP滥用)。这个安全漏洞是由于提供FTP服务的关键文件或目录的用户访问权限设置不当造成的。同时,主机FTP服务可能被黑客利用为制造缓冲区溢出的条件。这个安全漏洞的形成原因主要是软件开发设计的缺陷,如著名的wu-ftp2.4的软件bug会导致黑客通过FTP登录来获得root权限。
2.4 配置不当导致的系统漏洞
大部分计算机安全问题是由于管理不当,而不是由于上述的三大原因。不同的系统配置直接影响系统的安全性。系统管理漏洞主要有两个方面:系统管理员对系统的设置存在安全漏洞。如弱势口令、被信任主机等问题;系统的部分功能自身存在安全漏洞隐患,如tftp网络服务,可以通过恰当的设置去除这些漏洞隐患的威胁。但系统管理员或者未意识到或者配置失误,系统自身存在的安全漏洞隐患依旧存在。
不同的系统配置直接影响系统的安全性。不少系统管理员常抱怨系统自身的安全漏洞,实际上这些所谓的系统自身安全漏洞往往是管理员配置不够完善形成的。完善的系统配置和严格的系统管理是减少安全漏洞、提高主机系统安全性的主要手段。
Unix主机系统安全性分析及漏洞扫描技术概述
综合以上对Unix主机系统安全漏洞存在的必然性的分析,可以看出网络的安全取决于方方面面的因素,分散于网络的的各个环节,应该采取的相应的防范措施也有很多,单一的防范也是不够的。但所有的攻击和防守的最终目标几乎都是网络上的主机系统。因为主机系统上存储、处理和传输各种重要数据,可以说主机的安全问题是Internet安全的核心问题之一,是Internet实现安全性的关键。因此,主机系统的安全防护也是整个安全策略中非常重要的一环。
主机的安全性基本上依赖于三个方面:无错的操作系统代码和应用程序设计;良好的系统配置;功能与安全性之间适当的平衡。
基本上讲,处理网络和主机安全问题主要有两种方法,即允许访问和拒绝访问。
允许访问:在这种安全方式中,指定的用户必须具有某种特权或符合一定的标准才能够进行访问。
拒绝访问:这种安全方式是对某一网络和主机资源访问的一个拒绝。在这种方式中,根据一套标准来否决用户的访问,规定了用户被拒绝访问的特性。
实践表明,只有达到允许访问和拒绝访问之间的最佳平衡,才能获得Web服务器主机系统安全的最优化,偏执任何一方要么制约Web服务器的可用性,要么出现严重的安全漏洞,应使二者一起协同工作。