Linux下基于内存分析的Rootkit检测方法- 路人甲.PDFVIP

Linux下基于内存分析的Rootkit检测方法- 路人甲.PDF

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux下基于内存分析的Rootkit检测方法- 路人甲

原原文文地地址址:/tips/4731 0x00 引引言言 某Linux服务器发现异常现象如下图,确定被植入Rootkit,但运维人员使用常 Rootkit检测方法无效,对此情况我们还可以做什么? 图1 被植入Rootkit的Linux服务器 所有暗链的html文件ls均看不到。 使用ls -al 绝对路径,能看到,但无法删除。 这些暗链的uid和gid都很奇特 分别为 2511744398:4043361279 。 对任意文件执行chown 2511744398:4043361279 其表现会和暗链文件相同。 将硬盘n s挂载到正常系统上,现象无任何变化。 0x01 Rootkit实实现现方方式式和和检检测测方方法法 一般来说,Rootkit检测方式有以下几种: 1. 可信任Shell——使用静态编译的二进制文件:lsof、stat、strace、last、…… 2. 检测工具和脚本:rkhunter, chkrootkit, OSSEC 3. LiveCD——DEFT、Secon Look、 Helix 4. 动态分析和调试:使用g b根据System.map和vmlinuz image分析/proc/kcore 5. 直接调试裸设备: ebugFS 在分析这几种检测方法的优劣之前,我们先通过图2了解一下Linux Rootkit的一般实现原理 图2 Linux中系统命令执行的一般流程 在Ring3层 (用户空间)工作的系统命令/应用程序实现某些基础功能时会调用系统.so文件注1。而这些.so文件实现的基本功能,如文件读写则是通过读取Ring0层 (内核空间)的Syscall Table注 2(系统调用表)中相应Syscall(系统调用)作用到硬件,最终完成文件读写的。 那么如果中了Rootkit,这个流程会发生什么变化呢?下面通过图3来了解一下。 图3 Rootkit的一般执行流程 Rootkit篡改了Syscall Table中Syscall的内存地址,导致程序读取修改过的Syscall地址而执行了恶意的函数从而实现其特殊功能和目的。 上图仅仅是列举了一种典型的Rootkit工作流程,通过修改程序读取Syscall的不同环节可以产生不同类型的Rootkit,我们简单罗列一下。 Rootkit部分实现方式: 1. 拦截中断-重定向sys_call_table,修改IDT 2. 劫持系统调用-修改sys_call_table 3. inline hook-修改sys_call,插入jmp指令 这部分不是本文的重点,不再赘述。了解了Rootkit实现原理,我们再回过来对比一下常 Rootkit检测方式的优劣。 对于使用静态编译的二进制文件的检测方式,如果Rootkit修改了Syscall,那么这种方法产生的输出也是不可靠的,我们无法看到任何被Rootkit隐藏的东西。 那么如果使用Rootkit检测工具呢,我们简单分析一下rkhunter的检测原理。 在rkhunter脚本文件中,scanrootkit函数部分代码如下: 图4 rkhunter中的scanrootkit函数 注:其安装脚本中定义了以下两个变量 #!bash RKHTMPVAR=${RKHINST_SIG_DIR} RKHINST_SIG_DIR=${RKHINST_DB_DIR}/signatures 图5 Signatures 目录中的文件列表——Rootkit签名列表 从上面这段代码我们可以看出rkhunter扫描Rootkit调用了3个重要的变量:SCAN_FILES, SCAN_DIRS,SCAN_KSYMS,用于每种Rootkit的检查。 下面的四幅图分别是Adore和KBeast两个Rootkit检测的具体代码。 图6 rkhunter中经典Rootkit Adore的检测流程 图7 rkhunter中检测Adore的文件和目录的清单 图8 rkhunter中Rootkit KBeast的检测流程 图9 rkhunter中检测KBeast的文件和目录的清单 根据以上分析,我们可以看出rkhunter仅仅是检查已知Rootkit组件默认安装路径上是否存在相应文件,并比对文件签名 (signature)。这种检测方式显然过于粗糙,对修改过的/新的Rootkit基本 无能为力。 而另一款流行的Rootkit检测工具chkrootkit,其LKM Rootkit检测模块源文件为chkproc.c,最后更新日期为2006.1.11日。检测原理与rkhunter大致相似,也主要基于签名检测并将ps命令的输出 同/proc 目录作比对。在它的FA

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档