为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于网络驱动技术的木马通信检测系统

2017-10-16 9页 doc 36KB 9阅读

用户头像

is_348501

暂无简介

举报
基于网络驱动技术的木马通信检测系统基于网络驱动技术的木马通信检测系统 文章编号:1000—3428(2010)09—0150—03 文献标识码:A 中图分类号:TP393.08 ?安全技术? 基于网络驱动技术的木马通信检测系统 钟明全,李焕洲,唐彰国,张 健 (四川师范大学网络与通信技术研究所,成都 610066) 摘 要:为提高木马程序的网络通信检测率,在比较各种包截获技术优缺点的基础上,设计并实现一种基于 NDIS Hook 驱动的木马通信检 测系统,给出主要模块和数据结构,提出基于网络通信行为分析技术的木马通信识别模型。测试结果表明,该模型能降低...
基于网络驱动技术的木马通信检测系统
基于网络驱动技术的木马通信检测系统 文章编号:1000—3428(2010)09—0150—03 文献标识码:A 中图分类号:TP393.08 ?安全技术? 基于网络驱动技术的木马通信检测系统 钟明全,李焕洲,唐彰国,张 健 (四川师范大学网络与通信技术研究所,成都 610066) 摘 要:为提高木马程序的网络通信检测率,在比较各种包截获技术优缺点的基础上,设计并实现一种基于 NDIS Hook 驱动的木马通信检 测系统,给出主要模块和数据结构,提出基于网络通信行为分析技术的木马通信识别模型。测试结果明,该模型能降低误报率和漏报率, 可截获所有网络通信数据包,识别新的木马通信。 关键词:木马;包截获;NDIS Hook 驱动;木马通信识别 Trojan Communication Detection System Based on Network Drive Technology ZHONG Ming-quan, LI Huan-zhou, TANG Zhang-guo, ZHANG Jian (Institute of Network and Communication Technology, Sichuan Normal University, Chengdu 610066) 【Abstract】To enhance network communication detection of Trojan program, this paper designs and realizes a Trojan communication detection system based on NDIS Hook drive on the base of comparing advantages and disadvantages of various packet capture technology. It gives main modules and data structures, proposes Trojan communication identification model based on network communication behavior analysis technology. Test results show that this model can decrease false positive rate and negative positive rate, acquire all network communication data packet and identify new Trojan communication. 【Key words】Trojan; packet capture; NDIS Hook drive; Trojan communication identification 各种包截获技术及其比较 2.2 1 概述 目前,常用的网络封包截获技术 W有insock 2 SPI、NDIS 计算机网络应用不断丰富,给人们日常工作和学习带来 中间层驱动、NDIS Hook驱动、 WinPcap 等技术。 从工作层很大方便。与此同时,各种病毒程序,尤其是木马程序通过 次方面,NDIS 中间层驱动、NDIS Hook驱 动、 计算机网络渗透到 PC 机中,窃取个人隐私或秘密信息,给 WinPca 都是工作在内核态的,可以截获所有通过网卡的数据 信息系统或个人带来很大威胁。现有杀毒软件和个人防火墙 包,其中,NDIS 中间层驱动、NDIS Hook驱动对系统依赖性 在木马检测中发挥了重要作用,但是漏报率和误报率较 高。 高;Winsock 2 SPI 工作在应用层,CPU 占用率低、效率高、 本文采用内核态包截获技术,对木马工作周期中的网络通 信 程序可移植到微软新一代操作系 V统ista 下,但可能被底层的 阶段进行实时监视,通过对进程运行时产生的网络通信数 据[1]数据包绕过。 进行分析和判定,达到识别木马通信的目的。 从实现的难度方面W,insock 2 SPI 是针对应用层中使用 2 网络通信数据包截获技术的 FTP, HTTP, POP3 和 SMTP 等协议的数据包进行操作,包 2.1 TCP/IP 通信协议与 Windows 系统分层对应关系 较完整,容易提取包内容进行过滤。WinPcap 能够捕获原始 TCP/IP 通信协议层次见图 1,大致可分为 3 个层次:通 数据包,收集网络通信过程中的统计信息,但不能将数据信应用层,协议层和驱动层。通信应用层是一些网络应用程 [2]包 和应用程序相关联。NDIS 中间层驱动程序工作在网络序,如 IE 浏览器、电子邮件收发程序、QQ 聊天软件等,通 层, 下面是网卡驱动程序,驱动程序的设计较为底层,安装过调用 Socket 进行通信编程,运行在操作系统的用户态 下。 过于 复杂。相对而言,NDIS Hook 驱动也工作在网络层,编协议层是 TCP/IP 的通信数据的发送、接收、处理等实际通信 程相 功能的实现 ,工作在操作 系统的核心态 下。 驱 动 层是完 成 对容易一些,并且安装比较简单。因此,本文系统实现选择TCP/IP 通信数据在通信物理硬件上的发送和接收功能,也 工 NDIS Hook驱动技术 。 作在操作系统的核心态下,但层次更低,优先级别更高。 3 基于 NDIS Hook 驱动的木马通信检测系统IE Foxmail 通信应用层 3.1 模块结构 (用户态) Socket 3.1.1 应用程序 SPI协议层 TCP IP 应用程序实现通信数据的收集、加工与显示,其主要功(核心态) 驱动层 作者简介:钟明全(1975,),男,讲师、硕士,主研方向:通信与信 NDIS (核心态) 息安全;李焕洲,副教授、博士;唐彰国,讲师、硕士;张 健, 网卡讲师、博士研究生 个封包缓冲区,这些封包缓冲区的数据联合起来是一个完整 封包采集模块 的网络封包。在 Windows 2000 下,一般不能直接引用结构的 应 公 获取进程路径名模块 用 共 成员变量,而是使用 Windows 2000 定义的 NdisQueryBuffer, 程 模 序 块 流量统计模块NdisGetNextBuffer等函数来得到有用的成员信息。 木马通信判定模块为检测木马程序网络通信,较好的方法是在木马程 序工 作的关 键路 径(网络层 )截 获其 通信的 数据 包 。木马程序为 了 图 2 应用程序功能模块结构 达到窃取信息和控制的目的,其服务端(server)通常要与控制由图 2 可知,封包采集模块采用循环工作模式,周期性 端进行网络通信,于是选择在操作系统底层编 ND写IS Hook 地从封包缓冲区中读取最新通信数据;获取进程路径名模 块驱动程序获取网络通信数据。通过对截获的数据包按照以根据驱动程序返回的进 程ID 从应用层获得进程的路径信息; 太 网数据包结构进行解析,解析出通信过程中使用的协流量统计模块对网络中的通信数据进行统计, T获C得P 流量、 UDP 流量和 ICMP 流量等信息;木马通信判定模块是本系统 议、IP 地址、端口、封包大小、状态等信息,并将这些的关键模块,根据进程产生的通信数据,参照自定义判定 规信息和通信 的进程名关联起来,作为该进程的基本通信则,对进程危险等级进行判定;公共模块包含一些公用的 数信息。对一些特 殊类型的数据包,可以解析出通信中使据结构和公共函数。 用的域名信息,把它 3.1.2 驱动程序 驱动程序实现网络通信原始数据包的截 和进程关联起来。接着将解析出的信息存储于内存空间,应获、解析,并存 用程序以内存共享技术方式读取封包数据。根据预先定义的 放于 内存空间中供 应用程序读取 ,其主要功能 模块结构如 判定规则,由应用程序对网络通信数据进行流量统计和木 马 图 3 所示。 通信危险等级判定。整个木马通信识别如 4 所示。图 网络统计、根据自定义规则 判定通信危险等级 解析网络数据包、获取 实现Hook模块 进程相关信息 协议解析模块公 驱 共 动 截获核心态网络数据包 模 获取进程名模块程 块 序 网卡 封包缓冲区处理模块 通信接口模块图 4 木马通信识别流程 在对常见木马经过深入研究和反复测试的基础上,对木 图 3 驱动程序功能模块结构 马运行时的网络通信行为进行分析和归纳后,得到如下判 定由图 3 可知,实现 Hook 模块用于 Hook 网络通信时的 规则: ProtocolSendHandler和 ProtocolReceive 系统核心函数,以实 (1)如果进行网络通信的进程名与系统进程名(如 services. 现网络封包的截获功能;协议解析模块根据网络封包结构 对 不同协议数据包进行解析,以获得网络通信使用的协议IP 、exe)相同,但其路径不在系统进程目录(system32)下,则等地址、端口等信息;获取进程名模块用于获取通信进程的进 级 程 ID 和进程名信息;封包缓冲区处理模块用于申请内存 空 为高。间,以存储截获的封包信息;通信接口模块实现应用程序 对 驱动程序的辅助控制,如通知驱动程序删除封包缓冲区中 已(2)如果进行网络通信的进程名与系统进程名相似, 如进经结束的封包数据等。 程 svch0st.exe与系统进 程 svchost.exe相似,则等级为高。 3.1.3 应用程序与驱动程序之间的接口 应用程序与驱动(3)如果进程运行时自动发送电子邮件,则等级为高。 程序主要进行封包数据的共享,另外要 (4)如果进程使用 ICMP 协议进行通信,则等级为中。 进行一些 辅助 控制操作 ,它 们之间的 接口 函数为 OnW32(5)如果进程主动向外进行连接,则等级为中。 Deviceiocontro。l应用程序通过 CreateFile 打开驱动程序,然 第 (1)条规则 和第 (2)条规则 基于木马程序 的进程隐藏 原后通过 DeviceIoControl完成与驱动程序的通 信。实现内存共 理进行判定;第(3)条规则基于木马程序传输信息的途径进行 享的原理是:首先在驱动程序中申请内存空间,由于在驱 动判定;第(4)条规则基于木马程序的通信隐藏原理进行判定, 程序中申请的内存空间位于系统地址空间(?0x80000000)上, 为了兼顾误报率与漏报率,在网络通信检测中危险等级定 为为让应用程序能够访问这个内存空间,需要将系统地址空 间中;第(5)条规则基于木马程序网络通信的端口及其状态进行 映射到用户地址空间(<0x80000000)。[3]判定,同样为 了兼顾 误报率 与漏报 率,危 险等级 定为中 。 3.2 木马通信识别模型对于等级为中的进程需综合考虑其进线程行为数据、文件 在 NDIS 接口中,网络封包结构常 用NDIS_PACKET表 操 示。对于不同 NDIS 版本,NDIS_PACKET 的结构内容略有 作数据、注册表操作数据才能做进一步判定。不同,这里主要针对 Windows 2000操作系 统。NDIS_PACKET 一个被检测程序可能同时匹配到以上多条规则,检 测最的定义可以在 DDK 中找到, NDIS_PACKET 中保存一 个 终结果取其中最高等级。如果一个被检测程序不具有上文的 NDIS_BUFFER结构的链表,封包数据 用NDIS_BUFFER表 5 种情形之一时,则判定等级为低。需说明的是,随着被检 示。NDIS_BUFFER的成员变 量 VirtualAddress表示封包的缓 测程序通信行为信息的增加,检测结论是动态变化的。 3.3 NDIS Hook驱动在木马通信检测系统中的实现 在 Windows 2000 操作系统下对木马通信检测系统进行 实现,用到的开发工具 有VC++6.0, MSDN 2002 和 Windows—151— 2003 DDK,同时使用 Windbg和 Dbgview 作为调试分析工具。 开发是一项较复杂的工作,可以利用微 DD软K 提供的例程 作为参考,在其基础上进行改写。应用程序的实现难点在于 将解析的各种信息准确地关联到对应进程上,并根据判定 规 则对该进程的网络通信行为数据进行判定,以得到被检测 程 序木马通信危险等级。因此,定义一个网络通信的数据结构, 如表 1 所示。 木马通信检测系统运行主界面 图 6 表 1 网络通信的数据结构 被检测程序分为:木马程序和普通应用程序,木马通信检 目的 IP/ 源端 IP/ 发送/ 起止 进程 进程名 进程 ID 协议 域名 状态 端口 端口 接收 时间 路径 测系统测试结果见表 2,3 种检测工具的测试结果比较见 3表。TCHAR TCHAR/ TCHAR/ DWORD/ TCHARTCHAR TCHAR DWORD TCHAR TCHAR WORD WORD DWORD /TCHAR 表 2 木马通信检测系统测试结果 行为数据 NDIS Hook 驱动通过修改 Ndis.sys 的导出表 (Export 被检测程序 ICMP 伪造系统 模仿系统 自动发送 主动对外 [4]Table),实现对关键 NDIS API 的挂接。由于协议驱动程序 通信 进程进程电子邮件连接 灰鸽子木马 无 无 无 无 有 在系统启动时会调用 NdisRegisterProtocol 向系统进行协议注 流萤木马 无 无 无 无 有 册,因此这种方法关键在于修 N改dis.sys 所提供的 NdisSend, 波尔木马 无 无 无 无 有 NdisRegisterProtocol/NdisDeRegisterProtocolNdi, sOpenAdap- Iexp1ore.exe 无 有 无 无 有 [5]ter/NdisCloseAdapter函数的起始地 址。图 5 为 NDIS Hook Foxmail.exe 无 无 有 无 有 的工作流程。 Ping.exe 无 无 无 有 有 启动操作系统Windows 2000 表 3 3 种检测工具的检测结果比较 检测工具 被检测程序 木马通信检测系统 Sniffer 软件 Tcpview工具 加载自定义NDIS驱动程序NWDriver.sys 进程信息 通信检测 进程信息 通信检测 进程信息 通信检测 灰鸽子木马 有 能 无 能 有 能 执行入口函数DriverEntry,完成缓冲区初始化、Hook和设备创建 流萤木马 有 能 无 能 有 能 波尔木马 有 能 无 能 有 能 Iexp1ore.exe 有 能 无 能 有 能 调用自定义函数GetNdisModuleAddress得到Ndis.sys在内存中的基地址 Foxmail.exe 有 能 无 能 有 能 Ping.exe 有 能 无 能 无 否 调用自定义函数HookFuction, Hook对应的系统函数 在木马通信检测系统运行过程中,同时开 N启AI 公司的 协议分析软件 Sniffer 和 sysinternals公司 的 Tcpview 工具,检 测情况如表 3 所示。通过对比发现,木马通信检测系统检测 Hook NdisSend, NdisRigisterProtocol和NdisOpenAdapter 到的信息最多、检测率最高;Sniffer 软件不能检测到进程信 息;Tcpview软件不能检测采 用 ICMP协议的网络数 据。测试 调用自定义函数NW_NdisRegisterProtocol, HookTCPIP协议驱动的ReceiveHandler和OpenAdapterCompleteHandler 与检测结果表明,基 于NDIS Hook 的木马通信检测系统能较 准确获取被检测程序网络通信信息,能截获采用各种通信 协在NdisOpenAdapter将协议驱动程序与网卡绑定后,通过自定义函数 NW_NdisOpenAdapter或OpenAdapterCompleteHandler调用自定义 函议的网络通信数据包,能通过其网络通信行为数据分析 出一数NW_HookSend, Hook TCPIP协议驱动的SendHandler 些木马程序,对木马通信过程具有较高的检测率,对被检 测 程序具有一定程度的木马识别率。同时,该系统对普通应用 图 5 NDIS Hook工作流程 程序的网络通信能够进行监视与检测。 由本系统的功能和网络通信数据结构可知,进程名是通 5 结束语信数据关联的主体,进程路径是判定木马通信危险等级的 重本文提出一种基于网络通信行为分析的木马通信检 测机要信息,然而驱动程序在底层获取进程名和路径名比较困 难。制,实现一种基于 NDIS Hook 技术的木马通信检测系统, 给 其原因在于包含路径名 的EPROCESS结构未公开 ,偏移地址出基于判定规则的木马通信识别模型。下一步改进方向是: 错误或非法访问某些核心内存将导致计算机的蓝屏死机 。因 加上进程行为数据、文件操作行为数据和注册表操作行为数此,采取的解决是在驱动程序中获取进 ID程,然后在应 据进一步提高木马识别结果的精度。 用态根据返回的进程 ID 获得进程的路径名信息。 参考文献 4 测试结果 [1] 王万龙, 周育人. 微软新一代操作系统下的个人防火墙研究[J].由于被检测程序运行后可能会破坏主机操作系统, 因此 计算机工程与设计, 2007, 28(23): 5613-5615.测试工作是在虚拟机操作系统中进行。测试环境的主要配置 [2] 苍志刚, 潘爱民. Windows 平台下的网络监听技术[J]. 计算机工 为:主机操作系统 Windows XP Professional SP2,虚拟机软 程与设计, 2004, 25(2): 248-251. 件 VMware Workstation V6.0,虚拟机操作系统 Windows 2000 [3] 罗改龙, 程胜利. 基于端口复用技术的木马研究[J]. 计算机工程, 2007, 33(15): 165-169. Professional SP4 , 虚 拟 机中安 装常 用应用软 件如 Office, [4] 杨志程, 舒 辉, 董卫宇. 基于 NDIS 隐蔽通信技术的木马病毒 Adobe Reader, Winra等。为r 了检测被检测程序的网络通信, 分析[J]. 计算机工程, 2008, 34(10): 147-149. 要求测试环境必须联网,主机上网方式为局域网代理上网, [5] 高泽胜, 陶宏才. 基于 NDIS Hook 与 SPI 的个人防火墙研究与设虚拟机选择桥接方式共享主机 的Internet 连接。木马通信检 计[J]. 计算机应用研究, 2004, 21(11): 279-281.测系统运行主界面如 图6 所示。 编辑 陆燕菲 —152— file:///D|/我的资料/Desktop/新建文本文 档.txt Appliance Error (configuration_error) Your request could not be processed because of a configuration error: "Could not connect to LDAP server." For assistance, contact your network support team. file:///D|/我的资料/Desktop/新建文本文档.txt2012-07-12 20:42:52
/
本文档为【基于网络驱动技术的木马通信检测系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索