一种基于透明代理的恶意软件检测系统及其方法

文档序号:7773585阅读:334来源:国知局
专利名称:一种基于透明代理的恶意软件检测系统及其方法
技术领域
本发明涉及一种基于透明代理的恶意软件检测系统及其方法,属于信息安全领域,涉及透明代理设备。
背景技术
间谍软件是一种恶意软件,可安装在计算机上,并且在他们不知情的情况下收集有关用户的信息。间谍软件隐藏安装与运行,用户很难检测到。间谍软件长期监视用户的计算机,并收集大量电脑信息,如上网习惯、访问网址、购物习惯等等,但也可能会干扰用户对计算机的控制,如安装额外的软件和重定向Web浏览器主页等等。为应对间谍软件出现,一些公司开发了相关的反间谍软件。在电脑上尤其是 Windows的计算机运行反间谍软件,已变得相当普遍。用户计算机一般会感染多个及间谍软件,感染间谍软件的计算机经常发现系统性能下降,如CPU使用率过高,磁盘被大量占用和网络堵塞等等。许多程序员和一些商业公司已经发布了专门删除或阻止间谍软件的产品。反间谍软件程序一般只用于检测和清除已经安装到计算机的间谍软件。用户可以安排每日、每周或每月扫描计算机,检测和删除已经在计算机上安装的任何间谍软件。这种类型的反间谍软件在计算机上扫描Windows注册表中的内容,操作系统文件和安装程序,并提供一个威胁清单,让用户选择应该删除还是保持。此类反间谍软件根据已知的间谍软件列表与签名来识别恶意软件,同杀毒软件一样,需要实时更新间谍软件库来保持其检测能力。通常间谍软件出现并大量传播以后,其样本被上报给反间谍软件公司,公司们再对其研究,制作其可以被检测出的“签名,,或者“定义”,因此这种检测机制常常是滞后的。目前被广泛采用的解决方案正是此类基于主机的反间谍软件,但是此种方案面临以下几种问题第一,类似于病毒库,间谍软件需要实时更新,并要求有极小的漏报率和误报率,但目前此类反间谍软件都做得不够好,会出现检测滞后,正常软件误删除等现象。第二,有很多间谍软件不是独立运行的,经常作为一个程序组件被打包在音乐播放器或者下载工具中,更多的是作为一个浏览器的插件在运行,此类间谍软件很难被彻底清除。第三, 基于主机的反间谍软件很容易被恶意软件破坏,root-kits级间谍软件越来越多,它是一种特殊的恶意软件,基本上是无法检测到的,因此,基于主机的反间谍软件在很多情况下是不可靠的。另外一种被用来识别恶意软件的方案是利用网络抓包工具,包括siniffer、 wireshark, Tcpdump,这类工具可以分析一个网络是否受到感染。但是此类工具需要抓取大量的数据包,而且在识别恶意软件上也不是十分有效,其多用于反间谍软件发现机器被感染以后取证分析或者用于分析网络故障
发明内容
本发明的目的就是为了解决上述问题,提供了一种基于透明代理的恶意软件检测系统及其控制方法。这种无客户端恶意软件检测方案,部署于网络网关或者路由器处,对出入网络的连接进行检测来识别恶意软件,此种方案有效且易于实施,且使用透明代理技术来实现。为实现上述目的,本发明是通过以下技术方案实现的
一种基于透明代理的恶意软件检测系统,该系统包括一个数据控制模块,其与监控模块连接并发送数据给监控模块;所述监控模块将数据发送给协议检测模块并生成协议类型;所述协议检测模块与一个挑战生成模块连接,挑战生成模块与数据控制模块相连;所述系统还包括一个响应处理模块,该模块与监控模块以及数据控制模块连接。所述的系统位于终端机与远程服务器之间并完成终端机与服务器之间的通信;终端机通过数据控制模块将数据发送给服务器,数据控制模块将所有数据发送给监控模块; 所述数据控制模块接收响应处理模块的处理结果。所述挑战生成模块基于协议生成模块所生成的协议类型生成挑战并将挑战发送
给终端。所述系统还包括一个分类模块,该分类模块与一个报表模块连接。该检测方法包括以下步骤
Stepl 运行在终端机上的应用程序通过该检测系统中的数据控制模块向远程服务器发送原始数据;
Step2 数据控制模块将原始数据发送给监控模块,监控模块将数据发送给协议生成模
块;
Step3 协议生成模块利用协议指纹来识别原始数据的协议类型,并将该协议类型发送给挑战生成模块;
Step4 挑战生成模块基于协议类型为应用程序生成一个挑战,并通过数据数据控制模块将挑战发送给终端上的应用程序;
St印5 终端上的应用程序响应该挑战,响应信息通过数据控制模块发送给监控模块, 然后传输给响应处理模块;
St印6 响应处理模块接收到应用程序的响应,做出响应有效或者无效的判断结果,将结果发送给数据控制模块;
St印7 数据控制模块根据响应判断结果来作出是否继续连接远程服务器的判断;当检测到响应有效时允许应用程序继续连接远程服务器,当检测响应无效时,数据控制模块会报告检测到恶意软件并阻止应用程序继续连接远程服务器。所述Mepl中数据控制模块可以暂停由终端向远程服务器发送原始数据。本发明的有益效果是相比较传统的通过签名机制检测已知恶意软件的方法,本发明所提出的方法可以基于程序的网络行为来确认所有出去的网络会话的有效性。这种方法有两个要点一是应用程序的网络特征可以由部署在企业网络边界的透明代理基于协议指纹识别的方式来确认。二是透明代理产生主动内容挑战来区分合法软件与恶意软件。这种方法不干扰程序的正常运行,对用户是透明的。基于网络的透明代理,可以部署在企业网络出口检测从企业流出的所有流量。 透明代理也可以部署在于工作站或笔记本电脑上前面,只需检查从工作站或笔记本电脑上的发有传出的数据。透明代理通过分析外出的流量,可区分不同的浏览器anternet Explorer, Firefoxj Opera,Chrome) 0针对以浏览器(例如IE)组件形态存在的恶意软件,也可以通过这种方法被检测出来。透明代理也可以识别通过VOIP协议通信的恶意软件,包括会话发起协议(SIP),会话描述协议(SDP ),实时传输控制协议(RTCP ),实时传输协议(透明代理RTP )等等。此种透明代理解决方案与基于主机的方案相比有如下不同
1,因为不需要安装客户端,避免了与其他客户端软件如杀毒软件的冲突,保证用户计算机的可用性。2,不需要更新签名,一些实施方案中也可能需要签名,但是签名只用于提高已知恶意软件识别率。签名只需要在透明代理上更新,实现起来更加方便。3,由于透明代理并不需要安装在每个计算机上,它不会被Rootkit或其他主机上的使用进程隐藏逃避技术的恶意软件所破坏或者干扰。相反,当恶意软件试图向外通讯时, 会被透明代理监控到,并可在一种可控的环境下,对恶意软件进一步分析。


图1为本发明的结构示意图2为本发明的透明代理恶意软件流程图3为本发明在一个企业网络中具体应用的网络架构图; 图4为本发明在笔记本电脑或工作站中具体应用的架构图; 图5为本发明的透明代理恶意软件消息流图; 图6为本发明的透明代理恶意软件的另一种工作方式流程图; 图7为本发明的透明代理恶意软件的另一种工作方式消息流图; 图8为本发明与Web浏览器交互时的恶意软件检测的消息流图。
具体实施例方式下面结合附图和具体实施方式
对本实用新型做进一步说明。在图1中,一种基于透明代理的恶意软件检测系统,该系统包括一个数据控制模块,其与监控模块连接并发送数据给监控模块;监控模块与将数据发送给协议检测模块并生成协议类型;检测模块与一个挑战生成模块连接,挑战生成模块与数据控制模块相连; 该系统还包括一个响应处理模块,该模块与监控模块以及数据控制模块连接。该系统位于终端机与远程服务器之间并完成终端机与服务器之间的通信;终端机通过数据控制模块将数据发送给服务器,数据控制模块将所有数据发送给监控模块;数据控制模块接收响应处理模块的处理结果。图3显示了一个使用该基于透明代理的恶意软件检测系统的企业网络,包括工作站和笔记本电脑。架构是完全透明的,不对进出的协议与数据做任何的修改,可支持各种协议,包括HTTP,HTTPS和VoIP协议,可以处理所有加密和非加密流量。图4显示透明代理在一台笔记本电脑或工作站的具体应用,笔记本电脑或工作站与远程服务器通过透明代理进行通信。该发明用到了网络流量分析技术,但此技术不是直接用于识别恶意软件,其用于识别发出数据的应用程序。通过对截获的数据的数据头信息进行分析,包括时序、源/目的地址、端口等。此外,“HTTP头”指令和特殊的HTTP头标志可能被利用来识别已知的浏览器应用程序,来确定这些程序属于已知的程序、被捕获的恶意软件或者是未知的流量。在图1中,透明代理,包括接收和发送应用程序流量和远程服务器流量的接口。透明代理可能部署于于网络边界,检查出网络的流量。监控模块检查所有计算机上运行的应用程序对远程服务器的数据传输。应用程序等待远程服务器响应。应用程序包括:Web浏览器,VoIP程序,点对点应用程序,数据库客户端,数据库服务器等等。监控模块把接收到的数据流量通过数据接口输送给协议检测模块。协议检测模块分析应用程序发出的数据并利用协议指纹来确定承载数据的协议类型。。协议类型可能是下列之一 =HTTP协议,VoIP协议,会话描述协议,会话发起协议,实时传输控制协议等等。挑战生成模块基于协议类型为应用程序产生挑战,并将该挑战发送给应用程序, 并在数据和挑战之间维持一个状态表。检测生成模块可进一步响应基于应用程序的状态时,它是第一个数据传输。挑战不影响应用程序的正常运行,且对用户是透明的。举例来说,应用程序是一个Web浏览器,挑战是经过编码的页面重定向请求,该请求被目标浏览器接收并处理。挑战生成模块向应用程序发出挑战,响应处理模块接收应用程序针对此挑战的响应,然后作出响应是否有效的处理。应用程序的响应不涉及最终用户。当响应是有效时,数据控制模块可允许数据通过接口与接口传输到远程服务器。 当响应是无效时,数据控制模块可阻止数据通过接口与接口传输到远程服务器。数据控制流程也可以用另外一种方式来实现,数据控制模块首先允许数据被传递到远程服务器,当响应是有效时,数据控制模块允许远程服务器通过接口与应用程序进行通信;当响应是无效时,数据控制模块阻止远程服务器通过接口与应用程序进行通信。该系统还包括一个恶意软件的分类模块,用于识别计算机上运行的恶意软件,还包括一个报表模块,生成恶意软件报表。通过分析应用程序发出的第一个数据、应用类型与自动的非交互应用程序响应来确定恶意软件。响应处理模块作出响应是否有效的处理,并由此确定应用程序是否为恶意软件,并把结果输出给分类模块,分类模块记录检测到的应用程序相关参数,并归入相关分类,并把结果进一步输出给报表模块,用于输出相关报表。图5显示透明代理恶意软件检测消息流。应用程序尝试通过透明代理向远程服务器发送数据。透明代理监控所有应用发出的流量并分析发送应用程序发送信息时所使用的协议类型。透明代理根据应用程序使用的协议类型产生一个主动内容挑战。可利用具体协议的内在属性来产生挑战。主动内容挑战对用户是不可见的其只与应用程序相关。如果应用程序成功发送有效的信息来响应内容挑战,透明代理会确定该数据由一个正常的应用程序产生。恶意软件是不可能正常响应一个精心构造的主动内容挑战。如果应用程序响应的信息是无效的或者在既定的时间内没有发出响应,则可以认定该应用程序是恶意软件,并阻止该数据继续被传送到远程服务器,并报告该机器上存在恶意软件,如图5场景2所示。如果透明代理收到一个有效的应用程序响应,则会把接收的数据转发给远程服务器并允许后续的应用程序与服务器之间的数据通讯,如如图5场景1所示。
最终用户并不需要参与这一进程,而且几乎针对用户来说是没有延迟的,可提供良好的用户体验。恶意软件即使尝试重新连接到相同或其他的服务器都是不被允许的。因此,这种方法是不成功的,对于通过文件替换,线程注入等方式隐藏自身并把流量注入到正常程序中的恶意软件此种方法是相当有效的,相对于正常程序,伪装的恶意软件是不能正确解析并生成一个有效的响应的。图2是透明代理的恶意软件检测流程图。透明代理检查来自至应用程序的数据和暂停数据传输到远程服务器。透明代理识别协议类型并基于协议类型为应用程序产生一个挑战,然后把挑战发送给应用程序。透明代理存储被检测数据与生成的挑战之间的状态对应表。透明代理根据收到的响应作出决策,如果响应是有效的则允许数据继续传输,如果是无效的则阻断数据的继续传输。状态对应表保存在内存中,其记录被截留检测的数据与所生成挑战的对应关系,需要根据挑战的响应决定对应数据的放行或者阻止,内容如表1所示,
表1状态对应表
数据1挑战1数据2挑战2数据3挑战3
图6是另外一种透明代理的恶意软件检测消息流。应用程序通过透明代理发送数据到远程服务器。透明代理检测所有传出的数据,并识别发送消息的应用程序所使用的协议类型。然后产生一个主动内容挑战发送给应用程序。透明代理根据应用程序的响应决定是否允许远程服务器与应用程序进行数据传输。图7是显示的与图6相对的恶意软件检测流程图。图8显示了一个透明代理在与Web浏览器交互时的恶意软件检测消息流,Web浏览器向远程WEB服务器请求一个页面,从Web服务器下载一个页面。透明代理利用随机生成的哈希产生一个挑战,并把这个挑战发送给Web浏览器,挑战内容利用浏览器固有的特征来构造,包括HTML,JAVASCRIPT,Flash等。挑战是一个页面重定向请求编码,被发往WEB 浏览器,该编码不会显示任何内容,用户不可见。只有当浏览器能正确响应该重定向请求, Web浏览器才被允许从远程服务器接收其最初的页面获取请求响应。恶意软件程序不能对挑战做出有效的响应或者是在一定时间内未做出响应,因此会被发现。透明代理检测到的恶意软件,会阻止远程服务器响应并在某台计算机上检测到恶意软件。该发明的透明代理检测引擎应该制定一个框架,这个框架可以处理其他的协议规范。这个框架应该是可扩展的,允许第三方引入新协议及定义协议行为检测签名,如同定义 HTTP协议一样。该发明的透明代理恶意软件检测系统可以用一个独立的硬件设备来实现,它具有精心裁剪的稳定的操作系统,并配置性能强劲的处理器、内存、网卡等,以便于适用于一个大型的企业网络。每个功能模块可以单独设计,模块与模块之间有通讯接口。模块可以用硬件、软硬件结合体、固件来实现。可以使用的计算机语言如C,C++, JAVA, Basic, Matlab 等等;可以使用的硬件如计算机,微控制器,微处理器,ASIC(Application Specific Integrated Circuit), FPGA (Field — Programmable Gate Array) M M ^J ^ fM Π 列,CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件等。计算机,微控制器上可以使用C,C++等编程语言;ASIC,FPGA, CPLD则使用HDL(Hardware Description Language)硬件描述语言,包括VHSIC硬件描述语言VHDL或者Verilog HDL(目前应用最为广泛的硬件描述语言)。上述各种技术组合使用可以实现本实用新型所描述的各种功能。
权利要求
1.一种基于透明代理的恶意软件检测系统,其特征在于该系统包括一个数据控制模块,其与监控模块连接并发送数据给监控模块;所述监控模块将数据发送给协议检测模块并生成协议类型;所述协议检测模块与一个挑战生成模块连接,挑战生成模块与数据控制模块相连;所述系统还包括一个响应处理模块,该模块与监控模块以及数据控制模块连接。
2.根据权利要求1所述的一种基于透明代理的恶意软件检测系统,其特征在于所述的系统位于终端机与远程服务器之间的网络网关或路由器处,并完成终端机与远程服务器之间的通信;终端机通过数据控制模块将数据发送给远程服务器,数据控制模块将所有数据发送给监控模块;所述数据控制模块接收响应处理模块的处理结果。
3.根据权利要求1所述的一种基于透明代理的恶意软件检测系统,其特征在于所述挑战生成模块基于协议生成模块所生成的协议类型生成挑战并将挑战发送给终端。
4.根据权利要求1所述的一种基于透明代理的恶意软件检测系统,其特征在于所述系统还包括一个分类模块,该分类模块与一个报表模块连接。
5.一种权利要求1所述的基于透明代理的恶意软件检测方法,其特征在于该检测方法包括以下步骤Stepl 运行在终端机上的应用程序通过该检测系统中的数据控制模块向远程服务器发送原始数据;Step2 数据控制模块将原始数据发送给监控模块,监控模块将数据发送给协议生成模块;Step3 协议生成模块利用协议指纹来识别原始数据的协议类型,并将该协议类型发送给挑战生成模块;Step4 挑战生成模块基于协议类型为应用程序生成一个挑战,并通过数据控制模块将挑战发送给终端上的应用程序;St印5 终端上的应用程序响应该挑战,响应信息通过数据控制模块发送给监控模块, 然后传输给响应处理模块;响应处理模块接收到应用程序的响应,做出响应有效或者无效的判断结果,将结果发送给数据控制模块;St印7 数据控制模块根据响应判断结果来作出是否继续连接远程服务器的判断;当检测到响应有效时允许应用程序继续连接远程服务器,当检测响应无效时,数据控制模块会报告检测到恶意软件并阻止应用程序继续连接远程服务器。
6.根据权利要求5所述的一种基于透明代理的恶意软件检测方法,其特征在于所述 ^ep 1中数据控制模块可以暂停由终端向远程服务器发送原始数据。
全文摘要
本发明公开了一种基于透明代理的恶意软件检测系统,该系统包括监控模块,协议检测模块,挑战生成模块,响应处理模块,数据控制模块。该系统通过检测终端发送给远程服务器的数据,根据协议指纹确定数据的协议类型,并根据协议类型来生成一个挑战发送给运行在终端上的应用程序。应用程序将对挑战的响应发回给该检测系统,该系统通过响应处理模块在判断响应结果,进而判断是否继续允许终端上的应用软件向远程服务器发送数据,以此来检测恶意软件,具有不干扰程序的正常运行,对用户透明等有益效果。
文档编号H04L29/06GK102497425SQ20111041195
公开日2012年6月13日 申请日期2011年12月12日 优先权日2011年12月12日
发明者任天成, 刘新, 张振威, 景俊双, 王大鹏 申请人:山东电力研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1