具体实施方式
本公开大体上涉及用于消除对网络数据包的冗余安全分析的系统和方法。如将在下面更详细地解释,通过验证包括在计算机网络中的计算设备,本文所描述的各种系统和方法可以提供经过验证的计算设备能够暴露其安全能力和/或漏洞而不存在被恶意网络参与者利用的风险的安全计算环境。通过提供经过验证的计算设备能够暴露其安全能力和/或漏洞而不存在被恶意网络参与者利用的风险的安全计算环境,本文所描述的各种系统和方法也可以使网络设备(诸如,网络网关)能够确定安装在经过验证的计算设备上的安全系统是否满足预定义的安全标准。
另外,通过使网络设备能够确定安装在经过验证的计算设备上的安全系统是否满足预定义的安全标准,本文所描述的各种系统和方法可以消除对发往经过验证的计算设备的网络数据包的冗余安全分析。此外,通过消除对发往经过验证的计算设备的网络数据包的冗余安全分析,本文所描述的各种系统和方法可以有助于保护网络资源和/或提高计算机网络的整体性能。
以下将参照图1至图2提供对用于消除对网络数据包的冗余安全分析的示例性系统的详细描述。将结合图3提供对相应的计算机实施方法的详细描述。将结合图4提供对发往目标计算设备的示例性网络数据包以及关于目标计算设备的示例性信息的详细描述。另外,将分别结合图5和图6提供对能够实施本文所描述的一个或多个实施方式的示例性计算系统和网络体系结构的详细描述。
图1是用于消除对网络数据包的冗余安全分析的示例性系统100的方框图。如此图中所示,示例性系统100可以包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下面更详细地解释,示例性系统100可以包括拦截模块104,拦截模块104被编程为在网络设备处拦截发往目标计算设备的至少一个网络数据包。示例性系统100也可以包括识别模块106,识别模块106被编程为识别安装在目标计算设备上的安全系统。
另外,并且如将在下面更详细地描述,示例性系统100可以包括确定模块108,确定模块108被编程为确定安装在目标计算设备上的安全系统不满足预定义的安全标准。示例性系统100也可以包括安全模块110,安全模块110被编程为至少部分地基于确定安装在目标计算设备上的安全系统不满足预定义的安全标准,在网络设备处对网络数据包执行满足预定义的安全标准的安全分析。
此外,并且如将在下面更详细地描述,示例性系统100可以包括验证模块112,验证模块112被编程为验证目标计算设备。示例性系统100也可以包括信息模块114,信息模块114被编程为获得关于目标计算设备的信息并且存储关于目标计算设备的信息以使网络设备能够访问信息,以便识别安装在目标计算设备上的安全系统。尽管图1中的一个或多个模块102被示出为单独的元件,但是模块102可以表示单个模块或应用程序(诸如,赛门铁克(SYMANTEC)的网络安全)的多个部分。
在某些实施方式中,图1中的一个或多个模块102可以表示一个或多个软件应用程序或程序,所述软件应用程序或程序在由计算设备执行时可以使计算设备执行一个或多个任务。例如,并且如将在下面更详细地描述,一个或多个模块102可以表示软件模块,所述软件模块被存储并且被配置成在一个或多个计算设备(诸如,图2中所示的设备(例如,目标计算设备202、基于云的服务器206,和/或网络设备208))、图5中的计算系统510,和/或图6中的示例性网络体系结构600的多个部分上运行。图1中的一个或多个模块102也可以表示被配置成执行一个或多个任务的一个或多个专用计算机的全部或多个部分。
如图1中所示,示例性系统100也可以包括一个或多个网络数据包,诸如网络数据包118。例如,网络数据包118可以包括表示文件的全部或一部分的数据。在这个实例中,网络数据包118可以包括有效载荷和/或元数据(诸如,识别有效载荷的源和/或目的地的数据)。另外,网络数据包118可以源于互联网或包括在计算机网络(诸如,内部网)中的源计算设备。
图1中的示例性系统100可以用多种方式来实施。例如,示例性系统100的全部或一部分可以表示图2中的示例性系统200的多个部分。如图2中所示,系统200可以包括经由网络204与目标计算设备202和基于云的服务器206通信的网络设备208。
网络设备208可以被编程具有一个或多个模块102,和/或可以具有发往目标计算设备202的被拦截的网络数据包118。另外或替代地,基于云的服务器206可以被编程具有一个或多个模块102,和/或可以存储关于目标计算设备202的信息210的全部或一部分和/或用于验证目标计算设备202的验证数据库212。另外或替代地,目标计算设备202可以包括安全系统216,和/或用于促进更新存储在基于云的服务器206上的信息210的验证令牌214。
在一个实施方式中,来自图1的一个或多个模块102可以在由网络设备208和/或基于云的服务器206的至少一个处理器执行时促进网络设备208和/或基于云的服务器206消除对网络数据包的冗余安全分析。例如,并且如将在下面更详细地描述,一个或多个模块102可以使网络设备208和/或基于云的服务器206:(1)拦截发往目标计算设备202的网络数据包118;(2)识别安装在目标计算设备202上的安全系统216;(3)确定安装在目标计算设备202上的安全系统216不满足预定义的安全标准;以及(4)至少部分地基于确定安装在目标计算设备202上的安全系统216不满足预定义的安全标准,对网络数据包118执行满足预定义的安全标准的安全分析。
目标计算设备202一般表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202的实例包括但不限于:膝上型计算机、平板计算机、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、上述一个或多个的组合、图5中的示例性计算系统510,和/或任何其他合适的计算设备。
基于云的服务器206一般表示能够验证包括在计算机网络中的其他计算设备和/或存储关于包括在计算机网络中的其他计算设备的信息的一个或多个计算设备的任何类型或形式的集合。基于云的服务器206的实例包括但不限于:被配置成运行某些软件应用程序和/或提供各种网络、存储和/或数据库服务的应用程序服务器、网络服务器、存储服务器,和/或数据库服务器。
网络设备208一般表示能够拦截、转发网络数据包和/或以其他方式促进将网络数据包从一个计算设备传输到另一个计算设备的任何类型或形式的计算设备。网络设备208的实例包括但不限于:网络网关、默认网关、路由器、节点、膝上型计算机、平板计算机、台式计算机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、上述一个或多个的组合、图5中的示例性计算系统510,和/或任何其他网络设备。
网络204一般表示能够促进通信或数据传送的任何介质或体系结构。网络204的实例包括但不限于:内部网、TCP/IP网络、广域网(WAN)、局域网(LAN)、个人局域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、图6中的示例性网络体系结构600等等。网络204可以促进使用无线或有线连接的通信或数据传送。在一个实施方式中,网络204可以促进在网络设备208、目标计算设备202和/或基于云的服务器206之间通信。
安全系统216一般表示任何类型或形式的安全软件,其被配置成保护存储在计算设备上的任何信息的良好运行和/或保护信息免遭潜在的恶意活动的破坏。安全系统216的实例包括但不限于:独立的安全系统、并入分布式或基于云的安全系统的安全客户端、反病毒安全系统(例如,赛门铁克的诺顿反病毒)、互联网安全系统(例如,赛门铁克的诺顿互联网安全)、网络安全系统(例如,赛门铁克的网络安全)、防火墙安全系统、上述一个或多个的组合,和/或任何其他合适的安全系统。
图3是用于消除对网络数据包的冗余安全分析的示例性计算机实施方法300的流程图。图3中所示的步骤可以由任何合适的计算机可执行代码和/或计算系统来执行。在一些实施方式中,图3中所示的步骤可以由图1中的系统100、图2中的系统200、图5中的计算系统510和/或图6中的示例性网络体系结构600的多个组件中的一者或多者来执行。
如图3中所示,在步骤302,本文所描述的各种系统中的一个或多个可以拦截发往目标计算设备的至少一个网络数据包。例如,拦截模块104可以作为网络设备208的部分拦截发往目标计算设备202的网络数据包118。在这个实例中,网络数据包118可以包括表示至少一个文件的全部或一部分的数据。
本文所描述的系统可以用多种方式执行步骤302。在一个实例中,目标计算设备202可以提交请求以获得存储在目标计算设备的网络外部的计算设备上的某些数据。例如,目标计算设备202可以提交请求以从托管经由互联网可访问的网站的服务器(图2中未示出)下载特定文件。在这个实例中,服务器可以响应于请求而发起将网络数据包118传输到目标计算设备202。网络数据包118可以包括表示由目标计算设备202从服务器请求的文件的全部或一部分的数据。
如图4中所示,网络数据包118可以包括:元数据,其指定与包括在计算机网络中的目标计算设备相关联的目的地地址(在这个实例中,“A0-88-B4-78-4D-08”);以及有效载荷,其包括表示将由目标计算设备下载的至少一个文件的全部或一部分的数据(在这个实例中,“0x1738F12A”:至“0xD128B379”)。在一个实例中,在数据包的元数据中识别的目的地地址可以包括被指派给目标计算设备202的媒体存取控制(MAC)地址。
随着网络数据包118进入计算机网络一路到达目标计算设备202,拦截模块104可以在网络设备208处拦截网络数据包118。例如,随着网络数据包118朝着目标计算设备202前进,拦截模块104可以在网络设备208处接收网络数据包118。在这个实例中,并且如将在下面更详细地描述,网络设备208可以分析网络数据包118并且阻止网络数据包118朝着目标计算设备202前进,至少直到确定目标计算设备202的安全能力是否满足预定的安全标准。
在一些实例中,网络设备208可以表示网关,其使目标计算设备202能够接收和/或访问存储于包括在同一计算机网络或不同的计算机网络中的不同计算设备上的数据。在一个实例中,网络设备208可以充当计算机网络的防火墙。另外或替代地,网络设备208可以充当实施与包括目标计算设备202的计算机网络不同的通信协议的接口。
如图3中所示,在步骤304,本文所描述的各种系统中的一个或多个可以识别安装在目标计算设备上的安全系统。例如,识别模块106可以作为网络设备208的部分识别安装在目标计算设备202上的安全系统216。在这个实例中,安全系统216可以被配置成保护存储在目标计算设备202上的信息的良好运行和/或保护信息免遭潜在的恶意活动的破坏。
本文所描述的系统可以用多种方式执行步骤304。在一些实例中,识别模块106可以访问关于目标计算设备202的信息以识别安装在目标计算设备202上的安全系统。例如,识别模块106可以向基于云的服务器206请求访问关于目标计算设备202的信息210。在这个实例中,基于云的服务器206可以在使识别模块106能够访问信息210之前核实网络设备208是否具有足够的管理权来访问关于目标计算设备202的信息。在基于云的服务器206已核实网络设备208具有足够的管理权之后,识别模块106可以访问存储在基于云的服务器206上的信息210以识别安装在目标计算设备202上的安全系统。
如图4中所示,信息210可以指定特定计算设备(在这个实例中,“目标计算设备202”)、被指派给计算设备的网络地址(在这个实例中,“A0-88-B4-78-4D-08”)、安装在计算设备上的安全系统(在这个实例中,“赛门铁克的诺顿反病毒”)、安装在计算设备上的安全系统的当前状态(在这个实例中,“开启”)、安全系统的最新的安全更新的日期(在这个实例中,“09/15/2012”),以及计算设备的品牌和/或型号(在这个实例中,“联想THINKPAD T430”)。
在一个实例中,识别模块106可以识别在网络数据包的元数据中所指定的目的地地址。例如,识别模块106可以分析包括在网络数据包118中的元数据,并且至少部分地基于这个分析来确定网络数据包118发往与网络地址“A0-88-B4-78-4D-08”相关联的计算设备。在这个实例中,识别模块106可以比较在网络数据包的元数据中所指定的目的地地址与在信息210中所指定的网络地址“A0-88-B4-78-4D-08”。然后,识别模块106可以至少部分地基于这个比较来确定网络数据包118发往目标计算设备202。
在一个实例中,在确定网络数据包118发往目标计算设备202后,识别模块106可以识别安装在目标计算设备202上的安全系统。例如,识别模块106可以搜索安装在目标计算设备202上的安全系统的信息210。在这个实例中,识别模块106可以在搜索安装在目标计算设备202上的安全系统的信息210的同时识别安全系统216。
另外或替代地,识别模块106可以确定没有安全系统目前安装在目标计算设备202上。例如,目标计算设备202可能还没有安装安全系统。在这个实例中,识别模块106可以搜索安装在目标计算设备202上的任何安全系统的关于目标计算设备202的信息。然后,识别模块106可能在搜索关于目标计算设备202的信息的同时未能识别安装在目标计算设备202上的任何安全系统。
在一些实例中,基于云的服务器206可以验证包括在计算机网络中的一个或多个计算设备。例如,验证模块112可以作为基于云的服务器206的部分在加入计算机网络后验证目标计算设备202和/或网络设备208。通过使用基于云的服务器206验证目标计算设备202和/或网络设备208,验证模块112可以确保计算机网络提供目标计算设备202和/或网络设备208能够暴露其安全能力和/或漏洞而不存在被恶意网络参与者利用的风险的安全计算环境。
在一个实例中,验证模块112可以从目标计算设备202的用户获得用户证书。例如,验证模块112可以使目标计算设备202的用户能够创建与计算机网络相关联的用户名和密码。在这个实例中,验证模块112然后可以将由目标计算设备202的用户创建的用户名和密码存储在验证数据库212中。
在一个实例中,验证模块112可以获得目标计算设备202的用户的用户名和密码(在至少一个场合中),以使用基于云的服务器206验证目标计算设备202。例如,网络设备208可以检测到目标计算设备202试图加入计算机网络。在这个实例中,在检测到目标计算设备202试图加入计算机网络后,网络设备208可以请求目标计算设备202的用户的用户名和密码。
在一个实例中,网络设备208可以响应于请求而接收目标计算设备202的用户的用户名和密码。在这个实例中,在接收目标计算设备202的用户的用户名和密码后,网络设备208可以将用户名和密码提供给验证模块112。验证模块112然后可以通过搜索验证数据库212的用户名和密码并且在搜索期间识别用户名和密码,使用基于云的服务器206验证目标计算设备202。
在类似的实例中,验证模块112可以从网络设备208的用户获得用户证书。例如,验证模块112可以使与网络设备208相关联的网络管理员能够创建与计算机网络相关联的用户名和密码。在这个实例中,验证模块112然后可以将由网络管理员创建的用户名和密码存储在验证数据库212中。
在一个实例中,验证模块112可以获得与网络设备208相关联的网络管理员的用户名和密码(在至少一个场合中),以使用基于云的服务器206验证网络设备208。例如,网络管理员可以启动网络设备208以开始促进数据包在计算机网络内的传输。在这个实例中,在启动过程期间,网络设备208可以请求与网络设备208相关联的网络管理员的用户名和密码。
在一个实例中,网络设备208可以响应于请求而接收网络管理员的用户名和密码。在这个实例中,在接收网络管理员的用户名和密码后,网络设备208可以将用户名和密码提供给验证模块112。验证模块112然后可以通过搜索验证数据库212的用户名和密码并且在搜索期间识别用户名和密码,使用基于云的服务器206验证网络设备208。
在一些实例中,基于云的服务器206可以从包括在计算机网络中的一个或多个用户和/或计算设备获得信息210。例如,信息模块114可以作为基于云的服务器206的部分查询目标计算设备202和/或网络设备208的关于目标计算设备202的信息。另外或替代地,信息模块114可以查询目标计算设备202的用户和/或与网络设备208相关联的管理员的关于目标计算设备202的信息。响应于这些查询,信息模块114可以经由安全通信协议(诸如,超文本安全传送协议(HTTPS))接收关于目标计算设备202的信息,并且将关于目标计算设备202的信息存储为基于云的服务器206上的信息210。
在一些实例中,验证模块112可以在验证过程期间为目标计算设备202提供验证令牌。例如,验证模块112可以为目标计算设备202提供验证令牌214,验证令牌214被配置成引导目标计算设备202更新信息210。在一个实例中,验证令牌214可以引导目标计算设备202定期(例如,一周一次)更新信息210。在另一实例中,验证令牌214可以引导目标计算设备202响应于检测到对安全系统216的至少一个修改(例如,安全更新、安全系统的当前状态的改变,和/或新的安全系统)或对设备的网络地址的至少一个修改(例如,新的网络地址)而更新信息210。
在一个实例中,验证令牌214可以引导目标计算设备202为验证模块112提供识别对安全系统216或设备的网络地址的修改的更新。在这个实例中,验证模块112可以经由安全通信协议从目标计算设备202接收更新。验证模块112然后可以至少部分地基于从目标计算设备202接收的更新来更新信息210以考虑对安全系统216或设备的网络地址的修改。
如图3中所示,在步骤306,本文所描述的各种系统中的一个或多个可以确定安装在目标计算设备上的安全系统不满足预定义的安全标准。例如,确定模块108可以作为网络设备208的部分确定安装在目标计算设备202上的安全系统216不满足预定义的安全标准。本文中所用的短语“预定义的安全标准”一般是指安装在目标计算设备上的安全系统能够对网络数据包执行特定安全分析的任何类型或形式的资格或要求。
本文所描述的系统可以用多种方式执行步骤306。在一些实例中,确定模块108可以识别由计算机网络强加的预定义的安全标准。在这样的实例中,确定模块108可以确定预定义的安全标准要求网络数据包118经历特定安全分析。这个安全分析的实例包括但不限于:一个或多个特定IDS分析、IPS分析、反病毒分析、防火墙分析、基于信誉的安全分析、基于启发式的安全分析、基于签名的安全分析、上述一个或多个的组合,和/或任何其他合适的安全分析。
在一些实例中,确定模块108可以访问关于安装在目标计算设备202上的安全系统216的信息以确定安全系统216是否满足预定义的安全标准。例如,确定模块108可以访问关于本地存储在网络设备208上的安全系统216的信息。在另一实例中,确定模块108可以访问关于远程存储在基于云的服务器206上的安全系统216的信息。在另一实例中,确定模块108可以经由互联网访问关于安全系统216的信息。
在一些实例中,在访问关于安全系统216的信息后,确定模块108可以比较关于安全系统216的信息与预定义的安全标准,以确定安全系统216是否目前能够执行由预定义的安全标准所需的安全分析。例如,确定模块108可以识别在关于安全系统216的信息中所指定的安全系统216的安全能力。在这个实例中,确定模块108可以比较安全系统216的安全能力与由预定义的安全标准所需的安全分析。
然后,确定模块108可以至少部分地基于这个比较来确定安全系统216目前无法执行由预定义的安全标准所需的安全分析。如将在下面更详细地描述,通过确定安装在目标计算设备202上的安全系统216满足预定义的安全标准,确定模块108可以使安全模块110能够消除对网络数据包118执行的冗余安全分析。
在一些实例中,确定模块108也可以确定安全系统216满足不同的安全标准。例如,确定模块108可以识别由计算机网络强加的不同的安全标准。在这个实例中,确定模块108可以确定不同的预定义的安全标准要求网络数据包118经历不同的安全分析。这个不同的安全分析的实例包括但不限于:一个或多个特定IDS分析、IPS分析、反病毒分析、防火墙分析、基于信誉的安全分析、基于启发式的安全分析、基于签名的安全分析、上述一个或多个的组合,和/或任何其他合适的安全分析。
在一个实例中,确定模块108可以比较关于安全系统216的信息与不同的预定义的安全标准。在这个实例中,确定模块108可以至少部分地基于这个比较来确定安全系统216目前能够执行由不同的预定义的安全标准所需的不同的安全分析。
在具体实例中,确定模块108可以确定安全系统216无法执行由预定义的安全标准所需的特定IDS和IPS分析(因为例如安全系统216不执行任何IDS或IPS分析,或由安全系统216执行的IDS和IPS分析是过时的)。然而,确定模块108也可以确定安装在目标计算设备202上的安全系统216能够执行由不同的预定义的安全标准所需的特定反病毒和防火墙分析。
如图3中所示,在步骤308,本文所描述的各种系统中的一个或多个可以至少部分地基于确定安装在目标计算设备上的安全系统不满足预定义的安全标准,对网络数据包执行满足预定义的安全标准的安全分析。例如,安全模块110可以作为网络设备208的部分至少部分地基于确定安装在目标计算设备202上的安全系统216不满足预定义的安全标准,对网络数据包118执行满足预定义的安全标准的安全分析。换句话说,安全模块110可以在网络设备208处对网络数据包118执行安全分析,因为安装在目标计算设备202上的安全系统216目前无法执行由预定义的安全标准所需的安全分析。
本文所描述的系统可以用多种方式执行步骤308。在一些实例中,安全模块110可以在将网络数据包118转发到目标计算设备202之前对网络数据包118执行安全分析。在一个实例中,安全模块110可以至少部分地基于安全分析来确定网络数据包118不对目标计算设备202构成已知的安全风险。在这个实例中,安全模块110然后可以将网络数据包118从网络设备208转发到目标计算设备202,因为网络数据包118不对目标计算设备202构成已知的安全风险。
在另一实例中,安全模块110可以至少部分地基于安全分析来确定网络数据包118对目标计算设备202构成已知的安全风险。在这个实例中,安全模块110然后可以隔离网络数据包118(通过例如阻止网络数据包118前进到目标计算设备202),而不是将网络数据包118从网络设备208转发到目标计算设备202。
在一些实例中,响应于确定安装在目标计算设备202上的安全系统216满足不同的预定义的安全标准,安全模块110可以将网络数据包118从网络设备208转发到目标计算设备202,而不在网络设备208处对网络数据包118执行不同的安全分析。换句话说,安全模块110可以放弃对网络数据包118执行由不同的预定义的安全标准所需的不同的安全分析,因为安装在目标计算设备202上的安全系统216能够对网络数据包118执行不同的安全分析。
在具体实例中,安全模块110可以对网络数据包118执行由预定义的安全标准所需的IDS和IPS分析,因为安装在目标计算设备202上的安全系统216无法执行这些IDS和IPS分析。相反,安全模块110可以将网络数据包118转发到目标计算设备202,而不执行由不同的预定义的安全标准所需的特定反病毒和防火墙分析,因为安装在目标计算设备202上的安全系统216能够执行这些反病毒和防火墙分析。
如上文结合图3中的方法300所解释,计算机网络可以消除对发往经过验证的计算设备的网络数据包的冗余安全分析。例如,计算机网络可以提供经过验证的计算设备能够暴露其安全能力和/或漏洞而不存在被恶意网络参与者利用的风险的安全计算环境。当计算设备的用户试图加入计算机网络时,用户可能需要使用网络的基于云的服务器执行对其计算设备的一次性验证。在这个验证过程期间,用户的计算设备可以为网络的基于云的服务器提供识别目前安装在计算设备上的任何安全系统的信息。
基于云的服务器可以从用户的计算设备接收信息,然后根据请求将信息提供给网络的网关设备。例如,计算设备的用户可以试图从互联网下载文件。随着文件进入计算机网络一路到达用户的计算设备,网络的网关设备可以拦截文件并且查询基于云的服务器的识别安装在用户的计算设备上的安全系统的信息。响应于来自网络的网关设备的这个查询,基于云的服务器可以为网关设备提供识别安装在用户的计算设备上的安全系统的信息。
网络的网关设备可以从基于云的服务器接收信息,然后使用信息来确定用户的计算设备是否满足由计算机网络强加的预定义的安全标准。例如,网关设备可以比较信息与预定义的安全标准,以确定安装在用户的计算设备上的安全系统是否目前能够执行由预定义的安全标准所需的至少一个安全分析。在这个实例中,网关设备可以至少部分地基于比较来确定安全系统目前无法执行由预定义的安全标准所需的安全分析。在确定安全系统目前无法执行安全分析后,网关设备可以在将文件转发到用户的计算设备之前对文件执行安全分析。
通过确定安装在用户的计算设备上的安全系统目前无法执行安全分析,网关设备可以确保包括在计算机网络中的不同的计算设备不对文件冗余地执行相同的安全分析。另外,通过确保包括在计算机网络中的不同的计算设备不对文件冗余地执行相同的安全分析,网关设备可以有助于保护网络资源和/或提高网络的整体性能。
图5是能够实施本文所描述和/或示出的一个或多个实施方式的示例性计算系统510的方框图。例如,计算系统510的全部或一部分可以单独地或与其他元件相结合来执行和/或作为一种手段来执行本文所描述的拦截、识别、确定、执行、提供、验证、获得、存储、搜索、比较、接收、更新、转发和隔离步骤中的一个或多个。计算系统510的全部或一部分也可以执行和/或作为一种手段来执行本文所描述和/或说明的任何其他步骤、方法或过程。
计算系统510宽泛地表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统510的实例包括但不限于:工作站、膝上型计算机、客户端侧终端、服务器、分布式计算系统、手持设备,或任何其他计算系统或设备。在其最基本的配置中,计算系统510可以包括至少一个处理器514和系统存储器516。
处理器514一般表示能够处理数据或解译并执行指令的任何类型或形式的处理单元。在某些实施方式中,处理器514可以从软件应用程序或模块接收指令。这些指令可以使处理器514执行本文所描述和/或示出的一个或多个示例性实施方式的功能。
系统存储器516一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器516的实例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪速存储器,或任何其他合适的存储器设备。尽管并非要求的,但是在某些实施方式中,计算系统510可以同时包括易失性存储器单元(例如,系统存储器516)和非易失性存储设备(例如,主存储设备532,如下文详细描述)。在一个实例中,来自图1的一个或多个模块102可以载入系统存储器516中。
在某些实施方式中,除处理器514和系统存储器516之外,示例性计算系统510也可以包括一个或多个组件或元件。例如,如图5中所示,计算系统510可以包括存储器控制器518、输入/输出(I/O)控制器520和通信接口522,其中每个都可以经由通信基础设施512进行互连。通信基础设施512一般表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础设施。通信基础设施512的实例包括但不限于:通信总线(诸如,工业标准体系结构(ISA)、外设组件互连(PCI)、PCI Express(PCIe),或类似的总线)和网络。
存储器控制器518一般表示能够处理存储器或数据或者控制计算系统510的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施方式中,存储器控制器518可以经由通信基础设施512控制处理器514、系统存储器516以及I/O控制器520之间的通信。
I/O控制器520一般表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方式中,I/O控制器520可以控制或促进计算系统510的一个或多个元件之间的数据传送,所述元件诸如处理器514、系统存储器516、通信接口522、显示适配器526、输入接口530,以及存储接口534。
通信接口522宽泛地表示能够促进示例性计算系统510与一个或多个额外的设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方式中,通信接口522可以促进计算系统510与包括额外的计算系统的专用或公共网络之间的通信。通信接口522的实例包括但不限于:有线网络接口(诸如,网络接口卡)、无线网络接口(诸如,无线网络接口卡)、调制解调器,以及任何其他合适的接口。在至少一个实施方式中,通信接口522可以经由到网络(诸如,互联网)的直接链路将直接连接提供给远程服务器。通信接口522也可以通过例如局域网(诸如,以太网)、个人局域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接地提供这种连接。
在某些实施方式中,通信接口522也可以表示主机适配器,所述主机适配器被配置成经由外部总线或通信信道促进计算系统510与一个或多个额外的网络或存储设备之间的通信。主机适配器的实例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气和电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA),以及外部SATA(eSATA)主机适配器、光纤信道接口适配器、以太网适配器等等。通信接口522也可以允许计算系统510从事分布式或远程计算。例如,通信接口522可以从远程设备接收指令或将指令发送到远程设备来执行。
如图5中所示,计算系统510也可以包括至少一个显示设备524,显示设备524经由显示适配器526耦合到通信基础设施512。显示设备524一般表示能够可视地显示由显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526一般表示被配置成从通信基础设施512(或从如本领域中已知的帧缓存器)转发用于在显示设备524上显示的图形、文本和其他数据的任何类型或形式的设备。
如图5中所示,示例性计算系统510也可以包括至少一个输入设备528,输入设备528经由输入接口530耦合到通信基础设施512。输入设备528一般表示能够将计算机或人工生成的输入提供给示例性计算系统510的任何类型或形式的输入设备。输入设备528的实例包括但不限于:键盘、指向设备、语音辨识设备,或任何其他输入设备。
如图5中所示,示例性计算系统510也可以包括经由存储接口534耦合到通信基础设施512的主存储设备532和备份存储设备533。存储设备532和533一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等等。存储接口534一般表示用于在存储设备532和533与计算系统510的其他组件之间传送数据的任何类型或形式的接口或设备。在一个实例中,来自图2的数据库212可以存储在主存储设备532中。
在某些实施方式中,存储设备532和533可以被配置成从可移动存储单元读取和/或写入到可移动存储单元,所述可移动存储单元被配置成存储计算机软件、数据,或其他计算机可读信息。合适的可移动存储单元的实例包括但不限于:软盘、磁带、光盘、闪速存储器设备等等。存储设备532和533也可以包括其他类似的结构或设备,所述结构或设备用于允许计算机软件、数据或其他计算机可读指令被载入计算系统510中。例如,存储设备532和533可以被配置成读取和写入软件、数据,或其他计算机可读信息。存储设备532和533也可以是计算系统510的一部分或可以是通过其他接口系统被访问的单独的设备。
许多其他设备或子系统可以连接到计算系统510。相反地,图5中所示的所有组件和设备无需存在来实践本文所描述和/或示出的实施方式。上文提及的设备和子系统也可以用不同于图5中所示的方式进行互连。计算系统510也可以利用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施方式可以被编码为计算机可读存储介质上的计算机程序(也被称为计算机软件、软件应用程序、计算机可读指令,或计算机控制逻辑)。短语“计算机可读存储介质”一般是指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读存储介质的实例包括但不限于:传输型介质,诸如载波;以及非暂时性型介质,诸如磁性存储介质(例如,硬盘驱动器和软盘)、光学存储介质(例如,压缩光盘(CD)或数字视频光盘(DVD))、电子存储介质(例如,固态驱动器和闪存介质),和其他分布系统。
包含计算机程序的计算机可读存储介质可以被载入计算系统510中。存储在计算机可读存储介质上的计算机程序的全部或一部分然后可以被存储在系统存储器516和/或存储设备532和533的各部分中。当载入计算系统510中的计算机程序由处理器514执行时,所述计算机程序可以使处理器514执行和/或作为一种手段来执行本文所描述和/或示出的一个或多个示例性实施方式的功能。另外或替代地,本文所描述和/或示出的一个或多个示例性实施方式可以用固件和/或硬件来实施。例如,计算系统510可以被配置成适于实施本文所公开的一个或多个示例性实施方式的专用集成电路(ASIC)。
图6是示例性网络体系结构600的方框图,其中客户端系统610、620和630以及服务器640和645可以耦合到网络650。如上详述,网络体系结构600的全部或一部分可以单独地或与其他元件相结合来执行和/或作为一种手段来执行本文所公开的拦截、识别、确定、执行、提供、验证、获得、存储、搜索、比较、接收、更新、转发和隔离步骤中的一个或多个。网络体系结构600的全部或一部分也可以用于执行和/或作为一种手段来执行本公开中阐述的其他步骤和特征。
客户端系统610、620和630一般表示任何类型或形式的计算设备或系统,诸如图5中的示例性计算系统510。类似地,服务器640和645一般表示被配置成提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络650一般表示任何电信或计算机网络,包括例如内部网、WAN、LAN、PAN或互联网。在一个实例中,客户端系统610、620和/或630和/或服务器640和/或645可以包括来自图1的系统100的全部或一部分。
如图6中所示,一个或多个存储设备660(1)-(N)可以直接附加到服务器640。类似地,一个或多个存储设备670(1)-(N)可以直接附加到服务器645。存储设备660(1)-(N)和存储设备670(1)-(N)一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方式中,存储设备660(1)-(N)和存储设备670(1)-(N)可以表示网络附加存储(NAS)设备,所述网络附加存储(NAS)设备被配置成使用各种协议,诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS)与服务器640和645进行通信。
服务器640和645也可以连接到存储区域网络(SAN)结构680。SAN结构680一般表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN结构680可以促进服务器640和645与多个存储设备690(1)-(N)和/或智能存储阵列695之间的通信。SAN结构680也可以经由网络650以及服务器640和645以这样的方式促进客户端系统610、620和630与存储设备690(1)-(N)和/或智能存储阵列695之间的通信:设备690(1)-(N)和阵列695呈现为客户端系统610、620和630的本地附加设备。与存储设备660(1)-(N)和存储设备670(1)-(N)相同,存储设备690(1)-(N)和智能存储阵列695一般表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方式中,并且参照图5的示例性计算系统510,通信接口(诸如,图5中的通信接口522)可以用于在每个客户端系统610、620和630与网络650之间提供连接性。客户端系统610、620和630可能能够使用例如网页浏览器或其他客户端软件来访问服务器640或645上的信息。这种软件可以允许客户端系统610、620和630访问由服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)或智能存储阵列695托管的数据。尽管图6描绘使用网络(诸如,互联网)来交换数据,但是本文所描述和/或说明的实施方式不限于互联网或任何特定的基于网络的环境。
在至少一个实施方式中,本文所公开的一个或多个示例性实施方式的全部或一部分可以被编码为计算机程序并且载入服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、智能存储阵列695或其任何组合上并加以执行。本文所公开的一个或多个示例性实施方式的全部或一部分也可以被编码为计算机程序,存储在服务器640中,由服务器645运行,以及通过网络650分配到客户端系统610、620和630。
如上详述,计算系统510和/或网络体系结构600的一个或多个组件可以单独地或与其他元件相结合来执行和/或作为一种手段来执行用于消除对网络数据包的冗余安全分析的示例性方法的一个或多个步骤。
尽管上述公开使用具体方框图、流程图和实例阐述了各种实施方式,但是本文所描述和/或示出的每个方框图组件、流程图步骤、操作和/或组件可以使用范围广泛的硬件、软件或固件(或其任何组合)配置来单独和/或共同实施。另外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可以实施许多其他体系结构来实现相同功能性。
在一些实例中,图1中的示例性系统100的全部或一部分可以表示云计算环境或基于网络的环境的多个部分。云计算环境可以经由互联网提供各种服务和应用程序。这些基于云的服务(例如,软件即服务、平台即服务、基础设施即服务等)可以通过网页浏览器或其他远程接口进行访问。本文所描述的各种功能可以通过远程桌面环境或任何其他基于云的计算环境来提供。
在各种实施方式中,图1中的示例性系统100的全部或一部分可以促进在基于云的计算环境内的多租赁。换句话说,本文所描述的软件模块可以将计算系统(例如,服务器)配置成促进针对本文所描述的一个或多个功能的多租赁。例如,本文所描述的一个或多个软件模块可以将服务器编程为使两个或更多个客户端(例如,客户)能够共享在服务器上运行的应用程序。以这种方式编程的服务器可以在多个客户(即,租户)之中共享应用程序、操作系统、处理系统,和/或存储系统。本文所描述的一个或多个模块也可以为每个客户分割多租户应用程序的数据和/或配置信息,使得一个客户不能访问另一个客户的数据和/或配置信息。
根据各种实施方式,图1中的示例性系统100的全部或一部分可以在虚拟环境内实施。例如,本文所描述的模块和/或数据可以在虚拟机内驻留和/或执行。如本文所用,短语“虚拟机”一般是指通过虚拟机管理器(例如,管理程序)从计算硬件抽象出来的任何操作系统环境。另外或替代地,本文所描述的模块和/或数据可以在虚拟化层内驻留和/或执行。如本文所用的短语“虚拟化层”一般是指覆盖和/或从操作系统环境抽象出来的任何数据层和/或应用层。虚拟化层可以由软件虚拟化解决方案(例如,文件系统过滤器)来管理,所述软件虚拟化解决方案将虚拟化层呈现为就好像虚拟化层是基础的基本操作系统的部分。例如,软件虚拟化解决方案可以将最初定向到基本文件系统和/或注册表内的位置的调用重定向到虚拟化层内的位置。
本文所描述和/或示出的过程参数和步骤顺序仅通过实例的方式给出并且可以根据需要改变。例如,尽管本文示出和/或描述的步骤可能以特定顺序示出或讨论,但是这些步骤不一定需要按示出或讨论的顺序来执行。本文所描述和/或示出的各种示例性方法也可以省略本文描述或示出的步骤中的一个或多个,或除了所公开的那些步骤之外还包括额外的步骤。
尽管本文已经在充分发挥功能的计算系统的背景下描述和/或示出了各种实施方式,但是这些示例性实施方式中的一个或多个可以作为多种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读存储介质的特定类型。本文所公开的实施方式也可以使用执行某些任务的软件模块来实施。这些软件模块可以包括脚本、批处理,或可以存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方式中,这些软件模块可以将计算系统配置成执行本文所公开的一个或多个示例性实施方式。
另外,本文所描述的一个或多个模块可以将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述的一个或多个模块可以在网络设备处拦截至少一个网络数据包、转换网络数据包、输出网络数据包转换的结果,以及使用转换的结果来消除对网络数据包执行的冗余安全分析。另外或替代地,本文所述的一个或多个模块可以通过在计算设备上执行、将数据存储在计算设备上和/或以其他方式与计算设备交互,将处理器、易失性存储器、非易失性存储器和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
已经提供前面的描述以使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方式的各个方面。这个示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本公开的精神和范围的情况下,许多修改和变化是可能的。本文所公开的实施方式在所有方面均应被视为说明性的而非限制性的。应参考所附权利要求和其等效物来确定本公开的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“一”应被解释为意指“……中的至少一个”。另外,为了易于使用,在本说明书和权利要求中使用的词语“包括”和“具有”与词语“包含”可互换并且与词语“包含”具有相同含义。