特洛伊木马隐藏技术研究
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
・156・
通
信
学
报
2004 年
表1
木马程序 ls, find, du ps, top, pidof netstat killall tcpd, syslogd
Rootkit 包含多个子木马,实现木马程序文件、进程和网络连接等属性的隐藏
被替换的程序 ls, find, du ps, top, pidof netstat killall tcpd, syslogd 目的 隐藏木马的文件信息、目录信息 隐藏木马的进程信息 隐藏网络连接和网卡工作方式 使木马程序无法被正常强制中止 阻止审计系统记录与木马相关的日志信息
2004 年 7 月 第 25 卷 第 7 期
通 信 学 报
JOURNAL OF CHINA INSTITUTE OF COMMUNICATIONS
Vol.25 No.7 July 2004
特洛伊木马隐藏技术研究
张新宇,卿斯汉,马恒太,张楠,孙淑华,蒋建春
(中国科学院软件研究所 信息安全技术工程研究中心,北京 100080)
第7期
张新宇等:特洛伊木马隐藏技术研究
・155・
掉木马连接信息。3)使用网络隐蔽通道技术隐藏木马通信连接信息。4)利用 LKM 技术修 改网络通信协议栈,避免单独运行监听进程,以躲避检测异常监听进程的检测程序。 • 内核模块隐藏。内核级木马一般使用 LKM 技术实现。Linux 操作系统将 LKM 信息 存放在一个单链表中。删除链表中相应的木马信息,就可避过“lsmod”之类管理程序的检查。 由于 LKM 工作在内核空间,对 LKM 的追踪要比一般程序困难得多。 • 原始分发隐藏。软件开发商可以在软件的原始分发中植入木马。如 Thompson 编译器 木马[7]就采用了原始分发隐藏技术,其主要思想是: 第一步:修改编译器的源代码 A,植入木马,包括针对特定程序的木马(如 login 程序) 和针对编译器的木马。经修改后的编译器源码称为 B。 第二步:用干净的编译器 C 对 B 进行编译得到被感染的编译器 D。 第三步:删除 B,保留 D 和 A,将 D 和 A 同时发布。 以后,无论用户怎样修改 login 源程序,使用 D 编译后的目标 login 程序都包含木马。而 更严重的是用户无法查出原因,因为被修改的编译器源码 B 已被删除,发布的是 A,用户无 法从源程序 A 中看出破绽,即使用户使用 D 对 A 重新进行编译,也无法清除隐藏在编译器 二进制码中的木马。 相对其它隐藏手段,原始分发的隐藏手段更加隐蔽。这主要是由于用户无法得到 B,因 此对这类木马的检测非常困难。 从原始分发隐藏的实现机理来看,木马植入的位置越靠近操作系统底层越不容易被检测 出来,对系统安全构成的威胁也就越大。 2.2 通信隐藏 木马常用的通信隐藏方法是对传输内容加密,但这只能隐藏通信内容,无法隐藏通信信 道。采用网络隐蔽通道技术不仅可以成功地隐藏通信内容,还可以隐藏通信信道。 传统的隐蔽通道是定义在操作系统进程之间的,研究[8]表明隐蔽通道也适用于网络。在 TCP/IP 协议族中,有许多信息冗余可用于建立网络隐蔽通道[9]。木马可以利用这些网络隐蔽 通道突破网络安全机制。 变换数据包顺序也可以实现通信隐藏。 对于传输 n 个对象的通信, 可以有 n!种传输顺序, 总共可以表示 log2(n!)比特位的信息。但是该方法对网络传输质量要求较高,接收方应能按照 数据包发送的顺序接收。这种通信隐藏方式具有不必修改数据包内容的优点。 采用网络隐蔽通道技术,如果选用一般安全策略都允许的端口通信,如 80 端口,则可轻 易穿透防火墙和避过入侵检测系统等安全机制的检测,从而具有很强的隐蔽性。 2.3 协同隐藏 操作系统中, 客体的表现是以其属性为基础的, 如一个运行中的程序包括程序文件目录、 程序文件、进程和通信连接状态等属性。为了隐匿表现特征,木马需要将其所有属性隐藏。 由于木马程序一般包含多个属性,因此仅仅依靠单个木马程序或一种隐藏方法不能很好地实 现木马的隐藏。木马通常包含一个完成主要功能的主木马和若干个协同工作的子木马。子木 马协助主木马实现功能和属性的隐藏。 木马协同隐藏可以是多个木马之间的协同,也可以是一个木马的多个模块之间的协同。 Rootkit 就是一个体现了协同隐藏思想的木马。它包含多个子木马程序, 替换 ps、ls、who 和 netstat 等系统管理程序 (参见表 1) , 实现了木马程序文件、 进程和网络连接等属性的隐藏。 正是采用了协同隐藏的工作模式,Rootkit 才具有良好的反检测能力。
Research on the concealing technology of Trojan horses
ZHANG Xin-yu, QING Si-han, MA Heng-tai, ZHANG Nan, SUN Shu-hua, JIANG Jian-chun
(Engineering Research Center for Information Security Technology, Institute of Software, Chinese Academy of Sciences, Beijing 100080, China)
2
隐藏技术
木马植入目标系统后,必然会以各种技术隐藏行踪,避免被发现,尽可能延长生存期。 木马的隐藏技术主要分为三类:本地隐藏、通信隐藏和协同隐藏。本地隐藏主要包括文件隐 藏、进程隐藏、网络连接隐藏、内核模块隐藏、原始分发隐藏等。通信隐藏主要包括通信内 容隐藏和传输通道隐藏。协同隐藏是指木马为了能更好地实现隐藏,达到长期潜伏的目的, 通常融合多种隐藏技术,多个木马或多个木马部件协同工作,保证木马的整体隐藏能力。 2.1 本地隐藏 本地隐藏是指木马为了防止被本地用户发现而采取的隐藏手段。隐藏手段主要有三类: (1)将木马隐藏(附着、捆绑或替换)在合法程序中; (2)修改或替换相应的检测程序,对 有关木马的输出信息进行隐蔽处理; (3)利用检测程序本身的工作机制或缺陷巧妙地避过木 马检测。使用这类方法无需修改检测程序,就能达到隐藏的目的。 • 文件隐藏。1) 定制文件名,伪装成正常的程序。2)修改与文件系统操作有关的程序, 以过滤掉木马信息。3)特殊区域存放。如对硬盘进行低级操作,将一些扇区标志为坏区,将 木马文件隐藏在这些位置。还可以将文件存放在引导区中避免被一般用户发现。4)利用可加 载内核模块(LKM)技术替换系统调用,以隐藏木马文件信息。 • 进程隐藏。1)通过附着或替换合法进程,以合法身份运行。2)修改进程管理程序, 隐藏进程信息。3)使用 LKM 技术替换系统调用,隐藏木马进程结构。4)由于进程管理程 序不列出进程标识号(pid)为 0 的进程信息,因此把要隐藏进程的 pid 设为 0(空转进程) 也可以实现进程隐藏。 • 网络连接隐藏。1)复用正常服务端口,为木马通信数据包设置特殊隐性标识,以利 用正常的网络连接隐藏木马的通信状态。2)修改显示网络连接信息的相关系统调用,以过滤
摘 要:主要研究 Linux 环境下的特洛伊木马隐藏技术,提出了协同隐藏思想,并给出木马协同 隐藏的形式化模型。针对现有木马对抗实时检测的缺陷和通信隐藏能力的不足,采用实时检测对 抗技术和隐蔽通道技术开发了一个内核级木马原型, 改进了木马的隐藏能力。 通过实验结果分析, 这一木马体现了协同隐藏的思想,验证了实时检测对抗技术和网络隐蔽通道技术的有效性。 关键词:数据安全与计算机安全;协同隐藏;形式化模型;特洛伊木马 中图分类号: TP393.08 文献标识码: B 文章编号: 1000-436X(2004)07-0153-07
收稿日期:2004-02-10 基金项目:国家信息与网络安全保障持续发展计划基金资助项目(2002 研 1-B-002) ;国家自然科学基金资 助项目(60083007) ;国家“973”重点基础研究发展规划基金资助项目(G1999035810)
・154・
通
信
学
报
2004 年
它程序,在本地系统进行复制传播。病毒寄生在其它程序上,依赖于特定的工作平台。蠕虫 主要通过网络从一台主机复制感染到另一台主机,占用系统资源和网络带宽。蠕虫一般不需 要寄生在其它程序上,也不依赖于特定的工作平台。而木马不以感染其它程序为目的,一般 也不使用网络进行主动复制传播。木马的一个显著特征是其具有较强的潜伏隐藏能力,隐藏 手段与工作平台密切相关。通过判别是否具有传染性可将木马与病毒、蠕虫区别开来,通过 判别传染途径是局限于本机还是透过网络可将病毒和蠕虫区别开来。 为了提高自身的生存能力, 木马会采用各种手段来伪装隐藏以使被感染的系统表现正常。 本文主要针对 Linux 操作系统进行讨论,但大多数隐藏技术的原理在其它操作系统上同样有 效。 Fred Cohen 等人[1~5]对病毒进行了深入研究, 他们将木马作为病毒的一种特例, 并给出了 病毒和木马的数学模型,但未对木马的隐藏特征和木马协同进行描述和分析。 Harold Thimbleby 等人[6]对病毒和木马模型框架进行了研究, 给出了木马的形式化模型, 对木马隐藏 的特征进行了描述,但也未对木马协同隐藏进行描述和分析。目前对木马的研究主要集中于 木马的实现、防御和检测,本文作者在对木马隐藏技术研究的基础上,提出了木马协同隐藏 的思想,并对其进行分析和形式化描述。 本文组织如下:第 2 部分对 Linux 下的木马隐藏技术进行分类讨论,提出了木马协同隐 藏的思想;第 3 部分给出木马协同隐藏的形式化描述;第 4 部分是原型实验及结果分析,验 证协同隐藏方法的有效性;第 5 部分是结论。
3
特洛伊木马模型
为了深入研究木马,揭示其本质,以计算机程序及其输入输出为研究对象,参考 Harold Thimbleby 木马模型框架[6],给出木马协同隐藏的形式化描述。 3.1 Harold Thimbleby 木马模型简介 定义 1 计算机的状态、程序文本和图像等统称为表示,记为 R。 r ∈R,r 是有限的。 定义 2 E:R ( L| R),E 是表示到环境的映射。在此,表示通常为计算机的系统配置。 L|R 是名字到表示的部分映射,L 是标号的可数集。用户通常关心的是名字,如程序名或文 件名,具体的名字属于集合 L。L|R 的含义是:如果名字有定义,则利用名字获取其相应的 表示。 定义 3 E(r)的域:names r = dom E(r),是可计算的和有限的,其中包含一些独立于 r 的 名字。
1
前言
特洛伊木马(简称木马)是黑客常用的一种攻击工具,它伪装成合法程序,植入系统, 对计算机网络安全构成严重威胁。 每年都有大量相关报道表明网络、 主机系统不断受到木马、 病毒、蠕虫等恶意代码的入侵。 恶意代码泛指木马、病毒和蠕虫等能对计算机系统带来危害的程序,但它们的传播方式 和工作机理各不相同。病毒程序[1]寻找机会感染主机系统中的程序,受感染的程序再感染其
Abstract: Based on the study of the concealing technology of Trojan horses on Linux system, this paper presents an idea of cooperative concealment between Trojan horses and also gives its formal model. Today’s Trojan horses lack the abilities to cope with real-time detection and have poor performance in hiding network communication. The kernel Trojan horse prototype uses anHale Waihona Puke Baidui-real-time detection techniques and network covert channels to enhance its abilities of concealment. It is the embodiment of the idea of cooperative concealment. The experiment results show it has verified the validity of the techniques of avoiding real-time detection and network covert channels. Key words: data and computer security; cooperative concealment; formal model; Trojan horse