在网络环境中用于重定向的防火墙发现的系统和方法

文档序号:7992907阅读:283来源:国知局
在网络环境中用于重定向的防火墙发现的系统和方法
【专利摘要】在一个示例实施例中提供了一种方法,其包括从主机在元数据信道上接收元数据。元数据可以与网络流相关,并且网络策略可以被应用于连接。在其他实施例中,可以从主机接收网络流,而没有与该流相关联的元数据,并且发现重定向可以被发送到主机。然后元数据可以被接收并且与流相关,以识别网络策略动作从而应用到所述流。
【专利说明】在网络环境中用于重定向的防火墙发现的系统和方法
【技术领域】
[0001]概括地说,本说明书涉及网络安全领域,更具体地说,涉及在网络环境中用于重定向的防火墙发现的系统和方法。
【背景技术】
[0002]在今天的社会中网络安全领域已经变得越来越重要。互联网已经可以使全世界的不同计算机网络能够互联。然而,互联网也已经给恶意操作者呈现了许多机会以利用这些网络。一旦某些类型的恶意软件(例如bot)已经感染了主机计算机,就可以配置软件以接收来自远程操作者的命令。可以指示软件执行任何数量的恶意行为,例如从主机计算机发送垃圾邮件或者恶意电子邮件、从与主机计算机相关联的商业或者个人窃取敏感信息、传播到其他主机计算机、和/或协助分布式拒绝服务攻击。此外,恶意操作者可以将访问权出售或者给予给其他恶意操作者,因此逐步升级对这些主机计算机的利用。因此,有效地保护和维持稳定的计算机和系统的能力对于部件制造商、系统设计者和网络运营商来说,继续呈现重大挑战。
【专利附图】

【附图说明】
[0003]为了提供对本公开及其特征和优点的更加完全的理解,结合附图对以下的描述做出了参考,其中相似的参考数字代表相似的部分,其中:
[0004]图1是示出了按照本说明书的可以通过主机重定向发现防火墙的网络环境的示例实施例的简化框图;
[0005]图2是示出了与网络环境的一个潜在实施例相关联的额外细节的简化框图;
[0006]图3是示出了与网络环境的示例实施例相关联的潜在操作的简化交互图;
[0007]图4是示出了与网络环境的示例实施例相关联的潜在操作的简化交互图,其中所述网络环境具有识别对管理的路由无效的防火墙的陈旧防火墙缓存。
[0008]图5是示出了与网络环境的其他示例实施例相关联的潜在操作的简化交互图,其中所述网络环境具有识别对管理的路由无效的防火墙的陈旧防火墙缓存;以及
[0009]图6是与网络环境的示例实施例中的交换元数据相关联的示例分组数据单元格式。
【具体实施方式】
[0010]在一个示例实施例中提供了一种方法,其包括从主机通过元数据信道接收元数据。元数据可以与网络流有关,并且网络策略可以被应用于流。
[0011]在其他实施例中,可以从主机接收网络流,而没有与流相关联的元数据,并且可以将发现重定向发送到主机。然后可以接收元数据并且使其与流相关以识别网络策略动作以应用到流。
[0012]示例实施例[0013]转到图1,图1是网络环境10的示例实施例的简化框图,其中通过主机重定向可以发现防火墙。在图1示出的实施例中,网络环境10可以包括互联网15、用户主机20a和20b、防火墙25、策略服务器30、邮件服务器35、以及网络服务器40。通常,用户主机20a_20b可以是在网络连接中的任何类型的终端节点,包括但不限于台式计算机、服务器、膝上计算机、移动电话、或者任何其他类型的可以与另一个节点接收或者建立连接的设备,例如邮件服务器35或者网络服务器40。防火墙25可以控制在用户主机20a-20b和附在互联网15或者另一网络上的其他节点之间的通信,例如通过阻挡未授权的访问同时允许授权的通信。在一些实例中,防火墙25可以耦合到或者集成到入侵阻止系统、网络访问控制设备、网络网关、电子邮件网关、或者在互联网15和用户主机20a-20b之间的任何其他类型的网关。此外,在靠近用户主机20a-20b的路由拓扑中的防火墙25的位置是任意的。策略服务器30可以耦合到或者集成到防火墙25,并且可以用于管理用户主机20a-20b,以及管理和分配网络策略。因此,在这个示例实施例中,如果由在防火墙25中执行并且由策略服务器30管理的策略允许,那么通过经过防火墙25建立连接,用户主机20a-20b可以与附在互联网15上的服务器通信,例如邮件服务器35或者网络服务器40。
[0014]图1中的每个元件可以通过简单的接口或者通过任何其它合适的连接(有线的或者无线的)而彼此耦合,所述连接提供用于网络通信的可行路径。此外,这些元件中的任何一个或多个可以基于特定的配置需要被合并或者被从架构中移除。网络环境10可以包括能够针对在网络中传送或者接收分组的传输控制协议/互联网协议(TCP/IP)通信的配置。网络环境10还可以在适当的地方和基于特定的需要结合用户数据报协议/IP(UDP/IP)或者任何其他合适的协议操作。
[0015]为了解释在示例实施例中用于提供网络安全的技术的目的,理解在给定的网络之内发生的活动是重要的。以下的基本信息可以被视为本公开被恰当解释的基础。认真地提供这样的信息仅仅是为了解释的目的,因此,不应当被解释为以任何方式限制本公开的宽的范围和其潜在应用。
[0016]在组织中和由个人使用的典型的网络环境包括与使用互联网的其他网络进行电子通信的能力,例如访问以连接到互联网的服务器为主机的网页、发送或者接收电子邮件(即电子邮件)消息、或者交换文件。然而,恶意用户继续开发用于使用互联网散布恶意软件和获取对机密信息的访问的新战术。恶意软件通常包括被设计用于访问和/或控制计算机而没有通知计算机所有者同意的任何软件,并且最通常被用作任何敌意的、入侵的、或者烦人的软件(例如计算机病毒、bot、间谍软件、广告软件等)的标签。一旦受到损害,恶意软件可以破坏主机并且用它进行恶意活动,例如发送垃圾邮件或者窃取信息。恶意软件还通常包括一个或多个传播向量,其使它能够在组织的网络之内进行散布,或者跨越其它网络散布到其他组织或者个人。一般的传播向量包括利用在本地网络之内的主机上的已知弱点,并且发送附有恶意程序的电子邮件或者在电子邮件之内提供恶意链接。
[0017]恶意软件可以操作的一种方式是通过使用与用户所期望的不同的网络协议交换来欺骗用户。恶意软件可以被打包以便说服用户允许访问从而以一些无害的方式运行它,因此允许它访问网络,其经常可能要求经过防火墙或者其他安全措施。恶意软件然后可以利用访问权以从事不是用户所预期的替代或者额外的活动。例如,游戏可以发送电子邮件消息,或者文字处理器可以打开网络连接。同时,恶意软件也可以使用标准协议以欺骗防火墙允许恶意软件建立远程连接。
[0018]例如僵尸网络(botnet)使用恶意软件,并且越来越威胁到计算机安全。在许多情况下,它们采用包括公知的和新的弱点的组合的复杂攻击方案。僵尸网络通常使用客户端-服务器架构,其中一种恶意软件(即bot)被放置在主机计算机上,并且与命令和控制(C&C)服务器通信,其可以由恶意用户(例如,僵尸网络操作者)控制。通常,僵尸网络由大量的bot组成,其可以由操作者使用C&C协议经过各种信道进行控制,包括互联网中继聊天(IRC)和点对点(P2P)通信。bot可以从C&C服务器接收命令以执行特定的恶意活动,并且因此可以执行这样的命令。bot还可以将任何结果或者窃取信息发送回C&C服务器。
[0019]bot通常被设计为发起与C&C服务器的通信,并且冒充为正常的网络浏览器流量。例如,bot可以使用通常被用于与网络服务器通信的端口。因此,在不执行更详细的网络流量的分组检查的情况下,现有的技术可能不会检测到这样的bot。此外,一旦bot被发现,僵尸网络操作者可以通过bot简单地找到另一种方式冒充网络流量以继续呈现为正常的网络流量。最近,僵尸网络操作者已经精心制作了 bot以使用加密协议(例如安全套接字层(SSL)),因此加密恶意网络流量。这样的加密流量可以使用超文本传输协议安全(HTTPS)端口以便仅仅在加密的会话中所涉及的端点可以解密数据。因此,现存的防火墙和其他网络入侵阻止技术可能不能执行任何有意义的网络流量的检查,而bot可以继续感染在网络内的主机计算机。
[0020]其他软件安全技术聚焦在阻止未授权的程序文件在主机计算机上执行,这对于终端用户或者商业的雇员或者其他组织实体来说,可能有不期望的副作用。网络或者信息技术(IT)管理员可能负责制作关于商业实体所有方面的广泛的策略,以使雇员能够从期望的和信任的网络资源处得到软件和其他电子数据。没有适当的广泛策略,雇员可能被阻止从没有被特别授权的网络资源下载软件和其他电子数据,即使这样的软件和其他数据促进合法的和必需的商业活动。这样的系统可以是约束性的,以致如果在主机计算机找到未授权的软件,则任何主机计算机活动可能被暂停,等待网络管理员介入。此外,在网络级别可能简单的因为有太多应用,以致不能有效地追踪和并入策略。大的白名单或者黑名单可能难以维护并且可能降级网络性能,一些应用可能不容易被简单识别。
[0021]但是,在主机和防火墙之间可以共享信息,以共同和相互地实现更好的安全性。例如,主机可以理解应用为运行具有特定认证的进程的可执行文件,而防火墙可以理解应用为也可以与特定用户认证相关的在TCP连接中的协议。主机可以与防火墙共享会话描述符和其他元数据,而当需要时防火墙可以与主机共享网络策略,以使应用活动与期望的网络行为相关。网络策略可以包括安全策略的元素和其他网络特定参数,例如服务质量(QoS)和路由。主机还可以与通用唯一标识符(UUID)相关联,其可以被用于使起源于网络地址翻译器后面的连接和活动相关。
[0022]主机还可以通知防火墙:到主机的额外网络连接。例如,如果主机同时具有活动的无线和有线连接,那么可能会有这样的风险:在一个连接上接收到的数据被传输到另一个,因此可能希望约束对敏感数据的访问。主机也可以通知防火墙连接是否与虚拟机相关联,或者主机是否具有可装载的读/写介质(例如附上的USB棒)。
[0023]在网络环境10的一些实施例中,主机可以包括多个附加点,使得它具有多个IP地址。在其他实施例中,主机可以使用IP版本6 (IPv6),可能包括隐私扩展(RFC4941),使得它具有一个或多个注册的和已知的IPv6地址和一个或多个隐藏的或者私有的IPv6地址。在这些实施例中,互锁防火墙可以简单地使用动态信息共享,以发现在主机上的所有地址的用户到主机映射。
[0024]在网络环境10中的互锁主机和防火墙之间的这个动态信息共享可以提供优于传统架构的几点好处。例如,通过与主机协调防火墙策略,防火墙可以不同地管理路由,例如通过根据在主机上的多个用户中的哪个正在尝试建立连接以允许或者拒绝流量。此外,仅仅需要被粒度控制的应用需要由防火墙控制。因此,防火墙可以控制任意的或者躲避的应用,提供更高的有效吞吐量,和控制移动用户流量。此外,可以限速不需要被完全允许或者拒绝的流量。利用防火墙上可用的处理信息,也可以对任意的或者躲避应用进行限速,差异化服务可以被提供给管理的和非管理的主机。
[0025]许多主机可能对所有路由仅使用单个防火墙。在主机上运行的代理可以维护能够识别这个防火墙的防火墙缓存。在更加复杂的场景中,主机可以使用不止一个防火墙,在这样的情况下,主机理解哪个防火墙将会处理给定的流是重要的。通过映射给定的网络路由到特定的防火墙,防火墙缓存可以提供通过不止一个防火墙的路由。路由通常是管理的或者非管理的。“管理的路由”通常是指通过可以被配置以接收网络流的元数据的防火墙的路由,而“非管理的路由”是通过不能接收元数据的防火墙的路由。防火墙缓存可以使网络(例如,由网络目的地和网络掩码识别出的)与例如被指定用于管理到网络的流的防火墙相关联,或者可以使非管理的路由与空值相关联。防火墙缓存可以由管理者初始化或者配置,提供分离的配置给每个命名的网络和/或当网络第一次使用时的默认配置。一些配置可以最初基于所有的全球IP地址是在互联网上的假设来为互联网地址定义一个防火墙。
[0026]会话描述符通常包括关于与给定的网络会话相关联的主机和应用的信息。例如,会话描述符可以包括与主机相关联的UUID和进程所有者的用户证书。由于用户可以运行具有不同用户证书的分离的过程,所以这样的信息对于Citrix和终端服务而言可以是特别有优势的。会话描述符可以额外地包括运行尝试建立网络连接的过程的应用文件的文件名、路径名、或者其它唯一标识符(例如C:\...WINWORD.ΕΧΕ)。例如,在一些实施例中,可以由应用的可执行文件的散列函数识别应用,以便使它对于恶意用户来讲更难以冒用应用名称。防火墙可以使这个信息与应用标识符或者协议相关,以确保应用如期望般地执行。会话描述符还可以包含关于主机环境的信息,例如在主机上安装的软件和软件的当前的配置和状态,允许防火墙用作网络访问控制设备。例如,会话描述符可以指示本地反病毒系统是否是最新的并且正在运行。如果基于主机的数据丢失阻止(HDLP)软件是可用的,那么会话描述符还可以包括用于文件传送的文件打字(file-typing)信息。HDLP通常判定被传送出网络的文件的类型(例如HF、Word等)。防火墙可以具有关于正在被通过特定协议传输的某个文件类型的额外策略,其可能对于HDLP程序来说不是直接可见的。
[0027]在网络环境10的一些实施例中,会话描述符和其他元数据可以通过带外通信信道(“元数据信道”)进行交换,其可以借助对通信隐私提供认证和/或加密的协议实施。在更具体的实施例中,可以使用数据报传输层安全(DTLS)协议以提供具有通信隐私的元数据信道,主机和防火墙可以基于一般证书权限使用证书。在一些实施例中,策略服务器可以分配证书到主机和防火墙,而外部证书权限可以被用于其他实施例中。一些协议,包括DTLS,还可以被用于建立从防火墙到主机的反向信道,其可以例如用于误差消息和诊断。[0028]主机可以在打开新的网络流之前发送元数据到防火墙,以便通常元数据在新流的第一分组之前到达防火墙。更具体的,在主机上的防火墙代理可以拦截新流的第一分组,并且发送与该流相关联的会话描述符和其他元数据,例如源IP地址和端口、目的地IP地址和端口以及协议。防火墙可以维护元数据缓存,并且如果防火墙代理释放网络流则使该流与元数据相关。更具体的,防火墙可以使元数据与网络流数据相关,其宽泛地指这样的信息:使给定的网络流与源节点(即发送或者尝试发送分组的节点)和一个目的地节点(即分组被寻址到的节点)或者多个目的地节点(例如广播或者多播地址)相关联。流数据还可以包括关于流的其他信息,例如协议族或者协议。
[0029]例如,TCP通常通过握手打开新的流(通常在TCP流的上下文中称作“连接”)一主机发送具有一个被设定以指示正在进行三次握手的TCP标志位(即SYN位)的第一分组。因此,通过检测在发送SYN分组(即具有设定的SYN位的分组)的源节点上的申请并且保持SYN分组,源节点上的代理可以拦截新的TCP连接。代理可能能够识别用于管理到与新连接相关联的目的地节点的路由的防火墙,例如通过在防火墙缓存中定位路由及其相关联的防火墙,并且通过安全的元数据信道发送元数据到防火墙(防火墙可以被缓存)。然后可以通过发送SYN分组到防火墙而释放连接请求,并且防火墙可以与源IP、目的地IP、协议等相关。
[0030]流不限于使用可靠协议(例如TCP)进行通信;流还可以包括使用不可靠的协议(例如UDP或者IP)进行通信。在其他实施例中,代理可以追踪使用不可靠协议的流,并且在它传输元数据时通过保持流的第一分组而拦截新流。代理还能够通过缓存流的第一分组的散列来重新传输元数据,并且比较所述散列与后续分组的散列以判定是否第一分组正被应用重新传输。在其他实施例中,防火墙可以追踪流并且缓存第一分组直到元数据到达。在其他实施例中,元数据可以在流中的每个分组中使用不可靠协议发送,或者从不发送。缓存第一分组数据可以是非常短暂的(例如,小于一秒到五秒)。
[0031]然而,主机并不总是能够识别或者定位这样的防火墙。例如,主机可以从一个网络移动到另一个(例如,膝上计算机从家庭网络移动到公司网络),可以有错误配置的路由表、陈旧的表条目、或者缺失的表条目,其可以造成主机发送元数据到不正确的防火墙(或者根本不发送元数据)。如果主机不能判定防火墙的位置,那么需要额外的机制。
[0032]按照在这里公开的实施例,网络环境10可以提供用于基于重定向的互锁防火墙的发现的系统和方法。防火墙可以维护管理的主机的列表,其可以在给定的子网范围内被识别出,或者例如通过IP地址或者主机名称而被明确地识别出。在一些实施例中,策略服务器可以提供列表到防火墙。防火墙可以缓存或者丢弃初始连接分组(例如SYN分组),并且发送防火墙-主机发现重定向到尝试打开连接而不发送适当的元数据的任何管理的主机。在更多的特定实施例中,通过不发送本地链路或者本地广播的发现重定向(例如在端口 137上的网络基本输入输出系统探针),网络环境10可以减少重定向流量体积。
[0033]管理的主机和防火墙还可以维护用于认证重定向分组的共享秘密(例如密码、密钥等等)。共享秘密可以例如由策略服务器分配或者手动配置,防火墙可以与不止一个主机共享相同的秘密,包括站点内的所有主机。在某些实施例中,共享的秘密可以是时间的函数。在其他实施例中,管理的主机和防火墙可以使用非对称密钥密码机制(即公共密钥密码机制)以保护重定向分组。[0034]在更多特定实施例中,可以在互联网控制消息协议(ICMP)分组(例如用于管理禁止通信(即ICMP类型3,代码13)的ICMP目的地不可达(DU)分组)中实现发现重定向。ICMP DU分组可以包括原始分组的IP报头和TCP (或者UDP)报头,并且可以进一步包括魔术数字和基于散列的消息认证代码(HMAC)。在这样的实施例中,魔术数字可以是32位的标识符(例如0x46484131或者“FHA1”),其也可以作为协议版本数字。总之,HMAC是涉及组合了共享秘密(例如密钥)的密码机制散列函数的消息认证代码(MAC)。MAC (和HMAC)可以被用于同时验证数据完整性和消息的真实性。HMAC可以例如包括:主机-防火墙共享秘密、源IP地址、目的地IP地址、IP认证、防火墙IP地址、以及TCP初始顺序数字。
[0035]在其他实施例中,防火墙可以具有公共/私有密钥对,它可用于建立元数据信道(例如DTLS连接)。防火墙的私有密钥可以被用于加密发现重定向分组的散列(例如使用RSA)。加密的散列可以被插入到发现重定向中,主机通过使用防火墙的公共密钥解密散列可以验证发现重定向。例如,ICMP DU分组可以如以上描述的那样使用,但是用加密的散列替换HMAC。
[0036]尽管主机可以忽略大多数这样类型的ICMP DU分组,但是当主机接收了具有HMAC或者加密的散列的发现重定向分组时,主机可以采取适当的动作。例如,主机可以使用它的共享密钥计算HMAC,并且通过比较计算出的HMAC和在发现重定向分组中接收到的HMAC来认证消息。如果消息是真实的,那么主机可以更新它的防火墙缓存以反映在发现重定向分组中的防火墙信息,并且为给定的连接发送元数据到防火墙。
[0037]转到图2,图2是示出了与网络环境10的潜在实施例相关联的额外细节的简化框图。图2包括互联网15、用户主机20a、防火墙25以及服务器45。用户主机20a和防火墙25中的每个可以包括各自的处理器50a-50b、各自的存储器元件55a_55b、以及各种硬件和/或软件模块。更具体地,用户主机20a可以包括应用60、配置数据库65、客户证书70、以及防火墙代理75,其可以维护防火墙缓存77。防火墙25可以包括主机管理器80和策略模块85,以及日志90、元数据缓存95和服务器证书97。
[0038]在一个示例实现中,用户主机20a_20b、防火墙25和/或策略服务器30是网络元件,其意图包含网络装置、服务器、路由器、交换机、网关、桥、负载均衡器、处理器、模块、或者任何其他合适的设备、部件、元件、或者可操作以在网络环境中交换信息的对象。网络元件可以包括促进其操作的任何合适的硬件、软件、部件、模块、或者对象,以及合适的接口,用于接收、传送和/或在网络环境中通信数据或者信息。这可能包含允许有效交换数据或者信息的适当算法和通信协议。然而,用户主机20a-20b可以区别于其他网络元件,因为他们趋于作为网络连接的终端点,这与趋于作为网络连接中的中间点的网关或者路由器相反。用户主机20a-20b也可以表示无线网络节点,例如1-Phone、i_Pad、安卓电话、或者其他类似的电信设备。
[0039]关于与网络环境10相关联的内部结构,每个用户主机20a_20b、防火墙25和/或策略服务器30可以包括用于存储将会用于在这里概述的操作的信息的存储器元件。每个用户主机20a-20b、防火墙25和/或策略服务器30可以在以下部件内保存信息:任何合适的存储器元件(例如随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM (EPROM)、电可擦除可编程ROM(EEPROM)、专用集成电路(ASIC)等)、软件、硬件、或者在适当的地方和基于特定需要在任何其他合适的部件、设备、元件、或者对象。在这里讨论的任何存储器项目(例如存储器元件55a-55b)应当被解释为被包含在宽泛的术语“存储器元件”内。由用户主机20a-20b、防火墙25和/或策略服务器30使用的、追踪的、发送的、或者接收的信息,可以设置在任何数据库、寄存器、队列、表格、缓存、控制列表、或者其他存储结构中,其所有都可以在任何合适的时间表处参考。任何这样的存储选项可以被包括在如这里所使用的宽泛的术语“存储器元件”内。
[0040]在某些示例实现中,在这里概述的功能可以由逻辑实现,所述逻辑编码在一个或多个有形介质中(例如,在ASIC中设置的嵌入式逻辑、数字信号处理器(DSP)指令、将由处理器或者其他相似的机器执行的软件(潜在包括对象代码和源代码)等),其可能包括非瞬态介质。在这些实例的一些中,存储器元件(如图2所显示的)可以存储用于在这里描述的操作的数据。这包括可以存储以下各项的存储器元件:被执行以实施在这里描述的活动的软件、逻辑、代码、或者处理器指令。
[0041]在一个示例实现中,用户主机20a_20b、防火墙25和/或策略服务器30可以包括软件模块(例如防火墙代理75和/或主机管理器80)以实现或者培养如在这里概述的操作。在其他实施例中,这样的操作可以由硬件实施,在这些元件外部实现,或者包括在一些其他网络设备中以实现意图的功能。或者如在这里概述的,这些元件可以包括为了实现操作而协调的软件(或者往复的软件)。在其他实施例中,一个或所有这些设备可以包括促进其操作的任何合适的算法、硬件、软件、部件、模块、接口、或者对象。
[0042]此外,每个用户主机20a_20b、防火墙25、和/或策略服务器30可以包括处理器,其可以执行软件或者算法以执行如这里讨论的活动。处理器可以执行与数据相关联的任何类型的指令,以实现在这里详细描述的操作。在一个示例中,处理器(如图2所示)可以将元件或者物件(例如数据)从一种状态或者事物变换到另一种状态或者事物。在另一个示例中,在这里概述的活动可以借助固定逻辑或者可编程逻辑实施(例如由处理器执行的软件/计算机指令),在这里识别出的元件可以是一些类型的可编程处理器、可编程数字逻辑(例如现场可编程门阵列(FPGA)、EPROM、EEPR0M)或者包括数字逻辑、软件、代码、电子指令、或者其中任何合适的组合的ASIC。在这里描述的任何潜在的处理元件、模块、以及机器应当被解释为被包含在宽泛的术语“处理器”之内。
[0043]图3是示出了潜在的与网络环境10的示例实施例相关联的操作的简化的交互程序,所述网络环境10具有识别了管理的路由的防火墙的防火墙缓存。图3包括应用60、防火墙代理75、防火墙缓存77,其可以被安装到用户主机中,例如用户主机20a。图3还示出了主机管理器80、元数据缓存95、以及策略模块85,其可以被安装到防火墙(例如防火墙25)中。图3中还描绘了内联网78、互联网15、以及服务器45。
[0044]应用(例如应用60)可以在305处尝试打开与服务器(例如服务器45)的新TCP连接。防火墙代理75可以拦截并且保持新的连接,在310处咨询防火墙缓存77 (其可能被从配置初始化)以识别与到服务器45的路由相关联的防火墙。在图3的特定示例中,可以识别与主机管理器80相关联的防火墙(例如防火墙25),并且在315处可以例如使用由策略服务器分配的证书(例如客户证书70)打开到防火墙的连接(例如DTLS连接)。连接还可以在320处被添加到防火墙缓存77以供将来连接。防火墙代理75可以在325a处例如经由DTLS分组为到主机管理器80的连接发送元数据。在325b处主机管理器80可以在元数据缓存95中存储元数据。在330a处,防火墙代理75可以释放连接,允许来自应用60的数据流到主机管理器80。在330b处,主机管理器80可以提供连接数据(即TCP流数据,例如源IP地址/端口、目的地IP地址/端口、协议等)到策略模块85,在335处策略模块85可以使连接数据与来自元数据缓存95的元数据相关,以在340处应用适当的网络策略。在图3的示例中,网络策略允许连接,从而在345处连接可以被释放给服务器45,且在350处数据可以在服务器45和应用60之间流动。
[0045]图4是示出了可以与具有陈旧防火墙缓存的网络环境10的示例实施例相关联的潜在操作的简化的交互图,所述陈旧防火墙缓存识别用于管理的路由的无效的防火墙。图4包括应用60、防火墙代理75、以及防火墙缓存77,其可能被安装在用户主机中,例如用户主机20a。图4还示出了主机管理器80、元数据缓存95、以及策略模块85,其可以被安装在防火墙(例如防火墙25)中。图4中还描绘了内联网78、互联网15、服务器45,和无效的防火墙100。
[0046]应用(例如应用60)可以在405处尝试打开与服务器(例如服务器45)的新流。防火墙代理75可以拦截并且保有新流,并在410处咨询防火墙缓存77 (其可能被从配置初始化)以识别与到服务器45的路由相关联的防火墙。在图4的特定示例中,防火墙缓存77可以包括陈旧条目,其为到服务器45的路由识别防火墙100,例如当膝上计算机或者其他移动设备从一个网络移动到另一个时可能会发生。因此,在415处防火墙代理75可以例如使用由策略服务器分配的证书打开、尝试打开、或者相信它已经在之前打开了到防火墙100的连接(例如,DTLS连接)。到防火墙100的DTLS连接还可以在420处被添加到防火墙缓存77以供将来连接。在415处防火墙代理75可能未能打开DTLS连接,或者如果它相信连接已经打开,则它可能在425处经由DTLS分组为到防火墙100的连接发送元数据。防火墙100可能从未接收到元数据,因为它甚至不再能被防火墙代理75访问(例如没有到防火墙100的路由),在这种情况下元数据在传输中丢失。如果防火墙100接收元数据,它可以被添加到与防火墙100相关联的元数据缓存,但是在这个特定的示例中可能被忽略,因为防火墙100不再负责管理到服务器45的路由。在430a处,防火墙代理75可以释放新流,并且来自应用60的数据可以流到主机管理器80。在430b处主机管理器80可以提供流数据到策略模块85,在435处策略模块85可以尝试使流数据与来自元数据缓存95的元数据相关,以在440处应用适当的网络策略。然而在这个示例场景中,由于流的元数据被发送到另一个防火墙(例如防火墙100),所以在435处策略模块85可能不能够取回流的元数据。但是在图4的示例中,网络策略可以允许没有元数据的流,所以在445处流可以被释放给服务器45,在450处数据可以在服务器45和应用60之间流动。
[0047]策略模块85可以记录事件(即释放没有元数据的新流),并且在455a处通知主机管理器80。主机管理器80可以在455b处发送发现重定向到防火墙代理75,其可以包括基于HMAC的共享的秘密。防火墙代理75可以接收发现重定向,并且还可以例如基于HMAC认证发现重定向,并且在460处相应地更新防火墙缓存77。防火墙代理75还可以打开到主机管理器80的连接(例如DTLS连接),并且在465处发送元数据。在470处,主机管理器80可以存储元数据在元数据缓存95中。可以沿着已经正在经过与主机管理器80相关联的防火墙的流审核元数据。
[0048]图5是示出了可以与具有陈旧防火墙缓存的网络环境10的其他示例实施例相关联的潜在操作的简化的交互图,所述陈旧防火墙缓存识别用于管理的路由的无效的防火墙。图5包括应用60、防火墙代理75、以及防火墙缓存77,其可以被安装在用户主机中,例如用户主机20a。图5还示出了主机管理器80、元数据缓存95、以及策略模块85,其可以被安装在防火墙(例如防火墙25)中。图5中还描绘了内联网78、互联网15、服务器45、以及无效防火墙100。
[0049]应用(例如应用60)可以在505处尝试打开与服务器(例如服务器45)的新TCP连接。防火墙代理75可以拦截并且保有新的连接,并且在510处咨询防火墙缓存77以识别与到服务器45的路由相关联的防火墙。在图5的特定示例中,防火墙缓存77可以包括陈旧条目,其为到服务器45的路由识别防火墙100,例如当膝上计算机或者其他移动设备从一个网络移动到另一个时可能会发生。在这个场景中,防火墙缓存77还可以识别到防火墙100的打开连接515。因此,在520处,防火墙代理75可以经由DTLS分组为到防火墙100的连接发送元数据,但是在这个特定的示例中由于防火墙100不再负责管理到服务器45的路由,因此这个元数据通常可能被防火墙100忽略。在525a处,防火墙代理75可以释放连接,并且来自应用60的数据可能流到主机管理器80。在525b处主机管理器80可以提供连接数据到策略模块85,并且在530处策略模块85可以尝试使连接数据与来自元数据缓存95的元数据相关,以在535处应用适当的网络策略。然而在这个示例场景中,由于用于连接的元数据被发送到另一个防火墙(例如防火墙100),所以在530处策略模块85可能不能够取回用于连接的元数据。在图5的示例中,在535处,网络策略可以阻挡没有元数据的连接,所以防火墙(例如主机管理器80或者策略模块85)可以丢弃初始连接分组,而不尝试重置连接(例如通过发送TCP RST分组)。
[0050]在540a处,策略模块85可以记录事件(即,因为没有接收到元数据而丢弃初始连接分组),并且通知主机管理器80。主机管理器80可以在540b处发送发现重定向到防火墙代理75。防火墙代理75可以接收发现重定向,并且还可以例如基于HMAC认证发现重定向,并且在545处相应地更新防火墙缓存77。在通常的情况下,如果防火墙丢弃初始连接分组(而不重置连接),应用60在550处重新传输它的连接请求,并且应用60不接收来自服务器45的确认(例如ACK分组)。防火墙代理75可以再次拦截并且保有连接,并且在555处咨询防火墙缓存77以识别与到服务器45的路径相关联的防火墙。更新的防火墙缓存77然后可以识别与主机管理器80相关联的防火墙(例如防火墙25)。防火墙代理75还可以在560处打开到主机管理器80的连接(例如DTLS连接),并且在565处添加新连接到防火墙缓存77以供将来连接。在570a处防火墙75可以发送元数据,在570b处主机管理器80可以把所述元数据存储在元数据缓存95。
[0051]在575a处防火墙代理75可以释放连接,允许来自应用60的数据流到主机管理器80。在575b处主机管理器80可以发送连接数据到策略模块85,并且在580处策略模块85可以使连接数据与来自元数据缓存95的元数据相关,以在585处应用适当的网络策略。在图5的示例中,网络策略允许连接,因此在590处连接可以被释放到服务器45,并且在595处数据可以在服务器45和应用60之间流动。
[0052]在另一个实施例中,主机管理器80可以短时期内缓存初始连接分组,使得在570b处当接收到元数据时连接能进行,而不等待应用60重新传输初始连接分组,这可以使流量流得更快。在另一个实施例中,防火墙代理75可以缓存初始连接分组并且当它接收到发现重定向时重新传输它。[0053]在各种其他场景中,防火墙代理可以没有关于防火墙的信息(甚至没有配置信息)。在一些实施例中,防火墙代理可以允许新流经到防火墙而不发送元数据。如果防火墙接收到没有元数据的新流,则随后可以类似于例如以上参考图4和图5所描述的从具有陈旧防火墙缓存条目的防火墙代理接收流来处理所述流。在这样的场景中,防火墙代理在非管理的路由上没有招致流的开销。
[0054]主机代理还可以发送PING消息到预配置的地址,以强制发现特定的路径,例如通过发送PING消息到公共互联网地址以强制发现互联网路径。主机代理还可以在初始的连接上发送这样的PING消息到新的网络设备。
[0055]如示出的,在上面的各种示例实施例中,响应于发现重定向,防火墙缓存例如在460和545处可以被更新。在更多的特定实施例中,防火墙代理可以通过添加与重定向消息相关联的子网来更新它的防火墙缓存(例如用于IPv4的/24条目、用于IPv6的/64)。或者,防火墙代理可以搜索防火墙缓存,寻找匹配目标地址的最长前缀,并且添加新条目,该新条目使得在发现重定向中识别出的防火墙/端口与由用于IPv4的八位(即目标/8 =防火墙:端口)或者通过用于IPv6的十六位(即目标/16 =防火墙:端口)掩码的地址相关联。
[0056]如果在防火墙缓存中找到匹配条目,则防火墙代理可以比较该条目与在发现重定向中识别出的防火墙/端口。如果来自发现重定向的防火墙/端口与在可应用的防火墙缓存条目中的防火墙/端口不匹配,那么可以通过添加用于发现目标的新条目来更新防火墙缓存,所述新条目具有超过匹配条码的递增修改的掩码长度(即,通过递增增加或者减少用于发现目标的条目的粒度来拆分条目)。
[0057]例如,条目的掩码长度可以被增加八位,并且造成网络标识符关联于发现目标。如果条目不能够被进一步拆分(即,对于IPv4地址掩码长度已经是32位),那么条目可以被代替,以便条目使得发现目标与发现重定向中的防火墙/端口相关联(即用目标/32 =重定向防火墙:端口代替条目)。
[0058]在另一个示例中,可以通过增加更加特定的条目(例如用于IPv4的/24、用于IPv6的/64)拆分防火墙缓存条目,并且如果接收到重叠发现重定向,则使所述防火墙缓存条目一般化。防火墙的路由知识还可以被用于判定粒度,或者在一些实施例中与豁免区(exempt zone)相关联的子网可以被传达到防火墙代理。
[0059]网络环境10也可以无缝地与非管理的路由一起操作。例如,防火墙代理可以拦截从应用到服务器的新连接,并且根据防火墙缓存判定路由是非管理的。防火墙代理可以释放连接,并且可以建立与服务器的连接,而没有额外的分组开销。
[0060]图6是示例分组数据单元(rou)格式600,其可以与在网络环境10的示例实施例中通过元数据信道交换元数据相关联。PDU格式600可以例如包括网络流数据605和会话描述符数据610。网络流数据605可以提供与来自源的新流相关联的信息,例如在管理的主机上的应用。在PDU格式600中,例如,网络流数据605可以识别协议(short protocol)(例如 TCP、UDP> ICMP、GRE> IPSec 等)、源节点的 IP 地址(IPaddress source_address)、打开连接的进程的端口号(short source_port)、目的地节点的IP地址(IPaddress dest_address)、以及在目的地节点接收连接的进程的端口号(short dest_port)。会话描述符610可以提供关于与打开连接的应用相关联的用户的信息,例如安全ID(string sid)、与用户相关联的域(string domain)、以及用户名(string user)、还有关于应用的信息,例如应用的完整路径(string application_path)。在会话描述符610中的其他信息可以提供关于源节点(例如主机)的状态的数据,包括主机防火墙的状态(boolean Fff_enabled)以及在主机上运行的防病毒软件(boolean AV_enabled)、以及关于在源节点上的接口的信息(Interface interface []) 0但是PDU格式600仅仅是解释性的并且可以容易的适合于提供替代的或者额外的元数据,例如关于入侵阻止系统、路由信息、额外的供应商信息等的信肩、O
[0061]网络环境10可以提供显著的优点,其中一些已经被讨论。例如,网络环境10可以提供主机/防火墙互锁数据的安全以及低协议开销。网络环境10可以利用配置数据、协议(例如DTLS)、以及在TCP中的计时器和应用层协议,容易地适合于重用标准代码分组。
[0062]在上面提供的示例以及许多其他潜在示例中,交互可以依据两个、三个或者四个网络元件来进行描述。然而,网络元件的数量已经被限制仅仅用于清晰和示例目的。在某些情况下,通过仅仅参考有限数量的网络元件,描述一个或多个给定的操作集的功能可能更加简单。应当理解,网络环境10是容易扩展的并且可以容纳大量的部件,还有更复杂/精细的布置和配置。因此,当潜在地应用于无数其他架构时,提供的示例不应当限制范围或者禁止网络环境10的宽泛的教导。此外,尽管参考特定的场景进行了描述,其中特定的模块(例如策略模块85)被提供在网络元件之内,但这些模块可以被提供在外部,或者以任何合适的方式整合和/或组合。在某些实例中,这样的模块可以被提供在单个专属单元中。
[0063]注意到以下也是重要的:在附图中的步骤仅仅示出可以被网络环境10执行或者在网络环境10之内的一些可能的场景和模式。这些步骤中的一些可以在适当的地方被删除或者移除,或者这些步骤可以被显著修改或者改变而不偏离在这里提供的教导的范围。此外,若干这些操作已经被描述为与一个或多个额外的操作并发或并行执行。然而,这些操作的定时可以被显 著变更。为了示例和讨论的目的已经给出了前面的操作流。网络环境10提供的实质灵活性体现在:可以提供任何合适的布置、顺序、配置、以及时间机制而不偏离在这里提供的教导。
[0064]本领域的技术人员可以确定大量其他改变、替代、变化、变更、以及修改,并且本公开旨在包含所有这样的改变、替代、变化、变更、以及修改,视为落在所附权利要求的范围之内。为了协助美国专利商标局(USPTO)以及基于本申请发表的任何专利的任何读者解释所附于此的权利要求, 申请人:希望指出 申请人::(a)不意图任何所附的权利要求引用35U.S.C段落112的段落六(6),因为它存在于其递交日,除非词语“用于…的模块”或者“用于…的步骤”被特别用于特定的权利要求;以及(b)不打算通过在说明书中的任何陈述以不在所附权利要求中反映的任何形式限制本公开。
【权利要求】
1.一种方法,包括: 在元数据信道上接收来自主机的元数据; 拦截来自所述主机的网络流;以及 使所述元数据与所述网络流相关以将网络策略应用到所述网络流。
2.如权利要求1所述的方法,其中所述元数据信道使用数据报传输层安全协议。
3.一种方法,包括: 拦截来自源节点的网络流; 发送发现重定向到所述源节点; 接收与所述网络流相关联的元数据;以及 使所述元数据与所述网络流相关以将网络策略应用到所述网络流。
4.如权利要求3所述的方法,其中所述发现重定向是互联网控制消息协议分组。
5.如权利要求3所述的方法,其中所述发现重定向是互联网控制消息协议目的地不可达分组。
6.如权利要求3所述的方法,其中所述发现重定向是用于管理禁止通信的互联网控制消息协议目的地不可达分组。
7.如权利要求3所述的方法,其中所述发现重定向包括基于散列的消息认证代码。
8.如权利要求3所述的方法,其中所述发现重定向包括具有共享秘密的基于散列的消息认证代码。
9.如权利要求3所述的方法,其中所述发现重定向包括所述发现重定向的散列的私有密钥加密。
10.如权利要求3所述的方法,其中所述元数据是在元数据信道上接收到的。
11.如权利要求3所述的方法,其中使用数据报传输层安全协议接收所述元数据。
12.如权利要求3所述的方法,进一步包括:缓存在所述网络流中的第一分组。
13.—种方法,包括: 拦截从源节点到目的地节点的网络流; 识别用于管理到所述目的地节点的路由的防火墙; 发送与所述网络流相关联的元数据到所述防火墙;以及 释放所述网络流。
14.如权利要求13所述的方法,其中所述网络流使用传输控制协议,并且拦截所述网络流包括检测来自所述源节点的SYN分组。
15.如权利要求13所述的方法,其中所述网络流使用不可靠协议,并且拦截所述网络流包括缓存流的第一分组直到所述元数据被发送。
16.如权利要求13所述的方法,其中使用数据报传输层安全协议发送所述元数据。
17.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向;以及 在元数据信道上发送所述元数据到所述第二防火墙。
18.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向; 更新防火墙缓存以识别用于管理到所述目的地的路由的所述第二防火墙;以及在元数据信道上发送所述元数据到所述第二防火墙。
19.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向;以及 使用数据报传输层安全协议发送所述元数据到所述第二防火墙。
20.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向; 使用消息认证代码认证所述发现重定向;以及 在元数据信道上发送所述元数据到所述第二防火墙。
21.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向; 使用所述发现重定向的散列的公共密钥解密来认证所述发现重定向;以及 在元数据信道上发送所述元数据到所述第二防火墙。
22.如权利要求13所述的方法,进一步包括: 缓存在所述网络流中 的第一分组; 从第二防火墙接收发现重定向; 在元数据信道上发送所述元数据到所述第二防火墙;以及 发送所述第一分组到所述第二防火墙。
23.如权利要求13所述的方法,进一步包括: 从第二防火墙接收发现重定向; 更新防火墙缓存以识别用于管理到所述目的地的路由的所述第二防火墙;以及 在元数据信道上发送所述元数据到所述第二防火墙; 其中更新所述防火墙缓存包括:添加用于所述目的地节点的新条目,其具有超过用于所述目的地节点的先前条目的递增修改的掩码长度。
【文档编号】H04L29/06GK103907330SQ201280053580
【公开日】2014年7月2日 申请日期:2012年9月26日 优先权日:2011年10月17日
【发明者】G·库珀, M·W·格林, J·R·古齐克 申请人:迈克菲公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1