Linux操作系统环境下的高级隐藏技术详解.docVIP

  • 3
  • 0
  • 约7.13千字
  • 约 7页
  • 2019-04-05 发布于广东
  • 举报

Linux操作系统环境下的高级隐藏技术详解.doc

Linux操作系统环境下的高级隐藏技术详解 本文深入分析了 Linux环境下文件、进程及模块的高级隐藏技术,其中钮拈: Linux可卸载模块编程技术、修改内存映象直接对系统调用进行修改技术,通过 虚拟文件系统proc隐藏特定进程的技术。 隐藏技术在计算机系统安全中应用十分广泛,尤其是在网络攻击中,当攻 击者成功侵入一个系统后,有效隐藏攻击者的文件、进程及苏加载的模块变得尤 为重要。本文将讨论Linux系统中文件、进程及模块的高级隐藏技术,这些技术 有的已经被广泛应用到各种后门或安全检测程序之屮,而有一些则刚刚起步,仍 然处在讨论阶段,应用很少。 1.隐藏技术 1.1.Linux下的屮断控制及系统调用 Intel x86系列微机支持256种中断,为了使处理器比较容易地识别每种中 断源,把它们从0?256编号,即赋予一个巾断类型码njntel把它称作巾断向量。 Linux用一个中断向量(128或者0x80)来实现系统调用,所有的系统调 用都通过唯一的入口 system_call来进入内核,当用户动态进程执行一条int 0x80 汇编指令时,CPU就切换到内核态,并开始执行system_call函数,system_call 函数再通过系统调用表sys_call_table来取得相应系统调用的地址进行执行。系 统调用表sys_call_table巾存放所有系统调用函数的地址,每个地址可以用系统 调用号来进行索引,例如sys_caIl_table[NR_fork]索引到的就是系统调用sys_fork ()的地址。 Linux用屮断描述符(8字节)来表示每个屮断的相关信息,苏格式如下: 偏移量31....16 —些标志、类型码及保留位 段选择符 偏移量15....0 所有的中断描述符存放在一片连续的地址空问中,这个连续的地址空问称 作屮断描述符表(IDT),其起始地址存放在屮断描述符表寄存器(IDTR)屮, 其格式如下: 32位基址值 界限 其屮各个结构的相应联系可以如下表示.? 通过上而的说明可以得出通过IDTR寄存器来找到system_call函数地址的 方法:根据IDTR寄存器找到中断描述符表,中断描述符表的第0x80项即是 system_call函数的地址,这个地址将在后而的讨论屮应用到。 1.2.Linux的LKM (可装载内核模块)技术 为了使A核保持较小的体积并能够方便的进行功能扩展,Linux系统提供了 模块机制。模块是内核的一部分,但并没育被编译进内核,它们被编译成目标文 件,在运行过程中根据需要动态的插入A核或者从|Aj核中移除。由于模块在插入 幻是作为Linux内核的一部分來运行的,所以模块编程实际上就是内核编程,因 此nJ以在榄块中使用一些由内核导出的资源,例如Linux2.4.18版以前的内核导 出系统调用表(sys_Call_table)的地址,这样就可以根裾该地址直接修改系统调 用的入门,从而改变系统调用。在模块编程中必须存在初始化函数及清除函数, 一般情况卜,这两个函数默认力init_module()以及cleanip_module(),从2.3.13 内核版本幵始,用户也讨以给这两个函数重新命名,初始化函数在模块被插入系 统时调用,在其中可以进行一些函数及符号的注册工作,清除函数则在模块移除 系统时进行调用,一些恢复工作通常在该函数中完成。 1.3丄inux下的内存映像 /dev/kmem是一个字符设备,是计算机主存的映像,通过它可以测试甚至 修改系统,当内核不导出sys_call_table地址或者不允许插入模块时町以通过该 映像修改系统调用,从而实现隐藏文件、进程或者模块的口的。 1.4.proc文什系统 pmc文件系统是一个虚拟的文件系统,它通过文件系统的接口实现,用于 输出系统运行状态。它以文件系统的形式,为操作系统本身和应用进程之间的通 信提供了一个界面,使应用程序能够安全、方便地获得系统当前的运行状况何内 核的内部数据信息,并可以修改某些系统的配置信息。由于pmc以文件系统的 接I」实现,因此可以象访问普通文件一样访问它,但它只存在于内存之中。 2.技术分析 2.1隐藏文件 Linux系统中用来查询文件信息的系统调用是sys_getdents,这一点W以通 过strace來观察到,例如stracels将列出命令Is用到的系统调用,从中可以发现 Is是通过sys_getedents来执行操作的。当查询文件或者A呆的相关信息时,Linux 系统用sys_getedents来执行相应的杳洵操作,并把得到的信息传递给用户空间运 行的程序,所以如果修改该系统调用,去掉结果中与某些特定文件的相关信息, 那么所宥利用该系统调用的程序将看不见该文件,从而达到了隐藏的目的。苜先 介绍一下原來的系统调用,其原型为

文档评论(0)

1亿VIP精品文档

相关文档