一种网络安全系统及其方法与流程

文档序号:12142177阅读:411来源:国知局
一种网络安全系统及其方法与流程

本申请要求于2015年2月5日提交的美国非临时申请14/615,020的权益,该美国非临时申请要求于2014年12月1日提交的美国临时申请62/085,844的权益以及于2014年7月18日提交的美国临时申请62/026,393的权益,其内容通过引用并入本文。

技术领域

本公开通常涉及网络安全系统,并且更具体地涉及用于威胁减轻的实时可定制和可编程网络安全系统。



背景技术:

互联网提供对用于发布信息的各种信息、应用、服务和交通工具的访问。如今,互联网已经大大地改变了我们访问和使用信息的方式。互联网允许用户快速和容易地获得服务,比如银行、电子商务、电子交易以及人们在他们的日常生活中访问的其他服务。

为了访问这样的服务,用户经常共享他的个人信息给服务提供商,所述信息例如姓名、联系方式,高度机密的信息,例如用户名、密码、银行帐号、信用卡详细信息等等。同样地,比如商业秘密、财务细节、雇员详细信息、公司策略等公司的机密信息也存储在连接到因特网的服务器上。存在这样的威胁,即这种机密数据可能被恶意软件、病毒、间谍软件、密钥记录器和各种其他未经授权访问的方法访问,包括使用合法工具(例如,远程桌面和远程处理服务)访问此类信息或安装将允许访问此类信息的恶意软件。这种未经授权的访问对不警惕的计算机用户造成极大的危险。

最近,针对所有包括但不限于云提供商、企业组织和网络运营商的组织进行的攻击的频率和复杂程度都有所增加。一些复杂的攻击,称为多向量攻击活动,利用不同类型的攻击技术和目标网络以及应用资源,以便识别至少一个可以利用来实现攻击的目的的弱点,从而危及网络的整个安全框架。

另一种类型的复杂攻击是高级持续性威胁(APT)。APT是其中未经授权的黑客获得对网络的访问并且长时间保持未被检测到的一种攻击。APT攻击的目的通常是窃取数据,而不是对网络或组织造成直接损害。APT攻击通常针对具有高价值信息的部门,如国防、制造业、零售和金融行业。

这些攻击经常是成功的,因为现代安全解决方案不够灵活和适应需要满足这种不断变化的威胁的资源的检测、调查和减轻。当前的安全解决方案不能容易且迅速地适应于检测和减轻新的攻击行为或者以显著的方式改变行为的攻击。此外,当前的安全解决方案不能容易和迅速地适应由需要保护的实体实现的新的网络技术和拓扑。

例如,在现代计算平台中,这样的虚拟化和软件定义网络(SDN)面临对安全系统的真正挑战。这种平台通过虚拟分布式和动态资源来托管(host)大量租户。每个租户能够在几分钟内被移除或创建,并且可以被转换成恶意资源,从而攻击其自己的“邻居”、租户或远程网络实体。

具体地,当前可用的解决方案具有包括例如可编程能力、自动减轻和协作上的缺点。例如,不可编程的安全防御系统在几天或甚至几个小时内变得无效,因为这样的安全系统无法及时抵抗或适应任何新的攻击行为。

安全解决方案,特别是用于APT攻击的解决方案,不提供可靠的自动减轻能力。通常,APT安全解决方案不是为检测和自动减轻而设计的。此外,由于此类系统生成的高级别的假阳性警报,系统管理员不信任当前可用的APT安全解决方案。作为这种假阳性警报的结果,系统管理员必须经常手动执行减轻动作,而不允许自动减轻,这通常延长了减轻攻击的时间。

此外,由于有暴露受保护实体的机密数据的风险,当前安全解决方案在不同公司之间不共享攻击信息和检测、调查和减轻解决方案。这种通信的缺乏限制了使用与另一组织或相同组织中的另一系统检测到的攻击行为相关的信息来适配一个安全系统的能力,该能力允许安全系统通过允许已经受到新的威胁并成功地解决了威胁的安全系统提供使用的有关安全功能或应用的信息来对新的威胁迅速做出反应。

因此,有利的是提供一种通过允许容易适应的和可定制的网络安全系统来克服现有技术网络安全系统的缺陷的解决方案。进一步有利的是这样的解决方案将自动检测和减轻进入的威胁。



技术实现要素:

本公开的几个示例方面的概述如下。提供本概述是为了读者的方便,以提供对这些实施例的基本理解而不是完全地限定本发明的范围。本概述不是所有预期实施例的广泛综述,并且既不旨在标识所有方面的关键或重要元素,也不描述任何或所有方面的范围。其唯一目的在于以简化的形式呈现一个或多个实施例的一些概念,作为稍后呈现的更详细描述的前奏。为了方便,在本文中术语“一些实施例”可用于指本公开的单一实施例或者多个实施例。

本文公开的某些实施例包括用于自适应地保护受保护实体免受网络威胁的方法。该方法包括:选择配置为处理网络威胁的至少一个安全应用,其中所述至少一个安全应用执行分配给所述至少一个安全应用的多个安全服务;确定所述至少一个安全应用各自的至少一个工作流规则;从所述多个安全服务接收多个信号,其中关于潜在的网络威胁生成所述多个信号中的每个信号;生成接收到的所述多个信号各自的至少一个安全事件;检查确定所述至少一个安全事件是否满足所述至少一个工作流规则;以及在确定所述至少一个安全事件满足所述工作流规则时,生成关于所述潜在网络威胁的至少一个动作。

本文公开的某些实施例还包括用于自适应地保护受保护实体免受网络威胁的方法。该方法包括:选择配置为处理网络威胁的至少一个安全应用,其中所述至少一个安全应用执行分配给所选择的至少一个安全应用的多个安全服务,并且其中所述多个安全服务的每一个安全服务配置为执行至少一个引擎;接收与所述受保护实体相关的多个信号;分析接收到的所述多个信号以确定所选择的至少一个安全应用是否被最佳地配置为处理威胁所述受保护实体的潜在网络威胁;以及在确定所述至少一个安全应用未被最佳地配置为处理所述潜在的网络威胁时,重新编程所选择的至少一个安全应用。

本文公开的某些实施例还包括用于自适应地保护受保护实体免受网络威胁的系统。该系统包括:处理器;和存储器,所述存储器包含指令,当通过所述处理器执行所述指令时,将所述系统配置为:选择配置为处理网络威胁的至少一个安全应用,其中所述至少一个安全应用执行分配给所述至少一个安全应用的多个安全服务;确定所述至少一个安全应用各自的至少一个工作流规则;从所述多个安全服务接收多个信号,其中关于潜在的网络威胁生成所述多个信号中的每个信号;生成接收到的所述多个信号各自的至少一个安全事件;确定所述至少一个安全事件是否满足所述至少一个工作流规则;以及在确定所述至少一个安全事件满足所述工作流规则时,生成关于所述潜在网络威胁的至少一个动作。

本文公开的某些实施例还包括用于自适应地保护受保护实体免受网络威胁的系统,包括:处理器;以及存储器,所述存储器包含指令,当通过所述处理器执行所述指令时将所述系统配置为:选择配置为处理网络威胁的至少一个安全应用,其中所述至少一个安全应用执行分配给所选择的至少一个安全应用的多个安全服务,并且其中所述多个安全服务的每一个安全服务配置为执行至少一个引擎;接收与所述受保护实体相关的多个信号;分析接收到的所述多个信号以确定所选择的至少一个安全应用是否被最佳地配置为处理威胁所述受保护实体的潜在网络威胁;以及在确定所述至少一个安全应用未被最佳地配置为处理所述潜在的网络威胁时,重新编程所选择的至少一个安全应用。

附图说明

在说明书结尾处的权利要求书中特别指出并清楚地要求保护本文所公开的主题。结合附图进行以下详细描述,本发明的前述以及其他目标、特征以及优点将变得显而易见。

图1是根据一个实施例实现的网络安全系统的示意图;

图2是根据一个实施例实现的安全堆栈模块的框图;

图3是安全堆栈模块的各个单元之间的通信接口的示意图;

图4是根据实施例的用户应用异常安全服务的框图;

图5是根据实施例的安全应用单元中的安全服务的使用的示意图;

图6是根据实施例的基于事件规则的安全信号的检查的示意图;和

图7是根据一个实施例的网络安全系统的操作的流程图。

具体实施方式

重要的是要注意本文公开的实施例仅仅是本文的创新教导的许多有益使用的例子。通常,在本申请的说明书中做出的陈述不必限制任何所要求保护的实施例。此外,一些陈述可以适用于一些创造性特征,但不适用于其他特征。一般来说,除非另有说明,否则单数元素可以是复数,反之亦然,而不失一般性。在附图中,多个视图中相同的数字代表相同的部件。

各种公开的实施例包括网络安全系统及其方法。所公开的实施例被设计为保护受保护实体。受保护实体可以包括例如L2/3网络元件、服务器应用(例如,Web、邮件、FTP、语音和视频会议、数据库、ERP等)、“中间盒”设备(例如防火墙、负载平衡器、NAT、代理设备等)、SDN控制器(例如OpenFlow控制器和虚拟覆盖网络控制器)和个人计算设备(例如PC、笔记本电脑、平板电脑、智能手机、可穿戴计算设备、智能电视和其他具有互联网连接(也称为IoT)的设备。

在一些配置中,受保护实体可以通过各种计算平台部署或访问。如上所述,计算平台可以包括但不限于虚拟化网络和软件定义网络(SDN)。所公开的网络安全系统被配置为检测和减轻多向量攻击活动,所述多向量攻击活动携带高级持续性威胁(APT)攻击、网络注入攻击、网络钓鱼相关威胁、应用和服务器资源的滥用、拒绝服务(DoS)以及分布式DoS(DDoS)攻击、业务逻辑攻击、违反访问策略等。APT包括但不限于恶意软件命令和控制以及恶意软件传播。攻击的业务逻辑类型包括但不限于网络智能收集,例如网络扫描、应用扫描和攻击的网络抓取类型。所公开的网络安全系统设计为通过提供用于响应网络威胁的可编程、可定制和自适应的架构来实现全面保护。

在一实施例中,所公开的网络安全系统被布置为允许系统适应受保护实体和正在进行的攻击活动的变化的分层模型。在一个实施例中,网络安全系统提供能力创建、定义或编程新的安全应用,以修改现有应用的功能以及容易地在多个应用之间关联和创建工作流。安全应用定义如何检测和减轻对受保护实体的威胁,这些特定资源应当在保护应该发生的地方用于保护,等等。在一实施例中,可以使用下面更详细讨论的一组安全服务来定义安全应用。

安全应用和服务能够在相同或不同公司的不同网络安全系统之间共享或协作。在一实施例中,安全应用能够保存在中央资源库中,从而允许系统管理员将应用导入到他们的系统或导出已经开发的应用。应当注意,能够利用多个安全应用来检测和减轻正在进行的攻击活动。

图1是根据一个实施例实现的网络安全系统100的示例性和非限制性示意图。网络安全系统100被配置为保护在网络110中通信连接的实体130(以下称为“受保护实体”)。网络安全系统100也连接到网络110。网络110可以是但不限于虚拟化网络、软件定义网络(SDN)、混合网络、云服务网络或它们的任何组合。

SDN可以在广域网(WAN)、局域网(LAN)、因特网、城域网(MAN)、ISP主干网、数据中心等等中实现。SDN中的每个网络元件可以是路由器、交换机、桥接器、负载平衡器、DPI设备等等,以及它们的任何虚拟实例化。通常,SDN的元件包括中央SDN控制器140和多个网络元件150。在某些实现中,中央SDN控制器140使用OpenFlow协议、Netconf协议等与网络元件150通信,OpenFlow协议为这种通信提供网络抽象层,Netconf协议提供安装、操纵和删除网络设备的配置的机制。在示例性配置中,网络110可以是混合网络,其中SDN是常规网络的子网络,其中SDN的元件不能通过中央SDN控制器编程。

在一个实施例中,安全系统100通过中央SDN控制器140与网络110对接。在另一实施例中,网络安全系统100的功能能够集成在中央SDN控制器140中。或者,网络安全系统100的功能直接与数据平面中的网络元件操作(或者它可以是上述的混合)。这允许在网络100(SDN,传统(非SDN)网络或混合网络)中的各种位置中实现安全功能以保护受保护实体130。

在一实施例中,安全功能通过网络安全系统100编程以执行检测、调查和减轻功能(在图1中分别标记为f1、f2和f3)。在网络安全系统100的操作的不同阶段,即检测、调查和减轻阶段执行所述功能,并且通过网络安全系统100独立地编程。应当注意,一些或所有功能(f1、f2和f3)能够在网络110中实现或另外执行。

在示例性实现中,网络安全系统100包括安全堆栈模块111和网络接口模块113。安全堆栈模块111配置为控制和执行各个阶段以保护受保护实体130。具体地,安全堆栈模块111配置为通过多个安全应用或“app”来创建、控制、编程和执行安全功能(f1、f2和f3)。安全堆栈模块111的操作在下文中参考图2更详细地讨论。

网络接口模块113提供网络安全系统100的接口层给中央SDN控制器140,以允许与基于SDN的网络元件150进行换向(commutation)。在另一实施例中,网络接口模块113还与网络110中的“传统”网络元件170通信。允许对传统网络元件进行配置、控制和监控的通信驱动器的非限制性示例包括但不限于边界网关协议、(BGP)流程规范、NetConf、命令行接口(CLI)、NetFlow、中间盒装置驱动器(例如,L4-L7驱动器、DPI装置驱动器)、端点装置驱动器(移动的、基于主机的安全应用)、服务器应用等。

图2示出了根据一个实施例实现的安全堆栈模块111的示例性和非限制性框图。在示例性实现中,安全堆栈模块111包括以下单元:安全应用单元210、安全服务单元220、数据平面单元230和北向网络接口(NBI)240。安全堆栈模块111包括可跨不同安全应用211重用的安全服务221。因此,不同的安全应用211(每个用于不同的目的)能够为它们自己的需要消耗相同的安全服务221。

具体地,安全应用单元210包括安全应用(app)211。每个安全应用211表示不同类型的安全保护或功能,包括例如APT检测和减轻、低速和慢速攻击保护、信誉安全智能、网页抓取检测、减轻等。与安全应用接口的模块或功能提供所需的服务,所述服务允许根据不断发展的安全需要创建或更新安全应用。

在一实施例中,安全应用单元210预配置有一组安全应用211。可以根据需要从安全应用单元210添加和移除附加的安全应用211。在一实施例中,在安全应用单元210中托管的所有安全应用211实现预定义的API以便有效地与安全服务221通信。

安全服务单元220包括不同类型的安全服务221。每个安全服务被设计为托管多个安全决策引擎并且服务一个或多个安全应用211。安全服务221还被设计为提供对网络数据平面中的安全功能(f1、f2和f3)的有效控制。

每个安全服务221包括可编程安全决策引擎。系统100能够使用一组预定义的引擎、导入引擎和/或创建新的安全决策引擎以及共享(导出)引擎。这种引擎的创建和修改能够通过编程语言来执行。引擎以及因此安全服务能够允许网络安全系统100适应新的威胁、新的攻击行为、未知的行为或利用新的逃避技术的攻击。

以下是能够通过安全服务单元220保持和执行的示例性和非限制性安全服务221。第一类型的安全服务向网络元件(例如,向路由器、交换机滥用带宽资源等)提供网络活动的可编程异常检测。

另一种类型的安全服务提供对朝向服务器应用(例如,Web、邮件、FTP、VoIP等等)的网络活动的可编程异常检测。另一种类型的安全服务提供对用户异常活动的可编程检测。

另一种类型的安全服务允许管理和分析多种类型的信誉源(第三方智能安全源)。该服务允许创建自生成的信誉数据库,该信誉数据库能够成为其他安全应用和第三方安全系统的信誉源。信誉数据库保持源的声誉。这样的信誉可以用于识别对比其他应用不太可能包含威胁的第三方安全应用。

另一种类型的安全服务允许编程高级挑战-响应动作,该动作验证用户的应用的合法性。另一种类型的安全服务允许控制在网络中的多种类型的沙箱功能(为每个任务混合并匹配最佳功能),以便分析比如Web对象、邮件附件、可执行文件等内容,并识别异常代码行为。这种类型的服务还允许创建和修改沙箱分析规则以进行分析优化。

然而另一种类型的安全服务生成实时(RT)攻击(或异常)指纹。这些实时攻击指纹表示攻击的网络流量模式,例如基于用户的攻击(例如,生成网络流量活动的恶意软件)、基于服务器的攻击(例如,Web抓取网络活动、蛮力网络活动等)和基于网络的攻击(例如,网络分布式拒绝服务(DDoS)攻击网络活动)。这些实时攻击指纹可用于威胁的实时减轻,以及用于声誉和取证分析。

然而另一种类型的安全服务允许管理多种类型的攻击签名数据库(DB)(例如,第三方侵入攻击签名数据库)、将相关攻击签名集成和/或注入到数据平面DPI功能中,以及以一种能够通过安全应用或通过其他安全服务管理的方式监控结果。

然而另一种类型的安全服务允许将源IP地址映射到网络用户身份。该服务可以通信地连接到北向接口240,以便查询来自第三方身份管理系统的信息。

应当注意,由系统100的架构实现的安全堆栈模块111的可编程性允许用户选择不同类型的安全服务,从而提供混合和匹配的能力。具体地,该能力通过数据平面单元230和网络接口模块113实现,网络接口模块113为网络中的所有下划线数据平面功能(underlining data-plane functions)(例如路由器、交换机、DPI设备、沙箱服务器、挑战响应服务器等)提供抽象层。

可以从数据平面单元230和/或从北向接口240检索安全服务221的操作所需的信息。应当注意,单元220中的安全服务还与安全应用单元210通信并对接(安全应用单元210控制和管理安全服务单元220中的安全服务211)。

还应当注意,上面列出的安全服务仅仅是示例,并且能够在根据本文公开的实施例的网络安全系统100中利用其他服务。在各种非限制性实施例中,提供编程语言以便允许用户根据业务需要创建和修改安全应用并创建和修改包含在每个安全服务中的引擎。

数据平面单元230提供数据平面资源的中央管理,例如路由器、交换机、中间盒设备等。在一实施例中,数据平面单元230允许安全服务从数据平面资源检索和存储所需的网络和应用信息,以及实施安全网络控制动作。通过数据平面单元230提供的各种功能包括拓扑发现、流量监控、数据收集、业务重定向、流量分布(用于横向扩展资源的L2、L3负载平衡)、流量复制等。

拓扑发现涉及与数据平面网络元件、SDN控制器和编排系统的交互,以便检索网络拓扑信息。此功能对于其他数据平面功能和安全服务以及应用所需的拓扑感知非常重要。

重定向和缩放功能被设计为管理所有网络流量重定向功能,包括但不限于流量重定向、智能流量复制、流量分配等。

数据收集可以涉及从探针收集统计资料并存储这样的统计资料。统计资料收集可以包括但不限于来自网络元件的基于网络的统计资料;来自DPI资源(包括中间盒和服务器)的基于应用的网络统计资料;以及来自网络、DPI、中间盒和端点资源的基于用户的统计资料。监控器和收集器服务将统计信息规格化为可通过安全服务单元220中的安全服务221分析的格式。

数据平面单元230进一步提供以下功能:网络元件中的服务质量(QoS)动作的管理,以及一组减轻功能。减轻功能包括基本访问控制列表(ACL)服务,其是在整个网络元件中管理分布式规则的第二层到第四层访问控制列表服务。该服务可以支持软件定义的网络和传统网络元素以及混合网络。

高级ACL功能具有与基本ACL功能类似的特性,但可以定义更细粒度的包括应用参数(L7)的访问规则。具体地,ACL功能能够使用来自实时指纹生成服务(之前讨论)的所生成的RT指纹作为阻塞规则。ACL功能通常与DPI网络元件一起操作以实施应用级ACL规则。服务速率限制管理数据平面设备中的QoS规则。黑洞路由功能提供重定向数据平面服务的扩展,所述扩展用于管理用户的重定向到黑洞。通常,黑洞是入站或出站(incoming or outgoing)流量被静默丢弃(或“丢弃”)而不通知源所述数据未到达其预期接收者的网络位置。

在一实施例中,数据平面服务允许实时检测和“近”实时检测。通过将数据直接从数据平面收集器实时地馈送到安全服务单元220而不存储原始统计信息(即,仅将结果存储在安全服务单元220中)来促进攻击的实时检测。通常,数据平面单元230提供安全服务221所需的所有原始信息,并且通过安全服务221和安全应用211做出的决定来控制网络。

在一些示例性实现中,通过数据平面单元230提供的某些功能能够在中央SDN控制器140中实现。这样的功能的示例可以包括但不限于重定向、监控和数据收集。

北向接口240在安全堆栈模块111和一个或多个外部系统(未示出)之间接入。外部系统可以包括例如第三方安全分析系统、安全智能馈源(security intelligence feeds)、安全门户、数据中心编配控制系统、身份管理系统或可以向安全堆栈模块111提供信息的任何其他系统。这使得能够进行更广泛的基于上下文的安全决策过程。在一实施例中,接口240可以包括标准接口,比如CLI、REST API、Web用户接口,以及驱动器,所述驱动器已经编程用于特定第三方系统的控制、配置和/或监控,等等。北向接口240还与网络接口模块113对接。

在示例性和非限制性实施例中,安全服务221可以包括但不限于网络异常安全服务221-1、用户应用异常安全服务221-2、沙箱安全服务221-3、信誉安全服务221-4、用户身份安全服务221-5、攻击签名安全服务221-6、挑战-应答安全服务221-7、实时指纹生成安全服务221-8、反病毒(AV)安全服务221-9和Web应用(WAF)安全服务222-10。

网络异常安全服务221-1是编程为分析基于用户的网络行为的近实时服务。在一实施例中,网络异常安全服务221-1包括用户简档数据结构和编程为连续地生成基于用户的异常分数(SoA)的一组决策引擎。SoA是能够通过安全应用211相关联的安全信号。高SoA反映了表征不同类型的基于网络的攻击的用户网络行为异常,比如网络预攻击探针扫描活动(智能收集)、恶意软件(L3/L4网络级)传播活动、低和慢滥用TCP堆栈资源攻击、异常用户通信通道等。在一实施例中,通过服务221-1执行的任何检测被近实时地执行。为此,网络异常安全服务221-1可编程以生成不存储长期用户数据的复杂事件处理设计模型。

用户应用异常安全服务221-2编程为连续地学习用户(或一组用户)的网络和应用连接活动。在一实施例中,服务221-2实现每个流量参数的一个长期(例如,至少12周)自适应基线。此服务的用户简档数据结构聚集L3-L7参数以及应用元数据,并且连续地为每个参数(或者为多个参数功能,例如流量比率)生成基线,包括24乘7(24x7)的差异化基线,即在一周内的每个时间和日期存储基线。

用户应用异常服务221-2包括通过一组引擎规则编程的一组安全引擎。用户能够通过定义一组新的引擎规则来修改和编程新的安全引擎。每个引擎被编程为对每个用户或用户组连续生成SoA。高SoA反映异常的用户应用活动,比如与放置点的通信、与命令和控制服务器的通信、恶意软件传播活动、应用蛮力(brute-force)、应用扫描、用户行为不当应用(user-misbehaving applications)(例如,假应用)等等。丢弃点提供内部和外部丢弃点/区域用作高级信息隐形攻击活动的一部分。图4中提供了用户应用异常服务221-2的详细框图。

在一实施例中,网络和用户应用异常服务221-1和221-2都可以被编程以生成使来自其他安全服务221的信号相关的SoA。这种相关性通过下面更详细讨论的一组引擎规则执行。

沙盒安全服务221-3被编程为选择性地选择需要分析内容的所需的沙箱功能,所述内容比如Web对象、邮件附件、可执行文件等。沙盒安全服务221-3被配置为控制和管理沙盒功能资源以及分析它们的输出。

信誉安全服务221-4被配置为允许管理和分析多种类型的信誉源(例如,第三方智能安全源)。该信誉安全服务221-4允许创建自生成的信誉数据库,该信誉数据库能够成为其他安全应用221和第三方安全系统的信誉源。对于APT威胁检测,信誉信息的分析和管理集中在钓鱼站点、坏信誉恶意软件站点、丢弃点和信用卡服务器。用户身份安全服务221-5允许将源IP地址映射到网络用户身份。为此,用户身份安全服务221-5能够查询身份管理系统。

攻击签名安全服务221-6被配置为允许管理多种类型的攻击签名数据库(DB),比如第三方入侵签名数据库,以将相关攻击签名集成/注入到数据平面DPI功能,并且以能够通过安全应用211或其他安全服务221管理的方式监控结果。安全服务221-6还允许管理和控制第三方数据平面设备,比如数据平面中的网络入侵检测服务(NIDS)和网络入侵防护服务(NIPS)。为了允许APT威胁检测,客户端基于漏洞的攻击签名通过攻击签名安全服务221-4管理。

能够用于检测APT威胁的其他类型的安全服务221包括但不限制于被配置为允许编程高级挑战-响应动作的用户挑战-响应安全服务221-7,所述高级挑战-响应动作验证用户应用的合法性,以及负责分析检测到的异常参数(例如,通过用户应用异常服务检测到的异常)并以实时或近实时创建表征异常的指纹的用户实时指纹生成安全服务221-8。这样的指纹能够用于威胁的实时调查和减轻,以及用于声誉和取证分析。

应当注意,上面列出的安全服务221仅仅是示例,并且能够在根据本文公开的实施例的系统100中利用其他服务。在各种非限制性实施例中,提供编程语言以便允许用户在各个情况的基础上创建和修改安全应用并创建和修改包含在每个安全服务221中的引擎。

此外,如图3所示,每个单元210、220、230和240以及安全堆栈模块111通过预定义的一组接口和/或API(统一标记为接口300)通信地互连。结果是,网络安全系统100是完全可编程和可配置的。接口300可以被设计为在各个模块和单元之间的单向、双向或一对多双向的信息流。

应当注意,网络安全系统100中的模块和安全堆栈模块111中的单元210、220和230是独立的。因此,一个单元或模块中的任何改变不一定导致对其他模块的任何改变。

根据一实施例,网络安全系统100被设计为激活/去激活以及在单元210中的安全应用和单元220中的安全服务之间进行关联,以便定义、创建或编程用于检测和减轻对受保护实体的攻击的鲁棒解决方案。用于激活、去激活和关联网络安全系统100的各种功能和模块的序列基于一个或多个工作流规则。在一实施例中,在系统100中基于被限定为处理某一威胁的至少一个工作流规则来执行检测、调查和/或减轻功能。

在顶层,相关模型允许每个安全应用关联从其他安全应用接收的馈送,从而使得整个安全决策制定过程更加整体和基于上下文,即在进行最终安全决策之前将来自不同安全应用类型的决策输出关联。

为此,每个安全应用可以通过管理不同馈送的相关性的控制器与其他安全应用以及服务通信。

在较低层,馈送的相关性发生在多个安全服务之间。这允许单个安全应用基于多个服务做出决定,以便提高整体决策准确性。

根据一个实施例,通过由安全应用的控制器处理和应用的一组工作流(或相关)规则来执行各种馈送的相关性。在一实施例中,通过用户定义所述一组工作流规则。在另一实施例中,控制器实现学习机制以定义或另外选择要执行的一组相关规则。工作流规则分别对应网络安全系统100能够处理的攻击进行设置。也就是说,在示例性实现中,为每个不同类型的威胁定义一组工作流规则。

网络安全系统100的模块和安全堆栈模块110的各个单元中的每个、一些或所有模块可以通过处理系统实现。处理系统可以包括或者是用一个或多个处理器实现的较大处理系统的组件。一个或多个处理器可以用通用微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、离散硬件组件、专用硬件有限状态机或能够执行信息的计算或其他操作的任何其他合适的实体。

处理系统还可以包括用于存储软件的机器可读介质。软件应被广泛地解释为意味着任何类型的指令,无论是指软件、固件、中间件、微代码、硬件描述语言还是其他。指令可以包括代码(例如,以源代码格式、二进制代码格式、可执行代码格式或其他任何合适的代码格式)。在通过一个或多个处理器执行指令时使处理系统执行本文所述的各种功能。

图4示出了根据一个实施例的充当安全服务400的用户应用异常安全服务的示例性框图。用户应用异常安全服务400是检测APT攻击的基石,因为黑客经常通过利用网络中的合法用户并假设这样的用户的典型行为来获得对网络的访问并且保持长期未被检测。

安全服务400包括用户简档模块410、多个用户异常行为引擎420和一组归一化功能440。用户简档模块410被配置为在预定义的时间段(例如,4至12周)内为用户活动存储和计算基线参数。用户简档模块410通常存储每个用户流量参数的基线以及多个参数函数的基线(例如,入站对比出站流量参数的比率、应用流量参数的相对部分、相对频率等)。

在一实施例中,存储在用户简档模块410中的每个简档被构造为包括两个部分:分类和特性。分类部分包括分层结构中的用户流量分类参数。每个层次结构级别被定义为“流路径”。特性部分包括每个分类流路径的流量参数的动态特性。流量参数的特性包括速率变化和速率不变参数的实时值和基线。作为非限制性示例,流路径可以以不同粒度级别在两个网络实体之间定义端到端流量路径。流路径的分类可以基于例如源身份、目的地身份、协议类型、第4层端口、应用类型、浏览器类型、操作系统等。流量参数的特性包括例如每秒数据包(PPS)、每秒连接数(CPS)、数据包大小、并发连接数、流数据对称性(上传/下载比)、请求类型(例如,浏览器类型请求对比API调用),等等。

用户异常行为引擎420被配置为基于引擎规则和相应的用户简档,生成每个用户的一个基于用户的异常分数(SoA)。为了计算用户的SoA,从用户简档模块410检索用户的实时和自适应基线,并且其中的每个参数通过自适应归一化功能440来归一化。如上所述,每个参数或一组参数具有其自己的自适应归一化功能440。在时间间隔(通常为一小时)中通过适合的基线来调整自适应归一化功能440。每个自适应归一化功能440以能够通过用户异常行为引擎420处理的格式产生参数偏差权重。自适应归一化功能440还负责归一化来自其他安全服务的信号

计算出的SoA被提供给安全应用211,安全应用211基于编程的工作流和工作流规则来决定要执行的动作。这样的动作可以包括例如启动调查阶段、保持在检测阶段、收集更多信息、激活另一服务或引擎等。

如图4所示,用户应用异常行为安全服务还能够使其他安全服务(例如,服务221)的输出(信号)相关联。典型的输出将与来自信誉、攻击指纹、沙盒和服务(上面详细讨论的)的输出相关联。安全服务(例如,服务221)的输出可以是整数值、布尔值等等。这些值通过自适应归一化功能归一化为能够通过用户应用异常安全服务引擎处理的格式。

在一示例性实现中,例如配置为检测APT攻击的实现中,用户应用异常安全服务400配置有一组用户异常行为引擎420。每个用户异常行为引擎420被编程为评估或检测由于APT的活动引起的用户行为的异常。这些异常可以包括但不限制于异常的地理通信(例如,与新的地理位置通信的用户);与特定目的地的异常用户通信;通过特定应用消耗的异常内容类型(例如,由或帐户消耗的二进制内容);具有异常流量对称性(例如,异常上传或下载活动、充当服务器的客户端等)的用户连接;基于带宽消耗和/或连接消耗的异常用户应用行为;跨越不同目的地的用户连接的重复或类似行为模式;与同一目的地异常通信并具有类似连接模式的用户;基于比如连接、带宽、目的地、应用类型等参数的用户异常的基于时间的活动(例如,24/7活动);交叉户(cross-users)连接行为相似点;异常周期性客户端以相同的间隔通信到同一目标;等等。

用户异常行为引擎420还能够被配置为检测或评估与在用户设备上执行的应用相关的异常。这样的异常可以包括例如异常的DNS流量(例如,来自相同客户端的太多DNS查询、来自相同客户端的相同大小的DNS请求)、快速通量行为(例如,通过多个动态改变的IP地址表示的单域);通过典型HTTP端口的非真实HTTP流量;Web电子邮件服务器的异常使用;异常的浏览器类型使用;和异常的点对点流量模式。在一实施例中,每个用户异常行为引擎420生成量化从标准确定的用户或用户组的行为参数的偏差的SoA,所述标准分别在用户简档模块410中维护的简档所确定的标准。SoA可以是整数值、布尔值、级别(例如,高、低、中等)或测量活动等级的任何其他的形式。SoA是连续生成的,并因此能够随时间改变且用于测量异常分数的趋势。

在一实施例中,SoA通过能够由安全服务221中的每个引擎处理的一组引擎规则生成。引擎规则通常包括以下中的一个或多个:一组布尔运算符(AND,OR,NOT等);一组权重级别(低、中、高);等等。以下是用于用户异常协议使用的引擎规则的非限制性示例:

1.IF user L4 dest port flow[BPM is Very High OR CPM is Very High]THEN HIGH SOA

2.IF user L4 dest port flow[Aggregated bytes is High AND CPM is Normal]THEN LOW SOA

3.IF user L4 dest port flow[Aggregated Bytes is Very High]THEN HIGH SOA

BPM是每分钟的字节数,CPM是每分钟L4连接的数量,并且聚合的字节是在相对长的时间段(例如,1小时)中用户的流的字节数。“user L4dest port flow”定义规则的参数应用的流的范围(在这种情况下,所有参数应用于目的L4连接流,该流被定义为所有用户的L4连接与相同目的端口号的聚合)。

“高”和“低”值是可配置的。参数“聚合字节”、“CPM”和“BPM”是用户应用简档的一部分。所生成的SoA(信号)被馈送到安全应用211。该安全应用能够将生成的SoA转化为馈送到应用的工作流规则的安全事件。例如,高SoA值可以转化为安全事件,而低SoA值可以不转化为安全事件。

图5示出了根据一个实施例的安全应用单元中的安全服务的使用的示例性且非限制性示意图。安全应用单元210包括多个安全应用511-1至511-n(以下统称为安全应用511并且单独地作为安全应用511,仅出于简化的目的。每个安全应用511可以进一步包括顶部控制器(TC)512。

每个顶部控制器512向其他安全应用511发送警报和从其他安全应用511接收警报。作为非限制性示例,顶部控制器512-1可以向安全应用511-2到511-n发送警报并且从安全应用511-2到511-n接收警报。每个顶部控制器512订阅至少一个安全应用511。订阅的安全应用511是顶部控制器512可以向其发送警报或从其接收警报的安全应用511。

在图5所示的实施例中,顶部控制器512-1至少订阅安全应用511-2和511-n。类似地,如图5所示的实施例中,顶部控制器512-2至少订阅安全应用511-1和511-n,并且顶部控制器512-n至少订阅安全应用511-1和511-2。

在一实施例中,主顶部控制器(例如,顶部控制器512-1)被配置为通过其他顶部控制器512激活和去激活安全应用511。为此,主顶部控制器配置有一组工作流规则。主顶部控制器通常订阅与另一顶部控制器512相关联的每个安全应用511。

各种安全服务221(图5中未示出)向安全应用511输出安全信号。可以响应于恶意软件活动、协议使用异常、点行为丢失、网络扫描行为等检测而生成安全信号。

这种信号的示例是上述的SoA。应用检查接收到的信号中的一个和/或任何组合是否满足至少一个事件规则。进一步将事件规则相关联以检查它们是否满足工作流规则。满足至少一个工作流规则的事件将触发比如但不限制于减轻动作、调查动作等动作。在图6中进一步描述了用于检查和关联规则的过程。

如示例性且非限制性图6所示,安全服务511生成并输出安全信号610。安全服务511可以是上述的任何安全服务。安全信号610被馈送到安全应用511,安全应用511检查接收的安全信号610的一个和/或任何组合是否满足至少一个安全事件规则620。安全信号610可以响应于恶意软件活动、协议使用异常、丢弃点行为等检测而生成。在一实施例中,利用将信号映射到相关应用和相关事件规则620的“上下文”属性来生成每个信号。当创建安全应用521时,信号上下文属性通过安全应用配置。

在一实施例中,事件规则620能够应用于信号值、持续时间、频率等。在一实施例中,安全信号610是以脉冲的形式。安全信号610可以通过被编程为监控向内部丢弃区网络实体发送信息的用户的安全决策引擎(未示出)生成。

在该实施例中,安全事件规则620定义了如果脉冲在高于25秒的持续时间内为高(高SoA),则触发安全事件630。以下是事件规则的非限制性示例:

IF<H>SoA time=><10m>in-period<24h>THEN event<10m/24h internal drop point behavior>

IF<H>SoA<High risk source>occurrences=>5 THEN event<High risk user drop point behavior)

其中<H>指的是高范围的SoA值,<高风险源>指的是保持高度机密信息的任何网络实体。

参考回图6,从安全服务521接收的并且与安全规则630匹配的安全信号610分别生成安全事件630。在一实施例中,每个事件规则处理相关信号并相应地生成安全事件630。安全信号的处理包括不同类型的功能,比如简单信号计数器、指数移动计数器、信号周期识别功能、频率功能等。

安全事件630通过安全应用521使用工作流规则640来相关。如上所述,满足至少一个工作流规则640的安全事件630将触发比如但不限制于减轻动作、调查动作等动作。作为示例,工作流规则640能够在信誉事件和用户异常事件之间进行相关。在一实施例中,能够为系统安全应用521的操作的不同阶段,即检测阶段、调查阶段和减轻阶段,定义工作流规则640。

可以使用以下示例性语法来定义条件工作流规则:

IF<event<network-entities><attributes>><exp.p><logical operator><event[attributes]><exp.p><scope>...THEN<action(s)>

可以使用以下示例性语法来定义非条件工作流规则:

<event<network-entities>>

这种类型的非条件规则通常用于表示安全功能的事件,例如但不限于ACL、挑战-应答、RT指纹服务等。在条件或非条件规则中定义的每个网络实体可以是任何物理或逻辑网络实体。这样的实体包括但不限制于IP地址的范围、子网、主机、域名、用户名、VPN等。“事件”参数是触发的安全事件或特定的安全功能(例如,调查或减轻功能,例如ACL、挑战-响应功能等)。“属性”列出与所生成的事件相关联的一组网络属性(例如,源身份、目的地身份、目的地L4端口、L7协议、应用等)。“exp.p”参数以秒、分钟、小时和天为单位设置有效期。该规则能够进一步定义一个或多个布尔运算符,例如OR、AND、NOT、AND-THEN(AND-THEN定义事件之间的时间依赖性)。如果满足规则,则动作参数定义要执行的至少一个动作。动作可以是例如开始服务、停止服务、报告、终止所有服务、创建组事件等。

以下是检测阶段中工作流规则的一些非限制性示例:

IF<scan probe>AND<manual probe>THEN group event<Probe>,report“group event called‘probe’created”

在上述示例中,创建了组合两个安全事件(手动预攻击探测事件和自动扫描事件)的新的安全事件。在这种情况下,组事件表示重大的预攻击探测活动。组事件允许语言的简化,因为可以使用较少数量的事件对象来编写下一个规则。

在第二示例中,如果已经检测到用户之一具有表示向丢弃点发送信息的用户行为的高SoA,则工作流规则激活减轻服务。

IF probe AND-THEN drop-point<source=probe-destination>THEN start service<mitigation>

图7示出根据一个实施例的网络安全系统的操作的示例性且非限制性的流程图700。所公开的方法提供由网络安全系统实现的动态安全过程,其中基于各种安全应用和服务配置的条件集合来执行关于威胁的检测和减轻的决定。这些条件部分地定义什么事件将触发不同的保护阶段,比如但不限制于检测、调查和减轻。

在S710中,选择要用于保护受保护实体的一个或多个安全应用。可以基于要处理的威胁、受保护实体的所有者订阅的服务级别、外部保护考虑等来执行选择。安全应用以及网络安全系统100能够处理的威胁包括但不限制于APT攻击、Web注入攻击、网络钓鱼相关的威胁、应用和服务器资源的滥用、DoS和DDoS攻击、业务逻辑攻击和违反访问策略。APT攻击可以包括但不限制于恶意软件命令和控制以及恶意软件传播。攻击的业务逻辑类型可以包括但不限制于网络扫描、应用扫描和攻击的Web报废类型。

如上所述,每个安全应用可以包括或另外执行一组安全服务。因此,也选择要通过每个应用执行的一个或多个安全服务。例如,如果安全服务S1、S2和S3分别被定义为第一安全应用SA1和第二安全应用SA2,则这些服务中的每一个可以被包括在要被执行的安全应用中。也就是说,第一安全应用SA1可以包括S1和S3;而第二安全应用SA2可以包括服务S2和S3。在一实施例中,分配给应用的安全服务中的一个、一些或全部在前台执行,而其余的在后台执行。如本文将详细讨论的,服务能够总是在其运行时间期间添加到安全应用。

在S720中,设置至少一个工作流规则。工作流规则部分地定义用于安全服务或功能的激活序列。例如,应用SA1、服务S1能够最初在前台运行,并且S3能够在后台运行。在确定需要S3时,能够在前台启动S3的执行。工作流规则可以通过用户(例如,管理员)设置或者在选择适当的安全应用时通过用户自动设置。

在S730中,安全应用通过安全系统激活和执行。

安全应用操作以检测、调查和/或减轻如上文详细讨论的威胁。响应于安全应用的执行的动作的激活通过至少一个工作流规则确定。

在S740中,接收并分析在应用的运行时间期间接收的各种馈送。这样的馈送可以包括通过安全服务生成的信号(例如,SoA)、风险智能馈送等。风险智能馈源可以通过配置成检测新威胁的安全服务提供或者从通信地连接到网络安全系统的外部系统提供。

在S750,检查这样的馈送的分析是否应该触发安全应用的重新编程。例如,如果已经检测到新的威胁或者攻击规模已经增加并且初始分配的安全服务不能有效地处理这样的情况,则安全应用应该重新编程。可以触发安全应用的重新编程的其他馈送包括通过安全应用提供的保护机制不能有效操作的标识。如果S750结果为“是”回答,则应用继续进行S760,其中执行安全应用的重编程过程;执行返回到S740。

根据一实施例,S760包括确定需要哪些安全服务(或其中执行的引擎)来改进安全应用;将这样的安全服务分配给所述安全应用;设置新的或修改现有事件规则以关联通过新分配的服务生成的信号;设置新的或修改现有工作流规则以处理通过新添加的服务生成的事件;编程在运行的安全服务内可操作的新引擎;激活在运行的安全服务内可操作的新引擎;以及激活新的安全服务。

在一个实施例中,新的安全服务可以在安全服务单元220中预先配置或从不同的网络安全单元或资源库导入。新安全服务的选择可以通过用户执行或通过系统建议。

在进一步的实施例中,附加的安全服务能够通过安全应用无缝地分配和执行,而不修改事件规则和/或最初设置的工作流规则(例如,在S720中)。根据该实施例,任何新的安全服务和/或其相应的引擎被分配唯一的标签。安全应用能够在考虑通过新服务和/或其相应引擎输出的信号的同时处理事件规则。该信号也可以被标记。例如,SoA信号能够用新安全服务的唯一标签“A10232”标记并且通过事件规则评估:

IF H SOA(tag A10232)time=>10m in period 24h THEN event“drop point behavior”

具有唯一标签的每个SoA信号将通过以下两种方法之一进行处理:持续性的,其中SoA通过事件规则单独地处理;或者累加地,其中具有相同标签的所有SoA信号被一起处理,就好像它们是从相同的安全服务和/或其相应的引擎抵达。也就是说,使用相同标签的两个或更多个引擎生成将通过相同事件规则处理的SoA信号。此外,当添加具有相同标签的安全服务和/或其相应引擎时,工作流规则不需要改变并且相同的工作流规则处理结果事件。因此,本文公开的网络安全系统能够执行新的安全服务和/或引擎而不用更新事件和/或工作流规则。

应当注意,由于每个安全堆栈模块(例如,模块111)的架构,新服务的执行不需要停止安全应用的操作。

在一实施例中,其中定义的安全应用和服务可能够由用户通过一组图形接口或通过预定义的一组模板来编程。这将允许用户规定、配置和控制安全堆栈中的安全服务,创建新的安全应用程序或引擎,修改现有的安全应用程序和引擎,以及其他。

作为本文公开的方法的操作的非限制性示例,安全应用包括被配置为检测异常活动的第一安全服务、被配置为调查异常活动的第二服务、以及被配置为减轻攻击的第三安全服务。具体地,第一安全服务被配置为检测来自以异常方式(例如,看起来像“用户密码”破解蛮力活动)作用的因特网的源IP地址的范围。工作流规则定义第一服务被配置为指示当检测到可疑源时触发第二安全服务。

作为示例,第二服务根据源的最相关的信誉DB来评估源,并且找到具有高分数的匹配(例如,已知某些源是坏信誉誉bot源)。通过工作流规则定义的用于第三服务的触发是这种高分的检测。第三服务提供减轻动作,例如通过分布式ACL的实现。该应用程序被编程为检索最新的网络拓扑信息并在最接近网络访问的点(或分布点)处实现ACL。访问限制在预定义的时间段内。

应当注意,可以并行执行不同的安全应用和/或服务。还应当注意,能够在每个操作阶段中执行多于一个的安全应用。此外,来自不同域或科(disciplines)的多个安全应用能够并行执行。

本文公开的各种实施例能够通过硬件、固件、软件、或者上述的任何组合实现。此外,软件优选在程序存储单元或者有形电脑可读媒体上作为有形实施的应用程序执行,所述可读媒体由部件或者某些设备,又或者是设备的组合构成。该应用程序可以上传至包含任意合理结构的机器上,并在其上执行。优选地,该机器在拥有硬件的计算机平台上执行,所述硬件如一个或多个中央处理器(“CPU”)、一个存储器以及输入/输出接口。所述计算机平台还可以包括操作系统和微指令代码。本文描述的各种过程和功能可以是可通过CPU执行的微指令的一部分或者应用程序的一部分,又或者是上述的任何组合,不管这些计算机或者处理器是否明确示出。此外,各种其他外围单元可以连接到计算机平台,比如附加数据存储单元和打印单元。进一步讲,非暂时性计算机可读介质是指除瞬时传播媒体信号以外的任何计算机可读介质。

应当理解,本文中使用比如“第一”、“第二”等指定的元件的任何引用通常不限制那些元件的数量或顺序。相反,这些指定在本文中通常作为区分两个或多个元件或元件的实例的方便的方法。因此,对第一和第二元件的引用并不意味着那里可以仅使用两个元件,或者第一元件必须以某种方式在第二元件之前。此外,除非另有说明,一组元件包括一个或多个元件。此外,形式为“A、B或C中的至少一个”或“A、B或C中的一个或多个”或“由A、B和C组成的组中的至少一个”或“A、B和C中的至少一个”的术语在说明书或权利要求书中使用是指“A或B或C或这些元件的任何组合”。例如,该术语可以包括A、或B、或C、或A和B、或A和C、或A和B和C、或2A、或2B或、2C等等。

本文所述的所有示例和条件语言旨在用于教导目的,以帮助读者理解所公开的实施例的原理和发明人为促进本领域所贡献的概念,并且应当解释为不对此类具体引用的实例和条件做出限制。此外,本文中叙述的原理、方面和实施例以及其具体示例的所有陈述旨在包括其结构和功能等同物。另外,这样的等同物旨在包括当前已知的等同物以及将来开发的等同物,即,开发的执行相同功能的任何元件,而不管结构如何。

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