一种基于云安全的网络数据流分析方法和装置与流程

文档序号:12040287阅读:259来源:国知局
一种基于云安全的网络数据流分析方法和装置与流程
本发明涉及计算机网络技术领域,具体涉及一种基于云安全的网络数据流分析方法和装置。

背景技术:
高级持续性威胁(APT,AdvancedPersistentThreat)是指特定组织使用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。当前,APT已成为各级各类网络所面临的主要安全威胁。它使网络威胁从散兵游勇式的随机攻击变成有目的、有组织、有预谋的群体式攻击。因此为了保护网络安全,需要对网络流量进行分析,检测网络行为是是否包含APT攻击。当前业内的PAT检测方案是在PC机上实现的。为了便于理解,首先简单介绍一下网络行为。网络行为可以理解为需要通过网络进行的各种行为,种类繁多,例如包括:HTTP(hypertexttransportprotocol,超文本传送协议)访问,常见的有下载文件或上传信息;SMTP(SimpleMailTransferProtocol,简单邮件传输协议)请求,收发电子邮件;DNS(DomainNameSystem,域名系统)请求,解析域名对应的IP地址等信息等等。通常一个应用程序如果需要连接网络,需要通过操作系统(如Windows)提供的API(ApplicationProgramInterface,应用程序接口)接口发送连接网络的请求,操作系统接收到应用程序的这种网络请求后,会接收应用程序要发送的数据,并对接收到的数据进行封装,之后将封装的数据发送给物理设备(如网卡等),最后由硬件设备将数据传出。在应用程序访问网络的过程中,操作系统在处理相关数据的时候,会使用一些协议驱动和过滤驱动来获取网络行为的数据。因此,在现有的APT检测方案中,通过在客户端注册协议驱动、创建与操作系统相似的过滤驱动、利用操作系统提供的应用程序编程接口函数(hook函数)截获当前网络行为的信息、接管程序调用网络编程接口函数(Winsock)的请求或者是利用注册防火墙回调等方式,截获应用程序的当前网络行为的数据包。然后仅对数据包的字节进行特征匹配,不进行内容分析,来一个数据包就进行扫描一次,匹配一下数据特征,如果匹配到有APT攻击风险的数据特征,则认为是APT攻击包。但是,现有的这种APT检测方案中,由于一个数据包往往只是一个消息中的一小部分,因此这种检测没有针对性,并且逐个数据包进行匹配,效率比较低。

技术实现要素:
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于云安全的网络数据流分析方法和装置。依据本发明的一个方面,提供了一种基于云安全的网络数据流分析方法,该方法包括:抓取网络数据流中的数据包;对抓取的数据包进行组包处理,还原成消息;确定还原成的消息所对应的网络协议;根据还原成的消息所对应的网络协议,对该还原成的消息进行分析处理。可选地,所述对抓取的数据包进行组包处理,还原成消息包括:根据抓取的各数据包的TCP头中的TCP序列号,按照TCP序列号数值小的在前,大的在后的顺序对各数据包进行排序;其中,TCP序列号标志数据包在数据流中的位置;对于排序后的数据包,将TCP头中的确认号码相同的数据包进行组包处理,还原出至少一条带网络协议格式的消息。可选地,所述对该还原成的消息进行分析处理还包括:从还原成的消息中提取文件,对所提取文件进行分析。可选地,所述对所提取的文件进行分析包括以下几种方式中的至少一种:将提取出的文件发送到云安全服务器进行查询;对提取出的文件进行静态安全扫描;将提取出的文件导入云安全服务器的蜜罐中进行分析。可选地,所述抓取网络数据流中的数据包包括:从内网和外网之间的网关处的网络数据流的旁路数据流中抓取数据包。根据本发明的另一方面,提供了一种基于云安全的网络数据流分析装置,该装置包括:抓取单元、组包单元、网络协议分析单元和与不同网络协议一一对应的多个网络协议扫描单元;抓取单元,适于抓取网络数据流中的数据包;组包单元,适于对抓取单元所抓取的数据包进行组包处理,还原成消息;网络协议确定单元,适于确定还原成的消息所对应的网络协议,并将该消息发送给对应的网络协议扫描单元;每个网络协议扫描单元,适于对所接收的消息进行分析处理。可选地,所述组包单元,适于根据抓取单元所抓取的各数据包的TCP头中的TCP序列号,按照TCP序列号数值小的在前,大的在后的顺序对各数据包进行排序;其中,TCP序列号标志数据包在数据流中的位置;对于排序后的数据包,将TCP头中的确认号码相同的数据包进行组包处理,还原出至少一条带网络协议格式的消息。可选地,所述每个网络协议扫描单元,进一步适于从消息中提取文件,对所提取文件进行分析。可选地,所述每个网络协议扫描单元适于根据以下几种方式中的至少一种,对所对所提取的文件进行分析:将提取出的文件发送到云安全服务器进行查询;对提取出的文件进行静态安全扫描;将提取出的文件导入云安全服务器的蜜罐中进行分析。可选地,所述抓取单元,适于从内网和外网之间的网关处的网络数据流的旁路数据流中抓取数据包。根据本发明的这种抓取网络数据流中的数据包,对抓取的数据包进行组包处理,还原成消息,确定还原成的消息所对应的网络协议,根据还原成的消息所对应的网络协议,对该还原成的消息进行分析处理的技术方案,由于进行组包处理,将散碎的数据包重组成有意义的消息,在此基础上进行协议分析,可以有针对性地进行分析,且相对于现有的逐个数据包进行扫描的方案,提高了分析效率和准确度。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的一种基于云安全的网络数据流分析方法的流程图;图2示出了根据本发明一个实施例的一种基于云安全的网络数据流分析装置的结构图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的一种基于云安全的网络数据流分析方法的流程图。如图1所示,该方法包括:步骤S110,抓取网络数据流中的数据包。在本发明的实施例中,基于应用程序访问网络的流程,可以在该流程的任何一个环节对网络行为的信息进行截获,即可以在网络数据流经过的任何一个节点处抓取网络数据流中的数据包进行缓存。步骤S120,对抓取的数据包进行组包处理,还原成消息。在本步骤中对缓存的顺序零散的数据包进行重组,重组成带网络协议格式的消息。数据包在传输的过程中,经过很多路由器,其次序会乱。例如,一段文本包括数据包0、1、2、3、和4,同时到达目的端口时,可能会出现乱序,有可能顺序会变成数据包2、1、3、4、0。因此需要先调整好数据包的顺序。在本发明的一个实施例中,根据抓取的各数据包的TCP头中的TCP序列号,对各数据包进行排序;具体按照TCP序列号数值小的在前,大的在后的顺序对各数据包进行排序;其中,TCP序列号标志数据包在数据流中的位置。对于排序后的数据包,将TCP头中的确认号码(acknumber)相同的数据包进行组包处理,还原出至少一条带网络协议格式的消息。这是因为同至少一条消息的acknumber是相同的。TCP序列号和acknumber都是TCP头中的部分,对以按照TCP序列号排序好的各数据包,如果acknumber变化了,则表明一个消息结束,另一个消息开始了。例如acknumber之前是1000000,变成1000049时表明对端发了另一段数据过来。在本发明的其他实施例中还可以采用系统TCP协议的标准组包方法。但该方法不适合高速流量分析。步骤S130,确定还原成的消息所对应的网络协议。在本步骤中,根据组成至少一条消息的各数据包中的特征、端口等进行识别,判断其属于哪种网络协议。主要的网络协议类型包括:POP3协议(邮局协议的第3个版本协议)、FTP访问、HTTP访问、SMTP(SimpleMailTransferProtocol,简单邮件传输协议)请求、DNS(DomainNameSystem,域名系统)请求等等。步骤S140,根据还原成的消息所对应的网络协议,对该还原成的消息进行分析处理。在本步骤中,将还原成的消息提交到对应的网络协议扫描模块进行分析。其中,需要预先建立起不同的网络协议扫描模块和网络协议类型之间的对应关系,每个网络协议扫描模块对应一种网络协议类型,每个网络协议扫描模块能够完成对对应网络协议消息的分析处理,判断其中是否包含APT攻击包。具体分析方法可以采用后续介绍的静态扫描,云安全服务器查询、蜜罐分析等方法。在图1所示的技术方案中,由于先进行了组包处理,将散碎的数据包重组成有意义的消息,在此基础上进行协议分析,因此可以有针对性地进行分析,且相对于现有的逐个数据包进行扫描的方案,提高了效率和准确度。在本发明的一个实施例中,在图1所示的方法的步骤S140中,还进一步从还原成的消息中提取文件,对所提取文件进行分析。即不仅仅对消息进行分析,如果该消息还在传输文件,则从该消息中提取出文件,进一步对所传输的文件进行分析。这样如果其传输的文件中包含攻击信息,也可以检测出来,进一步保证网络安全。对所提取的文件进行分析包括以下几种方式中的至少一种:将提取出的文件发送到云安全服务器进行查询;对提取出的文件进行静态安全扫描;将提取出的文件导入云安全服务器的蜜罐中进行分析。例如,对于提取到的文件,将其输入到蜜罐系统,根据蜜罐系统中预设的规则判断该文件是否为木马文件等。可以采用现有的方案从消息中提取文件,例如,可以同下载文件时浏览器会从HTTP消息中提取文件的方式相同。又例如按照如下顺序进行分析:(1)将文件提取出来后,进行文件类型过滤,分析文件类型(如留下PE文件、office等关心文件);(2)然后进行云查询:发送到云安全服务器,通过云安全服务器里面保存的黑白名单和或病毒特征行为对应的特征码(MD5)值等检测文件的好坏,或者是用文件信息去查询云安全服务器,判断其安全级别等;其中,与现有黑/白名单中的已知程序行为做比对即可判定未知程序的性质。(3)如果云查询不报毒则进行静态安全扫描,静态扫描就是用的360的杀毒扫描引擎进行扫描。例如,可以调用多个病毒扫描引擎:用于查杀PE类型文件的云查杀引擎,和/或QVM引擎。其中,PE类型文件通常指Windows操作系统上的程序文件,常见的PE类型文件包括EXE、DLL、OCX、SYS、COM等类型文件。针对非PE文件的杀毒引擎,主要指对除PE类型文件外的其它文件进行扫描的杀毒引擎,需要说明的是,该杀毒引擎可以具有对所有非PE类型文件进行查杀的能力,这种杀毒引擎可以包括至少一个杀毒引擎,例如,杀毒引擎可以为BitDefender杀毒引擎,和/或小红伞杀毒引擎,和/或其它现有已存在的杀毒引擎等。还可以采用云查杀引擎、QVM引擎以及针对非PE文件的杀毒引擎之间采用并行查杀的方式,即从云查杀引擎开始,其顺序对待查杀文件中预设数量的文件进行查杀,查杀结果中不确定的文件输入QVM引擎进行查杀,QVM引擎难以确定的文件输入到针对非PE文件的杀毒引擎中进行查杀;云查杀引擎在将查杀结果中不确定的文件输入QVM引擎后,再次对下一批预设数量的文件进行查杀,也即各个杀毒引擎同时进行查杀。(4)如果静态安全扫描不报毒则进行蜜罐动态自动分析(即文件导入后台蜜罐系统中进行分析)。在本实施例中引入了云安全架构,将作为客户端的执行图1所示方法的服务器和云安全服务器实时连接,作为客户端的执行图1所示方法的服务器不断采集数据向云安全服务器上报,而在云安全服务器端组成一个庞大的恶意程序数据库用于进行数据流的具体分析,并将主动防御和病毒扫描的分析比对操作放在服务器端完成;针对具有威胁的程序行为进行收集并保存在云安全服务器的数据库中,在云安全服务器端进行恶意软件分析时支持直接使用程序行为进行恶意程序判定。在本发明的一个实施例中,图1所示的方法可以从内网和外网之间的网关处的网络数据流的旁路数据流中抓取数据包。即在内网和外网之间的网关处做一个旁路,将网路数据流旁路到执行图1所示方法的服务器上,完成图1所示方法的程序部署到该服务器上,由服务器运行该程序进行网络数据流分析。旁路可以采用目前路由器自带的功能,原理是路由器收到数据包后,硬件电路会拷贝一份给旁路的网卡端口,该旁路的网卡端口将数据包发送到执行图1所示方法的服务器上,该服务器具有网卡,能够接收所发送的数据。该服务器可以是基于linux的服务器,也可以是基于windows的服务器。这里方案相对于现有的在PC机上实现的方案,减少了部署的繁琐操作(现有技术中需要在内网的每个PC上进行流量分析程序的部署),并且流量分析程序不需要部署在PC上,而是部署在执行图所述方法的服务器上,或者还可以进一步将具体进行分析的部分功能部署在云安全服务器端,因此也避免了对用户的打扰。这里内网是指本申请的技术方案所保护的局域网,外网指该局域网之外的网络,如因特网等。具体实现时,可将内网和外网之间的网关处的网络数据流的旁路到执行图1所示方法的服务器,该服务器接收到旁路的数据流后可以在本地进行分析,也可以发送到云安全服务器进行查询和分析,都在本发明的保护范围之内。本发明的技术方案应用于高速网络流量的情况,运行图1所示方法的服务器如果采用单核CPU能支持带宽上限达10Gbps,如果采用多核则能支持带宽上限达到CPU核数×10Gbps。图2示出了根据本发明一个实施例的一种基于云安全的网络数据流分析装置的结构图。如图2所示,该网络数据流分析装置200包括:抓取单元201、组包单元202、网络协议分析单元203和与不同网络协议一一对应的多个网络协议扫描单元204;抓取单元201,适于抓取网络数据流中的数据包;组包单元202,适于对抓取单元所抓取的数据包进行组包处理,还原成消息;网络协议确定单元203,适于确定还原成的消息所对应的网络协议,并将该消息发送给对应的网络协议扫描单元;每个网络协议扫描单元204,适于对所接收的消息进行分析处理。其中,每个网络协议扫描单元204对应一种网络协议类型,每个网络协议扫描单元204能够完成对对应网络协议消息的分析处理,判断其中是否包含APT攻击包。在图2所示的装置,由于先进行了组包处理,将散碎的数据包重组成有意义的消息,在此基础上进行协议分析,因此可以有针对性地进行分析,且相对于现有的逐个数据包进行扫描的方案,提高了效率和准确度。数据包在传输的过程中,经过很多路由器,其次序会乱。例如,一段文本包括数据包0、1、2、3、和4,同时到达目的端口时,可能会出现乱序,有可能顺序会变成数据包2、1、3、4、0。因此需要先调整好数据包的顺序。可以根据抓取的各数据包的TCP头中的TCP序列号,对各数据包进行排序;具体按照TCP序列号数值小的在前,大的在后的顺序对各数据包进行排序;其中,TCP序列号标志数据包在数据流中的位置。对于排序后的数据包,将TCP头中的确认号码(acknumber)相同的数据包进行组包处理,还原出至少一条带网络协议格式的消息。这是因为同至少一条消息的acknumber是相同的。TCP序列号和acknumber都是TCP头中的部分,对以按照TCP序列号排序好的各数据包,如果acknumber变化了,则表明一个消息结束,另一个消息开始了。例如acknumber之前是1000000,变成1000049时表明对端发了另一段数据过来。因此,在本发明的一个实施例中,组包单元202适于根据抓取单元201所抓取的各数据包的TCP头中的TCP序列号,对各数据包进行排序;对于排序后的数据包,将TCP头中的确认号码相同的数据包进行组包处理,还原出至少一条带网络协议格式的消息。具体地,组包单元202适于按照TCP序列号数值小的在前,大的在后的顺序对各数据包进行排序;其中,TCP序列号标志数据包在数据流中的位置。在本发明的一个实施例中,每个网络协议扫描单元204,进一步适于从消息中提取文件,对所提取文件进行分析。即每个网络协议扫描单元204,不仅仅对消息进行分析,如果该消息还在传输文件,则从该消息中提取出文件,进一步对所传输的文件进行分析。这样如果其传输的文件中包含攻击信息,也可以检测出来,进一步保证网络安全。例如,对于提取到的文件,将其输入到蜜罐系统,根据蜜罐系统中预设的规则判断该文件是否为木马文件等。蜜罐中的预设规则是已知木马文件的一个特征或特征的组合。符合这些规则的文件即被认定为是木马文件。蜜罐分析根据程序的进程行为、文件操作行为、注册表操作行为、网络操作行为来确定病毒是否恶意。网络行为可以理解为需要通过网络进行的各种行为,种类繁多,例如包括HTTP访问(常见的有下载文件或上传信息),SMT请求(收发电子邮件),DNS请求(解析域名对应的IP地址等信息)等等。例如灰鸽子后门:注册表注册自启动服务,在系统目录下生成exe文件,并且启动一个iexplore.exe进程。还可以包括:托盘操作,堆栈溢出,注入线程,拦截系统API掉用,修改和创建用户账号。还可以包括:调用SHELL程序,修改程序文件或写程序文件,调用FTP或TFTP,创建FTP或TFTP,发送邮件,浏览器或邮件系统自动运行其他程序,创建大量相同线程,修改和创建用户账号,危险网络操作,向系统注册表添加启动项,修改系统启动文件,向其他进程注入线程,堆栈溢出,应用级进程时自动提升为系统级进程操作,拦截系统API调用。每个网络协议扫描单元204适于根据以下几种方式中的至少一种,对所对所提取的文件进行分析:将提取出的文件发送到云安全服务器进行查询;对提取出的文件进行静态安全扫描;将提取出的文件导入云安全服务器的蜜罐中进行分析。在本发明的一个实施例中,抓取单元201适于从内网和外网之间的网关处的网络数据流的旁路数据流中抓取数据包。即将该装置200部署在内网和外网之间的网关处,在该网关处做一个旁路,将网路数据流旁路到该装置200上。这相对于现有的在PC机上实现的方案,减少了部署的繁琐操作(现有技术中需要在内网的每个PC上进行流量分析程序的部署),并且流量分析程序不需要部署在PC上,因此也避免了对用户的打扰。综上所述,本发明的这种抓取网络数据流中的数据包,对抓取的数据包进行组包处理,还原成消息,确定还原成的消息所对应的网络协议,根据还原成的消息所对应的网络协议,对该还原成的消息进行分析处理的技术方案,由于进行组包处理,将散碎的数据包重组成有意义的消息,在此基础上进行协议分析,可以有针对性地进行分析,且相对于现有的逐个数据包进行二进制匹配,线性搜索匹配到要求的特征即认为是恶意数据包的方案,提高了效率和准确度。需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网络数据流分析装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1