网络安全 频道

充分利用Linux操作系统安全防护工具

Rootkit主要有两种类型:文件级别和系统级别,下面分别加以简要介绍。

1.文件级Rootkit

Rootkit威力很大,可以轻而易举地在系统中建立后门。最一般的情况就是它们首先进入系统然后修改系统的重要文件来达到隐藏自己的目的。合法的文件被木马程序替代。通常情况下,合法的程序变成了外壳程序,而其内部就是隐藏着的后门程序。下面列出的程序就是经常被木马程序利用掩护自己的Linux rootkit:login、 ls、ps、 find、who、 netstat。

其中,当我们访问Linux时(不管是本地还是远程登录),/bin/login程序都会运行,系统将通过 /bin/l ogin来收集并核对用户的账号和密码。Rootkit使用一个带有根权限后门密码的/bin/login来替换系统的/bin/login,这样攻击者输入根权限后门的密码,就能进入系统。就算管理员更改了原来的系统密码或者把密码清空,仍能够使用后门密码以根用户身份登录。在攻入Linux系统后,入侵者通常会进行一系列的攻击动作,如安装嗅探器收集重要数据,而Linux中也会有些系统文件监视这些动作,比如ifconfig等系统命令。所以,为了避免被发现,攻击者会想方设法替换一下这些系统文件,通常被Rootkit替换的系统程序有login、ifconfig、du、find、ls、 netstat、ps等。这些命令都能在正常情况下查看系统一些重要的进程、文件和网络情况的信息,而一旦被替换,则无法发现Rootkit已经在系统中工作。所以,如果攻击者将所有用户经常使用的命令都替换了的话,他不但能在系统中建立后门,而且还可以隐藏自己的踪迹。所以通过Rootkit可以达到双重目的,攻击者可以随时进入系统,并且我们还不能对他的行为进行检测。

Rootkit功能如此强大,所以必须好好进行防范。实际上,最有效的防御方法是定期对重要系统文件的完整性进行核查,这类工具很多,像Tripwire就是一个非常不错的文件完整性检查工具。该软件可以检测出一段时间内,系统中哪些文件发生了变化,如果一旦被替换,那么肯定能够反映出来。而一但使用该软件发现系统遭受到Rootkit攻击,必须完全重装所有的系统文件、部件和程序,以确保安全性。

下面给出一些目前常用的文件级Rootkit工具,用户可以选择使用:TrojanIT、Lrk5、Ark、Rootkit(有很多个不同的版本)、TK。

2.内核级Rootkit

在大多数操作系统中(各种Unix和Windows),内核是操作系统最基本的部件,它控制着对网络设备、进程、系统内存、磁盘等的访问。例如当你打开一个文件时,打开文件的请求被发送到内核,内核负责从磁盘得到文件的比特位并运行文件浏览程序。内核级 Rootkit使攻击者获得对系统底层的完全控制权。攻击者可以修改系统内核,大多数内核级Rootkit都能进行执行重定向,即截获运行某一程序的命令,将其重定向到入侵者所选中的程序并运行此程序。也就是说,用户或管理员要运行程序A,被修改过的内核假装执行A,实际却执行了程序B。

对于工作在文件级的Rootkit来说,它们非常容易被检测到。而内核级Rootkit工作在一个很低的内核级上。它们经常依附在内核上,并没有修改系统的任何文件,于是tripwire工具就不能检测到它的使用。因为它并没有对系统的任何文件进行修改,攻击者可以对系统为所欲为而不被发现。系统级Rootkit为攻击者提供了很大的便利,并且修复了文件级Rootkit的一些错误。所以建议用户要做好前期的安全防范工作。例如将最小权限的原则应用到整个系统当中,这样攻击者就很难在系统中运行内核级的Rootkit,因为运行它首先需要取得root权限。另外,可以模仿攻击者的攻击方式来确认系统是否已经受到内核级Rootkit的威胁。以系统管理员的身份来运行攻击者一般需要运行的命令,如果系统对这些命令有所反应,那么基本可以确定系统已经被入侵了。不过做好前期的防范工作始终是最重要的,事后的弥补比较困难,而且显得有些捉襟见肘。

下面给出一些目前常用的内核级Rootkit工具,用户可以选择使用:Knark、Adore。

由于上述的Rootkit的工具种类繁多,所以这里不再介绍其安装以及使用的步骤,网上有很丰富的资源,读者可以参看。

系统管理工具——Sudo

Sudo是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt、reboot、su 等等。这样不仅减少了root用户的登陆和管理时间,同样也提高了安全性。如果用户在系统中需要每天以root身份做一些日常工作,经常执行一些固定的几个只有root身份才能执行的命令,那么用Sudo是非常适合的。

Sudo不是对shell的一个代替,它是面向每个命令的。它的特性主要有这样几点:

● Sudo能够限制用户只在某台主机上运行某些命令。

● Sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器。

● Sudo使用时间戳文件来执行类似的“检票”系统。当用户调用Sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变),过了这个时间,用户所获得的权限将失效。

● Sudo的配置文件是sudoers文件,它允许系统管理员集中管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0411。

Sudo当前最新的稳定版本为Sudo 1.6.8p9。可以从网站下载文件sudo-1.6.8p9.tar.gz后进行解压安装,如下步骤所示:

#tar xzvf sudo-1.6.8p9.tar.gz
#cd sudo-1.6.8p9

在笔者所使用的版本中,将该软件解压后即可使用,也不需要编译,直接进入sudo-1.6.8p9中使用sudo命令即可。如下所示:

#[root@localhost root]# su liyang
[liyang@localhost root]$ sudo reboot
Password:******

上述例子中,用户liyang使用sudo命令来行使root的权限,重新启动系统。因为通常情况下,一般用户并没有这个权限。系统提示输入该用户的密码加以确认。另外,为了达到该目的,还需要root用户修改一下上述的Sudo的配置文件sudoers,将其中的相关选项改为如下内容:

# User privilege specification
root ALL=(ALL) ALL
liyang ALL=(ALL) ALL

这里,liyang用户具有和root同样的权限,当然在实际应用中不能这么做,而只能将部分权限赋给用户。

其他工具

本文上面介绍的几款安全工具是在实际应用中经常使用的,他们的功能非常强大。在当前环境下,这些工具以及工具的变种层出不穷。比如一些被黑客用来进行攻击的后门和特洛伊木马工具、Sadmind攻击工具、DoS攻击工具(Targa)、DdoS攻击工具等等。虽然这些是黑客工具,但是也可以用来对系统某方面的漏洞进行测试攻击,从而采取打补丁、升级系统、加固系统的方法来保障系统安全。特别是系统管理员要有这种超前的意识,应该多采用和有针对性地选用一些黑客攻击工具,对系统的安全进行分析、评价和保护,这是一项长期的、艰巨的任务。

虽然一些工具是黑客工具,但是也可以用来对系统某方面的漏洞进行测试攻击,从而采取打补丁、升级系统、加固系统的方法来保障系统安全。系统管理员要有一种超前的意识,应该多采用和有针对性地选用一些黑客攻击工具,对系统的安全进行分析、评价和保护,这是一项长期的、艰巨的任务。

0
相关文章