CN105683943B - 使用基于逻辑多维标签的策略模型的分布式网络安全 - Google Patents
使用基于逻辑多维标签的策略模型的分布式网络安全 Download PDFInfo
- Publication number
- CN105683943B CN105683943B CN201480060318.7A CN201480060318A CN105683943B CN 105683943 B CN105683943 B CN 105683943B CN 201480060318 A CN201480060318 A CN 201480060318A CN 105683943 B CN105683943 B CN 105683943B
- Authority
- CN
- China
- Prior art keywords
- managed
- server
- management
- actor
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2113—Multi-level security, e.g. mandatory access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2115—Third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computing Systems (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
在管理域内的被管理的服务器(MS)被隔绝。管理域包括多个MS,这些MS使用管理指令以配置管理模块,从而使得配置的管理模块实施包括一个或者多个规则的集合的管理域范围管理策略。隔绝的MS从其它MS被隔离。对MS的描述被修改以指示MS被隔绝,由此指定对隔绝的MS的描述。高速缓存的动作者集合被更新以指示隔绝的MS的改变的状态,由此指定更新的动作者集合。关于哪些更新的动作者集合与其它MS相关做出确定,由此指定当前相关的更新的动作者集合。关于当前相关的更新的动作者集合是否与向其它MS先前发送的动作者集合不同做出确定。响应于确定当前相关的更新的动作者集合与先前发送的动作者集合相同,不采取进一步动作。
Description
技术领域
这里描述的主题内容总体上涉及管理管理域的服务器(物理或者虚拟)的领域,并且特别地涉及根据与基于逻辑多维标签的策略模型相符的管理域范围策略来管理服务器。
背景技术
根据策略管理管理域的服务器(物理或者虚拟)。例如,安全策略可以指定访问控制和/或安全连通,而资源使用策略可以指定对管理域的计算资源(例如,磁盘和/或外设)的使用。常规策略引用物理设备并且在低级构造(比如网际协议(IP)地址、IP地址范围、子网和网络接口)方面被表达。这些低级构造使得难以用抽象和自然方式编写细粒度策略。
发明内容
以上和其它问题由一种用于在管理域内隔绝被管理的服务器的方法、非瞬态计算机可读存储介质和系统解决。管理域包括多个被管理的服务器,这些服务器使用管理指令以配置管理模块,从而使得配置的管理模块实施包括一个或者多个规则的集合的管理域范围管理策略。从多个被管理的服务器中的其它被管理的服务器隔离隔绝的被管理的服务器。该方法的一个实施例包括修改对被管理的服务器的描述以指示被管理的服务器被隔绝,由此指定对隔绝的被管理的服务器的描述。该方法还包括更新高速缓存的动作者集合以指示隔绝的被管理的服务器的改变的状态,由此指定更新的动作者集合。该方法还包括确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合。该方法还包括确定当前相关的更新的动作者集合是否与向其它被管理的服务器先前发送的动作者集合不同。该方法还包括响应于确定当前相关的更新的动作者集合与先前发送的动作者集合相同,不采取进一步动作。
该介质的一个实施例存储可执行以执行步骤的计算机程序模块。步骤包括修改对被管理的服务器的描述以指示被管理的服务器被隔绝,由此指定对隔绝的被管理的服务器的描述。步骤还包括更新高速缓存的动作者集合以指示隔绝的被管理的服务器的改变的状态,由此指定更新的动作者集合。步骤还包括确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合。步骤还包括确定当前相关的更新的动作者集合是否与向其它被管理的服务器先前发送的动作者集合不同。步骤还包括响应于确定当前相关的更新的动作者集合与先前发送的动作者集合相同,不采取进一步动作。
该系统的一个实施例包括非瞬态计算机可读存储介质,该非瞬态计算机可读存储介质存储可执行以执行步骤的计算机程序模块。步骤包括修改对被管理的服务器的描述以指示被管理的服务器被隔绝,由此指定对隔绝的被管理的服务器的描述。步骤还包括更新高速缓存的动作者集合以指示隔绝的被管理的服务器的改变的状态,由此指定更新的动作者集合。步骤还包括确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合。步骤还包括确定当前相关的更新的动作者集合是否与向其它被管理的服务器先前发送的动作者集合不同。步骤还包括响应于确定当前相关的更新的动作者集合与先前发送的动作者集合相同,不采取进一步动作。
附图说明
图1是图示了根据一个实施例的用于管理管理域的服务器(物理或者虚拟)的环境的高级框图。
图2是图示了根据一个实施例的用于用作图1中所图示的实体中的一个或者多个实体的计算机的示例的高级框图。
图3是图示了根据一个实施例的全局管理器的具体视图的高级框图。
图4是图示了根据一个实施例的被管理的服务器的策略实施模块的具体视图的高级框图。
图5是图示了根据一个实施例的生成用于特定被管理的服务器的管理指令的方法的流程图。
图6是图示了根据一个实施例的生成用于被管理的服务器的管理模块的配置的方法的流程图。
图7是图示了根据一个实施例的监视被管理的服务器的逻辑状态并且向全局管理器发送本地状态信息的方法的流程图。
图8是图示了根据一个实施例的处理对管理域的计算机网络基础结构的状态的改变的方法的流程图。
图9是图示了根据一个实施例的检测和报告反常(rogue)过程的方法的流程图。
图10是图示了根据一个实施例的在管理域内隔绝被管理的服务器的方法的流程图
图11是图示了根据一个实施例的处理对在管理域内的一组未管理的设备的状态的改变的方法的流程图。
具体实施方式
附图和以下描述仅通过例示描述某些实施例。本领域技术人员将从以下描述容易地认识到可以运用这里例示的结构和方法的备选实施例而未脱离这里描述的原理。现在将参照若干实施例,在附图中图示了这些实施例的示例。注意,只要可实践,相似或者相同标号就可以在附图中被使用并且可以指示相似或者相同功能。
图1是图示了根据一个实施例的用于管理管理域150的服务器(物理或者虚拟)130的环境100的高级框图。管理域150可以对应于企业,如例如服务提供者、公司、大学或者政府机关。环境100可以由企业本身或者由帮助企业管理它的服务器130的第三方(例如,第二企业)维护。如图所示,环境100包括网络110、全局管理器120、多个被管理的服务器130和多个未管理的设备140。多个被管理的服务器130和多个未管理的设备140与管理域150关联。例如,它们由企业或者由第三方(例如,公共云服务提供者)代表企业操作。尽管为了清楚而在图1中描绘的实施例中示出了一个全局管理器120、两个被管理的服务器130和两个未管理的设备140,但是其它实施例可以具有不同数目的全局管理器120、被管理的服务器130和/或未管理的设备140。
网络110代表在全局管理器120、被管理的服务器130和未管理的设备140之间的通信路径。在一个实施例中,网络110使用标准通信技术和/或协议并且可以包括因特网。在另一实施例中,网络110上的实体可以使用定制和/或专用数据通信技术。
被管理的服务器130是实施管理域范围管理策略330(图3中所示)的机器(物理或者虚拟)。在一个实施例中,服务器是根据操作系统级虚拟化的虚拟服务器(有时被称为容器、虚拟化引擎、虚拟专有服务器或者jail)的用户空间实例,该操作系统级虚拟化是服务器虚拟化方法,其中操作系统的内核启用多个隔离的用户空间实例而不是仅一个实例。如果被管理的服务器130是物理机器,则被管理的服务器130是计算机或者计算机集合。如果被管理的服务器130是虚拟机,则被管理的服务器130在计算机或者计算机集合上执行。管理域范围管理策略330指定与管理域150关联的实体是否和/或如何被允许访问其它实体(或者由其它实体访问)或者以别的方式消费(或者提供)服务。例如,管理域范围管理策略330指定安全或者资源使用。安全策略可以指定访问控制、安全连通、磁盘加密和/或对可执行过程的控制,而资源使用策略可以指定对管理域的计算资源(例如,磁盘、外设和/或带宽)的使用。
被管理的服务器130包括管理模块132、管理模块配置134和策略实施模块136。管理模块132实施管理域范围管理策略330。例如,在安全的情况下,管理模块132可以是低级网络或者安全引擎,比如操作系统级防火墙、网际协议安全(IPsec)引擎或者网络流量过滤引擎(例如,基于Windows过滤平台(WFP)开发平台)。在资源使用的情况下,管理模块132可以是磁盘使用引擎或者外设使用引擎。
管理模块配置134影响管理模块132的操作。例如,在安全的情况下,管理模块配置134可以是由防火墙应用的访问控制规则、由IPsec引擎应用的安全连通策略(例如,在Linux操作系统中体现为iptables条目和ipset条目)或者由过滤引擎应用的过滤规则。在资源使用的情况下,管理模块配置134可以是由磁盘使用引擎应用的磁盘使用策略或者由外设使用引擎应用的外设使用策略。
策略实施模块136基于a)从全局管理器120接收的管理指令和b)被管理的服务器130的状态来生成管理模块配置134。管理指令部分地基于管理域范围管理策略330被生成。由策略实施模块136生成的管理模块配置134实施该管理域范围管理策略330(在策略涉及被管理的服务器130的程度上)。这一两步骤过程(生成管理指令和生成管理模块配置134)被称为对管理策略“实例化”。策略实施模块136也监视被管理的服务器130的本地状态并且向全局管理器120发送本地状态信息。
在一个实施例中,策略实施模块136是更大专有模块(未示出)的部分。专有模块被加载到已经具有管理模块132和管理模块配置134的设备上,由此将设备从未管理的设备140变换成被管理的服务器130。以下参照图4、图6和图7进一步描述策略实施模块136。
未管理的设备140是不包括策略实施模块136的计算机(或者计算机集合)。未管理的设备140不实施管理域范围管理策略330。然而,在被管理的服务器130与未管理的设备140之间的交互可能受制于管理域范围管理策略330(如由被管理的服务器130实施的)。未管理的设备140的一个示例是由管理域150使用的网络电路。未管理的设备140的另一示例是由人用来向管理域150认证其自身的设备(例如,笔记本或者台式计算机、平板计算机或者移动电话)。
全局管理器120是生成用于被管理的服务器130的管理指令并且向服务器发送生成的管理指令的计算机或者(或者计算机集合)。管理指令基于a)管理域的计算机网络基础结构320的状态和b)管理域范围管理策略330被生成。管理域的计算机网络基础结构320的状态包括对被管理的服务器130的描述和(可选地)对未管理的设备140的描述。全局管理器120也处理从被管理的服务器130接收的本地状态信息。
管理域范围管理策略330基于逻辑管理模型,该逻辑管理模型可以基于被管理的服务器130的高级特性(这里被称为“标签”)来引用被管理的服务器。标签是包括“维度”(高级特性)和“值”(该高级特性的值)的对。在这一多维空间中构造的管理策略比根据基于单特性网络/IP地址的策略模型构造的管理策略更昂贵。具体而言,使用对“标签”的更高级抽象化来表达管理策略使人们能够更好地理解、可视化和修改管理策略。
逻辑管理模型(例如,可用维度的数目和类型以及那些维度的可能的值)可配置。在一个实施例中,逻辑管理模型包括如表1中所示的以下维度和值:
表1–逻辑管理模型的示例
逻辑管理模型使多个被管理的服务器130能够通过指定一个或者多个标签(这里称为“标签集合”)而被分组在一起,该一个或者多个标签描述该组中的所有被管理的服务器130。标签集合包括用于逻辑管理模型中的维度的零个值或者一个值。标签集合无需包括用于逻辑管理模型中的所有维度的标签。以这一方式,逻辑管理模型实现对管理域的被管理的服务器130的分割和分离以及对被管理的服务器130的任意分组的创建。逻辑管理模型也允许单个被管理的服务器130存在于多个重叠集合(即,被管理的服务器的多个重叠组)中。逻辑管理模型未将单个被管理的服务器130限制于存在于嵌套集合的分级中。
例如,在安全的情况下,分割可以与访问控制策略一起用来定义受制于特定策略的多组被管理的服务器130。相似地,分割可以与安全连通策略一起用来限定多组被管理的服务器130以及适用于组内通信和组间通信的策略。因此,在第一组被管理的服务器130(由第一标签集合指定)之中的通信可以受限于第一安全连接设置(例如,无需安全连接),并且在第一组被管理的服务器与第二组被管理的服务器(由第二标签集合指定)之间的通信可以受限于第二安全连接设置(例如,IPsec封装安全净荷(ESP)/认证报头(AH)高级加密标准(AES)/安全哈希算法-2(SHA-2))。
在环境100中的每个被管理的服务器130实施管理域范围管理策略330(在策略涉及被管理的服务器130的程度上)。作为结果,管理域范围管理策略330以分布式方式贯穿管理域150被应用,并且没有扼流点。也在逻辑级、与管理域的物理网络拓扑和网络寻址方案独立地应用管理域范围管理策略330。
以下参照图3、图5和图8进一步描述全局管理器120、管理域的计算机网络基础结构320的状态和管理域范围管理策略330。
图2是图示了根据一个实施例的用于用作图1中所图示的实体中的一个或者多个实体的计算机200的示例的高级框图。图示了耦合到芯片集204的至少一个处理器202。芯片集204包括存储器控制器集线器220和输入/输出(I/O)控制器集线器222。存储器206和图形适配器212耦合到存储器控制器集线器220,并且显示设备218耦合到图形适配器212。存储设备208、键盘210、指点设备214和网络适配器216耦合到I/O控制器集线器222。计算机200的其它实施例具有不同架构。例如,存储器206在一些实施例中直接地耦合到处理器202。
存储设备208包括一个或者多个非瞬态计算机可读存储介质,比如硬驱动、紧致盘只读存储器(CD-ROM)、DVD或者固态存储器设备。存储器206保持由处理器202使用的指令和数据。指点设备214与键盘210组合用来向计算机系统200中输入数据。图形适配器212在显示设备218上显示图像和其它信息。在一些实施例中,显示设备218包括用于接收用户输入和选择的触屏能力。网络适配器216将计算机系统200耦合到网络110。计算机200的一些实施例具有与图2中所示部件不同的部件和/或除了图2中所示部件之外的部件。例如,全局管理器120和/或被管理的服务器130可以由多个刀片服务器形成并且没有显示设备、键盘和其它部件,而未管理的设备140可以是笔记本或者台式计算机、平板计算机或者移动电话。
计算机200适于执行用于提供这里描述的功能的计算机程序模块。如这里所用,术语“模块”是指用来提供指定的功能的计算机程序指令和/或其它逻辑。因此,可以在硬件、固件和/或软件中实施模块。在一个实施例中,由可执行计算机程序指令形成的程序模块被存储在存储设备208上、加载到存储器206中并且由处理器202执行。
图3是图示了根据一个实施例的全局管理器120的具体视图的高级框图。全局管理器120包括贮存库300和处理服务器310。贮存库300是存储管理域的计算机网络基础结构320的状态、管理域范围管理策略330和全局安全数据贮存库335的计算机(或者计算机集合)。在一个实施例中,贮存库300包括响应于请求而向处理服务器310提供对管理域状态320、管理策略330和全局安全数据贮存库335的访问的服务器。
管理域的计算机网络基础结构320的状态包括对被管理的服务器130的描述和(可选地)对未管理的设备140的描述。对被管理的服务器130的描述例如包括唯一标识符(UID)、在线/离线指示符、一个或者多个配置的特性(可选)、网络暴露信息、服务信息和描述被管理的服务器130的一个或者多个标签(标签集合)。
UID唯一地标识被管理的服务器130。在线/离线指示符指示被管理的服务器130是在线还是离线。“配置的特性”存储与被管理的服务器130关联的值并且可以是任何类型的信息(例如,对哪个操作系统在被管理的服务器上运行的指示)。配置的特性与规则的条件部分(以下描述)结合被使用。
网络暴露信息涉及被管理的服务器的网络接口。在一个实施例中,网络暴露信息对于被管理的服务器的网络接口中的每个网络接口包括网络接口附着到的“双向可达网络(BRN)”的标识符和用于在BRN内操作的零个或者更多个IP地址(及其子网)。BRN是在组织内或者跨组织的子网集合,在BRN内的任何节点可以在这些子网中与BRN中的任何其它节点建立通信。例如,BRN中的所有节点具有唯一IP地址。换而言之,BRN节点不包含任何NAT。网络曝光信息(例如,网络接口的BRN标识符)可以与规则的条件部分结合被使用。
在另一实施例中,网络曝光信息包括路由信息和被管理的服务器是否在网络地址翻译器(NAT)后面(以及如果它在NAT后面,则什么类型的NAT——1:1或者1:N)。全局管理器120可以确定被管理的服务器130是否在网络地址翻译器(NAT)后面(以及如果它在NAT后面,则什么类型的NAT——1:1或者1:N)。例如,全局管理器120通过比较(a)服务器的根据在全局管理器与服务器之间的TCP连接的IP地址和(b)服务器的根据从服务器接收的本地状态信息的IP地址来确定NAT是否存在于全局管理器120与被管理的服务器130之间。如果(a)和(b)不同,则NAT存在于全局管理器120与被管理的服务器130之间。如果NAT确实存在,则全局管理器120通过执行数据中心检测来确定NAT的类型(1:1或者1:N)。例如,全局管理器120用服务器的数据中心的公用IP地址来标识该数据中心。(备选地,被管理的服务器通过查询在服务器外部、但是在数据中心内的信息来执行数据中心检测。服务器然后向全局管理器发送该信息作为本地状态的部分。)配置信息指示哪些类型的NAT由哪些数据中心使用。如果没有NAT信息与特定数据中心关联,则全局管理器120假设NAT类型是1:N。
服务信息例如包括过程信息和/或封装信息。过程信息例如包括被管理的服务器130运行的过程的名称、那些过程在哪些网络端口和网络接口上监听、哪些用户发起那些过程、那些过程的配置、那些过程的命令行起动变元和那些过程的依赖性(例如,那些过程链接到的共享对象)。(那些过程对应于提供服务或者使用服务的被管理的服务器130。)封装信息例如包括哪些封装(可执行文件、库或者其它部件)被安装在被管理的服务器130上、那些封装的版本、那些封装的配置和那些封装的哈希值。
对未管理的设备140的描述例如包括网络曝光信息(例如,未管理的设备的IP地址和未管理的设备连接到的BRN的标识符)。未管理的设备140是“未管理的设备组(UDG)”的部分。UDG包括一个或者多个未管理的设备140。例如,“总部UDG”可以包括由管理域的总部使用的主要电路和备用电路,其中每个电路与IP地址关联。UDG与唯一标识符(UID)关联。在管理域状态320中存储的关于UDG的信息包括UDG的UID和关于UDG中的未管理的设备140的信息(例如,它们的网络曝光信息)。
对被管理的服务器130和未管理的设备140的描述可以按照各种方式被加载到管理域状态320中,比如通过经由图形用户接口(GUI)或者应用编程接口(API)与全局管理器120交互。对被管理的服务器130的描述也可以基于从被管理的服务器接收的本地状态信息而被加载到管理域状态320中(以下描述)。
具体地关于被管理的服务器的标签(以及配置的特性,如果有的话),可以按照甚至更多方式执行对用于维度的值的指派(或者重新指派)(或者对配置的特性的值的设置)。例如,可以作为调配被管理的服务器130的部分、使用部署和配置工具来执行指派/设置。可以使用任何这样的工具,包括现货第三方工具(例如,Puppet Labs的Puppet软件、Opscode的Chef软件或者CFEngine AS的CFEngine软件)和管理域150可能具有的定制工具。
作为另一示例,指派/设置可以由计算标签和/或配置的特性(“CC”)值的“标签/配置的特性引擎”(未示出)执行。在一个实施例中,标签/CC引擎基于标签/CC指派规则来计算标签/CC值。标签/CC指派规则是访问来自管理域状态320的数据并且指派(或者建议指派)标签或者CC值的函数。标签/CC指派规则可以被预设或者可由用户配置。例如,全局管理器120包括预定义规则的集合,但是最终用户可以基于用户自己的定制要求来修改和/或删除那些规则并且添加新规则。可以在初始化过程期间为被管理的服务器130评估标签/CC指派规则。然后可以对于任何维度/CC做出标签/CC值建议,并且最终用户可以接受或者拒绝那些建议。例如,如果被管理的服务器130执行Postgres数据库或者MySQL数据库,则建议的标签可以是<作用,数据库>。如果被管理的服务器执行Linux操作系统,则用于操作系统CC的建议的值可以是“Linux”。
在另一实施例中,标签/CC引擎基于聚类分析来计算标签/CC值。例如,标签/CC引擎使用连通图的最小切割和K均值算法与附加启发法的组合以自动地标识高连通的被管理的服务器130的聚类。被管理的服务器130的聚类可以对应于管理域150中的“应用”(见表1)。最终用户可以选择将用于应用维度(或者任何其它维度)的值全体地应用于那些被管理的服务器130。
管理域范围管理策略330包括一个或者多个规则。广而言之,“规则”指定在服务的一个或者多个提供者与该服务的一个或者多个消费者之间的关系。
规则函数——关系受制于“规则函数”,这是规则的实践效果。例如,在安全的情况下,规则函数可以是访问控制、安全连通、盘加密或者对可执行过程的控制。具有访问控制函数的规则指定消费者是否可以使用提供者的服务。在一个实施例中,访问控制函数使用纯粹“白名单”模型,这意味着仅可允许关系被表达,并且所有其它关系默认被阻止。具有安全连通函数的规则指定消费者可以在什么安全信道(例如,使用点到点数据加密的加密网络会话)之上使用提供者的服务。例如,具有安全连通函数的规则可以指定在提供者位于美国(US)而消费者位于欧洲(EU)时必须加密对提供者的服务的使用。具有磁盘加密函数的规则指定提供者是否必须在加密文件系统上存储它的数据。具有可执行过程控制函数的规则指定过程是否被允许执行。
在资源使用的情况下,规则函数可以是磁盘使用或者外设使用。具有磁盘使用函数的规则指定消费者可以在提供者上存储的数据量。注意,规则可以指定其它规则函数以及超出仅访问控制、安全连通、磁盘加密、对可执行过程的控制、磁盘使用和外设使用。例如,规则函数可以指定哪些开放系统互连(OSI)模型第7层服务应用于网络流量、为安全分析而收集的元数据量或者用于捕获完整网络分组的触发。管理策略模型支持可以被应用的任何数目的规则函数。
规则函数可以与一个或者多个设置(这里被称为“函数简档”)关联,该一个或者多个设置指定关于规则的实践效果的细节。例如,与安全连通规则函数关联的设置可以是用来加密网络流量的密码算法的列表。在一个实施例中,规则函数与多个函数简档关联,并且函数简档包括优先级。这一优先级如以下描述的那样由函数级指令生成模块360使用。
服务——一般而言,“服务”是使用具体网络协议在具体网络端口上执行的任意过程。在管理策略330内的规则的服务由端口/协议对和(可选的)附加资格(比如(以上关于在管理域状态320内的对被管理的服务器130的描述而描述的)过程信息和/或封装信息)指定。如果被管理的服务器130具有多个网络接口,则可以在所有网络上或者仅在那些网络的子集上暴露服务。最终用户指定服务在哪些网络上被暴露。注意,取决于规则函数,服务可以不使用任何网络资源。例如,用于可执行过程-控制规则函数的服务并不使用网络协议在网络端口上执行。
提供者/消费者——服务的一个或者多个提供者和服务的一个或者多个消费者(即,用户)是被管理的服务器130和/或未管理的设备140。
在一个实施例中,在管理域范围管理策略330内使用包括规则函数部分、服务部分、进行提供部分、进行使用部分和可选规则条件部分的信息集合来表示规则。规则函数部分描述规则的实践效果并且可以与一个或者多个设置(函数简档)关联。服务部分描述规则适用于的服务。如果服务部分指示“全部”,则规则适用于所有服务。
进行提供(PB)部分描述哪些被管理的服务器130和/或未管理的设备140可以提供服务(即,“提供者”是谁)。如果PB部分指示“任何人”,则任何人(例如,任何被管理的服务器130或者未管理的设备140)可以提供服务。如果PB部分指示“任何被管理的服务器”,则任何被管理的服务器130可以提供服务。(“任何被管理的服务”等效于指定包含通配符的标签集合,由此匹配所有被管理的服务器130。)进行使用(UB)部分描述哪些被管理的服务器130和/或未管理的设备140可以使用服务(即,“消费者”是谁)。与PB部分相似,UB部分也可以指示“任何人”或者“任何被管理的服务器”。
在PB部分和UB部分内,被管理的服务器130通过使用标签集合(即,描述被管理的服务器的一个或者多个标签)或者UID被指定。用于使用标签集合来指定被管理的服务器130的能力源于逻辑管理模型,该逻辑关联模型基于被管理的服务器的维度和值(标签)来引用被管理的服务器。未管理的设备140通过使用未管理的设备组(UDG)的UID被指定。如果规则指定UDG,则规则包括关于该组中的未管理的设备140的附加信息(例如,设备的网络曝光信息)。规则的PB部分和/或规则的UB部分可以包括多个项目,这些项目包括标签集合(用于指定被管理的服务器130)、被管理的服务器UID和/或UDG UID。
可选的规则条件部分指定规则是否适用于特定被管理的服务器130和/或该被管理的服务器的特定网络接口。规则条件部分是包括一个或者多个配置的特性(“CC”;在管理域状态320中的对被管理的服务器的描述的部分)和/或网络曝光信息(例如,网络接口的BRN标识符;也是在管理域状态320中的对被管理的服务器的描述的部分)的布尔表达式。表达式的CC部分指定规则是否适用于特定被管理的服务器,而表达式的网络曝光信息部分指定规则是否适用于该被管理的服务器的特定网络接口。如果表达式对于特定被管理的服务器的配置的特性(具体地,对于被管理的服务器的配置的特性的值)和特定网络接口的信息评估为“真”,则规则适用于该被管理的服务器和该被管理的服务器的相关网络接口。如果表达式评估为“假”,则规则不适用于该被管理的服务器和该被管理的服务器的相关网络接口。例如,如果配置的特性存储对哪个操作系统在被管理的服务器上运行的指示,则包括配置的特性的规则条件部分可以基于特定被管理的服务器的操作系统来控制规则是否适用于该服务器。
在管理域范围管理策略330内的规则被组织成规则列表。具体而言,管理策略330包括一个或者多个规则列表,并且规则列表包括一个或者多个规则和(可选的)一个或者多个范围。“范围”约束规则在何处被应用(即,应用于哪些被管理的服务器130)。范围包括限制对规则列表中的规则的应用的进行提供(PB)部分和进行使用(UB)部分。范围的PB部分限制规则的PB部分,并且范围的UB部分限制规则的UB部分。范围的PB和UB部分可以通过使用标签集合来指定一组被管理的服务器130。如果标签集合不包含用于具体维度的标签,则没有该维度的用于所得该组被管理的服务器130的范围设定。如果规则列表不包括任何范围,则全局地应用它的规则。
不同范围可以应用于单个规则列表。例如,最终用户可以构建规则集合,这些规则表达web服务层(具有<作用,Web>标签的被管理的服务器130)如何消费来自数据库层(具有<作用,数据库>标签的被管理的服务器)的服务,负荷平衡层如何消费来自web服务层的服务,等等。然后,如果最终用户想要将这一规则列表应用于他的生产环境(具有<环境,生产>标签的被管理的服务器130)和他的转运环境(具有<环境,转运>标签的被管理的服务器),则他无需复制或者重复规则列表。取而代之,他将多个范围应用于单个规则列表(第一范围和第二范围,在第一范围中,PB部分和UB部分包括<环境,生产>标签,在第二范围中,PB部分和UB部分包括<环境,转运>标签)。范围抽象化从可用性透视和计算透视二者使规则列表伸缩。
现在,已经描述了管理域范围管理策略330,完成几个示例是有帮助的。考虑具有两层应用的管理域150,其中用户设备访问web服务器(第一层),并且web服务器访问数据库服务器(第二层)。在第一层中,用户设备是消费者,并且web服务器是提供者。在第二层中,web服务器是消费者,并且数据库服务器是提供者。管理域150包括这一应用的两个实例:一个在生产环境中并且一个在转运环境中。
web服务器和数据库服务器是被管理的服务器130,并且它们的描述(例如,标签集合)在管理域状态320中存在。例如,它们的标签集合是:
在生产中的web服务器:<作用,Web>和<环境,生产>
在生产中的数据库服务器:<作用,数据库>和<环境,生产>
在转运中的web服务器:<作用,Web>和<环境,转运>
在转运中的的数据库服务器:<作用,数据库>和<环境,转运>
(应用维度、业务范围维度和位置维度与这一示例无关,因此省略它们的标签。)
现在,考虑以下管理域范围管理策略330,该管理域范围管理策略330是指定访问控制和安全连通的安全策略:
规则列表#1
·范围
○<环境,生产>
○<环境,转运>
·规则
○#1
■函数:访问控制
■服务:Apache
■PB:<作用,Web>
■UB:任何人
○#2
■函数:访问控制
■服务:PostgreSQL
■PB:<作用,数据库>
■UB:<作用,Web>
规则列表#2
·范围:无
·规则:
○#1
■函数:安全连通
■服务:全部
■PB:<作用,数据库>
■UB:任何被管理的服务器
注意,以上规则为了清楚而将服务简称为“Apache”和“PostgreSQL”。记住,服务是过程并且由端口/协议对和(可选的)附加资格(比如(以上关于在管理域状态320内的对被管理的服务器130的描述而描述的)过程信息和/或封装信息)指定。
规则列表#1/规则#1允许任何设备(例如,用户设备)连接到web服务器并且使用Apache服务。具体而言,对连接的允许由函数部分中的“访问控制”指定。“任何设备”由UB部分中的“任何人”指定。“web服务器”由PB部分中的“<作用,Web>”(仅包括一个标签的标签集合)指定。Apache服务由服务部分中的“Apache”指定。
规则列表#1/规则#2允许web服务器连接到数据库服务器上的PostgreSQL。具体而言,对连接的允许由函数部分中的“访问控制”指定。“web服务器”由UB部分中的“<作用,Web>”指定。“PostgreSQL”由服务部分中的“PostgreSQL”指定。“数据库服务器”由PB部分中的“<作用,数据库>”(仅包括一个标签的标签集合)指定。
规则列表#1也防止环境间连接。例如,如果web服务器和数据库服务器二者在相同环境中(例如,二者在生产环境中或者二者在转运环境中)则允许web服务器连接到数据库服务器上的PostgreSQL。两个服务器在生产环境中由范围部分中的“<环境,生产>”(仅包括一个标签的标签集合)指定,而两个服务器在转运环境中由范围部分中的“<环境,转运>”(仅包括一个标签的标签集合)指定。(由于在这一示例中的范围在PB部分与UB部分之间不区分,所以每个范围的标签集合应用于PB部分和UB部分二者。)作为结果,如果服务器在不同环境中(例如,如果web服务器在转运环境中并且数据库服务器在生产环境中),则不允许web服务器连接到数据库服务器上的PostgreSQL。
规则列表#2规定无论何时任何被管理的服务器连接到数据库服务器,必需通过加密的信道执行该连接。具体而言,“数据库服务器”由PB部分中的“<作用,数据库>”指定。“加密的信道”由函数部分中的“安全连通”指定。“任何被管理的服务器”由UB部分中的“任何被管理的服务器”指定。“无论何时”由服务部分中的“全部”指定。
结束以上示例,考虑以下两个被管理的服务器130:服务器1是web服务器,该web服务器是生产的部分、app1的部分并且由在加利福尼亚的工程拥有。它将被标注为:
<作用,Web>
<环境,生产>
<应用,app1>
<LB,工程>
<位置,US>
服务器2是数据库服务器,该数据库服务器是生产的部分、也是app1的部分,并且也由工程拥有、但是在德国。它将被标注我:
<作用,数据库服务器>
<环境,生产>
<应用,app1>
<LB,工程>
<位置,EU>
假设访问控制规则允许对作为app1的部分的所有被管理的服务器130的访问。这一规则将允许服务器1和服务器2相互通信并且而将不允许作为app2的部分的在德国的被管理的服务器130与服务器1或者服务器2通信。现在假设安全连通规则指定必须加密在EU与US之间的所有网络流量。独立地应用规则函数。换而言之,安全连通规则是与访问控制规则独立应用的分离的策略。作为结果,从服务器1到服务器2的网络流量将被允许(假定访问控制规则)和加密(假定安全连通规则)。
回到图3,以下在标题为“附加安全方面”的一节中描述全局安全数据贮存库335。
处理服务器310生成用于被管理的服务器130的管理指令并且向服务器发送生成的管理指令。处理服务器310也处理从被管理的服务器130接收的本地状态信息。处理服务器310包括各种模型,比如策略引擎模块340、相关规则模块350、函数级指令生成模块360、动作者枚举模块370、相关动作者模块380、管理域状态更新模块385和全局安全模块390。在一个实施例中,处理服务器310包括与贮存库300通信并且处理数据(例如,通过执行策略引擎模块340、相关规则模块350、函数级指令生成模块360、动作者枚举模块370、相关动作者模块380、管理域状态更新模块385和全局安全模块390)的计算机(或者计算机集合)。
相关规则模块350取得管理域范围管理策略330和对特定被管理的服务器130的指示(例如,该服务器的UID)作为输入、生成与该服务器相关的规则集合并且输出规则集合。这是相关规则模块350用来检查管理策略330并且仅提取用于给定的被管理的服务器130的相关规则的过滤过程。相关规则模块350通过迭代遍历管理策略330中的所有规则列表、分析每个规则列表的范围以确定范围是否适用于这一被管理的服务器130并且(如果范围确实适用于这一被管理的服务器130则)分析每个规则列表的规则以确定那些规则是否适用于这一被管理的服务器130来执行过滤。如果a)规则的PB部分和/或规则的UB部分指定被管理的服务器130和b)规则的条件部分(如果存在)对于该被管理的服务器(具体地,对于该被管理的服务器的配置的特性和网络曝光信息的值)评估为“真”,则规则适用于被管理的服务器。最后结果(这里被称为“管理策略透视”)是两个规则集合的汇集:其中这一被管理的服务器130提供服务的规则和其中这一被管理的服务器130消耗服务的规则。
函数级指令生成模块360取得规则集合(例如,由相关规则模块350生成的管理策略透视)作为输入、生成函数级指令并且输出函数级指令。函数级指令然后被发送到被管理的服务器130作为管理指令的部分。函数级指令与规则相似在于每个函数级指令包括规则函数部分、服务部分、PB部分和UB部分。然而,尽管规则可以在它的PB部分和/或UB部分内包括多个项目(包括标签集合、被管理的服务器UID和/或UDG UID),但是函数级指令在它的PB部分内仅包括一个项目并且在它的UB部分内仅包括一个项目。同时,尽管规则可以在它的PB部分和/或UB部分内指定被管理的服务器(包括它的多个网络接口),但是函数级指令在它的PB部分和UB部分内仅包括一个网络接口。
函数级指令生成模块360分析规则并且基于该规则生成一个或者多个函数级指令。如果规则的PB部分包括多个项目,则规则的UB部分包括多个项目,或者由规则(在PB部分或者UB部分中)引用的被管理的服务器具有多个网络接口,则函数级指令生成模块360生成多个函数级指令(例如,每个函数级指令用于PB项目、UB项目和特定网络接口的一个可能组合)。
考虑如下规则,该规则在它的PB部分内包括两个项目(A和B)并且在它的UB部分内包括两个项目(C和D)。函数级指令生成模块360将利用以下PB和UB部分生成四个函数级指令:1)PB=A、UB=C;2)PB=A、UB=D;3)PB=B、UB=C;4)PB=B、UB=D。现在考虑如下规则,该规则在它的PB部分或者UB部分中覆盖被管理的服务器(例如,通过指定UID或者标签集合),并且该被管理的服务器具有多个网络接口。函数级指令生成模块360将生成多个函数级指令(例如,每个函数级指令用于被管理的服务器的一个网络接口)。
函数级指令生成模块360分析规则、在那些规则内的函数和由那些规则引用的函数简档。如果规则列表包括多个范围,则函数级指令生成模块360将那些范围多次迭代地应用于规则列表(由此为每个范围生成函数级指令的完整集合)。回顾规则函数可以与多个函数简档关联,并且函数简档可以包括优先级。函数级指令生成模块360基于各种函数简档的优先级对规则进行排序,从而使得使用具有最高优先级的函数简档。函数级指令生成模块360将排序的规则翻译成供被管理的服务器130执行的函数级指令。函数级指令引用适当被管理的服务器130和/或未管理的设备140(例如,在输入的规则中引用的被管理的服务器130和/或未管理的设备140),从而考虑与规则关联的服务的网络曝光细节。
注意,函数级指令生成模块360可以生成供特定被管理的服务器130表现为对于该服务器而言无关的函数级指令。例如,该被管理的服务器由规则的进行提供(PB)部分覆盖,因此函数级指令生成模块360生成对应的函数级指令。然而,规则也包括指定被管理的服务器的本地状态的部分(例如,描述提供的服务的服务部分)。由于全局管理器120不知道被管理的服务器的本地状态(例如,被管理的服务器是否实际地提供该服务),所以生成的函数级指令被发送到被管理的服务器。被管理的服务器如以下参照策略编译模块410而说明的那样检查它的本地状态(例如,它是否提供该服务)并且相应地处理函数级指令。
动作者枚举模块370取得对被管理的服务器130和未管理的设备组(UDG)的描述的汇集(例如,管理域的计算机网络基础结构320的状态)作为输入、以枚举形式生成对服务器和UDG的那些描述的表示(被称为“动作者集合”)并且输出动作者集合。例如,动作者枚举模块370在管理域状态320和可能标签集合内枚举被管理的服务器130和UDG,并且指派每个唯一标识符。这些动作者集合然后可以与规则和范围的UB部分和PB部分结合被使用,这些UB部分和PB部分使用被管理的服务器UID、UDG UID和/或标签集合来指定动作者。
考虑如下逻辑管理模型,该逻辑管理模型包括N个维度Di(i=1,…,N)的集合,并且每个维度Di包括可能值Vj(j=1,…,Mi)的集合Si(其中通配符“*”是可能值之一)。在一个实施例中,动作者枚举模块370枚举基于逻辑管理模型而可能的所有标签集合,这些标签集合等于由S1×S2×…×SN给定的笛卡尔乘积。这一集合的大小是M1×M2×…×MN。枚举过程将被管理的服务器130的多维标签空间折叠成简单枚举形式。
在另一实施例中,动作者枚举模块370仅枚举基于管理域状态320(例如,基于对在管理域150内的被管理的服务器的描述)而可能的那些标签集合。例如,考虑如下逻辑管理模型,该逻辑管理模型包括2个维度(X和Y),并且每个维度包括3个可能值(A、B和*)。具有标签集合“<X=A>,<Y=B>”的被管理的服务器可以是4个可能标签集合的成员:1)“<X=A>,<Y=B>”、2)“<X=A>,<Y=*>”、3)“<X=*>,<Y=B>”和4)“<X=*>,<Y=*>”。注意,被管理的服务器的标签集合存在于2维空间(X和Y)中,而可能标签集合2、3和4是被管理的服务器的标签集合向子维空间中的投影(标签集合2是1维空间(X),标签集合3是1维空间(Y),并且标签集合4是0维空间)。因此,动作者枚举模块370枚举那些4个可能标签集合。具有标签集合“<X=A>,<Y=B>”的被管理的服务器不能是标签集合“<X=A>,<Y=A>”的成员,因此动作者枚举模块370未枚举该标签集合。
在又一实施例中,动作者枚举模块370仅枚举在管理域范围管理策略330中(例如,在规则和范围的UB部分和PB部分中)使用的那些标签集合。
动作者集合包括UID和零个或者更多个动作者集合记录。动作者集合记录在给定具体BRN时包括UID(被管理的服务器UID或者UDG UID)、动作者的操作系统的标识符和动作者(被管理的服务器130或者未管理的设备140)的IP地址。例如,动作者集合可以包括如下动作者集合记录,这些动作者集合记录的IP地址对应于由标签集合<作用,数据库>和<环境,生产>覆盖的所有被管理的服务器130。作为另一示例,动作者集合可以包括如下动作者集合记录,这些动作者集合记录的IP地址对应于总部UDG中的所有未管理的设备140。单个动作者(例如,被管理的服务器130或者未管理的设备140)可以在多个动作者集合中出现。
动作者集合计算中的另一因素是具有多个网络接口的动作者加上包括网络拓扑(比如网络地址翻译(NAT))。因此,可以有用于标签集合<作用,数据库>和<环境,生产>的两个动作者集合:一个动作者集合具有那些被管理的服务器130的面向因特网的IP地址(即,与第一BRN关联),并且用于那些相同被管理的服务器的不同动作者集合具有那些被管理的服务器的面向私有网络的IP地址(即,与第二BRN关联)。
在一个实施例中,动作者枚举模块370也可以基于对管理域状态320的改变来更新动作者集合。例如,动作者枚举模块370取得动作者集合(由动作者枚举模块先前输入)和对被管理的服务器的描述(在管理域状态320内)的改变作为输入、生成(与改变的服务器描述一致的)更新的动作者集合并且输出更新的动作者集合。动作者枚举模块370依赖于对被管理的服务器的描述的改变类型以不同方式生成更新的动作者集合。
离线/在线改变——如果描述改变指示服务器从在线变成离线,则动作者枚举模块370通过从服务器是其成员的所有输入的动作者集合去除服务器的动作者集合记录来生成更新的动作者集合。如果描述改变指示服务器从离线变成在线,则动作者枚举模块370通过向任何相关的输入的动作者集合添加服务器的动作者集合来生成更新的动作者集合。(如果必需,则动作者枚举模块370创建新动作者集合,并且向该新动作者集合添加服务器的动作者集合记录。)
标签集合改变——如果描述改变指示服务器的标签集合被改变,则动作者枚举模块370将这视为如第一服务器(具有旧标签集合)变成离线而第二服务器(具有新标签集合)变成在线。
网络曝光信息改变——如果描述改变指示服务器去除网络接口,则动作者枚举模块370通过从服务器是其成员的所有输入的动作者集合(与网络接口的BRN关联)去除服务器的动作者集合记录来生成更新的动作者集合。如果描述改变指示服务器添加网络接口,则动作者枚举模块370通过向任何相关的输入的动作者集合(与该网络接口的BRN关联)添加服务器的动作者集合记录来生成更新的动作者集合。(如果必需,则动作者枚举模块370创建新动作者集合(与该网络接口的BRN关联),并且向该新动作者集合添加服务器的动作者集合记录。)如果描述改变指示服务器改变网络接口的BRN,则动作者枚举模块370将这视为如去除第一网络接口(具有旧BRN)并且添加第二网络接口(具有新BRN)。如果描述改变指示服务器改变网络接口的IP地址(但是未改变BRN),则动作者枚举模块370通过在服务器是其成员的所有输入的动作者集合(与该网络接口的BRN关联)中修改服务器的动作者集合记录来生成更新的动作者集合。
相关动作者模块380取得一个或者多个动作者集合(例如,以枚举形式在管理域状态320中的被管理的服务器130和UDG)和规则集合(例如,管理策略透视)作为输入、确定哪些动作者集合与那些规则相关并且仅输出那些动作者集合。这是相关动作者模块380用来检查动作者集合并且仅提取用于给定的规则集合的相关动作者集合的过滤过程。相关动作者模块380通过迭代遍历所有输入的动作者集合、分析输入的规则的PB部分和UB部分以确定特定动作者集合是否被规则的PB部分或者UB部分中的任何部分引用来执行过滤。最终结果(这里被称为“动作者透视”)是动作者集合的汇集。动作者透视以后被发送到被管理的服务器130作为管理指令的部分。
在一个实施例中,相关动作者模块380使用输入的规则集合以生成“动作者集合过滤器”。动作者集合过滤器从输入的动作者集合仅选择与输入的规则相关的动作者集合。换而言之,相关动作者模块380使用动作者集合过滤器以将输入的动作者集合过滤成相关动作者集合。
策略引擎模块340生成用于被管理的服务器130的管理指令并且向服务器发送生成的管理指令。策略引擎模块340基于a)管理域的计算机网络基础结构320和b)管理域范围管理策略330来生成管理指令(使用相关规则模块350、函数级指令生成模块360、动作者枚举模块370和相关动作者模块380)。
例如,策略引擎模块340执行相关规则模块350,从而提供管理域范围管理策略330和特定被管理的服务器130的UID作为输入。相关规则模块350输出与该服务器相关的规则集合(“管理策略透视”)。策略引擎模块340执行动作者枚举模块370,从而提供管理域状态320作为输入。动作者枚举模块370以枚举形式输出在管理域状态320内对被管理的服务器130和未管理的设备组(UDG)的描述的表示(“动作者集合”)。策略引擎模块340执行函数级指令生成模块360,从而提供管理策略透视(由相关规则模块350输出)作为输入。函数级指令生成模块360输出函数级指令。策略引擎模块340执行相关动作者模块380,从而提供动作者集合(由枚举模块370输出)和管理策略透视(由相关规则模块350输出)作为输入。相关动作者模块380仅输出与那些规则相关的动作者集合(“相关动作者集合”)。策略引擎模块340向特定被管理的服务器130发送函数级指令(由函数级指令生成模块360输出)和相关动作者集合(由相关动作者模块380输出)。
在一个实施例中,策略引擎模块340高速缓存在以上过程期间生成的信息。例如,策略引擎模块340与特定被管理的服务器130关联地高速缓存管理策略透视、函数级指令、动作者集合过滤器和/或相关动作者集合。作为另一示例,策略引擎模块340高速缓存管理域的动作者集合(不是特定被管理的服务器130特有的)。
由于管理域的动作者集合基于管理域状态320,所以对管理域状态320的改变无需对管理域的动作者集合的改变。相似地,由于被管理的服务器的管理指令基于管理域状态320和管理域范围管理策略330,所以对管理域状态320的改变和/或对管理域范围管理策略330的改变可能需要对被管理的服务器的管理指令的改变。在一个实施例中,策略引擎模块340可以更新管理域的动作者集合和/或更新被管理的服务器的管理指令,并且然后向被管理的服务器130分发这些改变(如果必需)。以上提到的高速缓存的信息帮助策略引擎模块340更高效地更新管理域的动作者集合和/或被管理的服务器的管理指令以及分发改变。
在一个实施例中,策略引擎模块340更新管理域的动作者集合(基于对管理域状态320的改变)并且如下向被管理的服务器130分发改变:策略引擎模块340执行动作者枚举模块370,从而提供高速缓存的动作者集合(由动作者枚举模块先前输出)和管理域状态320的改变的部分(例如,改变的服务器描述)作为输入。动作者枚举模块370输出更新的动作者集合。在一个实施例中,策略引擎模块340然后向在管理域150内的所有被管理的服务器130发送所有更新的动作者集合。然而,该实施例效率低,因为并非所有被管理的服务器受对所有动作者集合的改变所影响。
在另一实施例中,仅选择的动作者集合被发送到选择的服务器。例如,向特定被管理的服务器仅发送a)向该服务器先前发送的和b)已经改变的那些动作者集合。高速缓存的相关动作者集合指示向该服务器先前发送了哪些动作者集合(见以上(a))。策略引擎模块340比较高速缓存的动作者集合与更新的动作者集合以确定哪些动作者集合已经改变(见以上(b))。策略引擎模块340然后计算(a)和(b)的交集。在该交集中的动作者集合被发送到特定被管理的服务器。在一个实施例中,为了甚至更大效率,在描述在高速缓存的动作者集合与更新的动作者集合之间的差异的“diff”格式中发送动作者集合。例如,diff格式指定动作者集合标识符、动作者标识符(例如,被管理的服务器UID或者UDG UID)和对该动作者是否应当被添加到动作者集合、从动作者集合被去除或者在动作者集合内被修改的指示。
在又一实施例中,维护和使用两个表以提高效率。第一个表将被管理的服务器130与该被管理的服务器是其成员的动作者集合关联。第二个表将被管理的服务器130和与该被管理的服务器相关(例如,如由相关动作者模块380确定)的动作者集合关联。在这些表中,被管理的服务器130例如由该被管理的服务器的UID代表,并且动作者集合例如由该动作者集合的UID代表。策略引擎模块340使用管理域状态320的改变的部分(例如,改变的服务器描述)以确定哪些被管理的服务器的描述改变。策略引擎模块340使用第一个表以确定该被管理的服务器是哪些动作者集合的成员。那些动作者集合可能由于改变的服务器描述而改变。因此,策略引擎模块340使用第二个表以确定那些策略引擎模块340与哪些被管理的服务器相关。策略引擎模块340仅为那些被管理的服务器执行以上描述的计算交集计算。
在一个实施例中,策略引擎模块340更新被管理的服务器的管理指令(基于对管理域状态320的改变)并且如下向被管理的服务器发送更新的管理指令:策略引擎模块340执行相关规则模块350,从而提供管理域范围管理策略330和被管理的服务器130的UID作为输入。相关规则模块350输出与该服务器相关的规则集合(“管理策略透视”)。策略引擎模块340比较刚刚输出的管理策略透视与高速缓存的管理策略透视以确定它们是否不同。如果刚刚输出的管理策略透视和高速缓存的管理策略透视相同,则策略引擎模块340不采取进一步动作。在这一情形中,先前生成的被管理的服务器的管理指令(具体为函数级指令和相关动作者集合)与对管理域状态320的改变一致,并且无需被重新生成和重新发送到被管理的服务器。
如果刚刚输出的管理策略透视和高速缓存的管理策略透视不同,则策略引擎模块340确定哪些规则应当被添加到高速缓存的透视以及哪些规则应当从高速缓存的透视被去除。策略引擎模块340执行函数级指令生成模块360,从而提供待添加的规则和待去除的规则作为输入。函数级指令生成模块360输出待添加的函数级指令和待去除的函数级指令(相对于向被管理的服务器先前发送的高速缓存的函数级指令)。策略引擎模块340在适当时指令被管理的服务器添加或者去除各种函数级指令。在一个实施例中,为了更大效率,以描述在高速缓存的函数级指令与更新的函数级指令之间的差异的“diff”格式发送函数级指令。例如,diff格式指定函数级指令标识符和对该函数级指令是否应当被添加到先前发送的函数级指令或者从先前发送的函数级指令被去除的指示。
策略引擎模块340也执行动作者枚举模块370,从而提供高速缓存的动作者集合和管理域状态320的改变的部分(例如改变的服务器描述)作为输入。动作者枚举模块370输出更新的动作者集合。策略引擎模块340执行相关动作者模块380,从而提供更新的动作者集合和刚刚输出的管理策略透视作为输入。相关动作者模块380仅输出与那些规则相关的那些更新的动作者集合(“更新的相关动作者集合”)。
策略引擎模块340比较更新的相关动作者集合与高速缓存的相关动作者集合以确定它们是否不同。如果更新的相关动作者集合和高速缓存的相关动作者集合相同,则策略引擎模块340不向被管理的服务器发送动作者集合。在这一情形中,先前生成的相关动作者集合与对管理域状态320的改变一致,并且无需被重新发送到被管理的服务器。如果更新的相关动作者集合和高速缓存的相关动作者集合不同,则策略引擎模块340确定哪些动作者集合相对于高速缓存的相关动作者集合而应当被添加、去除或者修改。策略引擎模块340在适当时指令被管理的服务器添加、去除或者修改各种动作者集合。在一个实施例中,为了更大效率,以描述在高速缓存的相关动作者集合与更新的相关动作者集合之间的差异的“diff”格式发送动作者集合。例如,diff格式指定动作者集合标识符和对该动作者集合是否应当被添加到先前发送的动作者集合、从先前发送的动作者集合被去除或者相对于先前发送的动作者集合被修改。
回顾策略引擎模块340可以更新被管理的服务器的管理指令(基于对管理域范围管理策略330的改变)并且向被管理的服务器发送更新的管理指令。对管理策略330的改变例如是添加、去除或者修改规则或者规则集合。在一个实施例中,通过经由GUI或者API与全局管理器120交互来生成对管理策略330的改变。在另一实施例中,对管理策略330的改变由在全局管理器120内的自动化的过程生成(例如,响应于由全局管理器检测的安全威胁)。策略引擎模块340以相似方式更新被管理的服务器的管理指令并且向被管理的服务器发送更新的管理指令而无论是否有对管理策略330的改变或者对管理域状态320的改变。然而,存在少许不同。
在对管理策略330的改变的情况下,策略引擎模块340未必更新用于所有被管理的服务器130的管理指令。取而代之,策略引擎模块340比较先前管理策略330与新管理策略330以确定哪些规则相对于先前管理策略330应当被添加、去除或者修改。策略引擎模块340确定哪些被管理的服务器130受改变的规则影响(例如,哪些被管理的服务器被a)规则的和/或范围的PB和/或UB部分以及b)规则的条件部分(如果有)覆盖)。策略引擎模块340执行相关规则模块350,从而提供改变的规则(而不是整个新管理策略330)和被管理的服务器130的UID(仅对于受改变的规则影响的那些服务器)作为输入。
管理域状态更新(ADSU)模块385接收对管理域状态320的改变并且处理那些改变。对管理域状态320的改变例如是添加、去除或者修改对被管理的服务器130的描述(包括修改被管理的服务器的标签集合或者配置的特性)或者对未管理的设备或者未管理的设备组的描述。在一个实施例中,对管理域状态320的改变在从特定被管理的服务器130接收的本地状态信息中始发。在另一实施例中,通过经由GUI或者APPI与全局管理器120交互来生成对管理域状态320的改变。在又一实施例中,对管理域状态320的改变由在全局管理器120内的自动化的过程生成(例如,响应于由全局管理器检测到安全威胁)。
例如ADSU模块385接收关于特定未管理的设备140的改变。ADSU模块385在管理域状态320中存储新信息(例如,作为特定被管理的设备是其成员的未管理的设备组的部分)。ADSU模块385然后基于未管理的设备组改变来更新管理域的动作者集合。具体而言,ADSU模块385指令策略引擎模块340更新管理域的动作者集合。在一个实施例中,ADSU模块385在指令策略引擎模块340更新管理域的动作者集合之前等待事件出现。这一事件可以例如是接收用户命令或者出现指定的维护窗口。
作为另一示例,ADSU模块385接收关于特定被管理的服务器130的改变。ADSU模块385在管理域状态320中存储新信息作为对该特定被管理的服务器130的描述的部分。ADSU模块385然后(可选地)分析该被管理的服务器的描述以确定关于该服务器的附加信息并且在描述中存储该信息。ADSU模块385然后基于对被管理的服务器的描述的改变来确定是否更新管理域的动作者集合和/或被管理的服务器的管理指令。如果ADSU模块385确定更新管理域的动作者集合,则ADSU模块385指令策略引擎模块340更新管理域的动作者集合。在一个实施例中,ADSU模块385在指令策略引擎模块340更新管理域的动作者集合之前等待事件出现。如果ADSU模块385确定更新被管理的服务器的管理指令,则ADSU模块385指令策略引擎模块340更新被管理的服务器的管理指令。在一个实施例中,ADSU模块385在指令策略引擎模块340更新被管理的服务器的管理指令之前等待事件出现。前述事件可以例如是接收用户命令或者出现指定的维护窗口。
ADSU模块385是否确定更新管理域的动作者集合和/或被管理的服务器的管理指令依赖于对被管理的服务器的描述的改变类型。在一个实施例中,ADSU模块385如表2中所示做出这一确定。
表2–是否基于服务器描述改变类型更新管理域的动作者集合和/或被管理的服务器的管理指令
在一个实施例中,ADSU模块385通过执行标签/配置的特性引擎并且提供服务器的描述作为输入来确定关于服务器的附加信息。标签/CC引擎基于服务器的描述和标签/CC指派规则来计算用于服务器的标签/CC值。在另一实施例中,ADSU模块385确定服务器是否在网络地址翻译器(NAT)后面(以及如果它在NAT后面,则什么类型的NAT——1:1或者1:N)。
以下在标题为“附加安全方面”的一节中描述全局安全模块390。
图4是图示了根据一个实施例的被管理的服务器130的策略实施模块136的具体视图的高级框图。策略实施模块136包括本地状态贮存库400、策略编译模块410、本地状态更新模块420和本地安全模块430。本地状态贮存库400存储关于被管理的服务器130的本地状态的信息。在一个实施例中,本地状态贮存库400存储关于被管理的服务器的操作系统(OS)、网络曝光和服务的信息。OS信息例如包括对哪个OS正在运行的指示。以上关于在管理域状态320内的对被管理的服务器130的描述来描述网络曝光信息和服务信息。
策略编译模块410取得管理指令和被管理的服务器130的状态作为输入,并且生成管理模块配置134。例如,管理指令从全局管理器120被接收并且包括函数级指令(由函数级指令生成模块360生成)和相关动作者集合(由相关动作者模块380输出)。从本地状态贮存库400接收被管理的服务器130的状态。在一个实施例中,对策略编译模块410的执行被以下触发:由a)被管理的服务器上电或者上线、b)被管理的服务器接收管理指令和/或c)本地状态贮存库400的内容改变。
策略编译模块410将函数级指令和相关动作者集合映射到管理模块配置134中。例如,策略编译模块410将访问控制函数级指令(包含端口和动作者集合引用)映射到Linux操作系统中的iptables条目和ipset条目或者Windows操作系统中的Windows过滤平台(WFP)规则中。
管理策略在被管理的服务器130处的应用可以受该服务器的本地状态影响。在一个实施例中,策略编译模块410评估与接收的函数级指令关联的条件,并且基于该评估的结果来生成管理模块配置134。例如,策略编译模块410评估对被管理的服务器的对等服务器(即,在关系中的另一动作者)的操作系统进行引用的条件,并且基于该评估的结果来选择函数简档属性,其中在管理模块配置134中表达选择的函数简档属性。
作为另一示例,回顾被管理的服务器130可以接收表现为对于该服务器而言无关的函数级指令。例如,规则包括如下部分:该部分指定被管理的服务器的本地状态(例如,描述提供的服务的服务部分)。由于全局管理器120不知道被管理的服务器的本地状态(例如,被管理的服务器是否实际地提供该服务),所以生成的函数级指令被发送到被管理的服务器。策略编译模块410检查被管理的服务器的本地状态(例如,确定被管理的服务器是否提供该服务)。这一确定相当于评估对被管理的服务器的本地状态进行引用的条件。策略编译模块410相应地处理函数级指令。如果策略编译模块410确定条件评估为“真”(例如,被管理的服务器提供该服务),则策略编译模块410将该函数级指令并入到管理模块配置134中。具体而言,策略编译模块410仅在评估关联条件(涉及该服务器的本地状态)之后将函数级指令并入到管理模块配置134中。如果对条件的评估为假,则策略编译模块410在管理模块配置134中不表达函数级指令。具体条件(例如,它们的性质和特定值)可扩展。在一个实施例中,条件与对“服务”的定义有关并且包括过程信息和/或封装信息(以上关于在管理域状态320内的对被管理的服务器130的描述而被描述)。
例如,考虑仅允许访问在端口80上入站的Apache服务的函数级指令(即,其中被管理的服务器130是“提供者”或者端点)。被管理的服务器130在管理模块配置134中表达这一函数级指令以仅在评估关联条件之后允许在端口80上的访问,该条件涉及在端口80上监听的应用(在该服务器上执行)是否实际地是Apache而不是某个其它应用(反常或者以别的方式)。被管理的服务器130仅在确定关联条件评估为“真”之后在管理模块配置134中表达这一函数级指令。如果关联条件评估为“假”,则被管理的服务器130在管理模块配置134中不表达这一函数级指令。作为结果,网络流量被阻止。
在一个实施例中,被管理的服务器130监视它的出站连接。被管理的服务器130比较出站网络流量与它的内部过程表以确定该表中的哪些过程建立那些出站连接。被管理的服务器130可以强制实行仅允许某些过程(给定以上被称为“过程信息”的要求集合)建立出站连接的规则。
在一个实施例(未示出)中,策略编译模块410位于全局管理器120处而不是被管理的服务器130处。在该实施例中,全局管理器120不向被管理的服务器130发送管理指令。取而代之,被管理的服务器130向全局管理器120发送它的本地状态。在策略编译模块410生成管理模块配置134(在全局管理器120处)之后,从全局管理器120向被管理的服务器130发送管理模块配置134。
本地状态更新(LSU)模块420监视被管理的服务器130的本地状态并且向全局管理器120发送本地状态信息。在一个实施例中,LSU模块420确定被管理的服务器130的初始本地状态、在本地状态贮存库400中存储适当本地状态信息并且向全局管理器120发送该本地状态信息。LSU模块420通过检查服务器的操作系统(OS)和/或文件系统的各种部分来确定被管理的服务器130的本地状态。例如,LSU模块420从OS的内核表(联网信息)、OS的系统表(封装信息)和文件系统(文件和哈希值)获得服务信息。LSU模块420从OS的内核和/或OS级数据结构获得网络曝光信息。
在LSU模块420向全局管理器120发送初始本地状态信息之后,LSU模块监视对本地状态的改变。LSU模块例如通过轮询(例如,周期地执行检查)或者监听(例如,预订事件流)来监视改变。LSU模块420比较新近地获得的本地状态信息与在本地状态贮存库400中已经存储的信息。如果信息匹配,则LSU模块420不采取进一步动作(直至再次获得本地状态信息)。如果它们不同,则LSU模块420在本地状态贮存库400中存储新近地获得的信息、执行策略编译模块410以重新生成管理模块配置134(并且相应地重新配置管理模块132)并且向全局管理器120通知改变。在一个实施例中,LSU模块420以描述在本地状态贮存库400中先前存储(和因此向全局管理器120先前发送)的本地状态信息与新近地获得的本地状态信息之间的差异的“diff”格式向全局管理器120发送对本地状态信息的改变。例如,diff格式指定本地状态信息类型(例如,操作系统)和用于该信息类型的新值。在另一实施例中,LSU模块420向全局管理器120发送本地状态贮存库400的全部内容。
以下在标题为“附加安全方面”的一节中描述本地安全模块430。
图5是图示了根据一个实施例的生成用于特定被管理的服务器130的管理指令的方法500的流程图。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。在一个实施例中,多次执行方法500(例如,对于在管理域150中的每个被管理的服务器130一次)。
在方法500开始时,管理域的计算机网络基础结构320的状态和管理域范围管理策略330已经被存储在全局管理器120的贮存库300中。这时,方法500开始。
在步骤510中,访问管理域状态320和管理域范围管理策略330。例如,策略引擎模块340向贮存库300发送请求并且作为响应而接收管理域状态320和管理域范围管理策略330。
在步骤520中,确定一个或者多个相关规则。例如,策略引擎模块340执行相关规则模块350,从而提供管理域范围管理策略330和特定被管理的服务器130的UID作为输入。相关规则模块350输出与该服务器相关的规则集合(管理策略透视)。
在步骤530中,枚举动作者。例如,策略引擎模块340执行动作者枚举模块370,从而提供管理域状态320作为输入。动作者枚举模块370以枚举格式(动作者集合)在管理域状态320内生成对被管理的服务器130和未管理的设备组(UDG)的表示。
在步骤540中,生成一个或者多个函数级指令。例如,策略引擎模块340执行函数级指令生成模块360,从而提供管理策略透视(在步骤520中生成)作为输入。函数级指令生成模块360生成函数级指令。
在步骤550中,确定一个或者多个相关动作者。例如,策略引擎模块340执行相关动作者模块380,从而提供动作者集合(在步骤530中生成)和管理策略透视(在步骤520中生成)作为输入。相关动作者模块380仅输出与那些规则相关的动作者集合(相关动作者集合)。
在步骤560中,向特定被管理的服务器130发送管理指令。例如,策略引擎模块340向特定被管理的服务器130发送函数级指令(在步骤540中生成)和相关动作者集合(在步骤550中生成)。
注意,步骤520和540涉及生成用于特定被管理的服务器130的管理策略透视(和所得函数级指令),而步骤530和550涉及生成用于该被管理的服务器的动作者透视。对管理策略透视的生成和对动作者透视的生成最少地相互依赖,因为步骤520生成由步骤550使用的规则集合。即使这样,保持管理策略计算(即,步骤520和540)和动作者集合计算(即,步骤530和550)分离增强策略引擎模块340的可伸缩性。由于保持管理策略计算和动作者集合计算最多地分离,所以可以并行执行它们(例如,即使对于相同被管理的服务器130)。此外,也可以并行执行用于不同被管理的服务器130的透视计算。同时,如果动作者改变,则仅需重新计算动作者集合。(无需重新计算函数级指令。)如果规则改变,则仅需重新计算函数级指令和相关动作者集合。(无需重新枚举动作者。)
图6是图示了根据一个实施例的生成用于被管理的服务器130的管理模块132的配置134的方法600的流程图。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在方法600开始时,关于被管理的服务器130的本地状态的信息已经被存储在被管理的服务器130中的策略实施模块136的本地状态贮存库400中。这时,方法600开始。
在步骤610中,从全局管理器120接收管理指令。例如,策略编译模块410从全局管理器120接收函数级指令和相关动作者集合。
在步骤620中,访问本地状态。例如,策略编译模块410访问在本地状态贮存库400中存储的关于被管理的服务器130的本地状态的信息。
在步骤630中,生成管理模块配置134。例如,策略编译模块410取得管理指令(在步骤610中接收)和本地状态(在步骤620中访问)作为输入,并且生成管理模块配置134。
在步骤640中,配置管理模块132。例如,策略编译模块410配置管理模块132以根据管理模块配置134(在步骤630中生成)操作。
图7是图示了根据一个实施例的监视被管理的服务器130的本地状态并且向全局管理器120发送本地状态信息的方法700的流程图。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在方法700开始时,关于被管理的服务器130的本地状态的信息已经被存储在被管理的服务器130的本地状态贮存库400中。这时,方法700开始。
在步骤710中,确定关于被管理的服务器130的当前本地状态的信息。例如,LSU模块420通过检查服务器的操作系统(OS)和/或文件系统的各种部分来确定被管理的服务器130的本地状态。
在步骤720中,关于当前本地状态的信息是否与在本地状态贮存库400中存储的信息不同执行确定。例如,LSU模块420执行这一确定。如果信息并非不同,则该方法前进到步骤730并且结束。如果信息确实不同,则该方法前进到步骤740。
在步骤740中,在本地状态贮存库400中存储不同信息。例如,LSU模块420执行这一步骤。
在步骤750中,重新生成管理模块配置134(因为本地状态贮存库400的内容已经改变),并且相应地重新配置管理模块132。例如,LSU模块420执行策略编译模块410,该策略编译模块410重新生成管理模块配置134。
在步骤760中,向全局管理器120发送不同的信息。例如,LSU模块420执行这一步骤。
图8是图示了根据一个实施例的处理对管理域的计算机网络基础结构320的状态的改变的方法800的流程图。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在步骤810中,接收关于特定被管理的服务器130的改变。例如,管理域状态更新(ADSU)模块385从被管理的服务器130接收在线/离线指示符、操作系统指示符、网络曝光信息和/或服务信息作为本地状态信息的部分。
在步骤820中,存储接收的信息。例如,ADSU模块385在管理域状态320中(具体地,在对信息与之有关的被管理的服务器130的描述中)存储接收的在线/离线指示符、网络曝光信息和/或服务信息。
在步骤830中,分析服务描述以确定关于服务器的附加信息。例如,ADSU模块385使用标签/配置的特性引擎以计算用于服务器的标签/CC值和/或确定服务器是否在网络地址翻译器(NAT)后面(以及如果它在NAT后面,则什么类型的NAT——1:1或者1:N),并且在服务器描述中存储该信息。步骤830是可选的。
在步骤840中,关于是否更新管理域的动作者集合做出确定。例如,ADSU模块385基于对被管理的服务器的描述的改变来确定是否更新管理域的动作者集合。如果做出更新管理域的动作者集合的确定,则该方法前进到步骤850。如果做出不更新管理域的动作者集合的确定,则该方法前进到步骤860。
在步骤850中,更新管理域的动作者集合。例如,ADSU模块385指令策略引擎模块340更新管理域的动作者集合并且相应地通知受影响的被管理的服务器130。在一个实施例(未示出)中,ADSU模块385在指令策略引擎模块340更新管理域的动作者集合之前等待事件出现。
在步骤860中,关于是否更新被管理的服务器的管理指令做出确定。例如,ADSU模块385基于对被管理的服务器的描述的改变来确定是否更新被管理的服务器的管理指令。如果做出更新被管理的服务器的管理指令的确定,则该方法前进到步骤870。如果做出不更新被管理的服务器的管理指令的确定,则该方法前进到步骤880。
在步骤870中,更新被管理的服务器的管理指令。例如,ADSU模块385指令策略引擎模块340更新被管理的服务器的管理指令。在一个实施例(未示出)中,ADSU模块385在指令策略引擎模块340更新被管理的服务器的管理指令之前等待事件出现。
在步骤880中,该方法结束。
附加安全方面
回顾被管理的服务器130的策略实施模块136包括本地安全模块430。本地安全模块430从被管理的服务器130收集安全相关信息(“安全元数据”)并且向全局管理器120发送收集的信息。本地安全模块430使被管理的服务器130能够在管理域150中充当分布的检测节点或者探测器(probe)。在一个实施例中,本地安全模块430收集和发送以下安全相关信息中的任何或者所有安全相关信息:
a)反常过程和/或反常动作的标识——本地安全模块430检测在被管理的服务器130上运行的“反常过程”。反常过程是执行(或者尝试执行)不恰当动作(“反常动作”)(比如违反由管理模块配置134实施的管理策略的动作)的过程。例如,如果管理策略包括指定可允许网络连接的访问控制规则,则尝试连接到未被列举为可允许的设备(例如,发起与该设备的网络连接)将是反常动作。具体而言,如果访问控制规则规定如果提供者是数据库服务器并且消费者是web服务器则允许连接,则数据库服务器尝试充当消费者而web服务器充当提供者将是反常动作。在一个实施例中,本地安全模块430访问描述用于允许的动作的管理策略的指令。对该策略的任何不服从构成反常动作。
回顾过程信息例如包括被管理的服务器130运行的过程的名称、那些过程监听在哪些网络端口和网络接口上、哪些用户发起那些过程、那些过程的配置、那些过程的命令行起动变元和那些过程的依赖性。反常动作可以涉及任何类型的过程信息。例如,在“错误”网络端口或者网络接口(例如,未被管理策略指定为允许的网络端口或者网络接口)上监听可以是反常动作。作为另一示例,在一个或者多个“错误”用户(例如,未被管理策略指定为允许的用户)的情境之下执行可以是反常动作。作为又一示例,加载异常或者未授权的共享对象可以是反常动作。
在一个实施例中,如果本地安全模块430检测到反常过程/动作,则本地安全模块向全局管理器120发送关于反常动作(例如,由反常过程执行)的信息、关于反常过程本身的信息(例如,过程信息)和/或关于由反常过程执行的附加动作(比如请求域名系统(DNS)查找和尝试和/或进行的网络连接)的信息。关于反常动作的信息例如包括反常动作的类型(例如,在错误网络端口或者接口上监听或者在错误用户的情境之下执行)、反常动作的基于它的类型的细节(例如,在其上监听的错误网络端口或者接口或者在其情境之下执行过程的错误用户)和/或指示反常动作何时出现的时间戳。关于DNS查找的信息例如包括向待查找的DNS发送的信息。关于网络连接的信息例如包括目的地设备的IP地址和/或端口号。反常过程/动作信息可以用来标识“坏的”被管理的服务器130,其中被管理的服务器如果它执行(或者尝试执行)违反由管理模块配置134实施的管理策略的动作则是“坏的”。
图9是图示了根据一个实施例的检测和报告反常过程的方法900的流程图。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在方法900开始时,已经根据管理模块配置134配置了在被管理的服务器130内的管理模块132。被管理的服务器130使用从全局管理器120接收的管理指令来配置管理模块132。配置的管理模块132实施管理域范围管理策略330。这时,方法900开始。
在步骤910中,从在被管理的服务器130上执行的过程接收用于执行动作的请求。例如,本地安全模块430接收请求。
在步骤920中,根据在被管理的服务器130内的配置的管理模块132做出动作不恰当的确定。例如,本地安全模块430向管理模块132发送请求,该管理模块132然后分析请求以确定请求是否符合管理域范围管理策略330。本地安全模块430从管理模块132接收响应,该响应指示请求不符合管理域范围管理策略330。基于接收的响应,本地安全模块430确定动作不恰当。
在步骤930中,向全局管理器发送关于不恰当动作或者关于过程的信息。例如,本地安全模块430向全局管理器发送关于不恰当动作的信息(例如,不恰当动作的类型、不恰当动作的基于不恰当动作的类型的细节或者指示不恰当动作何时出现的时间戳)或者关于请求执行动作的过程的信息(例如,过程的名称、过程在其上监听的网络端口、过程在其上监听的网络接口、发起过程的用户、过程的配置、过程的命令行起动变元或者过程的依赖性)。
b)操作系统级篡改的标识——本地安全模块430检测操作系统级篡改(例如,对管理模块配置134的修改)。
c)日志——本地安全模块430从被管理的服务器130获得日志并且向全局管理器120发送日志。日志例如包括防火墙日志(例如,基于web的L7规则和由web应用防火墙(WAF)引擎报告的基于签名的攻击)、入侵检测系统(IDS)日志(例如,来自IDS引擎的传统的基于L7签名的入侵检测事件)和认证日志(例如,安全shell(SSH)认证日志)。在一个实施例中,这些日志被规范化成标准格式,从而使得它们更易于分析。可以在被管理的服务器130处和/或在全局管理器120处执行规范化。
d)检测到的入侵的标识——本地安全模块430使用各种技术来检测入侵。例如,本地安全模块430与iptables结合使用一些基本入侵签名。作为另一示例,本地安全模块430跟踪与IP地址关联的一些活动并且比较跟踪的活动的数量与一些阈值(以例如检测SSH蛮力攻击)。
e)“坏动作者”的标识——本地安全模块430比较已知“坏动作者”(例如,其IP地址与低信誉和/或安全威胁关联的设备)与由被管理的服务器130阻止的IP地址。尽管坏动作者通常地是未管理的设备140,但是坏动作者可能是被管理的服务器130。在一个实施例中,以日志流的形式向全局管理器120提供坏动作者的标识。
在一个实施例中,本地安全模块430也执行它自己的安全功能。例如,本地安全模块430检测在被管理的服务器130上的过程何时创建新出站连接。本地安全模块430访问已知坏动作者(未管理的设备140和/或被管理的服务器130)的列表,并且确定出站连接的目的地设备是否在列表上。如果目的地设备在列表上,则本地安全模块430阻止出站连接以便防止入侵。在另一实施例中,本地安全模块430使用本地跟踪阈值和启发法以在本地应用阻止策略。
回顾全局管理器120的贮存库300包括全局安全数据贮存库335。全局安全数据贮存库335存储安全相关信息(“安全元数据”)。这一信息例如包括反常过程和/或反常动作、操作系统级篡改、日志、检测到的入侵和坏动作者。
回顾全局管理器120的处理服务器310包括全局安全模块390。全局安全模块390从被管理的服务器130接收安全相关信息(“安全元数据”),并且在全局安全数据贮存库335中存储该信息。这一信息例如包括反常过程和/或反常动作、操作系统级篡改、日志、检测到的入侵和坏动作者。
全局安全模块390也在适当时分析在全局安全数据贮存库335中存储的信息并且基于分析的结果来修改管理域状态320和/或管理域范围管理策略330。对在全局安全数据贮存库335中存储的信息的分析检测攻击和/或弱点。全局安全模块390可以检测单个被管理的服务器130上以及作为整体跨管理域150的攻击或者弱点。
对管理域状态320和/或管理策略330的修改执行全局强制实行。回顾管理域状态320包括对被管理的服务器130的描述和(可选的)对未管理的设备140的描述。在一个实施例中,管理域状态320存储关于被管理的服务器130的策略违反的信息。例如,全局安全模块390对于特定被管理的服务器130分析在全局安全数据贮存库335中存储的反常过程/动作信息。全局安全模块390然后将该被管理的服务器的、策略违反特有的配置的特性设置成特定值,比如执行或者尝试的违反数目(1、2、3等)。在另一实施例中,管理域状态320存储关于篡改被管理的服务器130的信息。例如,全局安全模块390对于特定被管理的服务器130分析在全局安全数据贮存库335中存储的操作系统级篡改信息。全局安全模块390然后将该被管理的服务器的、篡改特有的配置的特性设置成特定值,比如指示存在/不存在篡改的布尔值。
在另一实施例中,管理域状态320存储关于一个或者多个未管理的设备组(UDG)的信息。第一UDG的成员是已知攻击者或者坏动作者(例如,引起安全威胁的未管理的设备140)。全局安全模块390通过在适当时添加或者去除攻击者/坏动作者来维护这一坏动作者UDG。例如,全局安全模块390使用在全局安全数据贮存库335中存储的日志信息、检测到的入侵信息和/或坏动作者信息以标识“坏的”未管理的设备140。如果全局安全模块390标识了特定攻击者或者坏动作者,则全局安全模块向坏动作者UDG添加该动作者。在一个实施例中,坏动作者UDG如以下描述的那样用来标识其网络连接(去往或者来自被管理的服务器130)应当被阻止的未管理的设备。在另一实施例中,在管理域范围管理策略330中(例如,在规则的进行提供或者进行使用的部分内)使用坏动作者UDG。
其它UDG的成员已知“有风险”并且具有关联的“风险分数”。例如,第一有风险UDG的成员具有风险分数“1”,第二有风险UDG的成员具有风险分数“2”,等等。全局安全模块390通过在适当时添加或者去除未管理的设备140来维护有风险UDG。例如,全局安全模块390使用在全局安全数据贮存库335中存储的日志信息、检测到的入侵信息和/或坏动作者信息以标识有风险未管理的设备140和该设备的风险分数。如果全局安全模块390标识了特定有风险未管理的设备140,则全局安全模块向适当有风险UDG添加该未管理的设备(基于未管理的设备的风险分数)。在一个实施例中,有风险UDG如以下描述的那样用来调节、调谐、精化或者改进全局安全模块430的操作。在另一实施例中,在管理域范围管理策略330中(例如,在规则的进行提供或者进行使用的部分内)使用有风险UDG。
管理域状态更新模块385如以上说明的那样接收对管理域状态320的改变并且相应地处理改变。这使得对在一个被管理的服务器130上的攻击的检测能够作为动态强制实行策略被分发到其它被管理的服务器,从而使得它们被保护。换而言之,反馈回路存在,其中被管理的服务器130向全局管理器120发送安全相关信息,并且全局管理器120基于安全相关信息来生成管理指令并且向被管理的服务器130发送指令。
特别地,可以向各种被管理的服务器130发送更新的相关动作者集合(例如,与改变的UDG或者改变的被管理的服务器关联的动作者集合)。在一个实施例中,接收更新的相关动作者集合使得那些被管理的服务器重新配置它们的管理模块132。例如,重新配置的管理模块132可以中止允许向和/或从未管理的设备140的通信,这些未管理的设备是第一UDG的成员(由此阻止所有这些通信)。在另一实施例中,接收更新的相关动作者集合使得在那些被管理的服务器中的本地安全模块430不同地操作。例如,本地安全模块430可能修改或者调谐它们的分析,从而使得基于未管理的设备140的风险分数来不同地分析数据。如果特定未管理的设备140的风险分数高,则用于报告关于该设备的安全信息的阈值可能更低。作为另一示例,本地安全模块430可以基于更新的坏动作者UDG来阻止不同出站连接。
注意,攻击可以被分布,从而使得任何一个单个被管理的服务器130可能不知道它在攻击之下。由于被管理的服务器130向全局管理器120发送安全相关信息,所以全局安全模块390可以跨管理域150检测如下攻击模式:在域的任何一个部分中没有单个探测器可以在隔离中看见。在全局安全模块390检测到域范围攻击时,全局安全模块可以遵循与以上描述相同的机制(即,修改管理域状态320)以向其它被管理的服务器130分发动态强制实行策略,从而使得它们被保护。
由于全局安全模块390具有对基于应用的异常和基于网络的异常二者的访问,所以它对在全局安全数据贮存库335中存储的信息的分析更准确。全局安全模块390也可以更快地动作,并且无需在采取强制实行动作(例如,修改管理域状态320)之前等待更长时间段。全局安全模块390也可以标识特定管理域150独有的攻击。该攻击可以仅以该域为目标,并且攻击将在其它因特网规模的安全系统上“在噪声中”。同样,由于被管理的服务器130(具体地为它们的策略实施模块136)在管理域150中的布置,全局安全模块390也能够从内部者或者备选地从僵尸网络捕获来自域内的内部威胁,这些僵尸网络已经通过了域的周界防御并且现在试图在域内横向移动。
在一个实施例中,全局安全模块390也执行以下功能中的一个或者多个功能:
a)对在全局安全数据贮存库335中存储的信息的统计分析——全局安全模块390分析在全局安全数据贮存库335中存储的信息以确定不同类别中的前“N”个项目。类别可以例如是正在通信的最高个别节点、正在通信的最高多对节点、由被管理的服务器130阻止的最高IP地址和由具有高风险分数的被管理的服务器允许的最高IP地址。可以在多个级别(比如每个被管理的服务器、每个数据中心、每个业务单位和每个管理域150)上计算统计。
b)“坏动作者”的标识——全局安全模块390使用配置的活动阈值来标识坏动作者。
在一个实施例中,全局安全模块390可扩展和/或可以实施安全分析功能以基于不同威胁和攻击类型来提供全局报警和动态强制实行。
现在已经描述了全局安全模块390,完成一个示例是有帮助的。环境100(尤其是全局管理器120和被管理的服务器130)使被管理的服务器能够被置于“隔绝模式”中。隔绝模式将特定被管理的服务器130与其它被管理的服务器隔离。例如,从其余“健康的”被管理的服务器隔绝被感染或者表现坏的被管理的服务器130。
在被管理的服务器130在隔绝中时,其它被管理的服务器(具体地为它们的管理模块132)阻止从隔绝的服务器始发的入站网络流量。此外,在隔绝的服务器上安装的管理模块132将自己置于可配置自隔绝模式中,其中(默认)阻止出站网络流量并且仅允许管理性入站网络流量。如果已经搜寻(root)了隔绝的服务器并且攻击者足够聪明,则自隔绝模式可以被绕过。然而,在更少复杂的病毒的大量情况下(并且在被感染的系统还没有恶意净荷而只是执行侦察的情况下),自隔绝模式帮助提供附加保护层。即使在很高级的威胁的情况下,其它被管理的服务器130仍然提供从隔绝的服务器隔离。
在一个实施例中,如下实施隔绝模式:首先,全局安全模块390确定隔绝特定被管理的服务器130。例如,全局安全模块390确定网络攻击从特定被管理的服务器130始发或者特定被管理的服务器130具有弱点。这一确定可以例如基于由全局管理器120执行的动作(例如,对在全局安全数据贮存库335中存储的信息的分析)和/或由全局管理器从外部来源(例如,被管理的服务器130、第三方弱点扫描器或者用户命令)接收的通知。从被管理的服务器130接收的通知可以例如涉及反常过程/动作或者操作系统级篡改。从弱点扫描器接收的通知可以例如涉及具有弱点的设备。从用户命令接收的通知可以例如涉及由个人使用任何可能手段来标识的坏动作者。
然后,全局安全模块390修改管理域状态320以指示特定被管理的服务器130被隔绝。例如,全局安全模块390向特殊隔绝动作者集合(这里被称为动作者集合Q或者“ASQ”)添加特定被管理的服务器130。管理域状态320存储关于其成员被隔绝的动作者集合Q的信息。全局安全模块390通过在适当时添加或者去除被管理的服务器130来维护动作者集合Q。
在另一示例中,全局安全模块390将隔绝特有的配置的特性(这里被称为“CCQ”)设置成特定值,比如威胁级别(1、2、3等)。CCQ可以用来有条件地定义动作者集合Q,其中动作者集合Q的每个成员具有大于零的CCQ值(“CCQ>0”)。CCQ也可以用来有条件地定义多个隔绝动作者集合(例如,每个隔绝动作者集合用于一个威胁级别,其中该动作者集合的每个成员具有相同CCQ值)。CCQ也可以与规则的条件部分(布尔表达式)结合用来指定规则是否适用于特定被管理的服务器130。例如,“CCQ=0”的条件部分排除所有隔绝的服务器而无论它们的威胁级别如何。这一条件部分可以与白名单模型规则一起用来防止隔绝的服务器充当提供者或者消费者。
无论有条件地或者由显式地指派的成员限定的隔绝动作者集合都可以在管理域范围管理策略330中被使用在规则的进行使用(UB)部分或者进行提供(PB)部分内。具体而言,隔绝动作者集合可以用作集合差值计算(例如,公共集合成员的减法)的部分。例如,UB部分“*-<隔绝动作者集合>”指定除了隔绝动作者集合的成员之外的任何人可以使用服务,其中通配符字符“*”表示任何人,减法字符“-”表示“除了……之外”,并且“<隔绝动作者集合>”表示任何类型的隔绝动作者集合(其成员可以例如是所有隔绝的被管理的服务器或者仅仅是具有特定CCQ值的被管理的服务器(例如,CCQ>2或者CCQ<5))。隔绝动作者集合也可以用来肯定地指示提供者或者消费者。例如,PB部分“<隔绝动作者集合>”指定隔绝动作者集合的成员提供服务,比如允许从如下设备的连接,这些设备是管理性安全响应团队的部分。
注意,在规则的条件部分中使用CCQ可以在逻辑上等效于在规则的UB部分或者PB部分中在集合差值计算中使用隔绝动作者。例如,具有<UB=Web,PB=数据库,条件=“CCQ=0”>的第一规则在逻辑上等效于具有<UB=Web-ASQ,PB=数据库-ASQ>的第二规则,其中CCQ有条件地限定ASQ(CCQ>0)。
管理域状态更新模块385如以上说明的那样接收对管理域状态320的这一改变,并且相应地处理改变。特别地,向被管理的服务器130发送更新的管理指令(例如,相关动作者集合和/或函数级指令)。接收更新的管理指令使得那些被管理的服务器(具体地为它们的策略编译模块410)生成新管理模块配置134并且相应地重新配置它们的管理模块132。基于更新的管理指令生成新管理模块配置134。
对于隔绝的被管理的服务器130,接收的更新的管理指令使得该服务器进入自隔绝模式。例如,如果函数级指令追寻白名单型模型(例如,提供服务器可以做什么的穷举列表),则更新的函数级指令可能是先前接收的函数级指令的子集。作为结果,将不允许隔绝的被管理的服务器执行与它在它未被隔绝时执行的任务一样多的任务。
对于非隔绝的被管理的服务器130,接收的更新的管理指令(具体地为任何隔绝动作者集合和/或隔绝函数级指令)使得该服务器隔离所隔绝的服务器。(注意,隔绝函数级指令如果那些指令先前被发送并且尚未改变则无需从全局管理器120再次被发送到被管理的服务器130。)特别地,策略编译模块410将隔绝函数级指令应用于隔绝动作者集合的成员并且未将标准函数级指令应用于那些成员。对管理模块132的重新配置使得管理模块阻止来自隔绝动作者集合的成员(即,隔绝的被管理的服务器130)的入站流量。
这时,将所隔绝的被管理的服务器130“取消隔绝”(即,从隔绝模式释放服务器)可能是适当的。例如,如果已经使隔绝的被管理的服务器130安全(例如,通过去除恶意软件或者弱点),则将该服务器取消隔绝可能是适当的。一旦被管理的服务器130被取消隔绝,它将不再从其它被管理的服务器被隔离并且将从自隔绝模式被释放。
在一个实施例中,如下实施从隔绝模式释放隔绝的被管理的服务器130:首先,全局安全模块390确定从隔绝中释放特定被管理的服务器130。例如,全局安全模块390确定被管理的服务器130不再引起完全威胁。这一确定可以例如基于由全局管理器120执行的动作(例如,对在全局安全数据贮存库335中存储的信息的分析)和/或由全局管理器从外部来源(例如,第三方弱点扫描器或者用户命令)接收的通知。
从弱点扫描器接收的通知可以例如涉及具有弱点的设备。在一个实施例中,弱点通知列举先前具有弱点、但是不再具有弱点的设备。在另一实施例中,弱点通知列举当前具有弱点的设备。在该实施例中,全局安全模块390可以比较新近弱点通知与旧弱点通知以确定哪些设备先前具有弱点、但是不再具有弱点。从用户命令接收的通知可以例如涉及被个人标识为不再引起安全威胁的被管理的服务器130。
然后,全局管理模块390修改管理域状态320以指示特定被管理的服务器130从隔绝中被释放。例如,全局安全模块390从特殊隔绝动作者集合去除特定被管理的服务器130。在另一示例中,全局安全模块390将隔绝特有的配置的特性设置成特定值,比如威胁级别(例如,对于无威胁为0)。
管理域状态更新模块385如上面说明的那样接收对管理域状态320的这一改变并且相应地处理改变。特别地,向被管理的服务器130发送更新的管理指令(例如,相关动作者集合和/或函数级指令)。接收更新的管理指令使得那些被管理的服务器(具体地为它们的策略编译模块410)生成新管理模块配置134并且相应地重新配置它们的管理模块132。基于更新的管理指令老生成新管理模块配置134。
对于从隔绝中释放的被管理的服务器130,接收的更新的管理指令使得该服务器退出自隔绝模式。例如,如果函数级指令遵循白名单型模型(例如,提供服务器可以做什么的穷举列表),则更新的函数级指令可以是先前接收的函数级指令的超集。作为结果,将允许未隔绝的被管理的服务器130执行比它在它被隔绝时执行的任务更多的任务。
对于不同的被管理的服务器130,接收的更新的管理指令(具体地为任何隔绝动作者集合和/或隔绝函数级指令)使得该服务器停止隔离新取消隔绝的服务器。特别地,策略编译模块410将隔绝函数级指令应用于隔绝动作者集合(不再包括新取消隔绝的服务器)的成员,并且未将标准函数级指令应用于那些成员。对管理模块132的重新配置使得管理模块阻止来自隔绝动作者集合的成员的入站流量。
图10是图示了根据一个实施例的隔绝在管理域150内的被管理的服务器130的方法1000的流程图。管理域150包括多个被管理的服务器130,这些被管理的服务器130使用管理指令以配置管理模块132,从而使得被配置的管理模块实施包括一个或者多个规则的集合的管理域范围管理策略,从而使得隔绝的被管理的服务器从多个被管理的服务器中的其它被管理的服务器隔离。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在方法1000开始时,对被管理的服务器130(将被隔绝的被管理的服务器)的描述已经被存储在全局管理器120的管理域状态320中。用于管理域的动作者集合也已经被高速缓存在全局管理器120中。最后,管理策略透视和相关动作者集合已经与另一被管理的服务器130(与隔绝的被管理的服务器不同)关联地被高速缓存。这时,方法1000开始。
在步骤1010中,修改对被管理的服务器130的描述以指示被管理的服务器被隔绝。例如,全局安全模块390通过将被管理的服务器130的、隔绝特有的配置的特性设置成特定值来修改管理域状态320,由此指定对隔绝的被管理的服务器的描述。
在步骤1020中,更新高速缓存的动作者集合以指示隔绝的被管理的服务器的改变的状态。例如,全局安全模块390使用动作者枚举模块370以更新用于管理域的高速缓存的动作者集合,由此指定更新的动作者集合。
在步骤1030中,关于哪些更新的动作者集合与其它被管理的服务器130相关做出确定。例如,全局安全模块390使用相关动作者模块380以确定哪些更新的动作者集合与其它被管理的服务器130相关,由此指定当前相关的更新的动作者集合。
在步骤1040中,关于当前相关的更新的动作者集合是否与向其它被管理的服务器130先前发送的动作者集合不同做出确定。例如,全局安全模块390比较当前相关的更新的动作者集合与向其它被管理的服务器130先前发送的动作者集合(与其它被管理的服务器关联地被高速缓存为“相关动作者集合”)。响应于确定当前相关的更新的动作者集合与先前发送的动作者集合并未不同(例如,相同),方法1000前进到步骤1050。响应于确定当前相关的更新的动作者集合与先前发送的动作者集合不同,方法100前进到步骤1060。
在步骤1050中,不采取进一步动作。例如,全局安全模块390不采取进一步动作。
在步骤1060中,确定相对于先前发送的动作者集合应当添加、去除或者修改的更新的动作者集合。例如,全局安全模块390比较当前相关的更新的动作者集合与向其它被管理的服务器130先前发送的动作者集合。
在步骤1070中,向其它被管理的服务器发送更新的动作者集合和用于添加、去除或者修改更新的动作者集合的指令。例如,全局安全模块390向其它被管理的服务器发送更新的动作者集合和指令。
图11是图示了根据一个实施例的处理对在管理域150内的一组未管理的设备140的状态的改变的方法1100的流程图。管理域150包括多个被管理的服务器130,这些被管理的服务器130使用管理指令以配置管理模块132,从而使得配置的管理模块实施包括一个或者多个规则的集合的管理域范围管理策略。其它实施例可以按照不同顺序执行步骤并且可以包括不同和/或附加步骤。此外,步骤中的一些或者所有步骤可以由除了图1中所示实体之外的实体执行。
在方法1100开始时,对未管理的设备组(其状态改变的未管理的设备组)的描述已经被存储在全局管理器120的管理域状态320中。用于管理域的动作者集合也已经被高速缓存在全局管理器120中。最后,已经与被管理的服务器130关联地高速缓存了管理策略透视和相关动作者集合。这时,方法1100开始。
在步骤1110中,修改对未管理的设备组的描述以向未管理的设备组添加未管理的设备。例如,全局安全模块390通过向未管理的设备组添加未管理的设备来修改管理域状态320。
在步骤1120中,更新高速缓存的动作者集合以指示未管理的设备组的改变的状态。例如,全局安全模块390使用动作者枚举模块370以更新用于管理域的高速缓存的动作者集合,由此指定更新的动作者集合。
在步骤1130中,关于哪些更新的动作者集合与被管理的服务器130相关做出确定。例如,全局安全模块390使用相关动作者模块380以确定哪些更新的动作者集合与被管理的服务器130相关,由此指定当前相关的更新的动作者集合。
在步骤1140中,关于当前相关的更新的动作者集合是否与向被管理的服务器130先前发送的动作者集合不同做出确定。例如,全局安全模块390比较当前相关的更新的动作者集合与向被管理的服务器130先前发送的动作者集合(与被管理的服务器关联地被高速缓存为“相关动作者集合”)。响应于确定当前相关的更新的动作者集合与先前发送的动作者集合并无不同(例如,相同),方法1100前进到步骤1150。响应于确定当前相关的更新的动作者集合确实与先前发送的动作者集合不同,方法1100前进到步骤1160。
在步骤1150中,不采取进一步动作。例如,全局安全模块390不采取进一步动作。
在步骤1160中,确定相对于先前发送的动作者集合应当添加、去除或者修改的更新的动作者集合。例如,全局安全模块390比较当前相关的更新的动作者集合与向被管理的服务器130先前发送的动作者集合。
在步骤1170中,向被管理的服务器发送更新的动作者集合和用于添加、去除或者修改更新的动作者集合的指令。例如,全局安全模块390向被管理的服务器发送更新的动作者集合和指令。
包括以上描述以举例说明某些实施例的操作而不是为了限制本发明的范围。本发明的范围将仅受所附权利要求限制。从以上讨论中,仍然被本发明的精神实质和范围涵盖的许多变化将为相关领域技术人员所清楚。
Claims (11)
1.一种在管理域内隔绝被管理的服务器的方法,其中所述管理域包括多个被管理的服务器,所述多个被管理的服务器使用管理指令以配置管理模块,从而使得配置的所述管理模块实施包括一个或者多个规则的集合的管理域范围管理策略,从而使得所述多个被管理的服务器中的其它被管理的服务器阻止从隔绝的所述被管理的服务器始发的入站网络流量,所述方法包括:
响应于确定网络攻击从所述被管理的服务器始发或者确定所述被管理的服务器具有弱点,确定隔绝所述被管理的服务器;
修改对所述被管理的服务器的描述以指示所述被管理的服务器被隔绝,由此指定对隔绝的所述被管理的服务器的描述;
更新高速缓存的动作者集合以指示隔绝的所述被管理的服务器的改变的状态,由此指定更新的动作者集合;
确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合;
确定所述当前相关的更新的动作者集合是否与向所述其它被管理的服务器先前发送的动作者集合不同;以及
响应于确定所述当前相关的更新的动作者集合与先前发送的所述动作者集合不同:
确定相对于先前发送的所述动作者集合应当添加、去除或者修改的更新的动作者集合;以及
向所述其它被管理的服务器发送所述更新的动作者集合和用于添加、去除或者修改所述更新的动作者集合的指令。
2.根据权利要求1所述的方法,其中修改隔绝的所述被管理的服务器的所述描述以指示隔绝的所述被管理的服务器被隔绝包括设置用于隔绝的所述被管理的服务器的、隔绝特有的配置的特性的值。
3.根据权利要求1所述的方法,其中发送所述更新的动作者集合和所述指令使得所述其它被管理的服务器阻止从隔绝的所述被管理的服务器始发的入站网络流量。
4.根据权利要求1所述的方法,还包括在更新高速缓存的所述动作者集合之前:
基于对于隔绝的所述被管理的服务器的所述描述来确定关于隔绝的所述被管理的服务器的附加信息;以及
修改对隔绝的所述被管理的服务器的所述描述以指示所述附加信息。
5.根据权利要求1所述的方法,还包括:
基于对隔绝的所述被管理的服务器的所述描述来确定在所述规则集合内的哪些规则当前与隔绝的所述被管理的服务器相关,由此指定当前相关规则;
确定所述当前相关规则与先前相关规则是否不同,其中所述先前相关规则基于对所述被管理的服务器的未修改的所述描述被确定;以及
响应于确定所述当前相关规则与所述先前相关规则相同,不采取进一步动作。
6.根据权利要求5所述的方法,还包括响应于确定所述当前相关规则与所述先前相关规则不同:
确定相对于所述先前相关规则应当添加、去除或者修改规则;
基于确定的所述规则来生成函数级指令;以及
向隔绝的所述被管理的服务器发送所述函数级指令和用于添加、去除或者修改所述函数级指令的指令。
7.根据权利要求6所述的方法,其中发送所述函数级指令和用于添加、去除或者修改的所述指令使得隔绝的所述被管理的服务器阻止出站网络流量。
8.根据权利要求6所述的方法,其中发送所述函数级指令和用于添加、去除或者修改的所述指令使得隔绝的所述被管理的服务器仅允许管理入站网络流量。
9.根据权利要求1所述的方法,还包括:
确定哪些更新的动作者集合与隔绝的所述被管理的服务器相关,由此指定第二当前相关的更新的动作者集合;
确定所述第二当前相关的更新的动作者集合是否与向隔绝的所述被管理的服务器先前发送的第二动作者集合不同;以及
响应于确定所述第二当前相关的更新的动作者集合与先前发送的所述第二动作者集合相同,不采取进一步动作。
10.一种存储用于在管理域内隔绝被管理的服务器的计算机程序模块的非瞬态计算机可读存储介质,其中所述管理域包括多个被管理的服务器,所述多个被管理的服务器使用管理指令以配置管理模块,从而使得配置的所述管理模块实施包括一个或者多个规则的集合的管理域范围管理策略,从而使得所述多个被管理的服务器中的其它被管理的服务器阻止从隔绝的所述被管理的服务器始发的入站网络流量,所述计算机程序模块可执行以下步骤:
响应于确定网络攻击从所述被管理的服务器始发或者确定所述被管理的服务器具有弱点,确定隔绝所述被管理的服务器;
修改对所述被管理的服务器的描述以指示所述被管理的服务器被隔绝,由此指定对隔绝的所述被管理的服务器的描述;
更新高速缓存的动作者集合以指示隔绝的所述被管理的服务器的改变的状态,由此指定更新的动作者集合;
确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合;
确定所述当前相关的更新的动作者集合是否与向所述其它被管理的服务器先前发送的动作者集合不同;以及
响应于确定所述当前相关的更新的动作者集合与先前发送的所述动作者集合不同:
确定相对于先前发送的所述动作者集合应当添加、去除或者修改的更新的动作者集合;以及
向所述其它被管理的服务器发送所述更新的动作者集合和用于添加、去除或者修改所述更新的动作者集合的指令。
11.一种用于在管理域内隔绝被管理的服务器的系统,其中所述管理域包括多个被管理的服务器,所述多个被管理的服务器使用管理指令以配置管理模块,从而使得配置的所述管理模块实施包括一个或者多个规则的集合的管理域范围管理策略,从而使得所述多个被管理的服务器中的其它被管理的服务器阻止从隔绝的所述被管理的服务器始发的入站网络流量,所述系统包括:
非瞬态计算机可读存储介质,所述非瞬态计算机可读存储介质存储可执行以下步骤的计算机程序模块:
响应于确定网络攻击从所述被管理的服务器始发或者确定所述被管理的服务器具有弱点,确定隔绝所述被管理的服务器;
修改对所述被管理的服务器的描述以指示所述被管理的服务器被隔绝,由此指定对隔绝的所述被管理的服务器的描述;
更新高速缓存的动作者集合以指示隔绝的所述被管理的服务器的改变的状态,由此指定更新的动作者集合;
确定哪些更新的动作者集合与其它被管理的服务器相关,由此指定当前相关的更新的动作者集合;
确定所述当前相关的更新的动作者集合是否与向所述其它被管理的服务器先前发送的动作者集合不同;以及
响应于确定所述当前相关的更新的动作者集合与先前发送的所述动作者集合不同:
确定相对于先前发送的所述动作者集合应当添加、去除或者修改的更新的动作者集合;以及
向所述其它被管理的服务器发送所述更新的动作者集合和用于添加、去除或者修改所述更新的动作者集合的指令;以及
计算机处理器,所述计算机处理器用于执行所述计算机程序模块。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361899468P | 2013-11-04 | 2013-11-04 | |
US61/899,468 | 2013-11-04 | ||
US14/474,916 | 2014-09-02 | ||
US14/474,916 US9882919B2 (en) | 2013-04-10 | 2014-09-02 | Distributed network security using a logical multi-dimensional label-based policy model |
PCT/US2014/054505 WO2015076904A2 (en) | 2013-11-04 | 2014-09-08 | Distributed network security using a logical multi-dimensional label-based policy model |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105683943A CN105683943A (zh) | 2016-06-15 |
CN105683943B true CN105683943B (zh) | 2019-08-23 |
Family
ID=53180366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480060318.7A Active CN105683943B (zh) | 2013-11-04 | 2014-09-08 | 使用基于逻辑多维标签的策略模型的分布式网络安全 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3066581B1 (zh) |
JP (1) | JP6491221B2 (zh) |
CN (1) | CN105683943B (zh) |
TW (1) | TWI526872B (zh) |
WO (1) | WO2015076904A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017147562A1 (en) * | 2016-02-27 | 2017-08-31 | Illumio, Inc. | Creating rules for labeled servers in a distributed network management system |
TWI630488B (zh) * | 2017-08-04 | 2018-07-21 | 中華電信股份有限公司 | 支援多樣性端對端網路隔離的虛擬私人網路服務供裝系統 |
US20210021471A1 (en) * | 2019-07-15 | 2021-01-21 | Microsoft Technology Licensing, Llc | Techniques for managing virtual networks |
US20230289435A1 (en) | 2022-03-10 | 2023-09-14 | Denso Corporation | Incident response according to risk score |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998054644A1 (en) * | 1997-05-29 | 1998-12-03 | 3Com Corporation | Multilayer firewall system |
CN101411156A (zh) * | 2004-05-12 | 2009-04-15 | 阿尔卡特朗讯 | 对网络入侵者的自动阻止 |
CN101595465A (zh) * | 2007-01-26 | 2009-12-02 | 微软公司 | 系统管理策略的确认、发布和实施 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7673323B1 (en) * | 1998-10-28 | 2010-03-02 | Bea Systems, Inc. | System and method for maintaining security in a distributed computer network |
US6321338B1 (en) * | 1998-11-09 | 2001-11-20 | Sri International | Network surveillance |
AU3390500A (en) * | 1999-03-03 | 2000-09-21 | Ultradns, Inc. | Scalable and efficient domain name resolution |
US7844696B2 (en) * | 2001-06-27 | 2010-11-30 | Arbor Networks, Inc. | Method and system for monitoring control signal traffic over a computer network |
US7849502B1 (en) * | 2006-04-29 | 2010-12-07 | Ironport Systems, Inc. | Apparatus for monitoring network traffic |
US8925101B2 (en) * | 2010-07-28 | 2014-12-30 | Mcafee, Inc. | System and method for local protection against malicious software |
US8813227B2 (en) * | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
EP2715991A4 (en) * | 2011-05-23 | 2014-11-26 | Nec Corp | COMMUNICATION SYSTEM, CONTROL DEVICE, COMMUNICATION PROCESS AND PROGRAM |
-
2014
- 2014-09-08 EP EP14863433.0A patent/EP3066581B1/en active Active
- 2014-09-08 WO PCT/US2014/054505 patent/WO2015076904A2/en active Application Filing
- 2014-09-08 CN CN201480060318.7A patent/CN105683943B/zh active Active
- 2014-09-08 JP JP2016552416A patent/JP6491221B2/ja active Active
- 2014-09-19 TW TW103132517A patent/TWI526872B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998054644A1 (en) * | 1997-05-29 | 1998-12-03 | 3Com Corporation | Multilayer firewall system |
CN101411156A (zh) * | 2004-05-12 | 2009-04-15 | 阿尔卡特朗讯 | 对网络入侵者的自动阻止 |
CN101595465A (zh) * | 2007-01-26 | 2009-12-02 | 微软公司 | 系统管理策略的确认、发布和实施 |
Also Published As
Publication number | Publication date |
---|---|
WO2015076904A3 (en) | 2015-08-20 |
TW201531880A (zh) | 2015-08-16 |
CN105683943A (zh) | 2016-06-15 |
WO2015076904A2 (en) | 2015-05-28 |
JP6491221B2 (ja) | 2019-03-27 |
EP3066581B1 (en) | 2019-06-26 |
EP3066581A2 (en) | 2016-09-14 |
EP3066581A4 (en) | 2017-08-23 |
TWI526872B (zh) | 2016-03-21 |
JP2017502620A (ja) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105684391B (zh) | 基于标签的访问控制规则的自动生成 | |
US11503042B2 (en) | Distributed network security using a logical multi-dimensional label-based policy model | |
US10819590B2 (en) | End-to-end policy enforcement in the presence of a traffic midpoint device | |
US11546360B2 (en) | Cyber security appliance for a cloud infrastructure | |
CN105247508B (zh) | 使用基于逻辑多维度标签的策略模型的分布式网络管理 | |
US11245716B2 (en) | Composing and applying security monitoring rules to a target environment | |
US10277460B2 (en) | Updating management instructions for bound services in a distributed network management system | |
CN105683943B (zh) | 使用基于逻辑多维标签的策略模型的分布式网络安全 | |
WO2021236661A1 (en) | Endpoint client sensors for extending network visibility | |
Zhan et al. | CIADL: cloud insider attack detector and locator on multi-tenant network isolation: an OpenStack case study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |