基于依照事件序列中时间位置的参考基线评估事件的系统和方法
I. 交叉引用
本申请要求享有 2011年9月9日提交的、名称为“基于与基线的偏差对事件基于规则的分析”的共同待审美国临时专利申请No. 61/532,968的优先权。(律师案卷No. 82844890,该美国临时专利申请被通过引用结合于此,就各方面而言,如同完全在本文中提出的一样。本申请通过引用整体地结合2008年10月1日提交的、名称为“网络系统中的模式发现”的美国专利No. 7,984,502。
II.背景技术
对于现代的业务,计算机网络和系统已成为不可缺少的工具。现今,关于几乎所有的可想象主题的兆兆位的信息由世界各地的用户通过这种网络访问并存储在这种网络中。在某种程度上,许多这种信息都是保密的并且其保护也是期望的。入侵检测系统(IDS)(包括欺诈检测系统(FDS))已被开发来检测信息和资源的未经授权的使用并且有助于披露未经授权的人员和/或装置访问计算机网络和在其中存储的信息的尝试。
有两种互补的方法来检测入侵:基于知识的方法和基于行为的方法。现今,许多使用中的IDS工具都是基于知识的。基于知识的入侵检测技术涉及把捕获的数据与关于现有的利用漏洞的技术的信息相比较。当匹配被检测时,警报被触发。另一方面,基于行为的入侵检测技术通过观察与系统或用户的正常或预期行为(其模型通过各种方法从所收集的参考信息提取)的偏差尝试侦查入侵。当观察到可疑的偏差时,警报被生成。
传统的安全系统使用规则来相关事件。规则可以被用于分析和相关用户活动事件以识别入侵,更具体地,偏离规范的行为模式。尽管这些机制强大到足够支持多种标准的相关用例,但一些入侵(诸如,复杂的欺诈攻击)可能未被检测到,或可能在规定一组高度复杂的规则之后被检测到。
III.附图说明
本公开可以通过参考附图而被更好地理解,并且其众多特征或优点也变得明显。
图1是依据实施例的网络安全系统的拓扑框图。
图2是依据实施例的参考基线的生成的过程流程图。
图3是依据实施例的基于与参考基线的偏差的用户活动事件的分析的过程流程图。
图4是依据实施例的触发响应动作的过程流程图。
图5图示了实施例可以在其中被实现的计算机系统。
IV.具体实施方式
安全系统从潜在的成千上万的来源接收事件。事件可以与规则交叉相关,以提供不会由单独装置识别的安全相关情报。通常,相关可以表示来自不同来源的不同事件与通常事故按照相关规则所规定的方式相关联。更具体地,相关例如包括:发现事件之间的关系、推断那些关系的重要性、以优先顺序排列所述事件和元事件、以及提供采取动作的框架。
如在此使用的,规则或“相关规则”是程序并且包括一组简单或复杂的条件,该条件可以与其他构成(诸如,聚集、分组、和触发器)组合。规则被使用在许多方面,诸如:针对特定条件和模式评估引入事件;使用规则相关以及其他构成(如,活动列表、会话列表、和威胁级别计算)相关来自不同事件的信息;推断关于事件的重要性的含义;以及响应于事件开始动作。
换言之,规则表达条件,对照该条件事件流被评估。所述评估的结果提供信息,用以从事件流中得出所述含义。当匹配被确时,规则可以开始动作作为响应。
除了条件之外,规则可以进一步包括:阈值(即,发生的次数、累积总额)、持续时间、结合标准、和/或聚集标准。例如:
如果(来自相同的源IP地址的)(登陆尝试失败)在(1分钟)内发生(10次),则(动作)
对于这个规则,条件是“登陆尝试失败,”发生的阈值次数是“10,”持续时间是“1分钟,”以及聚集的标准是“来自相同的源IP地址。”
规则条件可以指各种数据模型。例如,规则条件可以指网络的字段或性质,以及作为网络上节点和/或机器的表示的资产模型。所述性质可以包括:开放端口、操作系统、漏洞、业务分类等。
规则条件还可以指数据列表(诸如,活动列表和会话列表)。会话列表把用户与其在网络上的事件业务相关联。更具体地,会话列表是可配置的表格,该表格维护与用户会话相关的时间数据(例如,DHCP 会话信息、VPN会话信息、从用户到其角色的映射、和那些属性有效的对应时间段等)。
活动列表是可配置的表格,该表格聚集事件的指定字段。活动列表为时间段(例如,天、星期等)上的特定事件提供跟踪。可以使所述聚集的数据用于相关。例如,数据列表可以记录在账单周期内使用特定信用卡所产生的购买的累积总额。例如,所述累积总额由规则参考,以提醒到达信用额度的信用卡持有者。
在入侵检测的情况下,用户动作事件的按时间次序的序列与每一个这些事件之间的时间间隙对于识别异常和不正常的行为有重要作用。更具体地,用户活动与那个用户的基线行为的比较对于异常的及时检测以便检测欺诈有重要作用。
然而,规则在本质上通常是静态的,并且因此不足以捕获网络和/或系统中的所有用户之间的活动模式的差异。此外,传统的规则引擎允许对使用简单的结合条件和阈值条件来相关事件的规则有规范,该结合条件典型地基于匹配字段值把不同事件联系起来,阈值条件指定需要在某个时间段发生的事件的数量。尽管这些机制足够强大到支持许多标准的相关用例,但复杂的欺诈攻击的检测通常比能够以这种方式简单地指定需要更复杂的条件。
此外,一组复杂的静态规则可被用于捕获事件序列,并且在指定的事件序列内检测缺少的事件。对于具有多于两个事件的序列,检测所有可能的序列偏差会需要生成指数数量的规则,例如,其包括链住实现状态机的其他规则的规则。
依据一个实施例,在基于网络的金融交易(例如,账户访问)行为和其他类型的用户动作事件中检测异常的框架被描述。基于所识别的按时间次序的事件序列的模式和/或基于所述序列中每一个事件之间的时间间隙确定用户特定的基线。规则可以被用于基于在线会话的性质检测何时在线交易可能是欺诈性的。对应于用户与在线账户的交互或其他会话(例如,网络会话)的事件被对照用户特定基线进行比较。与用户基线或预期行为的重大偏差可以被标记为潜在的欺诈。此外,欺诈/可疑的事件可以被与安全信息相关,以通过利用安全系统之前不同的部分而提供更完整的系统视图。
在在线金融交易欺诈的情形下,检测基于用户的在线会话的分析。对于特定用户,正常在线会话可能要求以特定的次序(即,登录页面、首页面、账户余额页面、资金转账页面等)访问七个网页面。在这个示例中,资金转账交易在大约五分钟内完成。在特定的实例中,如果这个用户跳过这种交易的原本正常的步骤(即,不导航跳转至账户余额页面)、执行预期次序之外的步骤、在会话期间完成所述交易前仅仅花费20秒、或预期步骤之间的时间间隔严重偏离那个用户的正常行为,则所述异常可能预示欺诈访问。
在一个实施例中,提供用于事件的评估的系统和方法。包括一组按时间次序的事件序列的用户特定参考基线被生成。当前会话中的事件序列中的事件被接收。使用当前会话中的事件序列内的事件的时间位置和事件的属性做出关于所述事件是否至少部分地匹配所述参考基线的确定。规则的条件被分析,并且相关事件被生成。
图1是依据实施例的网络安全系统100的拓扑框图。系统100包括代理12a-n、至少一个管理器14、和至少一个控制台16(该控制台16可以包括其基于浏览器的版本)。在一些实施例中,代理、管理器和/或控制台可以被组合在单个平台中,或被分布在两个、三个或更多的平台中(诸如,在图示示例中)。随计算机网络或系统发展,这种多层的体系结构的使用支持可扩展性。
代理12a-n是作为机器可读指令的软件程序,其提供来自多种网络安全装置和/或应用的高效、实时(或接近实时)的本地事件数据捕获和过滤。安全事件的典型来源是通常的网络安全装置,诸如,防火墙、入侵检测系统和操作系统日志。代理12a-n能够收集来自产生事件日志或消息的任何来源的事件,并且能够在本地装置(native device)、网络内的合并点、和/或通过简单网络管理协议(SNMP)陷阱(trap)进行操作。
代理12a-n是通过手动过程和自动化过程二者并经由相关联的配置文件可配置的。每个代理12可以包括至少一个软件模块,其包括:标准化组件、时间校正组件、聚集组件、批处理组件,解析器组件、传输组件、和/或附加的组件。这些组件可以通过配置文件中的适合命令被激活和/或失活。
管理器14可以包括基于服务器的组件,其使用规则引擎18和集中式事件数据库20进一步合并、过滤和交叉相关从所述代理接收的事件。管理器14的一个任务是捕获和存储所有的实时和历史事件数据以(经由数据库管理器22)构成完整的、企业范围的安全活动的画面。管理器14还提供集中式管理、通知(通过至少一个通知器24)、和报告、以及知识库28和案例管理流程。管理器14也可以部署在任何计算机硬件平台,并且一个实施例使用数据库管理系统来实现事件数据存储组件。管理器14和代理12a-n之间的通信可以是双向的(例如,以允许管理器14把命令传送到平台主控(hosting)代理12a-n),并且被加密。在一些装设中,管理器14可以充当多个代理12a-n的集中器,并且能够把信息转发到(例如,部署在公司总部的)其他管理器。
管理器14还包括至少一个事件管理器26,其负责接收由代理12a-n和/或其他管理器传送的事件数据消息,并且从其他管理器接收事件汇总数据。事件管理器26还负责生成事件数据消息,诸如,相关事件和审计事件。在与代理12a-n的双向通信被实现的情况下,事件管理器26可被用于把消息传送到代理12a-n。如果加密被用于代理-管理器通信,则事件管理器26负责加密从代理12a-n接收的消息,并且加密传送到代理12a-n的任何消息。
一旦事件数据消息已被接收,事件数据被发送到规则引擎18。规则引擎18被配置成把事件数据与相关规则交叉相关,以便识别规则的匹配。
由所述规则触发的动作可以包括(例如,经由通知器24)传送到指定目的地的通知(例如,安全分析者可以经由所述控制台16、电子邮件消息、电话呼叫、蜂窝电话、语音信箱和/或寻呼机号码或地址、或借助于到另一个通信装置和/或地址(诸如,传真机等)的消息被通知)和/或到网络装置的指令(例如,经由代理12等)。
控制台16是基于计算机(例如,工作站)的应用,其允许安全专业人士执行逐日的管理和操作任务,诸如,事件监控、规则编写、事故调查和报告。单个管理器14能够支持多个控制台16。
在一些实施例中,控制台16的基于浏览器的版本可以被用于提供对安全事件、知识库项目、报告、通知和案例的访问。就是说,管理器14可以包括可经由在个人或掌上计算机(其代替控制台16)上主控的网络浏览器访问的网络服务器组件,以提供控制台16的一些或全部功能。浏览器访问对于远离控制台16的安全专业人士和兼职用户特别有用。控制台16和管理器14之间的通信是双向的并且可以被加密。
通过上述的体系结构,集中式或分散式环境可以被支持。这是有用的,因为组织可能想要实现系统100的单个实例,并且使用访问控制列表来区分用户。可替代地,组织可以选择针对多个组中的每一个部署独立的系统100,并且在“主控”级别合并结果。这种部署还能够实现“跟随太阳(follow-the-sun)”的布置,其中地理上分散的对等组通过把监管责任传送到当前工作标准业务时间的组而彼此合作。系统100也能够按照公司分层结构部署,其中业务部门独立地工作并且支持向上滚动到集中式管理职能。
网络安全系统100还包括异常检测能力。在一个实施例中,管理器14进一步包括原始基线模块31A、参考基线模块31B、和本地存储器32。
原始基线模块31A被配置成接收一组事件,诸如,经由事件管理器26来自代理12a-n中的至少一个的、经由数据库管理器22来自事件数据库20的、或来自事件管理器26的安全事件。原始基线模块31A被进一步配置成分别使用在事件中提供的用户ID和会话ID,每个用户和每个会话地把事件分组。
例如,按会话分组可以依据事件的会话标识符(ID)(例如,网络会话标识符)被执行。在另一个实施例中,基于会话的分组可以通过检查事件的时间戳以及确定一组事件为相同会话的一部分而被确定,其中在所述组中的事件的时间戳在时间接近度上是接近的。换言之,所述事件按事件(例如,交易)之间的时间接近度分组。
原始基线模块31A被进一步配置成识别会话期间所采取的用户动作的序列以及那些动作之间的时间间隙,生成原始基线。原始基线模块31A被配置成在数据列表(诸如,数据列表模块30中的活动列表和/或会话列表)中存储原始基线。
参考基线模块31B被配置成生成参考基线,对照所述参考基线,所接收事件的序列被分析以识别异常。参考基线模块31B更具体地配置成:使用原始基线识别按时间次序的事件序列的通常和独特模式,所述事件序列基于每个用户构成历史记录。此外,独特的事件序列中的每一个事件之间的时间间隙被确定。
参考基线模块31B被进一步配置成计算关于事件流程的统计,其包括跨越特定事件流程的所有会话的单独事件的发生次数。原始基线模块31A和参考基线模块31B可以是所示的独立的模块,或可以与另一个组件(诸如,规则引擎18)集成。
规则引擎18被配置成接收一组事件,诸如,经由事件管理器26来自代理12a-n中的至少一个的、经由数据库管理器22来自事件数据库20的、或来自事件管理器26的安全事件。此外,规则引擎18被配置成:把当前会话的引入事件的序列和时间数据(包括时间间隙)与关联于特定用户的参考基线相比较,并且在当前会话信息与参考基线不匹配的情况下,开始规则触发。
网络安全系统100还包括数据列表的能力。在一个实施例中,管理器14进一步包括数据列表模块30和本地存储器32。数据列表模块30被配置成维护会话列表和/或活动列表。此外,数据列表模块30被配置成接收一组事件(诸如,经由事件管理器26来自代理12a-n中的至少一个的、或自事件管理器26本身的安全事件),和/或接收来自原始基线模块31A和参考基线模块31B中的至少一个的用户特定基线。会话列表和/或活动列表可以在本地存储器32中的表格(即,主控表格和/或本地表格)中被维护。在一个实施例中,数据列表表格中的每一个记录表示用户特定、会话特定的事件流程。例如,如果用户参与金融交易的多个会话,则对于单个用户可以有多个事件流程。
本地存储器32可以是任何适合的存储介质并且可以被设置在管理器14本身上、在包含管理器14的集群中、或在对管理器14而言可访问的网络节点上。
基线生成
潜在入侵(包括金融交易的过程期间的欺诈)的检测通过参考基线的生成而被促进,该参考基线表示用户的历史上(例如,正常或异常)行为或业务模式中的一种模式。然后,参考基线中的这些模式被用于检测用户行为中的异常。
图2是依据实施例的参考基线生成的过程流程图。所描述的过程流程200可以通过可执行指令的序列的执行来实现。在另一个实施例中,过程流程200的各部分通过网络安全系统的组件、硬件逻辑(例如,专用集成电路(ASIC)等)的布置来实现。例如,过程流程200的块可以通过网络安全系统的原始基线模块中的可执行指令的序列的执行来实现。例如,所述原始基线模块可以被部署在网络安全系统中的管理器处。此外,过程流程200的块可以通过网络安全系统的参考基线模块中的可执行指令的序列的执行来实现。例如,所述参考基线模块可以被部署在网络安全系统中的管理器处。
网络安全系统监控和分析事件(诸如,安全事件和应用事件)。在基于网络的金融交易的情况下,所述应用事件可以包括用户活动事件/金融交易事件,例如,用户例如经由网页点击通过在线金融系统的导航,用以查看账户余额、开始用户信用卡账户的资金的转入和转出、添加收款人,更新账户信息等。在一个实施例中,特定用户在特定的会话(例如,网络会话、登陆会话等)期间每一次逐页遍历通过金融系统均在事件流程中被分组。如此,事件流程是基于每个用户和每个会话的事件的集合。事件的用户和/或会话信息可以根据事件中的字段确定。所述事件包括:安全事件、应用事件(例如,金融交易事件)、和其他类型的由部署在安全系统对其监管的系统处的代理生成的事件。
在步骤210,原始基线被确定。如在此使用的,原始基线是一组关联于特定用户的历史事件流程和时间间隙信息。所述原始基线可以包括多个会话的事件流程。这些事件流程组成关联于用户的历史记录。在一个实施例中,事件流程被组织成基于每个用户和每个会话的按时间次序的事件序列。此外,对于每一个事件流程,序列中每一个事件之间的时间间隙和/或会话所花费的总的时间被确定。通过采用一个事件发生的时间与下一个连续事件发生的时间之间的差异,可以确定一个事件和下一个连续事件之间的时间间隙。
下面的表1是关联于用户1的部分原始基线的示例,其可以被包含在数据列表的事件表格中。所述原始基线包括时间间隙信息。
表1
用户
ID |
会话
ID |
事件类型 |
发生时间 |
与之前事件的时间间隙 |
1 |
3 |
登陆 |
1:20:00 pm |
-- |
1 |
3 |
查看账户余额 |
1:20:05 pm |
5 秒钟 |
1 |
3 |
汇总 |
1:20:12 pm |
7 秒钟 |
1 |
3 |
计划付款 |
1:23:12 pm |
3 分钟 |
1 |
4 |
登陆 |
11:10:00 am |
-- |
1 |
4 |
查看账户余额 |
11:10:05 am |
7 秒钟 |
1 |
4 |
汇总 |
11:10:12 am |
3 秒钟 |
1 |
4 |
计划付款 |
1:13:12 am |
4 分钟 |
1 |
5 |
登陆 |
9:00:00 am |
-- |
1 |
5 |
查看账户余额 |
9:00:04 am |
6 秒钟 |
1 |
5 |
添加收款人 |
9:01:04 am |
1 分钟 |
1 |
6 |
登陆 |
3:30:00 pm |
-- |
1 |
6 |
报酬汇总 |
3:31:00 pm |
1 分钟 |
事件流程表示用户的“正常”行为。在另一个实施例中,事件流程表示“异常”行为。例如,通过所述事件流程被标记为正常或异常,事后的分析被执行。
在一个实施例中,在来自交易日志、事件数据库等的现有历史事件流程(包括用户动作事件的序列)上构成原始基线(例如,作为批处理操作)。然后,当新的事件例如由安全系统中的管理器接收时,所述原始基线可以以实时或以批处理模式更新。
在步骤220,基于原始基线的独特的、按时间次序的事件序列。在一个实施例中,事件流程和关联于原始基线的计时数据被分析,并且特定用户的业务或行为的模式被确定。模式辨认或识别可以涉及合并用户特定原始基线中的事件流程,使得当模式被识别时,独特的事件序列被表示为按时间次序的事件序列。
在一个实施例中,用户实际逐页遍历通过金融系统的历史被进行模式分析。例如,在计划用于每月信用卡账单的付款之前,可以从原始基线中闪现的是:用户典型地开始与信用卡在线网站上的登陆页面的会话、查看账户余额、查看当前付款周期的交易汇总、以及最终导航到计划付款页面。然后这种模式被表示为按时间次序的事件序列。
此外,模式发现可以被执行,例如,其中用户特定原始基线中的特定事件的发生次数被跟踪,并且用户活动的支持图可以使用所述原始基线和发生的次数被生成。模式发现在2008年10月1日提交的美国专利No. 7,984,502中被进一步的描述,该专利在此通过引用将其整体并入本文。其他的模式发现的方法也可以被应用。
在步骤230,用于事件序列的计时数据被基于原始基线确定。在一个实施例中,所述计时数据包括关于事件序列的各种统计,诸如,最小时间、最大时间、平均时间、和标准偏差。
在一个实施例中,具有相同的事件序列或其子集的原始基线(对于特定用户)中的所有事件流程被分组在一起。如之前所描述的,每个事件流程还包括关于所述流程中的每个连续事件之间的时间间隙的数据。例如,如表1中所示,在一个事件流程(即,会话ID3)中,从登陆页面到查看账户余额页面的导航之间的时间间隙是5秒钟。在另一个事件流程(即,会话ID4)中,这两个页面之间的时间间隙可以是7秒钟。
最小时间统计可以是:当在会话的过程期间的事件流程中从一个特定事件遍历到下一个连续事件(或另一个以后发生的事件)时,由用户在历史上执行的最少时间。使用如表1中所示的示例,具有包括从登陆页面到查看账户余额页面的遍历的三个事件流程。在这个示例中,用于从登陆移动页面遍历到查看账户余额页面的最小时间是5秒钟。
最大统计时间可以是:当在会话的过程期间的事件流程中从一个事件遍历到接下来的连续事件(或另一个以后发生的事件)时,由用户在历史上执行的最多时间。使用如表1中所示的示例,用于从登陆移动页面遍历到查看账户余额页面的最大时间是7秒钟。
同样地,平均时间统计可以是从一个特定事件到下一个连续事件(或另一个以后发生的事件)的所有在历史上发生的事件流程的统计平均。使用如表1中所示的示例,用于从登陆遍历页面到查看账户余额页面的平均时间是6秒钟。在这个示例中,用于所述相同的逐页遍历的标准偏差统计是1秒钟。其他的基于时间的统计也可以被确定。
在步骤240,参考基线被基于独特的事件序列和相关联的计时数据而生成。如在此使用的,参考基线是一组独特的按时间次序的事件序列,所述事件已被识别为业务或行为的用户特定模式的表示。参考基线还包括关联于每一个独特的事件序列的计时数据。
参考基线中的模式和计时数据被用于检测用户行为中的异常。在一个实施例中,所述参考基线按照固定的时间表生成和/或更新。例如,参考基线被周期性地更新,以反映系统(例如,金融系统)的正在进行的用户使用以及与所述系统交互的变化。对参考基线的更新可以基于对相应原始基线所执行的更新。
下面的表2是关联于用户1的部分参考基线的示例,其可以基于表1的部分原始基线而被生成。下面表2的部分参考基线包括计时数据(例如,计时统计)。
表2
用户
ID |
参考模式 ID |
时间类型 |
与之前事件的平均时间间隙 |
与之前事件的STDV时间间隙 |
1 |
1 |
登陆 |
-- |
-- |
1 |
1 |
查看账户余额 |
6秒钟 |
2秒钟 |
1 |
1 |
汇总 |
5秒钟 |
2秒钟 |
1 |
1 |
计划付款 |
3.5分钟 |
1分钟 |
1 |
2 |
登陆 |
-- |
-- |
1 |
2 |
查看账户余额 |
4秒钟 |
1 秒钟 |
1 |
2 |
添加收款人 |
1分钟 |
1分钟 |
1 |
3 |
登陆 |
-- |
-- |
1 |
3 |
报酬汇总 |
1 分钟 |
30秒钟 |
至少三个独特的参考模式在表2的部分参考基线中被识别。对于每一个事件,包括计时统计的两个属性,即,来自序列中之前事件的平均时间间隙、以及来自序列中之前事件的标准偏差时间间隙。各种其他的计时统计也可以被包括在参考基线中。
异常检测
如之前所描述的,潜在入侵(包括金融交易的过程期间的欺诈)的检测通过参考基线的使用而被促进。更具体地,参考基线中的独特序列被用于检测用户行为中的异常。当前会话中的事件序列被依据规则进行分析。规则评估可以包括:比较当前会话的序列与参考基线中的历史模式。与参考基线的重大偏差可能导致规则的违反和异常的检测,这可能表示潜在的入侵。
图3是依据实施例的基于与参考基线的偏差的用户活动事件的分析的过程流程图。所描述的过程流程300可以通过可执行指令的序列的执行来实现。在另一个实施例中,过程流程300的各个部分通过网络安全系统的组件、硬件逻辑(例如,专用集成电路(ASIC)等)的布置来实现。例如,过程流程300的块可以通过网络安全系统的规则引擎中的可执行指令的序列的执行来实现。例如,规则引擎可以被部署在网络安全系统中的管理器处。
如之前所描述的,所述网络安全系统监控并分析事件,诸如,安全事件。更具体地,所述事件被对照规则进行评估。所述规则可以指定特定的条件,其涉及按时间次序的事件序列以及所述序列中那些事件之间的时间间隙的评估。这种规则的示例可以是:
规则 1
如果(按用户ID)(交易异常)发生(时间间隙的标准偏差直到1用户ID的标准偏差),则(动作)
对于这个规则,条件是“交易异常”,其中用户当前会话的事件序列无法匹配那个用户的参考基线。此外,寻找规则匹配的有效的阈值范围是“时间间隙的标准偏差直到1用户ID的标准偏差”,并且所述聚集标准是“按用户ID”。
典型地,用户条件是静态的,因为活动的单个模式应用到交易系统的所有用户。如在此描述的,这个示例中的规则条件涉及事件序列的跟踪,以确定异常是否存在。在当前会话的序列被评估时,用户特定的参考基线被用作比较点。如此,在此描述的规则不是静态的,而是,规则条件被表达成使得每个用户的活动的特定模式被用于评估当前会话的事件序列。
此外,许多规则本质上是布尔型的,意味着,条件被满足或不被满足。如在此描述的,规则可以指定偏差阈值(或其他类型的阈值),该阈值考虑到满足所述规则条件的有效的范围。偏差阈值可以被表达成使得:除了计时数据和/或时间位置数据之外,重复、缺少、和/或无序的事件被考虑。可以有布尔型条件,其也是相同规则的一部分。
在步骤305,当前会话的事件被接收。当每一个事件被接收时,其对照各种规则实时进行评估。
规则评估涉及:在反复的基础上,把当前会话的流程的事件与用户特定的参考基线相匹配。换言之,比较被执行,并且确定当前会话流程中的所接收事件是否匹配于参考基线中的模式。在一个实施例中,规则引擎执行这个比较。
具体地,在步骤310,确定在用户特定参考基线中是否具有与所识别模式(表示为独特的事件序列)的至少部分的匹配。特别地,与所接收事件相关联的用户ID被确定。那个用户ID特定的参考基线被识别。
所接收的事件被与所述参考基线比较。特别地,当前会话的事件流程内的事件的时间位置被确定。例如,在所述流程中除了其他事件之外具有最早的发生时间的事件可以具有第一时间位置,具有第二早的发生时间的事件可以具有第二时间位置等。所接收的事件被与具有相同时间位置的参考基线中的事件比较。此外,所接收事件的属性(例如,事件类型)被与参考基线中事件的相同属性比较。
所接收事件的发生时间与当前会话中之前事件的发生时间(或其他计时信息)之间的时间间隙被跟踪。在一个实施例中,除了比较所述时间位置之外,与所接收事件相关联的时间间隙被与参考基线中的计时数据比较。
在基于时间位置、计时信息或其他属性的比较的过程期间,匹配的确定可以是静止的和/或可以是基于偏差阈值的。所述偏差阈值指定容许偏差(例如,有效范围),在所述容许偏差内,匹配仍然被确定。容许偏差可以作为规则条件而被实现。
例如,用户特定参考基线可以包括继之以事件2的事件1的序列,其具有7秒钟的平均时间间隙。参考基线可以包括列出这些特定事件之间的平均时间间隙的属性。为了规则匹配的目的,当前会话的事件序列可以被认为匹配于所述参考基线,只要所述时间间隙与参考基线中的平均时间间隙相比落在2秒钟的标准偏差之内。偏差阈值可以被相对于计时数据(如在这个示例中描述的)或相对于另一个属性(诸如,时间位置)表达,使得用于缺少的事件或不以所预期的次序发生的事件的容许偏差被表达。例如,参考基础中的序列中的一些事件的不发生可以被容许,然而其他的不发生则不可以被容许。
当评估所接收的事件时,如果部分的匹配未被发现,则在步骤315确定在所接收事件为其一部分的序列和参考基线之间没有序列匹配。
在步骤317,规则条件的结果被确定。参考基线可以包括表示“正常”用户行为和/或“异常”用户行为的序列。在一个实施例,在所述参考基线仅仅包括那些表示“正常”用户行为的序列的情况下,与参考基线不匹配的当前会话的任何引入的序列都被认为是可疑的,并且在步骤317规则条件返回“真”(其中,所述条件正在寻找异常行为),即规则触发。在所述参考基线仅仅包括那些表示“异常”用户行为的序列的情况下,与参考基线不匹配的当前会话的任何引入的序列都被认为是非可疑的,并且在步骤317规则条件返回“假”。
在另一个实施例,在参考基线包括那些表示“异常”和“正常”用户行为的序列的情况下,与参考基线不匹配的当前会话的引入的序列,规则条件返回“真”,这导致规则触发,因为用户的动作(基于历史)是不被预期的并且应被调查。从这类规则触发生成的警报(例如,与如果异常序列已被匹配相比)可以与较低的优先级别相关联。在另一个实施例中,例如,如果策略目标是最小化误报(false positive)的可能性或者另外地把规则触发限制于所匹配的异常序列,则规则条件返回“假”。
当评估所接收的事件时,如果部分匹配在步骤310被发现,则在步骤320确定是否具有完全匹配。如在此使用的,在当前会话中的事件流程与参考基线中的整个事件序列相匹配的情况下,完全匹配发生。如果没有完全匹配,则处理继续到步骤305,其中,当前序列中的另一个事件被接收。所述比较在步骤310和320可以作为单个步骤发生,并且当所述事件由管理器接收时,在逐个事件的基础上实时发生。匹配也可以在聚集的基础上被执行,在当前会话的一组事件上立即进行操作。
在完全匹配在步骤320被确定的情况下,在步骤325确定序列匹配被发现。如之前提及的,规则条件的结果在步骤330被确定。参考基线可以包括表示“正常”用户行为和/或“异常”用户行为的序列。在一个实施例,在所述参考基线仅仅包括那些表示“正常”用户行为的序列的情况下,与参考基线匹配的当前会话的任何引入的序列都被认为是非可疑的,并且规则条件返回“假”(其中,所述条件正在寻找异常行为)。在所述参考基线仅仅包括那些表示“异常”用户行为的序列的情况下,与参考基线匹配的当前会话的任何引入的序列都被认为是可疑的,并且规则条件返回“真”。
在另一个实施例中,参考基线包括那些表示“异常”和/或“正常”用户行为的序列。在当前会话的引入的流程与参考基线匹配的情况下,确定参考基线中的匹配序列是被标记(或者以其他方式标明)为“异常”还是“正常。”如果匹配是就 “异常”序列而言的,则规则条件返回“真”,以及如果匹配是就“正常”序列而言的,则规则条件返回“假”。
为了解释的目的,在一个示例中,与特定用户相关联的参考基线可以包括三个如表2中所示的参考基线流程:1)事件A(登陆),事件B(查看账户余额),事件C(汇总)和事件D(计划付款);2)事件A(登陆),事件B(查看账户余额),事件E(添加收款人);以及3)事件A(登陆)和事件F(报酬汇总)。规则(诸如,如上所述的规则1)在当前的会话事件上被评估。
例如,在当前会话中,事件A在步骤305被接收。事件A被与参考基线序列比较。因为所有的三个序列均以事件A开始,具有至少部分的匹配被确定。在不具有匹配(例如,如果事件G在步骤305被接收)的情况下,不具有序列匹配在步骤315被确定。在参考基线包括表示正常行为的序列的情况下,没有序列匹配的确定导致把当前会话的事件的特征描述为可疑的。规则条件可以在步骤317返回“真”作为响应。
所述比较从步骤310继续到步骤320,其中,基于已经接收的当前会话的事件流程(和计时信息),确定是否具有完全匹配。如果到那时为止还不具有完全匹配,则系统继续尝试与随后所接收的事件进行匹配。具体地,处理继续到步骤305,其中,另一个事件被接收。因此,所述匹配/比较过程以反复的方式发生。在后续的反复中,在步骤310确定当前的事件流程是否能够被至少部分地匹配。
继续上面的示例,如果事件B在事件A的5秒钟内的第二次反复中被接收,则基于规则1中所指定的容许偏差确定当前会话的流程(其现在包括继之以事件B的事件A)与参考模式ID1和参考模式ID2二者至少部分地匹配。
在步骤320,确定到那时为止是否具有完全匹配。在这一点上,当前流程仅仅包括事件A和事件B。为了与参考模式ID1完全匹配,当前会话的流程还应在容许偏差内包括事件C和D。同样地,为了与参考模式ID2完全匹配,所述流程还应在容许偏差内包括事件E。如此,不具有完全匹配。然后所述系统可以再次反复,并且下一个事件在步骤305被接收。
一旦完全匹配在步骤325被确定,规则条件在步骤330被确定。在参考基线包括表示正常行为的序列的情况下,当前会话事件的特征被描述为正常,并且所述规则条件在步骤330返回“假”。
在一个实施例中,参考基线可以包括正常活动和/或异常活动的序列。换言之,用户在过去已采用的事件序列(其因此可以在参考基线中被表示),可以是正常事件流程或异常流程。例如,第一次用户执行特定序列时,当前流程在步骤310可能不匹配,导致在步骤315没有序列匹配的确定。
新序列可以被反馈到参考基线生成流程(在图2),以便更新原始基线和/或参考基线。例如,直到事后分析被执行,系统才知道这个当前序列是正常活动还是异常活动。在事后分析期间,用户可能可以被联系并询问,以验证该活动。用户可以输入结果,并且从而把所述新序列标记为正常或异常。如果正常,则该新序列被添加到原始基线,使得进一步的匹配事件序列将发现匹配并且不触发所述规则。如果异常,则该新序列也可以被添加到基线,但被标记为异常,使得与这种模式的进一步匹配将导致规则被触发。
如此,如果没有流程匹配被发现(如图3中所述)或与被标记为异常和/或另外地可疑的流程的匹配被发现,则规则可以被触发。
图4是依据实施例的触发响应动作的过程流程图。所描述的过程流程400可以通过可执行指令的序列的执行来实现。在另一个实施例中,过程流程400的各个部分通过网络安全系统的组件、硬件逻辑(例如,专用集成电路(ASIC)等)的布置来实现。例如,过程流程400的块可以通过网络安全系统的规则引擎中的可执行指令的序列的执行来实现。例如,所述规则引擎可以被部署在网络安全系统中的管理器处。
在步骤410,例如在当前会话中的事件被对照所述规则进行评估之后,规则条件返回“真”被检测。在步骤415,动作可以被触发作为响应。
由规则触发的动作可以包括执行预定命令或脚本、更新数据列表、记录警报、把警报发送到控制台或通知指定人、基于累积的活动为警报设置自定义严重级别、把来源添加到可疑资源列表、把目标添加到漏洞列表、触发另一规则、或这些动作的任何组合。
此外,所述动作可以包括触发另一规则。例如,因为攻击和所检测异常的同时存在可能增加欺诈的可能性,所以来自对应于用户与在线账户的交互的交易事件的信息可以进一步与网络安全事件和网络基础结构的知识相关,所述网络基础结构的知识包括(但不限于)资产模型、各种机器的漏洞和在系统中实时进行的其他攻击。如此,可以针对多个数据来源执行相关。
换言之,例如对于目标主机,独立的规则可以包括寻找欺诈相关的规则触发以及还寻找安全相关的规则触发的规则条件。当条件被满足时,相关可以被执行,从而把交易或基于欺诈的事件知识与安全数据连结起来。
在一个实施例中,所述动作包括生成相关事件。相关事件除了规则特定信息之外,还可以包括关于触发规则的基础事件的信息。在一个实施例中,相关事件可以被用于条件匹配,因此允许多个规则成链。
图5图示了在其中实施例可以被实现的计算机系统。所述系统500可以被用于实现如上所述的任何计算机系统。包括可以被经由总线52电耦合的硬件元素的计算机系统500被示出。硬件元素可以包括至少一个中央处理单元(CPU)502、至少一个输入装置504、和至少一个输出装置506。计算机系统500还可以包括至少一个存储装置508。借助于示例,所述存储装置508可以包括能够是可编程的、闪存可更新的和/或类似物的装置,诸如,磁盘驱动器、光学存储器装置、固态存储器装置(诸如,随机存取存储器("RAM")和/或只读存储器("ROM"))。
计算机系统500可以附加地包括计算机可读存储介质读取器512、通信系统514(例如,调制解调器、网卡(无线或有线)、红外通信装置等)、和可以包括如上所述的RAM和ROM装置的工作存储器518。在一些实施例中,计算机系统500还可以包括处理加速单元516,其可以包括数字信号处理器(DSP)、专用处理器、和/或类似物。
计算机可读存储介质读取器512能够进一步连接到计算机可读存储介质510,一起(在一个实施例中结合存储装置508)全面表示远程、本地、固定和/或可移除的存储装置及任何有形非临时性存储介质,以便暂时和/或更持久包含、存储、传送、和获取计算机可读信息(例如,指令和数据)。计算机可读存储介质510可以是非临时性的,诸如,硬件存储装置(例如,RAM、ROM、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、硬盘驱动器、和闪存)。通信系统514可以允许与以上相对于系统500所描述的任何其他计算机和/或网络交换数据。计算机可读存储介质510包括规则引擎525、原始基线模块526、和参考基线模块527。
计算机系统500还可以包括作为机器可读指令的软件元素,示为当前设置在工作内存518内,包括操作系统520和/或诸如应用程序(其可以是客户端应用、网页(Web)浏览器、中间层应用等)的其他代码522。应当认识到的是:计算机系统500的可替代实施例可以具有从上面描述的实施例的各种变形。例如,定制硬件也可以被使用和/或特定元素可以以硬件、软件(包括便携式软件,诸如小应用程序(applet))或二者实现。此外,可以使用到其他计算装置(诸如,网络输入/输出装置)的连接。
因此,说明书和附图应以说明性而非限制性意义来考虑。然而,明显的是:各种修改和变化可以被做出。
在本说明书中(包括任何所附的权利要求、摘要和附图)公开的每个特征可以被相同、等价或相似目的的可替代特征所替代,除另有特别表述之外。因此,除另有特别表述之外,公开的每个特征是等价或相似特征的一个普通系列的一个示例。