通八卦网 > 杂谈 > 正文

​Linux系统安全之Rootkit原理解析与检测实践(Linux系统安全之Rootkit原理解

2023-11-06 14:47 来源:网络 点击:

Linux系统安全之Rootkit原理解析与检测实践(Linux系统安全之Rootkit原理解析与检测实践)

Rootkit是一组计算机软件的合集,通常是恶意的,它的目的是在非授权的情况下维持系统最高权限(在Unix、Linux下为root,在Windows下为Administrator)来访问计算机与病毒或者木马不同的是,Rootkit试图通过隐藏自己来防止被发现,以到达长期利用受害主机的目的Rootkit和病毒或者木马一样,都会对Linux系统安全产生极大的威胁,今天小编就来说说关于Linux系统安全之Rootkit原理解析与检测实践?下面更多详细答案一起来看看吧!

Linux系统安全之Rootkit原理解析与检测实践(Linux系统安全之Rootkit原理解析与检测实践)

Linux系统安全之Rootkit原理解析与检测实践

Rootkit是一组计算机软件的合集,通常是恶意的,它的目的是在非授权的情况下维持系统最高权限(在Unix、Linux下为root,在Windows下为Administrator)来访问计算机。与病毒或者木马不同的是,Rootkit试图通过隐藏自己来防止被发现,以到达长期利用受害主机的目的。Rootkit和病毒或者木马一样,都会对Linux系统安全产生极大的威胁。

本章将首先介绍Linux rootkit的分类和原理,然后介绍用于检测Rootkit的工具和方法。接下来,本章将介绍病毒木马扫描技术。Webshell作为恶意代码的一种例子,也可以看做是一种特殊形式的木马,它以Web服务器运行环境为依托,实现黑客对受害主机长期隐蔽性的控制。在本章的最后部分,也对这种恶意代码的检测方法做了讲解。

1.1 Rootkit分类和原理

Rootkit的主要功能包括:

隐藏进程隐藏文件隐藏网络端口后门功能键盘记录器

Rootkit主要分为以下2种:

用户态Rootkit(User-mode Rootkit):一般通过覆盖系统二进制和库文件来实现。它具有如下的特点:它通常替换的二进制文件为ps、netstat、du、ping、lsof、ssh、sshd等,例如已知的Linux t0rn rootkit(https://c.quk.cc/2/c12/1501jzdwr1s Rootkit):通常通过可加载内核模块(LoadableKernel Module,LKM)将恶意代码被直接加载进内核中。它具有如下的特点:它直接访问/dev/{k,}mem。更加隐蔽,更难以检测,通常包含后门。

在这里需要指出的是,用于获得root权限的漏洞利用工具不是Rootkit;用于获得root权限的漏洞利用工具被称为提权工具。通常情况下,黑客攻击的动作序列为:

(1)定位目标主机上的漏洞,这一般是通过网络扫描和Web应用扫描工具来实现的,使用的工具包括但不限于《Linux系统安全:纵深防御、安全扫描与入侵检测》中《第10章 Linux安全扫描工具》中提到的相关工具。

图1 Chkrootkit可识别的Rootkit

1.3.1 Chkrootkit安装

使用如下命令安装Chkrootkit:

cd /opt #进入/opt目录wgetftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz #下载源码包2019-02-11 11:25:35 (17.9 KB/s) -‘chkrootkit.tar.gz’ saved [40031] #完成下载源码包wgetftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5 #下载md5校验文件2019-02-11 11:25:53 (3.18 MB/s) -‘chkrootkit.md5’ saved [52] #完成下载md5校验文件md5sum chkrootkit.tar.gz #计算源码包md50c864b41cae9ef9381292b51104b0a04 chkrootkit.tar.gz #md5计算结果cat chkrootkit.md5 #查看md5校验文件内容0c864b41cae9ef9381292b51104b0a04 chkrootkit.tar.gz #和已下载源码包md5对比,文件完整性校验通过tar zxvf chkrootkit.tar.gz #解压源码包cd chkrootkit-0.52 #进入源码包解压目录make sense #编译安装

1.3.2 执行Chkrootkit

经过1.3.1中的安装步骤后,在/opt/chkrootkit-0.52/目录下存储了编译后的二进制文件和相关脚本。执行Rootkit检查的命令如下:

cd /opt/chkrootkit-0.52./chkrootkit

输出结果中可能包含的状态字段如下:

“INFECTED”:检测出了一个可能被已知rootkit修改过的命令。“not infected”:未检测出任何已知的rootkit指纹。“not tested”:未执行测试--在以下情形中发生这种情况: 这种测试是特定于某种操作系统的。 这种测试依赖于外部的程序,但这个程序不存在。

给定了一些特定的命令行选项(例如,-r)。

“not found”:要检测命令对象不存在。“Vulnerable but disabled”:命令虽然被感染,但没有在使用中(例如,非运行状态或者在inetd.conf被注释掉了)

1.4 利用Rkhunter检查Rootkit

Rkhunter是Rootkit Hunter(Rootkit狩猎者)的缩写,是另一款常用的开源Rootkit检测工具。

Rkhunter的官方网站是https://c.quk.cc/2/c12/oeu4y0glfy3.1 Rkhunter安装

使用如下命令安装Rkhunter:

cd /opt #进入/opt目录wgethttps://c.quk.cc/2/c12/nlxmfrge5ih rkhunter-1.4.6.tar.gz #下载rkhunter源码包tar zxf rkhunter-1.4.6.tar.gz #解压rkhunter源码包cd rkhunter-1.4.6 #进入解压后目录./installer.sh --install #安装rkhunter

1.4.2 执行Rkhunter

在完成1.4.1的安装步骤后,Rkhunter的二进制可执行文件被存储在/usr/local/bin/rkhunter路径。

执行以下命令进行系统扫描:

/usr/local/bin/rkhunter -c

执行完成后,扫描日志会写入/var/log/rkhunter.log文件中。重点关注该文件最后部分的内容即可,如下所示:

[22:12:42] System checks summary #系统检测结果汇总开始[22:12:42] =====================[22:12:42][22:12:42] File properties checks... #文件属性检测[22:12:42] Required commands check failed[22:12:42] Files checked: 130[22:12:43] Suspect files: 3 #可疑的文件数量,如该数量不为0,则表示发现可疑文件,再从该日志中查找Warning的相关行进行详细分析[22:12:43][22:12:43] Rootkit checks...[22:12:43] Rootkits checked : 434[22:12:43] Possible rootkits: 0 #可能的rootkit数量,如该数量不为0,则表示发现可疑文件,再从该日志中查找Warning的相关行进行详细分析[22:12:43][22:12:43] Applications checks...[22:12:43] All checks skipped[22:12:43][22:12:43] The system checks took: 1 minuteand 47 seconds #系统检测花费的时间[22:12:43]

[22:12:43]Info: End date is Mon Feb 11 22:12:43 CST 2019 #系统检测结束的时间

1.5总结

Linux Rootkit作为黑客隐藏其恶意行为的关键技术,具有很强的隐蔽性和迷惑性。本文讲的两种工具,可以在一定程度上识别出常见Rootkit。对于新型的Rootkit,可以使用独立编译的Busybox等二进制进行对比分析。

本文主要内容摘要自胥峰新书《Linux系统安全:纵深防御、安全扫描与入侵检测》。通过学习《Linux系统安全:纵深防御、安全扫描与入侵检测》,可以系统性、整体化的构建Linux安全体系。

作者胥峰简介:

新钛云服首席解决方案架构师,十二年运维经验,曾长期在盛大游戏担任运维架构师,参与盛大游戏多款大型端游和手游的上线运维。资深Linux专家,拥有工信部高级信息系统项目管理师资格,著有畅销书《Linux系统安全:纵深防御、安全扫描与入侵检测》、《Linux运维最佳实践》,译著《DevOps:软件架构师行动指南》是DevOps领域的经典著作。

,