铲除潜伏在系统中的Rootkit 病毒

2019-12-24 07:24:19河南许红军
网络安全和信息化 2019年12期
关键词:系统文件内核级别

河南 许红军

实例排查RootKit 病毒

当SSH 连接建立后,执行“top”命令,在“Load average”栏中显示系统的负载并不是很高。但在进程列表中发现名为“apachel”的进程的CPU 使用率很高,从表面看起来这似乎是一个Web 服务,可实际上该机根本没有安装任何Web 服务,而且其名称有些欲盖弥彰。

可以肯定的是,该进程极为可疑。执行“ps-ef”命令,显示进程的完整路径信息,发现上述进程的路径为“/etc/apachel”,而且发现“ps”命令的路径位于“/usr/bin/pythd”,这明显和实际情况不符,因为“ps”命令文件位于“/bin”路径下。

进入“/usr/bin/pythd”路径,执行“ll”命令,发现存在“psof”“netstat”“ps”“ls”等命令文件。从别的正常的主机上查看这些命令文件的大小,发现存在明显差异。

毫无疑问这些命令文件都是些冒牌货。执行“crontab -l”命令,在列表中没有发现可疑的定时任务。对系统的关键位置进行检查,在“/etc/init.d”目录中发现名为“lekzina”“gtvdump”等可疑文件,在该路径中的文件可以跟随系统自动运行的。进入“/etc/rc.d/rc1.d”“/etc/rc.d/rc2.d”“/etc/rc.d/rc3.d”“/etc/rc.d/rc4.d”“/etc/rc.d/rc5.d”等目录,在其中 发现名为“st0lekzina”“stgtvdump”等可疑文件,很明显这些病毒试图在不同运行级别下启动。

反复执行“ps -ef”命令,发现名为“/usr/bin/nshbsdy”和“/usr/bin/libudev”进 程有忽隐忽现的情况,经过检测发现“/usr/bin/nshbsdy”是一个目录,进入该目录,执行“ll”命令,发现其中存在“getty”“getty.lock”等文件。对“/usr/bin/libudev”进行分析,发现这是一个隐藏的二进制文件,可能是用来开启后门的。

进入“/tmp”目录,在其中发现了名为“gcc.lod”和“mtyke.load”文件很可疑,因为对于病毒来说,一般都会在“/tmp”中进行非法活动。对于这些病毒文件,必须进行清除。

例如,执行“rm -rf/usr/bin/pythd”“rm -rf/usr/bin/nshbsdy”命令,将包含非法命令文件的目录删除。执行“rm -f/usr/bin/libudev”命令,将后门程序删除。按照同样的方法,将所有的病毒全部删除。之后运行“top”命令,找到“apachel”等非法进程的PID 号,使用“kill -9 xxx”命令,将其清除即可,这里的“xxx”表示具体的PID。之后重启系统,对系统进行检查,发现上述可疑文件都不再出现,系统终于恢复正常。

因为执行了以上删除操作后,可能会导致“ls”等命令无法使用,解决方法是从其他主机上复制这些的命令文件到本机对应路径即可。

根据上述情况分析,该机安装了Oracle 数据库,用户名和密码均为“oracle”,因为密码设置的比较简单,而且又开启了TCP 22 端口,所以黑客扫描到该机后,就进行了非法登录,并替换了系统的命令文件,开启了后门程序,才导致该机出现上述异常状况。因此,设置比较复杂的密码,修改默认的连接端口,使用防火墙配置安全策略,对开放的端口进行保护等方式,来提高该机的安全性。

RootKit 病毒的特点及类别

从以上的排查实例可以看出,该服务器实际遭遇了文件级别的RootKit 病毒的袭扰。

对于 Linux 来说,Rootkit 级别的病毒是比较难以对付的。RootKit 病毒的最大特点是可以通过替换系统文件的方式,来达到攻击系统和和隐蔽自身的目的。使用一般的防御手段,是难以清查这些病毒的。

RootKit 病毒具有很强的隐蔽性,对系统安全危害很大,黑客利用各种系统漏洞非法控制目标服务器,并在系统中植入RootKit 病毒,不仅可以建立很隐蔽的后门,还可以隐藏其踪迹,让黑客非法拥有攻击权限,并且可以随时利用由RootKit建立的后门登录系统。

一般来说,RootKit 病毒包括文件级别和内核级别两种类型。对于前者来说,会通过修改或者替换系统文件的方式来隐藏自身。

这样,合法的系统文件被RootKit 病毒取代,其内部隐藏的是后门程序。例如,Linux 的login、ls、ps、ifconfig 等命令文件很容易成为RootKit 病毒攻击的目标。如果login 被替换的话,那么当在本地登录或者远程登录时,都必然会运行“/bin/login”程 序,Linux 会利用该程序来获取用户输入的账号和密码,并判断其是否可以正常登录。

但是,该虚假的“login”程序内部带有Root 权限后门密码,黑客可以根据预设的密码轻松登录。为了防止用户查看到入侵的痕迹信息,黑客还会替换相关的系统命令文件,例如ls、ps、ifconfig、du、find、netstat等。当用户运行这些命令,来查看系统关键信息时,当然无法了解到真实信息。造成在系统层面难以发现RootKit 病毒的情况。

为了防范文件级别的RootKit 病毒,最好的办法是经常使用Tripwire、aide 等工具,对系统重要文件的完整性进行检查,如果发现文件被修改或者被替换,那么就要引起警惕了。

而对于内核级别的RootKit 病毒来说,其隐蔽性和危害性要比文件级别的RootKit 病毒大得多。利用内核级别的RootKit 病毒,黑客可以获得对系统底层的完全控制权,黑客甚至可以据此对系统内核进行修改,嗅探和拦截正常程序向内核提交的命令,并将其重定向到黑客指定的恶意程序上。这样,用户运行了正常的程序,实际上运行的是黑客指定的恶意程序。

RootKit 病毒主要活动在系统内核中,对于系统文件一般不会进行修改,常规的安全检测工具是无法发现其踪迹的。从原理上说,对于内核级别的RootKit 病毒,并没有很好的安全工具可以有效防御。所以,配置严格的安全策略,并让系统在最小权限内运作,让黑客尽量不要获取Root 权限,就可以有效避免其在内核中安装RootKit 病毒。

多管齐下检测RootKit 病毒

利用Chkrootkit 这款精巧的Rootkit 病毒的工具,可以帮助用户发现RootKit病毒的踪迹。它可以检测系统文件和日志修改信息,发现和RootKit 相关的界面欺骗和恶意核心模块。

执行“yum -y install gcc”“yum -y install gcc-c++”“yum -y installmake”“yuminstallglibc* -y”等命令,来安装GCC 编译环境。执行“tar zxvf chkrootkit.tar.gz”“cd chkrootkit”“make sense”“cp -r chkrootkit-*/usr/local/chkrootkit”“rm -rf chkrootkit-*”等命令,执行编译和安装操作。

执行“/usr/local/chkrootkit/chkrootkit”命令,对系统进行检测。如果在检测到的命令文件后面出现“INFECTED”提示,说明其已经被Rootkit 病毒破坏。因为该工具在检测的时候,会使用到了一些系统命令,如果这些系统命令被破坏,就会造成该工具无法正常检测。因此,在系统处于正常状态时,可以执行“mkdir/usr/data/chkbackup”命令,创建用来备份该工具的目录。

执行“cp `which--skip-alias awk cut echo find egrep id head ls netstat ps strings sed uname`/ usr/data/chkbackup”命令,将该工具使用到的系统命令复制到上述目录中。执行“cd/ data/chkbackup/”“tar zcvf chkbackup.tar.gz chkbackup”命令,将该目录进行打包压缩。这样,如果系统被RootKit 病毒被破坏,可以从该压缩包中提取出来。之后执行“/usr/local/chkrootkit/chkrootkit -p/usr/data/chkbackup/”命令,让Chkrootkit 使用这些纯净的系统命名文件,对系统检测检测。

此外,还可以用Rkhunter这个优秀的“猎手”,来检测RootKit 病毒。其可以发现大多数已知的Rootkit 病毒,并有效确认系统否已经存在Rootkit 病毒。其拥有MD5 校验测试,检测文件是否有改动,检测木马程序的特征码,检测常用程序的文件属性是否异常,检测隐藏文件,检测可疑的核心模块,检测系统已启动的监听端口等功能。例如执行“yum install epel-release”“yum install rkhunter”命令,就可以安装该工具。执行“/usr/bin/rkhunter -c”命令,开始对系统进行检测。

在检测信息中首先对系统命令进行检查,如果显示“OK”的话说明一切正常,显示“Warning”表示存在异常情况。之后针对常见的Rootkit 程序进行检测,然后执行一些特殊或附加的检测,例如对Rootkit 文件或目录检测、对恶意软件检测以及对指定的内核模块检测等。接下来针对对网络、系统端口、系统启动文件、系统用户和组配置、SSH 配置、文件系统等进行检测。随后对应用程序版本进行检测,最后显示检测报告信息。

Rkhunter 的优点之一是会使用不同的颜色来显示不同的检测信息。例如检测项目如果显示为绿色,说明没有问题。如果显示为红色,就说明存在风险。为了实现快速检测,可以执行“/usr/local/bin/rkhunter --check --skipkeypress”命令来实现。为了实现自动检测,可以执行“vim/etc/crontab”命令,添加“1 0 * * * root/usr/local/bin/rkhunter--check --cronjob”行,在每天凌晨执行检测任务。执行“rkhunter --update”命令,可以升级Rootkit 特征数据库,来发现新的RootKit病毒。

当然,使用ClamAV 安全软件也可以有效防御RootKit 病毒。执行“yum install epel-release”“yum -y install clamav clamav-milter”命令,安装该软件。之后执行“freshclam”命令,来更新病 毒库。ClamAV 提供了“clamdscan”和“clamscan”两个检测名里面那个,前者需要启动clamd 服务才能使用,执行速度较快,后者虽然可以直接运行,但速度较慢。

这里使用前者,执行“clamscan --infected-r/ --remove -l/var/log/scan.log”命令,可以对系统文件进行检测,并将检测信息保存到指定的日志文件中。执行“clamscan-r/etc --max-recursion=5-i -l/mnt/virscan.log”命令,对“/etc”目录进行检测。

为便于使用,可在“/etc/crontab”中添加“0 1* * * /usr/bin/freshclam--quiet”行,让其在指定时间升级病毒库。添加“0 3 * * * clamscan -r/ -l/var/log/scan.log--remove”命令,在每天指定时间对系统进行检测。

猜你喜欢
系统文件内核级别
万物皆可IP的时代,我们当夯实的IP内核是什么?
现代装饰(2022年4期)2022-08-31 01:41:24
痘痘分级别,轻重不一样
基层中医药(2021年8期)2021-11-02 06:25:02
强化『高新』内核 打造农业『硅谷』
今日农业(2021年9期)2021-07-28 07:08:36
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
中压电子束焊工控机Windows NT系统文件丢失故障的修复方法
迈向UHD HDR的“水晶” 十万元级别的SIM2 CRYSTAL4 UHD
从档案管理角度谈OA系统文件管理功能建设
参花(下)(2018年8期)2018-05-14 09:01:15
新年导购手册之两万元以下级别好物推荐
你是什么级别的
中学生(2017年13期)2017-06-15 12:57:48