科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Unix主机安全漏洞及漏洞扫描器介绍(2)

Unix主机安全漏洞及漏洞扫描器介绍(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

计算机互联网技术在信息交互、信息处理、信息查找、信息管理等方面起着越来越重要的作用。互连网络为人们获取信息、交换信息、管理信息和进行各种社会活动提供了一个快速而方便的平台,为社会的发展带来了巨大效益。

作者:论坛整理 来源:zdnet网络安全 2008年1月17日

关键字: 漏洞扫描 安全漏洞 系统安全 unix

  • 评论
  • 分享微博
  • 分享邮件
主机漏洞扫描器是实现允许访问和拒绝访问之间最佳平衡的主要工具,因为拒绝访问安全方式的主要目的之一是封堵漏洞限制访问避免攻击,允许访问安全方式的前提之一也是不会由此产生系统漏洞,这说明避免系统漏洞是允许访问和拒绝访问之间的一个重要的平衡点,而主机漏洞扫描器恰恰是发现系统漏洞的主要工具。

主机漏洞扫描系统是一种自动检测本地主机安全性弱点的程序。它以系统管理员的身份对所维护的服务器进行特征扫描,从主机系统内部检测系统配置的缺陷,模拟系统管理员进行系统内部审核的全过程,发现能够被黑客利用的种种误配置。

实际上,能够从主机系统内部检测系统配置的缺陷,是系统管理员的漏洞扫描器与黑客拥有的漏洞扫描器之间在技术上的最大区别。黑客在扫描目标主机漏洞阶段,即在攻击准备阶段,是不可能进行目标主机系统内部检测的。

定期对主机系统进行漏洞扫描,在一定程度上能让系统管理员间接地或直接地了解到所维护的网络服务器所存在的安全问题。

Unix主机漏洞扫描器的设计与实现

本漏洞扫描器的总体目标是构造一个运行于Unix操作系统平台的基于浏览器/服务器(B/S)结构的,可以扫描Unix操作系统安全漏洞的主机漏洞扫描器。整个扫描器的结构如图1所示。

图1 Unix主机漏洞扫描器的结构

Highslide JS



由于主机扫描模块需要模拟一些系统管理员的行为,所以必须在被扫描的目标主机上运行,而且需要超级用户的权限。主机扫描模块驻留于目标主机,它接受系统管理员通过控制平台服务器传来的启动命令及配置参数,根据用户的要求完成扫描功能,之后,将扫描结果通过控制平台服务器反馈给系统管理员,以便系统管理员做出响应。控制平台服务器是一个Web服务器,它可以与驻留于多个目标主机的主机扫描模块进行交互。

4.1 主机扫描模块的工作原理

整个主机漏洞扫描器的核心部件是主机扫描模块,主机扫描模块完成扫描的全部功能,其工作原理如图2所示。

其中,主机扫描引擎对目标主机进行扫描,获取扫描信息,然后由匹配机将扫描信息与主机系统配置规则库中的标准配置规则进行匹配比较,从而发现违反安全策略的配置行为,并进行相应的漏洞报警。在漏洞扫描器的实现中,主机扫描引擎、主机系统配置规则库和匹配机构成主机扫描模块,而漏洞报警被传送至控制平台服务器。

图2 主机扫描模块的工作原理

Highslide JS



4.2 主机扫描模块与控制平台之间的通信

由于控制平台和目标主机不在同一台机器上,所以必须考虑主机扫描模块以何种方式同控制平台进行通信。在进行原型设计时,曾采用远程登录的方式:从控制平台输入管理员的账号和密码后登录到目标主机,再在目标主机上启动主机扫描模块。这样的方式在原型设计阶段是很适合的,因为用Perl语言和一些现成的包来实现Telnet是比较方便的,而且在字符界面下,目标主机的扫描结果可以通过Telnet协议返回到虚拟终端上,无需做专门的处理。但是在最后成型阶段,这样的结构就具有一些缺点了:首先从实现上来讲,用C语言来实现Telnet的协商过程是一个很复杂的工作,而且扫描结果要在最后的图形界面显示出来,又需要一个相对复杂的处理;最重要的是,作为一个网络安全的软件,本身的安全是很重要的,而Telnet方式是以明码方式在网络上传递超级用户的账号和密码的,这一点将使软件本身具有一个很大的安全隐患。所以最后我们采用了浏览器/服务器结构。

整个主机扫描模块的采用的是浏览器/服务器结构。浏览器通过一个JavaScript请求模块把用户输入的目标主机的地址提取出来,加上一个特定的端口号,再作为一个完整的请求发送出去。浏览器对这个端口发出的请求是按照Http协议的格式发送的,如果在服务器端程序里再做一个类似于协议分析器的工具来分析到达的Http请求将会使实现变得非常复杂。其实利用套接字的原理就能方便地解决这个问题。套接字是服务器端特定端口和客户端特定端口建立连接后的一个通道,此通道具有唯一性,因为它是由一个唯一的四元组来确定的:服务器端的IP地址和端口号、客户端的IP地址和端口号。当浏览器和服务器相应端口的连接建立以后,服务器端向该套接字发送的所有信息都将送到客户端的浏览器。根据Web浏览器软件的特点和Http协议的特点,从服务器端来的信息如果只是ASCII信息,浏览器将缺省地把它归为text/plain类,当作文本直接显示,如果发送的信息再加上一些HTML的标记,浏览器则会把它看作text/html类显示,这样我们不仅能方便地把服务器端的输出结果显示到客户端的浏览器上,还能利用HTML的特点对显示加以控制。所以我们只需在服务器端创建一个套接字,并绑定到特定的端口,然后程序在该特定端口监听。当有信息到达时,根据套接字的唯一性,程序不作其他考虑,认定它是从客户端来的扫描请求,马上启动主机扫描模块,而不用作复杂的Http协议请求分析;并实时地把扫描结果向该套接字输出,这样就能直接返回给浏览器并呈现给用户。

4.3 主机系统配置规则库的设计

主机扫描模块功能的实现主要依赖于主机系统配置规则库,该规则库的有效性和完备性直接决定着扫描器的扫描性能。在该规则库的设计中,我们主要考虑了以下规则。

4.3.1 口令安全性规则

通过口令进行身份认证是目前实现计算机安全的主要手段之一,一个用户的口令被非法用户获悉,则该非法用户即获得了该用户的全部权限,这样,尤其是高权限用户的口令泄露以后,主机和网络也就随即失去了安全性。系统管理员以及其它所有用户对口令选取应采取负责的态度,消除侥幸和偷懒思想。具体来说应遵循以下一些规则:

口令长度不要小于6位,并应同时包含字母和数字,以及标点符号和控制字符。
口令中不要使用常用单词(避免字典攻击)、英文简称、个人信息(如生日、名字、反向拼写的登录名、房间中可见的东西)、年份以及机器中的命令等,不要在不同系统上,特别是不同级别的用户上使用同一口令。
定期改变口令。
系统安装对口令文件进行隐藏的程序或设置(例如Shadow Suite for linux)。
系统配置对用户口令设置情况进行检测的程序,并强制用户定期改变口令,任何一个用户口令的脆弱,都会影响整个系统的安全性。

4.3.2 超级用户唯一性规则

超级用户对于系统的一切文件都有进行所有操作的权利。但是最大的自由相应地也需要承担最大的风险,如果超级用户权限被黑客得到,将对整个系统带来毁灭性的打击。为了减少超级用户被破译的可能性,必须将系统中多余的超级用户删除,在一个系统中只存在一个超级用户是每个系统管理员必须遵守的原则。

超级用户可以从/etc/passwd文件中查出,超级用户的user ID为0,但是group ID稍有不同,在不同的系统版本里分别有两种形式:0或1。当/etc/passwd文件中有多于两个用户项为:用户名:x:0:0或用户名:x:0:1时,就必须遵照唯一性规则进行改正。

4.3.3 禁用Trusted主机(被信任主机)规则

在实际工作中,系统管理员为方便与其他主机进行数据传输、软硬件资源共享和r服务(如rlogin、rsh等远程系统调用命令),往往在/etc/hosts.equiv文件中设置远程主机名,以此确认该主机为Truseted主机。这样,一个被信任主机可以不需口令地访问系统及调用r服务。更有甚者,某些系统管理员在/etc/hosts.equiv文件内设置"+"符号,虽然这个参数可以方便所有远程访问,但同样方便了黑客。因为这会使任何一台主机上的任何用户都可以不需口令地访问系统,对系统安全造成很大的损害。

同样,.rhosts文件也提供了Trusted主机和r命令访问功能。但它比/etc/hosts.equiv文件可能会导致更大的安全漏洞。因为系统内的任何用户都可能在各自的$HOME目录下创建该文件。那么.rhosts文件中指定的远程主机上的用户在以该用户名登录本地主机系统时,不需口令认证。特别是在.rhosts 文件内设置"+"符号的情形,更会使任何一台主机上的任何用户都可以不需口令地访问本系统的这个用户,从而导致安全漏洞的出现。

为安全计,如果无特殊需要,应该清除一切Trusted主机相关配置。

4.3.4 禁用r命令规则

r命令是由Berkley开发的一系列命令软件,由于这些命令如rlogin、rsh、rcp、rdist等均以"r"开头,因此统称为r命令。

r命令固有的弱点包括:任何口令都是未经加密的,如果有人对网络进行窃听,很容易发现口令;整个r命令对话都是未经加密的,对话中的每一个字符(包括口令)很容易被记录下来;系统管理员为管理方便,经常使用rlogin等命令从远程登录来调试Web服务器的设置,形成潜在的安全漏洞。

为安全计,如果无特殊需要,应该在路由器上或主机/etc/inetd.conf文件内过滤掉512、513和514(TCP)端口,这样可阻止主机外部用户使用r命令。

4.3.5 禁用X Windows 规则

X Windows系统是一种客户机/服务器结构的窗口系统,每个拥有显示设备的主机系统都可以作为服务器,并可接受另一个主机系统作为其客户。它的运行模式是:程序在客户机系统上运行,而用户界面却显示在服务器的显示设备上,客户机通过网络把应该显示出来的内容传送给服务器,服务器则把用户的输入通过网络传送给客户机。

和r命令一样,所有的X Windows 传输内容都是不加密的,并且它的身份验证功能也不够强大,容易丧失作用(如"xhost +"命令)。

为安全计,如果无特殊需要,X Windows设置可以认为是不必要的。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章