用于检测关注的网络活动的系统和方法与流程

文档序号:12037839阅读:298来源:国知局
用于检测关注的网络活动的系统和方法与流程

本申请是申请号为201280073333.6、发明名称为“用于检测关注的网络活动的系统和方法”的发明专利申请的分案申请。

相关申请的交叉引用

本申请请求2012年5月23日提交的美国临时申请13/479,222的优先权,其整体在此通过引用并入本文以用于所有目的。

本发明总体涉及数字安全领域,更具体地涉及网络传输中被关注的活动的检测,包括对恶意的网络活动的检测。



背景技术:

计算机技术的发展已经对数字安全领域提出了挑战。公知的是,联网的计算机(即,网络节点)可能会将有恶意的计算机数据扩散至其它网络节点,从而导致系统毁坏和可能的经济损失。本领域技术人员可以理解的是,基于恶意计算机数据的攻击包括计算机病毒、恶意软件,蠕虫、木马程式、蝇蛆病、入侵(例如,未授权的访问)、开发(例如,特权升级、违反保密),基于时间的攻击(例如,拒绝服务)等。术语“威胁”被用来描述这些类型的攻击中的一个或多个。

数字安全技术可被用来检测和/或从网络传输去除恶意的计算机数据。本领域技术人员可以理解的是,数字安全技术可存在于各种网络节点,可封装于硬件和/或软件中,而且可包括“防病毒软件”、“恶意软件检测”、“入侵防护”、“防攻击”、防火墙等,虽然这些术语并不具有等同含义。术语“统一威胁管理”(“utm”)已经被用来描述数字安全技术的实施方式中的一个或多个。

传统数字安全技术通常利用对应于特定威胁的签名来检测威胁。该模式下的现有设计至少在两个方式下是不同的。首先,威胁的检测依赖于特定威胁的先验知识以及对特定威胁的签名的可获取性。例如,传统数字安全技术可能依赖于已知签名来检测已知计算机病毒的存在。因此,传统数字安全技术可能不能够检测还不能获取签名的威胁。例如,传统数字安全技术可能不能够检测已知计算机病毒的未知变形。

第二,由于已知威胁数量的不断增长,传统数字安全技术保持了不断增多的签名。在获取到来的网络传输时,针对到来的数据就可能的威胁对保持的签名进行扫描。扫描处理使用大量的计算资源。通过一个估计,在企业级的数据中心的环境下,多大85%的数据中心的计算能力被花费在数字安全操作上,而其仅仅小部分的真实能力被用于商业操作。在消费类计算机的环境中,防病毒软件的操作会导致计算机变得迟缓,这对任意计算机用户都不会惊讶。

尽管该领域的改进如何,传统数字安全技术持续受限于由于它们的设计导致的这些缺陷。



技术实现要素:

在一个示例性实施例,从网络传输获取多个传输控制协议(tcp)包和多个互联网协议(ip)包。获取的网络包包括关注的网络活动。多个组合包被创建。多个组合包的第一组合包包括至少一个tcp包的一部分以及至少一个ip包的一部分。多个组合包的第二组合包包括至少一个tcp包的一部分以及至少一个ip包的一部分。第一和第二组合包不同。第一和第二组合包的相关子集被转换成整数的一个序列。确定整数的第一和第二序列之间的相似性度量。根据相似性度量来创建第三序列,其中第三序列包括对第一序列和第二序列公共的第三多个整数,该公共整数的顺序与该公共整数在第一序列中的顺序相同。根据整数的第三序列按照相同的顺序在多个组合包中出现的频率创建整数的第四序列。整数的第四序列被用于识别网络传输的未知子集中的关注的网络活动。

在一个示例性实施例,从网络传输获取多个传输控制协议(tcp)包和多个互联网协议(ip)包。多个组合包被创建。组合包包括多个tcp包中的至少一个的一部分以及多个ip包中的至少一个的一部分。整数的序列保被获取。如果整数序列的整数按照相同的顺序出现在组合包中,组合包被认为是异常的,网络操作被启动。网络操作可以是用户警告、掩盖网络节点的指令、或从传输中丢弃网络包的指令。

在一个示例性实施例,包括关注区域的计算机图像被获取。计算机图像可以是医学影像。关注区域可表示有害组织。针对计算机图像的每个像素创建逐位数据的多个序列。对于正在处理的给定像素,可根据将给定像素与计算机图像的边缘分开的其它像素来创建逐位数据的序列。由于从给定像素至计算机图像的各个边缘存在多个路径,所以可以针对计算机图像的每个像素创建逐位数据的多个序列。而且,由于计算机图像中存在多个像素,针对每个像素创建逐位数据的附加序列。所得到的逐位数据的序列每个都被转换成整数序列,从而产生多个整数序列。整数序列的第一和第二序列之间的相似性度量被确定。基于相似性度量创建整数的第三序列,其中第三序列包括对于第一和第二序列公共的多个整数,在第三序列的顺序中公共整数出现在第一序列中。整数的第四序列,被称为元表达式,是基于整数的第三序列在初始地从计算机图像创建的整数的多个序列中按照顺序出现的频率创建的。元表达式被用于识别未知计算机图像中的关注区域。

附图说明

图1描绘了用于检测关注的网络活动的示例性处理。

图2描绘了采用了网络活动检测器的示例性实施例的网络的框图。

图3描绘了用于训练统一威胁管理系统(utms)的示例性处理。

图4描绘了网络节点之间的网络包的示例性传输。

图5描绘了ip包头的布局。

图6描绘了tcp包头的布局。

图7描绘了ip网络包头的示例值。

图8描绘了距离函数的实施例中的示例性处理。

图9(a)-(f)描绘了示例性网络包。

图10(a)-(c)描绘了8位整数的示例性序列。

图11描绘了8位整数的示例性序列。

图12描绘了网络包的示例组。

图13描绘了用于检测关注的网络活动的示例性计算系统。

图14描绘了用于检测其它关注的电子信息的示例性处理。

图15描绘了用于训练计算机成像系统的示例性处理。

图16(a)-(b)描绘了示例性放射图像。

具体实施方式

下面的描述被用于使得本领域技术人员能够实现并使用各种实施例。具体装置、技术和应用的描述被仅仅提供用作示例。对此处描述的示例的各种修改对于本领域技术人员是明显的,而且此处定义的总体原则可应用至其它示例和应用而不脱离各种实施例的精神和范围。因此,各种实施例并非受限于此处描述并显示的示例,而是遵循与权利要求权利要求一致的范围。

此处描述的实施例包括用于检测关注的网络活动的技术。示例性关注的网络活动包括基于威胁的计算机病毒、恶意软件,蠕虫、木马程式、蝇蛆病、侵入(例如,未授权的访问)、开发(例如,特权升级、违反保密),基于时间的攻击(例如,拒绝服务)等。示例性关注的网络活动还可包括经由网络对受版权保护的和/或淫秽的材料的非法下载。

1.概览

图1图示出用于检测关注的网络活动的示例性处理100。就本公开文本而已,术语“统一威胁管理系统”(utms)被用于描述执行处理100的计算机安全技术,而不考虑该技术被提供为软件形式(例如,作为软件包)还是硬件形式(例如,专用集成电路或装置)。在处理100中,块110可被称为训练处理,块120-140可被统称为运行处理。

在块110,utms被训练成识别出与关注的网络活动相关的网络传输的特征。例如,utms可配置有反映特定的已知威胁的一系列网络传输。这种一系列的训练网络传输可获取自例如网络包捕获应用编程接口(“api”),比如“pcap”。训练网络传输还可获取自网络传输的互联网资源库,例如获取自开放包组织。虽然api和/或资源库的名称可能随时间变化,但是捕获网络传输的概念是本领域技术人员能够抓住的。

在块110,utms根据计算机数据的训练网络传输组合序列(其后续可用来识别相同关注的网络活动是否存在于网络传输的另一未知子集中)进行识别。而且,借助于块110的处理,utms还变得能够识别与之前存在于训练网络传输中的威胁相关的威胁(即,变体)的存在。

在块120,utms监控一组网络传输以确定(经过训练并且相关的)关注的网络活动是否存在于网络传输中。例如,utms可确定网络中的一个节点是否正企图利用之前在训练网络传输中提供的威胁的变体(块110)攻击另一网络节点。

在决定块130,utms确定监控的一组网络传输是正常的还是异常的。异常网络传输是这样的网络传输,其中utms已经识别出关注的网络活动。如果找到异常的网络传输,处理进入块140,其中utms产生一个或多个适当响应。适当响应可以是用户或系统警告。另一适当响应可以是擦除来自受损的网络节点的响应,由此使得入侵网络节点保持没觉察到该“成功”攻击。而另一适当响应可以是掩盖攻击所对准的网络节点,由此使得攻击网络节点不再到达目标网络节点。如果没有找到网络传输,处理回到块120,而且utms监控另一组网络传输。

图2是网络框图,其图示了处理100(图1)在网络上的示例性布置。如图2所示,桌面及膝上计算机213-216经由线缆调制解调器210、防火墙211、和路由器212连接至云网络201。手机222和膝上计算机223经由蜂窝服务提供商220无线连接至网络201。数据中心231经由调制解调器230连接至云网络201。处理100的一部分可布置在网络装置(例如,防火墙211、和路由器212)、端点(例如,计算机213-216)、网关装置(例如,调制解调器210、网关)、移动装置(例如,手机222、桌面计算机223)等上。换言之,处理100的一部分可布置在网络节点210-216、220-223和/或230-231中的一个或多个上。例如,处理100可集成至手机222、桌面计算机223和/或计算机213-216上运行的操作系统kernel。处理100(图1)还可集成至线缆调制解调器210、utms211和/或路由器212的硬件。

在下面的讨论中,出于简化的目的,计算机病毒的威胁被用作示例性关注的网络活动。但是,处理100(图1)并不限于此。实际上,处理100可被utms用来管理许多种关注的网络活动,如上所述。巧合地,对计算机病毒的(示例的)讨论以计算机用户可以理解的方式强调了处理100的实际优势。

现在,超过两百万计算机病毒是已知存在的。精确数据在二百五十万至八百万之间变动,这是因为不同权威来源对计算机病毒的编目不同。在处理100的块110,utms可配置有反映基于一个或多个已知计算机病毒的攻击的网络传输。在块110结束时,utms变得被训练成检测网络传输中一个或多个计算机病毒及其变体的存在。在块120-140,utms针对该一个或多个计算机病毒及其变体的存在而监控网络传输。按照这样的方式,utms能够管理基于已知威胁及其未知变体的攻击。

处理100至少在两个方面很显著。首先,块110产生了数据的组合序列,其可被用来检测所有已知计算机病毒及其变体。因此,采用处理100的utms在操作期间没有必要依赖于对的特定计算机病毒的先验知识来检测网络传输中的计算机病毒。其次,块110产生了数据的组合序列,其相对于传统计算机防病毒技术所使用的计算机病毒签名文件在结构和尺寸方面效率更高。具体地,已经确定的是,总体小于200个(8位)字节的数据的组合序列足以在处理100下识别出当前已知存在的大多数(如果不是全部)计算机病毒。该尺寸与传统计算机病毒签名文件的尺寸(尺寸为50兆(mb)至300mb)形成鲜明对比。为了清楚的认识,50mb的尺寸比200(8位)字节大5个数量级。因此,在utms采用处理100的操作期间,可以实现显著的计算效率。

2.训练

图3图示出用于训练utms的示例性处理300。在一个实施例中,处理300执行块110的特征(图1)。在块310,获取了网络传输,而且两个网络节点之间发送(即,发过去或者接收)的一系列网络包被组合在一起。一些或所有组合的网络包可以是连续的。“网络包”的概念是本领域公知的,在此不再详述。举例来说,术语“网络包”可能指的是以太包、传输控制协议(tcp)包、互联网协议(ip)包等。

提供给块310的网络包应该包括关注的网络活动,以能够训练utms。在当前实例中,关注的网络活动是两个网络节点之间的网络传输中的计算机病毒的存在。因此,提供给块310的网络包应该代表一个网络节点利用计算机病毒对另一网络节点的攻击,而且应该还表示从被攻击的网络节点得到的响应。

两个网络节点之间的网络包在块310的组合是双向的,因为来自或者朝向一对网络节点的网络传输被组合在一起。双向的网络传输通常由不同层次的通信组合,从两个网络节点之间的初始握手到数据的完全传输。(双向)网络包的这种组合基于两个网络节点之间建立的通信的存在。两个网络节点之间建立的通信有时候被称为“会话”。两个网络节点可请求经由一个信道建立通信。例如,主机和服务器可在一个端口握手。一旦建立了通信,两个网络节点可进一步通过新创建的信道进行通信。例如,主机和服务器可通过tcp/ip在不同于初始请求建立通信的端口的另一端口进行通信。

在一个实施例中,(双向)网络包在块310的组合起始于网络传输中表示建立的通信的开始的网络包的识别和网络传输中的表示建立的通信的结束的另一网络包。建立的通信的开始可以是包含请求的网络包。建立的通信的结束可以是包含相应确收的网络包。在一个实施例中,附加网络包可被识别,比如表示“请求确收”的网络包。osi模型的不同层的网络包可提供请求和确收信息。例如,http网络包(即,在osi应用层)和tcp网络包(即,在osi传输层)两者都包含请求字段,其中一个足以用于块310。按照这样的方式,块310可将与建立的通信相对应的双向网络包组合在一起,而不依赖于源网络地址和目的地地址。块310还可将与建立的通信相对应的双向网络包组合在一起,而不依赖于源和目的地端口编号。

现在将参考图4讨论块310。如所示,网络包430-460表示网络节点410和420之间的一系列网络包。网络包430由网络节点410发送至网络节点420,其包括请求。因此,网络包430指示将被组合在一起的一系列网络包的开始。在这样的环境中,网络节点410可被称为主机,因为其发起了请求,而且网络节点420可被称为服务器,因为其是请求的接收方。网络包440和450分别由网络节点420和410发送,而且表示应该被组合在一起的两个网络节点之间的数据的双向通信。网络包460由网络节点420发送至网络节点410以确认适当量的数据已经被接收。因此,网络包460指示将被组合在一起的一系列的网络包的结束。按照这样的方式,网络包430至460在块310(图3)被组合成网络包的接合的组。网络包组被称为被“接合”,因为数据的组存在清晰的开始和清晰的结尾。块310可重复以产生多对网络节点之间的双向网络包的附加组。

应该理解的是,在块310执行的网络包的组合也意味着捕获其它类型的信息,这些信息对检测关注的网络活动有用。例如,在拒绝服务攻击(“dos”)(基于时间的攻击的一类),在给定的时间框架内传输了相对大量的网络包。dos攻击(或者更具体地,无疑问地在块310捕获了基于时间的攻击)导致的网络包在相关时间框架内的出现,因为块310将这些网络包组合成(双向)会话。随后,处理300中的后续处理针对与检测特征dos攻击相关的信息,分析组合的网络包。

由块310组合的网络包内的仅仅特定字段与检测关注的网络活动有关。在块320,相关信息被保留,而且不相关的信息被抛弃。现在参考图5和6来讨论块320。图5图示出ip网络包的布局,其中字段与检测循环的关注的网络活动有关。这些相关字段包括服务类型(“tos”)511、(ip网络包的)总长12、ip标志513、存活时间514、协议515、ip选项516和数据内容517。图6图示出tcp网络包的布局,其中字段与检测循环的关注的网络活动(例如,计算机病毒)有关。这些字段包括序列标号611、确收数量612、偏移613、tcp标志614、窗口615、紧急指针616、tcp选项617和数据内容618。按照这样的方式,块310的输出被减少以仅仅包含与检测关注的网络活动有关的信息。该保持处理被应用至由块310产生的网络包的组中的每个ip和tcp网络包。块320的输出被称为“重组包”。

块320的三个方面是值得注意的。首先,块320不保留ip网络包中的源或目的地地址或者tcp网络包中的源或目的地端口号。因此,采用处理300的utms没有必要依赖于网络地址或端口信息来检测关注的网络活动。其次,头长度(ihl)510(图5)被用于确定ip网络包头的长度,由此ip网络包内的相关字段可被适当组合,但是头长度(ihl)510本身未包含在块320的输出中。第三,包含的字段并不限于计算机病毒(在当前示例中是关注的网络活动)的检测。实际上,字段支持前面讨论的关注的网络活动的全范围的检测。

在块330,来自块320的重组包(即,相关信息)被逐位转换成整数,从而产生与初始地提供给处理300信息的子集相对应的整数的序列。在一个实施例中,8位整数被使用。本领域技术人员可以理解的是,ip和tcp网络包包含少于8位、刚好8位或者多余8位的长度的字段。通过向最高有效输出位填充0,占据少于8位的字段被转换成8位的表达。例如,块320将比特“100”转换为“00000100”。tos511和ip标志513(图5),分别作为4位和3位字段,被按照这样的方式转换。占据多于8位的字段被转换成多个8位的分段。例如,块320将比特“0001001001001000”转换成“00010010”和“01001000”。数据内容517占据多于8位,被按照这样的方式转换。

现在参考图7讨论块320和330。图7图示出ip网络包的一部分。如上所述,在ip网络包710内,tos711和中长712以及其它对于检测关注的网络活动是有用的。因此,字段711和712被块320保留并被提供给块330以转换成整数。重组包714表示块320所包含的ip网络包710部分。块330将重组包714的内容逐位转换成8位整数715、716和717。注意,出于简化的目的,图7仅仅示出了ip网络包710的一部分。在正常操作期间,块320处理块320产生的ip和tcp网络包的所有组,块330继而处理块320保留的ip和tcp网络包的所有组。按照这样的方式,块330产生包含整数“40183…”的8位整数718的序列。可选地,8位整数718的序列的长度可被限制至65,536(8位)整数。

对于此处的使用,术语“序列”描述了排序的元素的列表,例如,整数。应该理解的是,整数718的序列内的元素的排序是从块310-320处理的双向网络传输的相关部分的排序的邻接导出的。换句话说,就关注的网络活动产生两个网络节点之间的网络传输中的特征响应而言,该响应被块310-330的处理捕获。在块340-360的处理中进一步对响应进行提取,如下文所述,由此其变得对于检测网络传输的未知子集中的关注的网络活动有用。

在块340,距离函数被用于从块330产生的整数的序列识别出特征。针对在时间上邻接的整数的序列执行距离函数,意味着块330产生的整数的序列(基于来自块320的网络包的一个组)与块330产生的整数的下一个邻接的序列进行比较(基于来自块320的网络包的下一个邻接的组)。

诸如字符串距离函数之类的传统距离函数在本领域是公知的,在此不详述。举例来说,传统字符串距离函数可被用于确定字符串“abc”和“zbc”具有举例1,因为该字符串的仅仅变化在于前者的“a”被后者的“z”代替,而且表示这两个字符串之间的唯一的差别。块330产生的网络包的组使得它们自身与距离函数比较,因为块330产生了整数的序列,其可被距离函数当作是单独的元素。但是,传统字符串距离函数并不提供足够用于检测关注的网络活动的距离度量。例如,两个字符串相差距离1的知识提供了用于计算机病毒检测的很少的有用信息。

在一个实施例中,块340执行定制距离函数,下面将予以描述,其产生支持关注的网络活动的检测的减小的整数序列。出于简化的目的,参考图8和9描述块340的定制距离函数。图8图示出在一个实施例中用于执行定制距离函数的示例性处理800。图9图示出当前实施例中中示例性处理800处理的示例性网络包的组。

回到图8,在块810,定制距离函数识别出块340(图3)产生的整数的相邻的多对序列内出现的整数。图9a图示出整数910-919的示例性序列。图9b图示出示例性整数“101”,其至少出现在多对相邻整数序列910-911、911-912和912-913内。(注意,整数序列914-919出于简洁的目的而未示出)。在块810,定制距离函数还识别出多对相邻整数序列中的识别出的整数的第一距离。图9c图示出相邻整数序列910-911、911-912和912-913中识别出的第一距离“101”。

在块820(图8),定制距离函数使得相邻整数序列对中识别出的整数的第一距离对齐。图9d图示出多对相邻整数序列910-911、911-912和912-913中的第一距离“101”的对齐。

在块830(图8),在一些情况下,可针对一对相邻整数序列创建减少的整数序列。创建减少的整数序列(针对一对相邻整数序列),如果一对整数序列的相邻组对于公共的整数中的一个或多个:(i)按照相同顺序出现在网络包的一对相邻组中,而且(ii)具有处于第一阈值距离内的网络包的一对相邻组中的位置。在一个实施例中,第一阈值距离为4。如果被创建,减少的整数序列将包括满足上述要求(i)和(ii)的整数(相对于一对相邻整数序列)。

图9e图示出,当第一距离“101”在整数序列910和911之间对齐时,整数“48”和“52”满足上述要求(i)和(ii)。具体地,整数“101”、“48”和“52”按照相同的顺序出现在整数序列910和911中。而且,整数“48”在第一阈值距离(在当前实施例下为4)内出现在整数序列910和911中。因此,如图9f所示,减少的整数序列920被创建,而且包括整数序列“1014852”。同样如图9f所示,整数序列911和912中的整数“101”“48”和“52”也满足上述要求(i)和(ii)。因此,减少的整数序列921被创建,而且包括整数的序列“1014852”。而且如图9f所示,整数序列912和913中的整数“53”和“101”也满足上述要求(i)和(ii)。因此,减少的整数序列922被创建,而且包括整数序列“53101”。

针对在至少一对相邻序列整数中出现的其它整数重复块810-830。例如,整数“48”也出现在整数序列910-919中的至少一个对相邻整数序列中。因此,针对8位整数“48”重复块810-830。

在块830(图3的块340执行的示例性字符串函数)的结尾,处理进入块350(图3)。在块350,减少的整数序列在第二阈值距离内在块330创建的网络包中出现的频率被确定。第一和第二阈值距离可以相同或者不同。在一个实施例中,第二阈值距离是4。图10a图示出块330创建的整数序列910-919。此外,图10b图示出减少的整数序列920-922(图9f)在整数序列910-919中的出现。如所示,十个整数的序列910-919中的八个中出现了减少的整数序列920(“1014852”)(在示例性第二阈值距离4内)。因此,频率80%与减少的整数序列920相关。出于同样的理由,频率80%与减少的整数序列921相关。注意,减少的整数序列920和921在第二阈值距离(在该示例中为4)内没有出现在整数序列916中,这是因为整数“101”和“48”被网络包916的组中的多于四个的位置分开。而且如所示,减少的整数序列922(“53101”)出现(在示例性第二阈值距离4内)在网络包的四个组910-919中的三个中。因此,频率30%与减少的整数序列922相关。与减少的整数序列920-921相关的频率被图示在图10b。指示减少的整数序列在阈值距离内按顺序出现在网络包的组中的频率的这些值,可称为术语“秘密值”。

在块360(图3),具有低于阈值秘密值的秘密值的减少的整数序列被抛弃。在一个实施例中,阈值秘密值介于80-90%。图10c图示出减少的整数序列922的抛弃。此外,减少的整数序列920和921(它们相同)被去重复并被保持为减少的整数序列1030。就本公开文本而已,减少的整数序列1030可被称为术语“元表达式”。

元表达式1030表示足以检测网络传输内的关注的网络活动的信息。具体地,元表达式1030足以检测处理300的初始输入(图3)所表示的网络活动。处理300(图3)的输入是表示一个网络节点利用计算机病毒对另一网络节点的攻击以及来自受损的网络节点的响应的一系列网络包。

可针对其它类型的关注的网络活动重复处理300(图3)。例如,可利用表示利用计算机蠕虫a的攻击的网络传输来执行处理300,以识别用于检测计算机蠕虫a及其变体的元表达式。可利用表示利用计算机开发b的攻击的网络传输来执行处理300,以识别用于检测计算机开发b及其变体的元表达式。实际上,可针对已知存在的不同的基于威胁的计算机病毒、恶意软件,蠕虫、木马程式、蝇蛆病、侵入(例如,未授权的访问)、开发(例如,特权升级、违反保密),基于时间的攻击(例如,拒绝服务)等来重复处理300,以确定用来识别这些恶意的计算机指令及其变体的元表达式。

重要的是,已经确定了许多不同的恶意的网络活动共用相同的元表达式。也就是说,两个不同的关注的网络活动(例如已知计算机病毒a和已知计算机病毒b)可共用相同的元表达式,因此可利用单个元表达式进行检测。而且,例如,从现有计算机病毒产生的元表达式可被用来检测现有计算机病毒的所有变体,而不管变体的排列、存储或特征如何(即,即使变体未知也行)。仅仅完全新类型的计算机病毒(不是现有计算机病毒的变体)不能被现有元表达式检测出来。按照这样的方式,少数元表达式注意识别出很多(如果不全部)已知计算机病毒(其数量介于2.5至8百万,取决于授权源)及其变体。

图11图示出13示例性元表达式1100-1112。元表达式1100-1112的跨度总体小于200(8位)字节,而且可被用来检测上述现有计算机病毒的所有变化。该尺寸与防病毒签名的常用数据库的尺寸(在50mb的数量级或者更大)成为鲜明对比。这些元表达式的结构和最小尺寸与传统计算机安全技术相比提供了显著的计算效率。

3.运行

现在讨论由处理300提供的元表达式检测关注的网络活动的效率。在处理300(在图1的块110执行的示例性utms训练处理)结束时,处理进入图1的块120。在块120,utms采用元表达式来分析网络传输,并检测网络传输是正常的还是异常的。块120的处理开始于对两个网络节点之间的一系列双向通信的组合。为此,块310(图3)的技术可被采用。接下来,针对相关信息来过滤网络包的组。为此,块320(图3)的技术可被采用。接下来,形成网络传输的新组的重组包(包含相关信息)被转换成整数序列。运行期间使用的整数的位尺寸应该与训练期间使用的整数的位尺寸相同。在一个实施例中,整数的尺寸为8位。为了将重组包转换成整数序列,块330(图3)的技术可被使用。

块330产生的整数序列与一个或多个元表达式比较,以确定正被分析的网络传输是正常的还是异常的。当如下两个标准被满足时正被分析的一组网络传输被认为是“异常的”:(i)元表达式中的每个整数出现在与该网络传输对应的整数序列中,以及(ii)每个整数按照相同的顺序出现在相应的整数序列和元表达式中。注意,网络包的组被看作在其中条件(i)不成立的第一距离是正常的。(条件(ii)的不成立没有那么有用,这是因为整数序列可具有具体整数的多个距离,而且所有距离必须不满足条件(ii)以使得条件(ii)整体不成立)。

当检测到异常通信时,utms跟随决定块130至块140,其中适当响应被产生。当检测到正常通行时,utms回到块120并分析附加的网络传输。参考图12讨论块120-130。图12图示出网络包的示例性组1200-1209和示例性元表达式1210。元表达式1210可以是训练时创建的元表达式之一(图1的块110)。出于简洁的目的,元表达式1210的长度被减短。如所示,网络包的组1201、1202和1209包含按照与整数出现在元表达式1210中的顺序相同的顺序的元表达式1210的所有整数。因此,网络包的组1201、1202和1209被看作是异常的。网络包的组1200和1203-1208不包含元表达式1210的所有依照的顺序的整数。因此,网络包的组1200和1203-1208被看作是正常的。

从前面讨论可以看出,在块120,utms执行许多整数比较。因此,整数比较的优化对于utms的效率很重要。如所述,在第一距离(其中与网络传输对应的整数序列中没有元表达式中的整数),一组网络传输被认为是正常的。因此,如果可做出早期的“正常”判定,则utms的性能被改进。为此,有利的是构建块120的技术以使得一旦来自元表达式的一个整数等同于不存在整数序列中,则即可终止整数序列和元表达式之间的整数比较。

在一个实施例中,块120采用嵌套计算机编程语言表述,其在嵌套等级中的任意一个返回“假”条件时返回“失败”的整体值(例如,布尔值)。因此,一旦utms识别出整数的不存在(在任意一个嵌套等级),整体嵌套的计算机编程语言表述从处理终止。相应一组网络传输因此被识别为是正常的(在该情况下,没有必要进行其它威胁检测),而且随后一组网络传输可被分析。例如,lisp计算机编程语言能实现((((a)(b))(c))(d))形式的嵌套表达式,其返回总值“失败”,如果任意一个表达式(a),(b),(c)和/或(d)为“假”。在该示例中,表达式(a)可询问元表达式中的第一整数是否出现在整数序列中,而且表达式(b)可询问元表达式中的第二整数是否出现在整数序列中,以此类推。

在块140,适当的响应可被产生。一个适当的响应可以是用户或系统警告,其表示关注的网络活动的存在。另一适当的响应可以是掩盖来自受损的网络节点的响应,由此入侵网络节点保持不知道“成功”入侵。另一适当的响应可以是掩盖作为入侵目标的网络节点,由此入侵网络节点不再能够到达目标网络节点。

处理100(图1)的一些部分可在图13所示的示例性计算系统1300中实现。在一些实施例中,计算系统1300是网络装置,例如路由器、网关和防火墙等。在一些实施例中,计算系统1300是网关装置,例如调制解调器等。在一些实施例中,计算系统1300是移动装置,例如桌上计算机、膝上计算机、手机、笔记本等。在一些实施例中,计算系统1300是网络接口“卡”。注意,处理100的训练方面(即,块110)和处理100的运行方面(即,块120-140)可被实现在相同的或者不同的计算系统上。

如图13所示,计算系统1300包括计算机主板1302和将i/o部件1304、一个或多个中央处理单元(cpu)1306和存储器部件1308连接在一起的总线1310。存储器部件1308可具有与之有关的存储器模块1320。存储器模块1320例如可以是闪存和/或可去除存储器装置。i/o部件1304被连接至网络接口1312,其接收和/或发送网络包。i/o部件1304可连接至显示器1314、输入装置1316和/或存储单元1318。存储器部件1308、存储器模块1320和/或存储单元1322可存储(例如,可触知地实体化)计算机可读介质,该介质包含用于利用cpu1306执行任意一个上述处理的计算机可执行指令和/或数据。可利用例如通用编程语言(例如,lisp,c)或特殊的专用语言编写计算机可执行指令。输入装置1316可以是支持来自usb兼容设备(例如键盘、鼠标、存储棒等)的输入的usb端口。至少一些基于上述处理的结果的值可被保存至诸如存储器1308、存储器模块1320和/或盘尺寸单元1318之类的存储器以备后续使用。

处理100(图1)的一些部分也可通过特别布置的集成电路(例如,专用集成电路)而实现在处理器中。在一些实施例中,集成电路可以是装置的主处理器(例如手机的主处理器)的一部分。在一些实施例中,集成电路可以是装置的辅助处理器(例如与桌上电脑的主板相连接的处理器)的一部分。集成电路可包含计算机可执行指令和/或数据,用于执行上述处理中的任意一个。例如可利用专用的(例如,处理器专用)语言来编写计算机可执行指令。

在一些实施例中,计算机可执行足以执行处理100(图1)的少于1mb的基于c编程语言的指令。这些计算机可执行指令的执行要求不多于300千字节(16位的字节)的运行存储器(例如,随机访问存储器)。现代计算系统和/或处理器能够很好地处理这些尺寸的计算机可执行指令。实际上,在这些实施例中,网络接口带宽(即,输入带宽)(不是处理器速度)通常是针对处理更大量的网络传输的选通系数。

虽然仅仅具体描述了特定示例性实施例,但是本领域技术人员很容易理解的是,示例性实施例中的许多修改是可行的,而不实际脱离本发明的新颖指教和优势。此处公开的实施例的方面可在其它组合中进行组合以形成其它实施例。所有这种修改都落入该技术的范围内。

对于距离,在一些实施例中,上述技术可被用来检测其它类型的关注的电子信息。上述技术的一种特别有用的调整是检测医学放射图像中的有害组织,例如肿瘤。即,示例性处理100可用于支持对计算机成像系统的计算机成像中的关注信息的检测。

图14图示出处理1400,其表示用于检测放射图像中的有害组织的处理100的一种可能的调整。在块1410,计算机成像系统被训练成识别放射图像中与有害组织有关的特征。具体地,计算机成像系统可获取已经被医生证实示出了有害组织的不同放射图像。根据放射图像的像素数据,计算机成像系统识别出随后可被用来识别其它未知的(即,还未被医生证实的)放射图像中的类似有害组织的存在的数据的组合序列(即,元表达式)。

在块1420,计算机成像系统获取未知放射图像,其可能或者可能没示出有害组织。计算机成像系统在块1430确定未知放射图像是否包含在块1410找到的相同的接合的数据序列。如果在未知图像中找到相同的接合数据序列,计算机成像系统在块1440通知用户在未知放射图像中找到有害组织。

图15图示出示例性处理1500,用于产生上述元表达式。在一些实施例中,处理1500可执行块1410(图14)的特征。在处理1500的块1510,从计算机成像系统创建来自放射图像的像素数据,而且从放射图像创建逐位数据的序列。

参考图16a-b来描述逐位数据的序列的示例性创建。图16a图示出放射图像1610,其包含具有有害组织的器官1611。放射图像1610包括多个像素,包括示例性像素1612。放射图像1610的每个像素,包括像素1612,可在块1510(图15)中处理。

参考图16b来讨论示例性像素1612的处理。在图16b中,像素1612与其周围的像素一起以更大尺寸被示出。在处理像素1612期间,虚线1621-1628(每个都从像素1612延伸至放射图像1610的边缘)被计算机成像系统确定。每个虚线与像素1612和放射图像1610的边缘之间的大量其它像素交叉。例如,虚线1621起始于像素1612并与像素1613,1614,1615和1616交叉,而虚线1622起始于像素1612而且与大量其它像素交叉。

计算机成像系统根据从像素1612辐射的每个虚线创建逐位数据的序列。具体地,与虚线相交的每个像素的值被存储在序列中以形成逐位数据的序列。像素的值可表示例如像素的rgb值、像素的透明度,或者可从由计算机图像文件提供给放射图像1610的一些其它元数据导出。例如,如果放射图像1610是每个像素具有16位的灰度颜色深度的png图像,可基于与虚线1621交叉的像素1612-1616的值(每个16位)创建80位的序列。可基于虚线1622交叉的五个像素来创建另一80位的序列。按照这样的方式,可针对放射图像的每个像素来创建逐位数据的多个序列。不同位串的长度可根据像素和正被处理的放射图像的边缘之间的距离而变化。可针对放射图像1610中的每个像素重复该处理。

在块1520,块1510产生的逐位数据的序列的内容被转换成整数,从而针对逐位数据的每个序列产生一个整数序列。在一个实施例中,8位整数被使用,意味着80位的序列被转换成十个8位整数的序列。在块1530-1540,距离函数被用于识别来自块1520产生的整数序列的特征。块1530-1540可利用块340-350(图3)的技术。在块1550,可用来识别与器官1610(图16a)中的有害组织类似的有害组织的元表达式被确定。块1550可利用块360(图3)的技术。

处理1400(图14)的一些部分可在图13所示的示例性计算系统1300中实现。按照这样的方式,对于确定放射图像是否示出了有害组织的元表达式可被创建,而且可选地,元表达式可被用来确定放射图像中的有害组织的存。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1