首页> 中国专利> 用于合并安全策略的方法和系统

用于合并安全策略的方法和系统

摘要

提供了一种用于组合和实施安全策略的方法和系统。向该安全系统提供具有进程集准则和相关联规则的安全策略。该安全系统通过生成安全策略的规则列表和相关联的进程集准则来组合安全策略。规则列表的规则基于规则类型和规则的动作来排序。当启动新进程来执行应用程序时,该安全系统确定该应用程序所满足的进程集准则。该安全系统然后标识规则列表中与所满足的进程集准则相关联的规则。当发生与进程相关联的安全实施事件时,该安全系统以由规则列表执行的顺序将与该进程相关联的每一规则应用于该安全实施事件。

著录项

  • 公开/公告号CN1760791A

    专利类型发明专利

  • 公开/公告日2006-04-19

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200510109906.8

  • 发明设计人 A·萨缪尔森;M·A·艾丹诺夫;

    申请日2005-09-14

  • 分类号G06F1/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人张政权

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 17:12:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F1/00 变更前: 变更后: 登记生效日:20150430 申请日:20050914

    专利申请权、专利权的转移

  • 2010-05-26

    授权

    授权

  • 2007-12-05

    实质审查的生效

    实质审查的生效

  • 2006-04-19

    公开

    公开

说明书

技术领域

所描述的技术一般涉及防止软件系统的易受攻击性的恶意利用的安全系统。

背景技术

尽管因特网在方便计算机系统之间的通信和允许电子商务方面取得了巨大的成功,然而连接到因特网的计算机系统几乎始终受到试图破坏其操作的黑客的攻击。许多攻击试图恶意利用软件系统,包括在那些计算机系统上执行的应用程序或其它计算机程序的易受攻击性。软件系统的开发者以及企业的计算机系统的管理员花了很大的努力和费用来识别和移除易受攻击性。然而,由于软件系统的复杂性,实际上不可能在发行软件系统之前识别和移除所有的易受攻击性。在发行软件系统之后,开发者可能以各种方式知道易受攻击性。没有恶意意图的一方可识别易受攻击性,并可秘密地通知开发者,因此该易受攻击性可在黑客识别且恶意利用它之前被移除。如果黑客首先识别了易受攻击性,则开发者在该易受攻击性被恶意利用之前可能无法获知它-这有时候会有灾难性的后果。

无论开发者如何找出易受攻击性,开发者通常开发移除易受攻击性的软件系统“补丁”或更新并将它们分发到系统管理员。如果易受攻击性尚未被恶意利用(例如,尚未被黑客所知),则开发者可以用要求的方式设计、实现、测试和分发补丁。如果该易受攻击性已被广泛地暴露,则开发者可能匆匆分发补丁,而不关心它是否在正常的环境下使用。当补丁被分发到计算机系统的管理员时,他们负责调度和安装补丁以移除易受攻击性。

不幸的是,管理员通常为各种理由而延迟用于移除易受攻击性的补丁的安装。当安装补丁时,软件系统和它所执行的可能的计算机系统可能需要被关机或重启。如果易受攻击性是在对组织的成功关键的软件系统内,则管理员需要分析保持软件系统运行、用被攻击的相关联风险运行、以及关闭企业的关键资源来安装补丁之间的权衡。某些管理员可能延迟补丁的安装,因为他们害怕由于匆忙的分发,该补丁可能未被正确地测试且具有非预期的副作用。如果补丁具有非预期的副作用,则由该补丁影响的软件系统、计算机系统或某一其它软件组件可能被补丁本身关闭。管理员在决定是否安装补丁时需要将非预期的副作用的可能性计算在内。这些管理员可能延迟安装补丁,直到其他人的经验指出没有严重的非预期副作用。

开发了可用于识别是否正做出恶意利用尚未打补丁的已知易受攻击性的入侵检测系统。这些入侵检测系统可用于防止尚未对其开发或安装补丁的新发现的易受攻击性的恶意利用。这些入侵检测系统可为可恶意利用易受攻击性的每一方法定义一“签名”。例如,如果易受攻击性可通过发送具有某一属性的某一类型的消息来恶意利用,则该恶意利用的签名可指定该类型和属性。当发生安全实施事件,诸如消息的接收,则该入侵检测系统核查其签名,以确定是否有任一个与安全实施事件相匹配。如果是,则入侵检测系统可采取诸如丢弃该消息等行动来防止恶意利用。

新发现的易受攻击性的恶意利用的签名可以用不同的方式来创建。入侵检测系统的开发者可在他们知道新恶意利用时创建和分发新签名。管理员然后可安装该新签名来防止恶意利用。然而,开发者可能不提供所有已知恶意利用的新签名。例如,易受攻击性可以在开发者不支持的专用应用程序内。为防止这一易受攻击性的恶意利用,入侵检测系统可允许管理员创建其自己的签名。

一个或多个签名的集合可被认为是安全策略。入侵检测系统的开发者可提供各种安全策略。例如,开发者可提供定义操作系统上的易受攻击性的签名的一个安全策略,以及对应用程序或一类应用程序专用的许多其它安全策略。类似地,管理员可定义对由企业使用的自定义应用程序专用的安全策略。

入侵检测系统通常只能实施一种安全策略。在这一情况下,需要将多个安全策略组合或合并成提供给入侵检测系统的单个安全策略。为组合安全策略,入侵检测系统的开发者或管理员通常可审阅各种安全策略,并试图合并签名的逻辑,使得可以实现每一安全策略的净效果。然而,由于签名可能非常复杂,且不同的安全策略之间的交互效果也可能是复杂且微妙的,因此安全策略的组合可以是耗时且易于出错的。

期望具有一种可将安全策略的效果自动组合成可被有效地实施的组合安全策略的机制。

发明内容

提供了一种用于组合和实施安全策略的方法和系统。向安全系统提供具有进程集准则和相关联的规则的安全策略。进程集准则定义了向其应用相关联的规则的进程或应用程序的属性。规则提供了条件以及当满足条件时要执行的动作。安全系统在用户模式中组合安全策略,并在内核模式中实施组合的安全策略。该安全系统通过生成一规则列表来组合安全策略,该规则列表是安全策略的规则的列表。规则列表的每一规则具有从该安全策略导出的相关联进程集准则。规则列表的规则是基于规则类型(例如,全局规则)和规则的动作来排序的。该安全系统在内核模式中使用规则列表来实施安全策略。当启动新进程来执行应用程序时,该安全系统确定应用程序是否满足进程集准则。该安全系统然后标识规则列表中与满足的进程集准则相关联的规则。该安全系统将这些所标识的规则与进程相关联。当发生与进程相关联的安全实施事件时,该安全系统以规则列表中指定的顺序将与该进程相关联的每一规则应用于该安全实施事件。

附图说明

图1上示出一个实施例中安全系统的组件的框图。

图2是示出一个实施例中安全系统的数据结构的框图。

图3是示出一个实施例中规则生成器的准备规则组件的处理的流程图。

图4是示出一个实施例中规则生成器的合并组件的处理的流程图。

图5是示出一个实施例中初始化规则矢量组件的处理的流程图。

图6是示出一个实施例中检索规则矢量组件的处理的流程图。

图7是示出一个实施例中更新进程集准则组件的处理的流程图。

图8是一个实施例中安全引擎组件的实施规则子组件的处理的流程图。

具体实施方式

提供了一种用于组合和实施安全策略的方法和系统。要实施的安全策略的集合表示组织的总体安全策略。在一个实施例中,向安全系统提供具有进程集准则和相关联的规则的安全策略。进程集准则定义了要向其应用相关联的规则的进程或应用程序的属性。例如,进程集准则可以是应用程序名称的列表,或定义匹配的应用程序名称的正则表达式。可用于进程集准则的应用程序的其它属性包括包含可执行文件的目录的名称、应用程序的开发者(例如,微软)、与应用程序相关联的注册表条目等等。如果进程正在执行与进程集准则相匹配的应用程序,则相关联的规则应用于该进程。每一规则可具有规则类型、条件和动作。例如,规则类型可指定规则是全局的、应用程序专用的还是默认的。全局规则应用于满足与该规则相关联的进程集准则的所有进程。应用程序专用规则仅应用于满足与该规则相关联的进程集准则且由该规则进一步具体标识的那些进程。默认规则在没有全局规则或应用程序专用规则适用时应用。在一个实施例中,规则类型指以下详细描述的“执行范围”。

安全系统在用户模式中组合安全策略,并在内核模式中实施组合的安全策略。安全系统通过生成规则列表来组合安全策略,该规则列表是包括安全策略的规则的列表。规则列表的每一规则具有从该安全策略导出的相关联的进程集准则。此外,规则列表的规则是基于规则类型和规则的动作来排序的。例如,全局规则可被排序在应用程序专用规则之前,而应用程序专用规则可被排序在默认规则之前。具有相同规则类型的每一组规则被称为“规则集”。在每一规则集内,规则可基于其动作来排序。例如,具有“拒绝”动作的规则可被排序在具有“允许”动作的规则之前。

安全系统在内核模式中适用规则列表来实施安全策略。当启动新进程来执行应用程序时,安全系统确定该应用程序满足进程集准则。安全系统然后标识规则列表中与所满足的进程集准则相关联的规则。安全系统将所标识的规则与进程相关联。当发生与该进程相关联的安全实施事件时,安全系统以由规则列表指定的顺序将与该进程相关联的每一规则应用于安全实施事件。如果满足适用规则的条件,且相关联的动作是拒绝,则安全系统拒绝与该安全实施事件相关联的活动,并停止应用这些规则。

该安全系统支持安全策略的动态更新和实施。总体安全策略可通过添加新安全策略或更新现有的安全策略来更新。安全策略可以通过改变进程集准则或规则来更新。当总体安全策略被更新时,该安全系统重新生成规则列表,并提供改变的指示。内核模式中的安全系统识别改变,并动态地更新与执行进程相关联的规则。

通过基于规则类型选择性地排序规则并通过将进程集准则映射到相关联的规则,安全系统可自动组合和有效地实施安全策略。

在一个实施例中,安全策略包括指定条件、动作和可任选例外的规则。例如,规则可指示应用程序不能在除端口80以外的任何网络端口上接收消息。该规则的条件可检测消息在除端口80以外的网络端口上接收,且拒绝动作可导致消息被丢弃。作为另一实例,规则可指示当应用程序试图在网络端口80上发送消息时,将从在其上实施该规则的计算系统的用户请求授权。规则可基于其行为被归类成安全类型。例如,具有网络安全类型的规则可被定向到网络话务的安全实施。每一安全类型可具有其自己的安全引擎,用于实施该安全类型的规则。

规则的条件、动作和例外可被指定为表达式。规则可在语义上被表达为“IF条件THEN动作EXCEPT例外”。规则的条件是要在其下执行规则的安全实施动作的情况的表达式。动作是当满足条件时要执行的活动的表达式。规则可以具有多个动作。例外是即使满足了条件也不会被执行的动作的表达式。条件可以是静态或动态的。静态条件是例如被称为硬编码文件列表的条件。动态条件是例如执行查询来确定与提供的准则相匹配的文件列表的条件。安全实施动作可包括允许引起安全实施事件的请求、拒绝请求、向用户请求输入、通知用户等等。其它规则构造也是可能的。作为一个示例,可添加“else”结构以当条件为假时执行备选的动作。

在一个实施例中,安全策略可指定默认规则和动作。当安全实施事件不满足安全政策的规则的任何条件时,可执行默认动作。例如,一个安全政策的默认动作可以是允许生成安全实施事件的活动,而另一安全政策的默认动作可以是拒绝该活动。

安全政策可组合成多个规则范围。范围可以在各种级别上定义,并且这些级别可具有分层关系。例如,范围可在应用程序级别、执行级别和保护级别定义。每一应用程序级别可具有执行级别,而每一执行级别可具有保护级别。应用程序级别范围可标识与软件资源相关联的所有规则。在一个实施例中,应用程序级别范围定义了一组规则的进程集准则,而执行级别和保护级别范围可以是规则条件的一部分。例如,应用程序级别范围可以对网络保护栈、web浏览器应用程序、文字处理应用程序以及数据库应用程序指示。执行级别范围可以标识与应用程序的执行环境相关联的规则。作为一个示例,web浏览应用程序可具有用于其超文本传输协议、文件传输协议以及“telnet”执行环境的执行级别范围。每一执行级别范围可具有一个或多个保护级别范围。保护级别范围可标识规则是全局的、资源专用的还是默认的。当规则为全局时,规则应用于在应用程序级别和执行级别范围内的所有进程,而不管引起安全实施事件的资源是什么(例如,文件系统)。当规则为资源专用时,规则仅在所标识的资源引起与该规则有关的安全实施事件时才适用。当规则为默认时,规则可应用于未在资源专用规则中具体标识的所有资源。

图1是示出一个实施例中安全系统的组件的框图。安全系统100包括用户模式组件110和内核模式组件120。用户模式组件包括策略管理器组件111、策略存储112、规则生成器组件113、进程集表114、规则表115。策略管理器组件从策略存储检索安全策略、为安全策略生成保护对象、以及向规则生成器组件提供保护对象。策略管理器组件为安全策略内的每一类型的规则和进程集准则生成保护对象。由此,保护对象包括规则类型、进程集策略以及相关联的规则集。规则生成器组件输入保护对象,并生成储存在进程集表和规则表中的规则列表。规则生成器组件对保护对象中的每一进程集准则,向进程集表添加条目。规则生成器组件将保护对象的规则集分割成多个规则集,其每一个具有同一动作类型。例如,对具有拒绝动作的那些规则生成一个规则集,而对具有允许动作的那些规则生成一个单独的规则集。规则集的这一分割方便了基于动作的规则排序。规则生成器组件也对与保护对象相关联的默认动作创建规则集。规则生成器组件然后将每一规则集的每一规则储存在规则表中。规则表中的规则是依照规则类型其依照规则动作在规则类型内排序的。每一分割规则集表示了规则集内规则的相邻排序。规则生成器组件设置进程集表的条目,以指向与该条目的进程集准则相关联的每一规则。例如,如果进程集准则与五个不同的规则相关联,则该进程集准则的条目将标识五个规则。在生成规则列表(即,进程集表和规则表)之后,安全系统的用户模式组件通知内核模式组件。

安全系统的内核模式组件包括安全引擎组件121、进程/规则矢量表122以及规则引擎组件123。只要安全实施事件发生,就通知规则引擎组件。安全引擎组件标识向其应用事件的进程,并从该进程的进程/规则矢量表检索规则矢量。规则矢量标识了规则表内适用于该进程的规则。安全引擎组件然后以基于规则表的排序的顺序将规则矢量的每一规则应用于安全实施事件。安全引擎组件调用规则引擎组件来提供用于进程的规则矢量。规则引擎组件标识进程所满足的进程集准则,并检索与进程集准则相关联的每一规则的指示。规则引擎组件然后将规则的标识组合成规则矢量,该规则矢量然后被提供给安全引擎组件。

在其上实现安全系统的计算设备可包括中央处理单元、存储器、输入设备(例如,键盘和定位设备)、输出设备(例如,显示设备)以及存储设备(例如,盘驱动器)。存储器和存储设备是可包含实现安全系统的指令的计算机可读介质。另外,数据结构和消息结构可被储存在诸如通信链路上的信号等数据传输介质上或通过其来发送。可使用各种通信链路,如因特网、局域网、广域网、点对点拨号连接、蜂窝电话网络等等。

安全系统可以在各种环境中实现,包括个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、可编程消费者电子产品、数码相机、网络PC、小型机、大型机、包括以上系统或设备的任一个的分布式计算环境等等。客户机计算机系统可以是蜂窝电话、个人数字助理、智能电话、个人计算机、可编程消费者电子产品、数码相机等等。

该安全系统可以在诸如由一个或多个计算机或其它设备执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可如各种实施例中所需要的组合或分布。

图2是示出一个实施例中安全系统的数据结构的框图。规则列表210包括进程集表211和规则表212。进程集表包括用于安全策略的每一进程集准则的条目。每一条目将进程集准则映射到规则表中相关联的规则。规则表包含用于安全策略的每一规则的条目。该条目标识了规则的条件、动作和例外。规则表的规则是基于规则类型和动作来排序的。进程/规则矢量映射220标识了适用于每一进程的规则。该映射包括用于每一进程的条目,它标识了该进程和相关联的规则矢量。本领域的技术人员可以理解,这些数据结构示出了数据结构的一种可能的逻辑组织。取决于存储器使用和计算速度目标,数据结构的其它组织可以是适当的。

图3是示出一个实施例中规则生成器的准备规则组件的处理的流程图。该组件在用户特许模式中执行。该组件循环处理由策略管理器组件提供的每一保护对象。在框301,该组件选择下一保护对象。在判别框302,如果所有的保护对象都已被选择过,则该组件完成,否则该组件继续到框303。在框303,该组件基于规则的动作将保护对象的规则分割成各种规则集。在框304,该组件为默认动作创建规则集。在框305-307,该组件向规则列表循环添加规则集的规则。在框305,该组件选择下一规则集。在判别框306,如果所有的规则集都已被选择过,则该组件循环到框301以选择下一保护对象,否则该组件继续到框307。在框307,该组件调用一合并组件,它传递保护对象的所选中的规则集以及进程集准则,以将规则和进程集准则添加到规则列表。该组件然后循环到框305以选择下一规则集。

图4是示出一个实施例中规则生成器的合并组件的处理的流程图。该组件在用户模式中执行。向该组件传递规则集和进程集准则。该组件向规则列表的规则表添加规则集的每一规则,并相应地更新进程集表。在框401,该组件核查进程集表中是否包含所传递的进程集准则的条目。在判别框402,如果找到条目,则该组件在框404,继续,否则该组件在框403继续。在框403,该组件在进程集表中为所传递的进程集准则创建新条目。在框404,该组件搜索规则表内用于所传递的规则集的规则的适当的插入点。适当的插入点是基于规则类型和动作排序来标识的。在框405,该组件在规则表内的插入点处插入规则集的规则。在框406,该组件更新进程集表中用于所传递的进程集准则的条目。当规则由规则表内的索引标识时,该组件可能需要更新进程集表中的其它条目以反映规则表内的新位置。或者,可在组合和实施被优化成专用进程的进程期间使用规则表的不同数据结构。例如,在组合时可使用链表数据结构,而在实施时可使用简单列表数据结构。该组件然后返回。

图5是示出一个实施例中初始化规则矢量组件的处理的流程图。该组件在内核模式中执行,并且可以是规则引擎组件的子组件。该组件可在安全引擎组件启动时调用。该组件访问规则列表的信息(例如,通过共享存储器),并生成进程的规则矢量。在框501,该规则选择当前正在执行的下一进程。在判别框502,如果所有的进程都已被选择过,则该组件完成,否则该组件继续到框503。在框503,该组件调用检索规则矢量组件以检索所选中进程的规则矢量。在框504,该组件在进程/规则矢量映射中储存用于所选中的进程和规则矢量组合的条目。该组件然后循环到框501以选择下一进程。

图6是示出一个实施例中检索规则矢量的处理的流程图。向该组件传递一进程标识符,并且该组件标识进程所满足的进程集准则。该组件然后创建标识与所满足的进程集准则相关联的每一规则的规则矢量。在框601,该组件选择下一进程集准则。在判别框602,如果所有的进程集准则都被选择过,则该组件继续到框605,否则该组件继续到框603。在判别框603,如果所传递的进程满足所选择的进程集准则,则该组件继续到框604,否则该组件循环到框601以选择下一进程集准则。在框604,该组件向规则矢量添加与选中的进程集准则相关联的规则,并且然后循环到框601以选择下一进程集准则。在框605,该组件对规则矢量内的规则排序、移除任何重复的规则,然后返回。

图7是示出一个实施例中更新进程集准则组件的处理的流程图。该组件在修改进程集准则时调用。在框701,该组件选择当前在计算机上执行的下一进程。在判别框702,如果所有的进程都已被选择过,则该组件完成,否则该组件继续到框703。在判别框703,如果存在从更新中所导致的、关于所选中的进程是否满足进程集准则的变化,则该组件继续到框704,否则该组件循环到框701以选择下一进程。当选中的进程仅满足先前的或更新的进程集准则中的一个时,从更新中导致变化。在框704,该组件对所选中的进程生成新的规则矢量。在框705,该组件向安全引擎组件通知对规则矢量的变化,并且然后循环到框701以选择下一进程。安全引擎在被通知之后可使用所改变的规则矢量来启动,以影响安全策略的动态更新和实施。

图8是示出一个实施例中安全引擎组件的实施规则子组件的处理的流程图。该组件在内核模式执行,并且向该组件传递进程标识符和安全实施事件。该组件向安全实施事件应用由该进程的规则矢量所标识的规则。在框801,该组件检索所标识的进程的规则矢量。在框802,该组件按顺序选择规则矢量的内下一规则。在判别框803,如果规则矢量的所有规则都已被选择过,则该组件完成,否则该组件继续到框804。在判别框804,如果满足所选中规则的条件,则该组件继续到框805,否则该组件循环到框802以选择下一规则。在判别框805,如果不满足规则的例外,则该组件继续到框806,否则该组件循环到框802以选择下一规则。在框806,该组件执行规则的动作然后完成。

从以上内容,可以理解,此处为说明的目的描述了该安全系统的具体实施例,但是可在不脱离本发明的精神和范围的情况下做出各种修改。因此,本发明除所附权利要求书之外不受任何限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号