admin管理员组

文章数量:1536472

2023年12月29日发(作者:)

第36卷 第8期 Vo1.36 ・计算机工程 2010年4月 ,j April 2010 No.8 Computer Engineering 安全技术・ 文章绩号;l伽o—a¨428(2010)o8__o16l—o2, 文■标识码t A 中圈分类号,N945 Linux下VFS层Rootkit技术研究 丁滟,富弘毅,李宇卓 (国防科技大学计算机学院,长沙410073) 摘要:Linux下VFS层rotikt隐藏层次深,查杀难度大。其典型应用adorn—ng在实际使用时无法屏蔽卡巴斯基等实时监控软件,破坏隐 蔽效果。针对该问题,运用系统调用修改和VFS写函数内容过滤2种方法,设计并实现了相应的改进方案。仿真实验结果表明,该方案易 于实现、效果良好,可以有效提高adore—ng的隐蔽性能。 关健诃:Linux内核;信息安全;rootkit技术;VFS层 Research 0n VFS Layer Rootkit Technique in Linux DING Yan,FU Hong-yi,LI Yu-zhuo (School of Computer,National University of Defence Technology,Changsha 410073) [Abstract]The kernel rootkit at VFS layer hides d ̄ply in Linux,and it is hard to be detected and killed.adore・ng is a ytpical orotkit application, but it can not survive some of the real—time monitoring programs,such as hte Kaspersky Internet security.Aiming at htis problem.the paper proposes two different solutions.Oneis bythemodiifcation of relevant system calls,the otheris byfilteringthe contentwritten bytheVFSwrite cal1.Both these two approaches are easy to be implemented.Experimental results show hte approaches are effective. ]Key words]Linux kernel;information security;rootkit technique;VFS layer l概述 蔽攻击者的入侵活动。 网络时代带来了全球化信息共享,同时也使得信息安全 内核级rootkit又细分为系统调用表修改类、系统调用表 成为备受关注的问题 无论是信息攫取还是信息保护,在当 重定向类以及VFS层rootkit等。系统调用表修改类rootkit 今信息战环境下,只有掌握“攻”、“防”两方面技术,才能 通过修改导出的系统调用表,对与攻击行为相关的系统调用 处于有利地位。rootkit是在攻击者已经获取超级用户访问权 进行替换,隐藏攻击者的行踪,典型应用有Knark,adore等; 限之后,隐藏自己踪迹和保留访问权限的工具,为攻击者提 系统调用表重定向类rootkit并没有修改系统调用跳转表的内 供“保护伞”。近年来,随着Linux系统应用范围日渐广泛, 容,而是首先拷贝了系统调用表,然后将拷贝的系统调用表 针对该系统的rootkit技术也迅速发展,已经从简单的用户级 按照入侵者的意图进行修改,执行入侵者改写的系统调用响 命令替换发展为在Linux内核中进行信息拦截,从系统调用 应函数。然后将system_call从旧的系统调用表上移开,指向 替换到VFS层函数篡改,隐藏层次逐渐深入,隐蔽性越来越 新的系统调用表。此类rootkit的典型应用有SucKIT等;VFS 高。VFS层rootkit在当今隐藏技术中隐藏层次最深,检测难 层rootkit并不修改系统调用层的内容,而是通过修改VFS 度大。研究掌握VFS层rootkit技术对提高网络攻防能力,在 层的具体处理函数,如替换VFS层的file_ops等函数,来实 信息战环境下立于不败之地具有重要意义。 现信息隐藏目的。此类rootkit的典型应用有adoie・ng。 本文对当前流行的VFS层rootkit技术以及经典应用实例 前2类内核级rootkit可以通过检查/dev/kmem来发现系 adore—ng进行分析研究,针对该软件在杀毒软件实时监控下 统调用表是否被篡改或替换 J。而对于VFS层rootkit,此类 暴露的缺陷提出改进方案,并加以实现,以增强软件的隐蔽 工具无法正确检出,一些专门针对VFS层rootkit的检测工具 性。实验证明改进效果良好。 基本处于研究阶段【4J,尚无通用工具出现。通常对于VFS层 2相关工作 rootkit只能够通过完整性校验等工具发现可疑,然后进一步 rootkit技术出现在20世纪90年代早期,主要用于黑客 排查。 在侵入计算机之后,保持继续访问系统的能力。最初的rootkit 由上述可见,基于VFS层的rootkit具有隐藏层次深、查 只是后门程序,之后为了躲避检测工具,研究的方向转向于 杀难度大等特点,成为当今rootkit研究的热点。对该类rootkit 如何有效地隐藏攻击者的各种踪迹,包括访问的文件、启动 进行深入研究,有利于掌握最新的隐藏技术,提供网络攻击 的进程等…。 能力,为打赢信息战做好充分准备。另外,对攻击技术的深 Linux系统的rootkit技术发展经历了用户级rootkit和内 基金项目:国家“863”计划基金资助项日“分布加密存储软件结构 核级rootkit 2个阶段 J。用户级rootkit通过在用户层替换ls, 及其关键技术”(2007AA01Z408) ps等关键命令,屏蔽攻击者的文件、进程等信息;内核级 作者骱:丁滟(1977--),女,硕士,主研方向:操作系统安全, rootkit则基于可装载内核模块(Loadable Kernel Modules, 网络安全 ;富弘毅,博士研究生;李宇卓,工程师 LKM)技术,将具有隐藏功能的模块嵌入系统内核,向用户屏 收藕日期:2009—12_ol E-mail:dingyan_ding@yahoo.com.ca —l61— 

入研究也可以提高人们进行信息安全保护的能力。 3 adore-ng防实时监控研究 作为典型并广泛应用的VFS型rootkit,adore・ng通过截 获VFS层的函数实现了文件目录隐藏、进程隐藏、通信连接 3.2改进方案2 为了使rootkit能够绕过卡巴斯基的日志监控系统,可以 考虑在VFS层对写入卡巴斯基日志文件的内容进行过滤。这 就需要截获VFS层file_operations的write函数,使用笔者自 己实现的wirte函数进行替换。函数具体流程设计如下: 隐藏、信息过滤等rootkit功能 J。 由于adore-ng工作于VFS层,隐蔽层次深,因此一般 rootkit检测工具很难发现。然而对于一些工作在内核层的实 时监控软件,虽然不会对adore—ng的存在进行报警,但会记 (1)判断写操作的对象是否为卡巴斯基日志文件,若是, 则继续(2);否则跳转到(4); (2)判断当前进程是否为adore—ng所隐藏的进程,若是, 则返回;否则继续(3); 录下adore.ng所访问的文件以及进程活动等。 以目前流行的病毒查杀工具卡巴斯基为例,卡巴斯基实 时监控模块采用系统调用替换的方法,对系统调用进行拦截, (3)判断当前缩写内容是否有adore—ng所隐藏的文件或目 录名,若是,则返回;否则继续(4); 获取系统文件、进程等访问行为。如图1所示,卡巴斯基替 换了内核的sys—open函数,由于adore・ng通过修改VFS层 readdir函数隐藏文件,并不对sys—open函数做处理,因此隐 蔽进程访问隐蔽文件等操作就会被卡巴斯基实施监控模块记 录下来。  lopen()1 用户层=二二≥ 执行流 圈1卡巴斯基实时监控过程 管理员检查实时监控日志,就可能发现被隐藏的文件、 进程等,通过对这些信息的分析,就可能使攻击者的来源、 目的全盘暴露。因此,有必要对adore—ng进行改进,使其适 应实时监控环境,增强隐蔽性。 3.1改进方寨1 通过上述分析可知,卡巴斯基通过修改系统调用来记录 用户的行为。那么,如果截取修改过的系统调用,对其所记 录的信息进行过滤即可实现屏蔽敏感信息。在此,仅以open 系统调用为例,其余的系统调用截获类似。 如图2所示,在此方案中,首先查找出系统中原有的 sys—open实现函数的地址,然后在此基础上设计实现自己的 open调用实现函数our_open。该函数首先判断所要open的 文件是否是需要隐藏的文件,若是,则调用系统中原有的 sys_open函数;否则调用Kav—open,让卡巴斯基实时监控函 数正常审计。最后修改系统调用表,使其指向open实现函数。 圃 用户层———÷ 执行流 内核层 圈2改进方案1 通过上述修改,使得对被adore—ng隐藏的文件访问不会 被记录下来,安全管理员无法通过分析实时监控日志而发现 这些文件的存在;而对系统中其他文件的访问则会被正常记 录,安全管理员不会察觉实时监控功能已经受到屏蔽。 (4)调用系统中原有write函数。 通过上述修改,如果此次写操作是向卡巴斯基日志文件 中记录被隐藏文件的访问,那么此次写操作为空操作。而其 他写操作则被正常记录。 3.3改进结果 根据上述设计方案,分别对adore—ng进行修改,并且在 真实环境对改进后的软件进行测试。 测试平台为Fedora Core 5,内核版本2-4.20,adore—ng 的版本为1.54。测试流程如下: (1)开启卡巴斯基实时监控系统; (2)加载改进后的adore—ng模块,隐藏/tarp/test.C文件; (3)打开/tmp/test.C文件; (4)查看卡巴斯基日志文件,查找有关/tmp/test.C的记录; (5)卸载改进后的adore—ng模块,加载未经改进的 adore—ng模块,并隐藏/tmp/test.C文件; (6)打开/tmp/test.C文件; (7)查看卡巴斯基日志文件,查找有关/tmp/test.c的记录。 改进方案1及改进方案2的的测试结果分别如图3、图4 所示。 圈3改进方案1 试锖果 圈4改进方案2舅试结果 (下转第164页) 

数问题,所以,篡改协定信息C是不可行的。 3.2不可追踪性 在该方案中,B观察到的信息为(m ,r,S,c),若曰存储信 长度通常取为1 024 bit或更长。 表示n的长度,模n下的 次指数运算的计算时间是一次乘法运算计算时间的 0.324 61nl倍 J,逆运算和指数运算的计算时间基本相等,一 一息(m ,r, ,c),则当A公开(佩 c)后, 可以通过如下方程: =次Hash运算的计算时间不多于一次模乘运算时间 j。对文 献[2]提出的基于Schnorr签名算法的部分盲签名方案、基于 DSA变形签名算法的部分盲签名方案 和本文方案进行比 (as一 )[ )]mod(p一1) ( ) (r 一6)mod(p一1) =r,: y岛r g ̄modP 较,方案的计算量如表1所示,其中,E,I,M,H分别表示取 模意义下的指数运算、逆运算、乘法运算和Hash运算。 表1计算效率比较 部分盲签名方案 基于Schnorr签名算法 基于DSA变形签名算法 总运算量 6E+3I+5M+2H 7E+4I+12M 求解 , , ,从而找出(m ,,, ,c)和( ,r ,S ,c)的联系,但 解出 , , 必须计算离散对数,因此,在难于计算离散对数 的前提下,该方案满足不可追踪性。 3.3不可伪造性 3.3.1 消息提供者A伪造合法盲签名的可能性 签名者在盲消息中置入随机因子,使攻击者不能推测签 名者所签消息的具体内容,该随机性可有效抵御选择明文攻 击,防止伪造H】。在安全的签名方案中,用户不能除去签名 者的随机因子。 在此方案审,签名者 随机选择k∈Z:,计算r=g rnodp, 并满足( p一1)=1,B发送r给A,A发送m =(r ) (, 一 mod 本文方案 6E+2I+l5M 由表1可知,本文方案的效率高于基于Schnorr签名算 法和基于DSA变形签名算法的部分盲签名方案。 4结束语 本文提出的方案实现了预期目标,与文献【2】提出的盲签 名方案相比,其效率得到提高,具有较高应用价值。 (P一1)给B,B发送 =删 1一kmod(p一1)给A。如果攻击 者A试图去除随机因子k,则攻击者必须从Y=g roodP和 r=g modP计算得到 和k,而解决此类问题要面临有限域 上求解离散对数的难题。 3-3.2签名者伪造合法盲签名的可能性 参考文献 [1]Abe M,Fujisaki E.How to Date Blind Signatures[C]//Proc.of Cryptology-Asiacrypt’96.Berlin.Germany:Springer,1996:244—251. ,【2]张 彤,王育民.几种部分盲签名的算法设计及其安全性分 析(J].西安电子科技大学学报,2004,3l(6):963-066. 签名者B伪造签名面临2大困难:(1)冒充用户A将消息 盲化,由m =(, ) (r 一 roodfP—1)可知,在对 , 未知的 情况下,签名者 无法完成对消息m的盲化。(2)冒充用户A [3]辛向军,李发根,肖国镇.对几种部分盲签名方案的安全性分析 与改进[J1.西安电子科技大学学报,2006,33(6):953-984. [4]Ferguson N.Single Term Off-line Coins[Cl//Proc.of Cryptology-- Eurocrypt’93.Berlin,Germany:Springer,1994:3 18--328. 对签名脱盲,由s =(as一 )【 、】 mod(P一1)可知,在 , 未 知的情况下,B无法完成对签名S的脱盲。解决上述问题时, 将面临有限域上求解离散对数的难题。 [5]Chen Chien-一Yuam,Chang Chin--Chen,Yang Wei-Pang.Hybrid Method for Modular Exponentiation wih Precomputtation[J]. Electronics Letters,1996,32(6):540--541. 3.4效率分析 在进行签名的过程中,指数运算、逆运算、乘法运算和 Hash运算的耗时比例很大,一般来说,在实际应用中,n的 (上接第162页) 如上所述,通过上述2种方案改进的adore—ng模块都可 [6]Simmons G J.Contemporary Cryptology:The Science of Information Integrity]M].New York.USA:IEEE Press.1992. 编辑陈晖 4结束语 Linux下VFS层rootkit隐藏层次深,一般的rootkit侦测 工具难以发现。本文对VFS层rootkit的典型应用adore--ng 进行研究,针对其无法屏蔽内核级实时监控工具的问题提出 2种改进方案,并加以实现。实验结果表明,改进效果良好, 卡巴斯基无法检测到对隐藏文件的访问。 以成功屏蔽卡巴斯基的实时监控。2次测试中在加载修改过 的adore—ng模块后,卡巴斯基均无法记录对隐藏文件的操作; 而加载未修改的adore—ng模块时,卡巴斯基实时监控生成该 文件被打开操作的相关记录。 3.4改进方案比较 实验证明,上述2种改进方案均可以有效地屏蔽卡巴斯 基的实时监控。但是,作为攻击程序的研究,本身就是在执 参考文献 [1]Andreas B.Unix and Linux—based Rootkits Techniques and Countermeasures[Z].(2004一-04—30).http://www.ifrst.org/confe— rence/2004/papers/c 1 7.pdf. 行环境、访问资源等很多受限情况下进行,因此,上述2种 方案都存在一定的局限性,对所执行的环境有比较严格的要 [2]Alisa S.Rootkit Evolution]Z].(2008--08-28).http://www.viruslist. com/en/analysis?pubid=204792016. 求。第1种方案要求严格控制系统模块的加载顺序,保证修 改后的aodre.-ng模块在卡巴斯基监控模块加载之后加载。具 [3]Samhain Labs.Detecting Kemel Rootkits[Z].(2003・-06—17).http:∥ WWW.ists.dartmouth.edu/library/409.pdf. 体实现时,攻击者可以通过修改系统启动脚本等方式来控制 启动顺序。第2种方案在VFS层对写文件的内容进行过滤, [4]庄泗华,王剑,张福新.检测Linux下的VFS型内核后门软 件[JJ.计算机应用研究,2005,22(5):194-.196. [5]Adore—ng[Z].(2004—03—25).http://stealth.7350.org/rootkits/adore・-ng・ 0.56.tgz. 可能会对系统造成一定的性能损失。因此,在该方案的实现 中首先进行严格条件匹配,尽量将文件内容判断的情况减少 到最低。 编辑陈文 164一 

本文标签: 系统方案调用隐藏文件