admin 管理员组文章数量: 887021
2023年12月19日发(作者:node添加环境变量)
2014年第02期 ■doi:10.396 .issn 1671-1122.2014 02 008 一种基于Windows 内核驱动的可疑样本 采集系统的设计与实现 张涛 ,焦英楠 ,禄立杰 ,文伟平 (1.北京大学软件与微电子学院,北京102600;2.国家计算机网络应急技术处理协调中心,北京100029) 摘要:文章研究一种结合规则库扫描和基于Windows内核驱动的程序行为分析的可疑样本采集系 统,将大大提高样本采集的全面性和准确性,对加快病毒的发现和病毒库的更新具有重要意义。文章首 先分析Windows操作系统的体系结构,接着给出了基于Windows内核驱动的可疑样本采集系统的整体 架构,最后根据系统架构对各个模块进行详细设计和实现,并给出了一个测试用例及结果分析。实验结 果表明,该系统能够准确、高效地采集可疑样本信息。 关键词:内核驱动;可疑样本采集;规则库 中图分类号:TP309 文献标识码:A 文章编号:1671—1122(2014)02—0041—07 The Design and Implementation of Suspicious Sample Collection System based on Windows Kernel Driver zHANG Tao1JIAO Ying—nan2LU Li-jie1,WEN Wei—ping ,,(1.Department ofinformation Security,SSM,Peking University,Beijing 102600,China;2.National Computer NetworkEmergencyResponse Technical Team/Coordination Center,Beijing 100029,China) Abstract:The study of suspicious sample collection system with the rule-based scanning and procedures behavior analysis based on Windows kernel driver will greatly enhance the comprehensiveness and accuracy of sample collection,and it has important significance to accelerate the discovery of the vius arnd the vius database rupdates.Firstly,this paper analyzes the architecture of Windows operating system and then gives the overall system architecture of he suspitcious sample collection system based on Windows kernel drivers.Finally,according to the system architecture,the paper detailed designs and implements of each module,and gives examples and the results of a test.The experiment shows that he systtem is capable of accurately and eficifently collect samples of suspicious information. Key words:kernel driver;suspicious sample collection;rule base 0引言 随着计算机网络技术的不断发展,人们在享受高速网络提供的便捷服务的同时,也面临着越来越多的网络安全问题 和安全威胁。面对网络上数量如此庞大的病毒和木马程序,我们目前主要依靠安全厂商的杀毒软件产品进行防御和杀毒。 但是这些安全产品大多依靠于病毒库进行查杀,而病毒库需要等待病毒较大规模发作、安全厂商捕获到病毒和木马样本, 并经分析后才能更新,需要一段时间才能完成。而这段时间内用户的电脑仍然面临着威胁,特别是零日漏洞的安全威胁。 目前已经采用可疑样本采集系统的厂商,检测可疑样本的方式仍然是通过病毒库的方式进行全盘扫描,在扫描后找 出一些可疑的程序样本,但还不能确定这些是否是木马或者病毒的样本程序。显然,这种检测方式依然存在依赖病毒库 时效性的问题。 因此,研究一种结合规则库扫描和基于Windows内核驱动的程序行为分析相结合的可疑样本采集系统,将大大提高可 ● 收稿日期:2013—08—23 基金项目:国家自然科学基金【61170282】 作者简介:张涛(1986-),男,江西,硕士研究生,主要研究方向:漏洞分析和漏洞挖掘;焦英楠(1983一),女,辽宁,工程师,硕士,主 要研究方向:软件工程、信息安全等;禄立杰(1974一),男,河北,硕士研究生,主要研究方向:软件工程;文伟平(1976一),男,湖南,副 教授,博士,主要研究方向:网络攻击与防范、恶意代码研究、信息系统逆向工程和可信计算技术等。 41●I~
2014年第O2期 疑样本采集的全面性、准确性和时效性,对加快病毒和木 马程序的发现和病毒库的更新,保障用户的安全具有非常 重要的意义。 1 Windows内核驱动相关技术 1.1内核驱动技术 Windows操作系统分为用户模式和内核模式,一般的 用户进程运行在用户模式,驱动程序和内核组件运行在内 核模式。Windows内核驱动程序依据其用途不同,主要分 为即插即用驱动程序、内核扩展驱动程序和文件系统驱动 程序三大类。其中,即插即用驱动程序通常是为了驱动硬 件设备而由硬件厂商提供,与Windows的I/O管理器、即 插即用管理器和电源管理器一起工作;内核扩展驱动程序 扩展内核的功能,提供了访问内核模式代码和数据的途径; 文件系统驱动程序接收针对文件的I/O请求,再进一步将 这些请求转变成真正对于存储设备或网络设备的I/O请求, 从而满足客户的原始请求。 内核驱动程序不同于用户模式的应用程序,通常来说, 内核驱动程序设置了一系列回调函数集合,这些回调函数 在内核驱动程序中被称为例程,它们被操作系统的I/O管 理器在适当的时候调用。 根据驱动程序的类型,I/O管理器在如下所示的条件 出现时,就会调用驱动程序例程,这些条件有:装入驱动 程序、卸载驱动程序、插入或移走设备、用户模式程序发 出一个I/O系统服务调用、驱动程序能够使用共享硬件资 源以及在真实设备运行期间的各个关键时刻。 内核驱动程序有一些关键的数据结构,包括驱动程序 对象、设备对象以及I/O请求包,现对其进行简要描述: 1)驱动程序对象 每个驱动程序只有唯一的一个驱动程序的对象。当 装入・个驱动程序时,I/O管理器建立一个驱动程序对象。 如果驱动程序初始化失败,I/O管理器删除该对象。在 DriverEntry初始化的过程中,直接设置各派遣例程的入口 地址到驱动程序对象的各个域里面。 2)设备对象 I/O管理器和驱动程序在任何时刻都需要知道I/0设 备所进行的工作。设备对象通过保存关于设备特征和状态 的信息,使上述任务成为可能。系统上的每个虚拟、逻辑 和物理设备有一个设备对象。 3)I/O请求包(1RP) IRP是一个内核“对象”,它是一个预先定义的数据 结构。带有一组对它进行操作的I/O管理器例程。I/O管 理器接收一个I/O请求,然后在把它传递到合适的驱动程 序堆栈中的最高驱动程序之前,分配并初始化一个IRP。 一个IRP有一个固定的首部和可变数目的IRP堆栈 单元块。每个I/O请求有一个主功能代码(如IRP_MJ— CREATE对于文件打开)并可能有次功能代码。IRP的固 定部分(IRP结构自身)含有IRP的固定屙陆,每个堆栈 单元(一个IO—STACK—LOCATION结构)事实上含有大多 数有关的IRP参数。当一个IRP由多个驱动程序处理时, 使用多个IRP栈单元。每个驱动程序从当前IRP栈单元得 到它的IRP参数。 1.2 SSDT H00K驱动 SSDT(System Service Dispatch Table,系统服务描述符 表)用来查询处理系统调用的特定函数。也就是说,这个 表把ring3下UserMode的Win32 API同ringO下Kernel API 相联系。 SSDT通过索引系统调用号来查找在内存中的函数 地址。而另一个被称为SSPT(System Service Parameter Table,系统服务参数表),它则指定了每一个系统服务的 函数参数的字节数。KeServiceDescriptorTable是一个内核 的导出表,这个表中包含一个指向部分SSDT的指针。而 SSDT中则包含着内核的主要部分,Ntoskrn1.exe中的核心 系统服务的实现。 通过修改SSDT中的函数入口地址来HOOK SSDT中 的函数,可以过滤掉你所关心的特定结果,从而欺骗操作 系统。比如,你可以隐藏特定的进程,隐藏文件,隐藏端 口等。 1.3TDI驱动 TDI(Transport Driver Interface,传输层接口)使网络 API驱动程序可以按照TDI接口来调用更低层的协议驱动 程序,消除了网络API与低层的传输协议之间的紧耦合关 系。按照TDI接口来实现的传输协议可以被多个TDI客户 使用。 在TDI这一层,网络API的内核驱动程序是TDI客户,
而协议驱动程序则是TDI传输器。网络API驱动程序接收 各种形式的网络请求,例如,名称解析、建立连接、发送 或接收数据等,TDI使得这些网络请求被统一描述,因而 各种传输协议只要按照TDI的规范来实现,就可以被网络 API使用。 1.4 NDIS中间层驱动 NDIS(Network Driver Interface Specification,网络驱 动程序接口规范)为传输层提供了标准的网络接口。在 Windows操作系统中,所有的应用程序都最终通过调用 NDIS接口,实现网络访问。 NDIS支持三种类型的驱动程序: 1)协议驱动程序:对上层应用程序开放TDI接口,对 下层驱动程序开放Protocol接口,与下层Miniport接口对接, 实现协议驱动功能。 2)中间层驱动程序:位于物理网卡驱动程序(即微软 官方所称的微型端口驱动程序)之上,同时具备Miniport 接口和Protocol接口,可与上、下层驱动程序对接,提供转 发驱动功能。 3)微型端口驱动程序:开放Miniport接口,再通过 NDIS接口完成对物理网卡的操作,实现对物理网卡的驱动 功能。 2 Windows体系结构 2.1 Windows内核模式 内核模式的构成文件是系统的核心文件,主要包括 HAL.DLL、NTOSKRNL.EXE、设备驱动、文件系统驱动、 图形设备驱动、WIN32K.SYS六个部分。 其中,HAL(硬件抽象层)使得reactOS内核可以运行 在不同的X86母板上。HAL为内核抽象母板的特定代码, 是对不同母板定义一种抽象的接口,并向上提供一种标准 的接口调用。 NTOSKRNL又分为两层,第一层称为核心层(CORE), 提供非常原始且基本的服务,如多处理器的同步、线程调度、 中断分派等,第二层是执行体(EXECUTIVE),内核执行 体提供了系统的服务,这里的服务指的是系统函数,这些 函数可以被划分为具备虚拟存储的内存管理、对象管理、 进程线程管理、配置管理、安全引用监视、I/O(输入/输出) 管理、PNP(即插即用管理器)、电源管理、缓冲管理器以 2014年第O2期 及本地过程调用(LPC)管理等多个类别。 设备驱动程序是核 态可加载模块(以.SYS为扩展名, 存放在%SYsTEMR0OT%sYsTEM32\DRIVERs目录),它 们是I/O管理器和相关硬件设备的接口。 文件系统驱动程序也是核心态可加载模块(以.SYS为 扩展名,存放在%SYSTEMROOT%SYSTEM32\DRIVERS 目录),文件系统其实是强加给存储硬件的一种文件存放规 则。某类文件系统其实就是按照它的文件存取规则在存储 器上组织文件的信息。 图形设备驱动很独特,只有内核模式设备驱动 WIN32K.SYS才能启动。 WIN32子系统是Windows操作系统的内核部分(原生 子系统,其他的子系统是可以分割的),如果没有这个子系 统,Windows操作系统就不能运行,原因是WIN32的文档 化的API都是通过这个子系统实现的。WIN32K又被划分 成USER32和GDI32两个部分。 2.2 Windows用户模式 用户模式是Windows系统和使用者直接交互信息的层 次,主要包含以下三个部分: 1)核心DLL(动态链接库) 核心DLL主要包括NTDLL.DLL、USER32.DLL以及 KERNEL32.DLL。 2)系统核心进程 系统的核心进程主要包括SERVICES.EXE、SVCHOST. EXE、LSASS.EXE和WINLOGON.EXE四 3)系统应用程序 系统应用程序主要提供管理系统的一些功能,包括进 程管理器、用户控制面板和系统策略管理等多种应用程序。 3系统设计与实现 3.1开发环境 本系统开发过程中搭建的主要环境描述如下: 1)两台主机:一台主机(HOST),一台目标机(TARGET) 2)操作系统:Windows Server 2003 3)开发工具:Windows DDK 3790.1830,Visual Studio 2008,MS SQL Server 2008 4)调试工具:WinDbg 6.6,虚拟机 5)版本控制工具:SVN 1.6
2014年第02期 这两个目录是许多木马、病毒程序写入数据的地方。通过 对采集数据后的分析发现,在C:\Windows目录下存在G— Server.exe、G—北京:电子工业出版社,2007. 【5]范昕炜.支持向量机算法的研究及其应用fD1.浙江:浙江大 学,2003. 【6百度百科6】htm Server.dll和G—Server—Hook.dll三个隐藏文件, 灰鸽子[EB/OL].http://baike.baidu.corn/view/25407. 信息网络安全, 在隐藏进程列表中,我们也发现了G—Server.exe这个进程 被隐藏了,而这些正是“灰鸽子”木马的典型特征,因为我 们的测试样本用到了“灰鸽子”木马,说明本系统可以准 [7]池水明,周苏杭.DDoS攻击防御技术研究 2012,(05):27—31. [8】黄华军,王耀钧,姜丽清.网络钓鱼防御技术研究l JIl信息网络 确地发现该木马。 4-2.3可执行模块注入检测 对操作系统的关键进程,如Explorer.exe、SVCHOST. EXE、winlogon.exe等的加载模块进行检测,通过对比正 常的加载模块,我们发现在Explorer.exe进程中,其加载模 块包含vdl1.dll动态链接库,而这个正是我们前面测试样本 中“威金”病毒的特征。 4.3安全-陛分析 作为一个安全检测系统,需要检测木马和病毒等各种 有害攻击,所以其自身的安全性至关重要。 1)原始数据的采集是由底层的内核驱动来实现,在操 作系统启动还未登录时就开始工作,可以有效检测木马隐 藏的信息。 2)采集到的原始数据以自定义的文件格式保存,避免 以明文的形式存在,防止因原始数据文件丢失而产生泄露。 3)工作在操作系统应用层的数据采集系统、数据分 析系统均在内核实施了驱动级别的保护,以阻止被木马、 病毒或其他恶意行为终止。 5结束语 本文针对Windows内核架构模型,切实调研了现有研 究成果,设计和实现了基于Windows内核驱动的可疑样本采 集系统。本文仍有进一步的工作要做:在现有基础上做进一 步的优化设 将支持向量机算法应用于采集系统中,在大 规模的网络环境中进一步测试、改进和优化。 (责编杨晨) 参考文献 …1 Mark E.Russinovich,David A.Solomon.深入剖析Windows操作系 统(第四版)fM】.北京:机械工业出版社,2007. 【2】杨蛟龙.基于SSDT HOOK技术的Ring0级进程保护组件设计与 实现[D].北京;北京理工大学,2009. [3方飞,李兵.3]Windows系统TDI驱动关键技术的研究 通信技术. 2010,43(7):3. 【4]林锐,韩永泉.高质量程序设计指南——c++/c语言(第3版)口 安全,2012,(O4):3O一35 [9]方欣,万扬,文霞等.基于协议分析技术的网络入侵检测系统中 DDoS攻击的方法研究U】l信息网络安全,2012,(04):36-38. 【1O]范光远,辛阳防火墙审计方案的分析与设计卟信息网络安全, 2012,(O3):81-84. [11】梁宏,刘佳男,李勇.“火焰”病毒分析与防范【『 信息网络安全, 2012,(08):157—159. 【12]曹子建,赵宇峰,容晓峰.网络入侵检测与防火墙联动平台设计 u Jl信息网络安全,2012,(09):12-14. [13]杨青锦.一种信息安全、实现简单的移动设备位置信息交互方式 卟中国科技信息,2013,(22):111—113. [14]韩伟红,隋品波,贾焰.大规模网络安全态势分析与预测系统 YHSASU1信息网络安全,2012,(O8):11-14. [】5】宋岩,王天然,徐皑冬,等,控制系统Safe-Sec安全通信方法研 究[I】_自动化仪表,2013,34(11):30-33. 【16]蒲石,陈周国,祝世雄.震网病毒分析与防范 信息网络安全, 2012,(02):40—43 【17】龙丽萍,陈伟建,杨拥军,等.基于双因子认证技术的RFID认 证协议的设计【JIl计算机工程与设计,2013,34(11):3726—3730. [18]余晓姿,马兆丰,钮心忻,杨义先.基于分类的未知病毒检测方 法研究卟信息网络安全,2012,(11):48-51. [19】乔宏明,姚文胜.基于策略提升公共云存储信息安全水平的方案 研究[I1l移动通信,2013,(21):53—57 [20]魏为民,袁仲雄网络攻击与防御技术的研究与实践U1l信息网 络安全,2012,(12):53-56. 【21]杨继武.基于稀疏距离入侵特征表达的信息安全检测算法卟科 技通报.2013,29(10):24—25. [22】朱峰.虚拟社会防控体系研究【JI_信息网络安全,2012,(08): 230-231. [23]张雪峰,周顺先.基于进程防火墙与虚拟盘的非法信息流过滤方 法【l1.微型机与应用,2013,32(20):51—53. [24】王希忠,曲家兴,黄俊强,等.网络数据库安全检测与管理程序 设计实现卟信息网络安全,2012,(O2):14—18 【25]李淳,赵建保,申晓留.多评估时间段的网络安全态势感知方法 Ⅱll计算机应用,2013,33(12):3506—3510. [26]曲洁,朱建平 等级保护与关键基础设施防护的融合研究卧信 息网络安全,2011,(12):84—88. 【27]赵少卡,李立耀,凌晓,等基于OpenStack的清华云平台构建 与调度方案设计r『1.计算机应用,2013,33(12):3335—3338. f28]戴瑾,刘波,卞皓宇.基于云计算的电子邮件安全服务系统的设 计与实现【lI_计算机应用,2013,33(12):3350—3353. [29】吴轩亮.三网融合下城域网DDoS攻击的监测及防范技术研究卟 信息网络安全,2012,(03):45—48. [3O】李春艳,张学杰.基于高性能计算的开源云平台性能评估叭.计 算机应用,2013,33(12):3580-3585. [31】黄俊强,方舟,王希忠.基于Snort—wireless的分布式入侵检测 系统研究与设计 信息网络安全,2012,(02):23—26. 47
版权声明:本文标题:一种基于Windows内核驱动的可疑样本采集系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703001102h439128.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论