用于检测安全威胁的***和方法
背景技术
个人和组织通常寻求保护其计算资源免受安全威胁和对应攻击者的攻击。因此,企业组织可采用常规安全产品解决方案,诸如端点防病毒产品和网络防火墙产品。在一些示例中,充当受管理的安全服务提供者的安全供应商可有效地管理客户端的安全服务捆绑。更具体地讲,在一些示例中,受管理的安全服务提供者可聚集和标准化来自各种端点安全产品和软件安全代理的安全事故签名,从而提供计算资源安全和相关安全事故的更全面和信息性的概述。
然而,尽管客户端计算资源可从多个端点安全产品中受益,但是出于各种原因(包括成本和有限的资源分配),企业组织可能无法在每个单个客户端计算资源上实现这些产品中的一个或多个。因此,这些客户端计算资源(其仅包括可在其他客户端机器上可用的端点安全产品的较小子集)将不会被最佳地保护以免受对应安全威胁。因此,本公开标识出对用于检测安全威胁的改进的***和方法的需求。
发明内容
如下文将更详细地描述,本公开描述了用于通过以下方式来检测安全威胁的各种***和方法:例如维护记录来自一个安全产品的安全事故签名与来自另一个不同安全产品的安全事故签名之间的统计相关性的数据库。即使安全产品在客户端设备处不可用,基于与在客户端设备上可用并且确实触发了安全事故签名的另一个安全产品的统计相关性,统计相关性的数据库可使安全供应商能够推断出安全产品会触发安全事故签名,如下文进一步讨论的。在一个示例中,用于检测安全威胁的计算机实现的方法可包括(1)通过软件安全程序检测客户端设备处的安全事故,使得软件安全程序生成签名报告以识别安全事故;(2)用签名报告查询关联数据库,以推断出不同软件安全程序在客户端设备处将可预测地生成的另一个签名报告,在检测到安全事故时,不同软件安全程序在客户端设备处不可用;以及(3)基于通过查询关联数据库推断出的其他签名报告,执行至少一个保护动作以保护客户端设备免受与安全事故相关联的安全威胁。
在一些示例中,关联数据库可根据关联规则挖掘算法来构建。关联规则挖掘算法可识别一起出现超过阈值频率的一组至少两个签名报告。在另外的示例中,推断另一个签名报告可包括推断至少两个签名报告。在另外的示例中,该方法可包括基于确定至少一个签名报告指示安全损害来过滤至少两个签名报告中的至少一个签名报告。确定至少一个签名报告指示安全损害可包括根据统计测量确定签名报告与安全损害情况不成比例地相关联。确定至少一个签名报告指示安全损害还可包括确定指示安全损害的签名报告中的置信度的自动测量满足置信度阈值。
在一些示例中,推断另一个签名报告可包括推测安全事故的属性。属性可包括以下各项中的至少一者:(1)导致安全事故的文件的文件标识符,(2)导致安全事故的web位置的统一资源定位符,以及(3)导致安全事故的web位置的互联网协议地址。另外,该方法还可包括测量属性的推测是正确的置信度,以及然后确定测量的置信度满足置信度阈值。
在一个实施方案中,用于实现上述方法的***可包括:(1)存储在存储器中的检测模块,作为软件安全程序的一部分,该检测模块检测客户端设备处的安全事故,使得软件安全程序生成签名报告以识别安全事故;(2)存储在存储器中的查询模块,该查询模块用签名报告查询关联数据库,以推断出不同软件安全程序在客户端设备处将可预测地生成的另一个签名报告,在检测到安全事故时,不同软件安全程序在客户端设备处不可用;(3)存储在存储器中的执行模块,该执行模块基于通过查询关联数据库推断出的其他签名报告,执行至少一个保护动作以保护客户端设备免受与安全事故相关联的安全威胁;以及(4)至少一个物理处理器,该物理处理器被配置为执行检测模块、查询模块和执行模块。
在一些示例中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,计算机可读介质可包括一个或多个计算机可执行指令,当由计算设备的至少一个处理器执行时,该计算机可执行指令可使得计算设备(1)通过软件安全程序检测客户端设备处的安全事故,使得软件安全程序生成签名报告以识别安全事故;(2)用签名报告查询关联数据库,以推断出不同软件安全程序在客户端设备处将可预测地生成的另一个签名报告,在检测到安全事故时,不同软件安全程序在客户端设备处不可用;并且(3)基于通过查询关联数据库推断出的其他签名报告,执行至少一个保护动作以保护客户端设备免受与安全事故相关联的安全威胁。
来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。
附图说明
附图示出了多个示例性实施方案并且为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。
图1是用于检测安全威胁的示例性***的框图。
图2是用于检测安全威胁的附加示例性***的框图。
图3是用于检测安全威胁的示例性方法的流程图。
图4是与用于检测安全威胁的***和方法相关的示例性签名报告的框图。
图5是能够实现本文所描述和/或例示的实施方案中的一个或多个的示例性计算***的框图。
图6是能够实现本文所描述和/或例示的实施方案中的一个或多个的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案可以接受进行各种修改和替代形式,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述这些实施方案。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开整体涉及用于检测安全威胁的***和方法。如下文将更详细地解释,所公开的***和方法可改进安全产品报告和通知的信息内容和质量。例如,即使在对应的安全产品在端点计算设备上不可用或不活动时,所公开的***和方法也可使用户能够受益于可预测的安全产品签名报告,如下文进一步讨论。
下面将参照图1-图2提供对用于检测安全威胁的示例性***的详细描述。也将结合图3至图4提供相应计算机实现的方法的详细描述。此外,将分别结合图5和图6提供能够实现本文所述实施方案中的一个或多个的示例性计算***和网络体系结构的详细描述。
图1是用于检测安全威胁的示例性***100的框图。如该图所示,示例性***100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如下文将更详细地解释,示例性***100可包括检测模块104,作为软件安全程序的一部分,该检测模块可检测客户端设备处的安全事故,使得软件安全程序生成签名报告以识别安全事故。示例性***100还可包括查询模块106,该查询模块用签名报告查询关联数据库,以推断出不同软件安全程序在客户端设备处将可预测地生成的另一个签名报告。在检测到安全事故时,不同软件安全程序在客户端设备处可能不可用。另外,并且如下文将更详细地描述,示例性***100可包括执行模块108,该执行模块可基于通过查询关联数据库推断出的其他签名报告,执行至少一个保护动作以保护客户端设备免受与安全事故相关联的安全威胁。尽管被示为独立元件,但图1中的模块102中的一个或多个模块可表示单个模块或应用程序的部分。
在某些实施方案中,图1中的模块102中的一个或多个模块可表示一个或多个软件应用程序或程序,所述软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一个或多个模块可表示存储在一个或多个计算设备上并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,计算设备202和/或服务器206)、图5中的计算***510和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一个或多个模块还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性***100还可包括一个或多个数据库,诸如数据库120。在一个示例中,数据库120可被配置为存储相关性122,该相关性可指示由不同软件安全产品和代理触发和发布的签名报告之间的相关性。即使当附加签名报告对应于客户端计算设备上不可用或不活动的软件安全产品时,相关性122也可使所公开的***和方法能够基于先前签名报告的触发来推断或推测附加签名报告,如下文进一步讨论。
数据库120可表示单个数据库或计算设备的部分或者多个数据库或计算设备。例如,数据库120可表示图2中的服务器206的一部分、图5中的计算***510、和/或图6中的示例性网络体系结构600的部分。另选地,图1中的数据库120可表示能够通过计算设备访问的一个或多个物理独立设备,诸如图2中的服务器206、图5中的计算***510、和/或图6中的示例性网络体系结构600的部分。
图1中的示例性***100可用多种方式来实现。例如,示例性***100的全部或一部分可表示图2中的示例性***200的部分。如图2所示,***200可包括经由网络204与服务器206通信的计算设备202。在一个示例中,计算设备202可用模块102中的一个或多个模块进行编程和/或可存储数据库120中的数据的全部或一部分。除此之外或另选地,服务器206可用模块102中的一个或多个模块进行编程和/或可存储数据库120中的数据的全部或一部分。
在一个实施方案中,图1的模块102中的一个或多个模块在由计算设备202的至少一个处理器和/或服务器206执行时,使得计算设备202和/或服务器206能够检测安全威胁。例如,并且如下文将更详细地描述,作为软件安全程序220的一部分,检测模块104可检测计算设备202处的安全事故,使得软件安全程序生成签名报告210以识别安全事故。查询模块106可用签名报告210查询数据库120,以推断出不同软件安全程序222在计算设备202处将可预测地生成的另一个签名报告212。在检测到安全事故时,软件安全程序222在计算设备202处可能不可用。执行模块108可基于通过查询数据库120推断出的签名报告212,执行至少一个保护动作以保护计算设备202免受与安全事故相关联的安全威胁。
计算设备202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202的示例包括但不限于笔记本电脑、平板电脑、台式机、服务器、蜂窝电话、个人数字助理(PDA)、多媒体播放器、嵌入式***、可穿戴设备(例如,智能手表、智能眼镜等)、游戏控制台、这些设备中一个或多个的组合、图5中的示例性计算***510或任何其他合适的计算设备。
服务器206通常表示任何类型或形式的计算设备,该计算设备能够便于执行方法300,如下文进一步所述。服务器206的示例包括但不限于被配置为提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。
网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的示例包括但不限于内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信***(GSM)网络)、图6中的示例性网络体系结构600等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施方案中,网络204可促进计算设备202与服务器206之间的通信。
图3是用于检测安全威胁的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算***来执行。在一些实施方案中,图3中示出的步骤可通过图1中的***100、图2中的***200、图5中的计算***510和/或图6中的示例性网络体系结构600的部分的组件中的一个或多个组件执行。
如图3所示,在步骤302处,本文所述的***中的一个或多个可通过软件安全程序检测客户端设备处的安全事故,使得软件安全程序生成签名报告以识别安全事故。例如,作为图2中的服务器206的一部分,检测模块104检测计算设备202处的安全事故,使得软件安全程序220生成签名报告210以识别安全事故。
如本文所用,术语“安全事故”通常是指由对应的软件安全程序检测到的任何事件,该软件安全程序被配置为将事件检测为候选安全威胁或以其他方式调查可疑的计算活动。此外,如本文所用,术语“签名报告”通常是指软件安全程序用来将检测到的安全事故与其他识别的类型、类别和/或种类的安全事故区分开的任何标识符或字符串。
检测模块104可以各种方式检测安全事故。例如,作为服务器206的一部分,检测模块104可从客户端侧安全代理(例如,软件安全程序220)接收报告,指示对应客户端设备处的签名被触发。除此之外或另选地,作为计算设备202的一部分,检测模块104可直接检测安全事故在计算设备202处的存在。检测模块104可通过用于监视和/或识别指示安全事故或候选安全威胁的事件、属性、过程、文件、网络包、活动或其他特征的任何合适技术来检测安全事故。例如,检测模块104可连续地或根据预定的时间表来监视这些特征中的一者或多者的存在,这些特征可被扫描以确定它们是否匹配一个或多个对应的签名集或模式。在检测到任何识别的事件、属性、过程、文件、网络包、活动或其他特征匹配预定的签名集时,检测模块104可检测对应的安全事故并且生成对应的签名报告。
返回图3,在步骤304处,本文所述的***中的一个或多个可用签名报告查询关联数据库,以推断出不同软件安全程序在客户端设备处将可预测地生成的另一个签名报告。在检测到安全事故时,不同软件安全程序在客户端设备处可能不可用。例如,作为图2中的服务器206的一部分,查询模块106可用签名报告210查询数据库120,以推断出不同软件安全程序在计算设备202处将可预测地生成的另一个签名报告212。
如本文所用,短语“用签名报告查询关联数据库”通常广泛地指基于签名报告来分析关联数据库的内容(例如,以推断其他相关或相关联的签名报告)。类似地,短语“将可预测地生成”通常是指按如下方式推测:如果软件安全产品在客户端设备处是可用并且活动的,则基于签名报告与原始的、实际检测到的签名报告(即,签名报告210)的相关性或关联,不同的软件安全产品将触发其签名报告(即,签名报告212)。另外,短语“在客户端设备处不可用”通常是指客户端设备中不存在不同的软件安全产品,或者即使存在软件安全产品,软件安全产品也被停用或者以其他方式不起作用。
查询模块106可以各种方式查询关联数据库。在一些示例中,关联数据库可根据关联规则挖掘算法来构建。如本文所用,术语“关联规则挖掘算法”通常是指用于以适合于方法300的预期功能的方式导出超出阈值置信水平以便支持的规则的任何技术,所述规则指示来自不同软件安全产品或代理的签名报告之间的相关性或同现率。作为一个示例性示例,术语“关联规则挖掘算法”可根据***文章中对于“关联规则挖掘”所述的定义来定义,该文章全文以引用方式并入本文(https://en.wikipedia.org/wiki/Association_rule_learning)(2016年3月21日访问)。一般来讲,关联规则挖掘算法可用于识别一起出现超过阈值频率的一组至少两个签名报告。
此外,在一些示例中,查询模块106可通过推断至少两个签名报告来推断签名报告212。此外,查询模块106可基于确定至少一个签名报告指示安全损害来过滤至少两个签名报告中的至少一个签名报告。在一些示例中,确定至少一个签名报告指示安全损害可包括根据统计测量确定签名报告与安全损害情况不成比例地相关联。在另外的示例中,确定至少一个签名报告指示安全损害可包括确定指示安全损害的签名报告中的置信度的自动测量满足置信度阈值。
在一些示例中,查询模块106至少部分地通过推测安全事故的属性来推断签名报告212。属性可包括以下各项中的至少一者:(1)导致安全事故(或者以其他方式与安全事故相关联)的文件的文件标识符,(2)导致安全事故(或者以其他方式与安全事故相关联)的web位置的统一资源定位符,以及(3)导致安全事故(或者以其他方式与安全事故相关联)的web位置的互联网协议地址。因此,查询模块106可用这些推测的属性来相应地填充签名报告或其他通知的一个或多个字段,从而改进由签名报告提供的信息的质量或数量。查询模块106可另选地或除此之外推测安全事故的任何其他属性,所述属性可为签名报告提供进一步的情景,或者以其他方式改进签名报告和相关联的保护性安全措施的信息质量和洞察力。另外,在一些示例中,查询模块106还可测量属性的推测是正确的置信度,并且确定测量的置信度满足置信度阈值。因此,查询模块106可确保仅在对应推测是正确的置信度相对高时才使用或报告推测的属性。
在图4的示例中,受管理的安全服务提供者(“MSSP”)可根据MSSP工作流程402来运行,该工作流程在图中示出。如该图进一步所示,MSSP工作流程402可聚集和/或标准化由多个不同安全产品或程序(例如,不同版本或品牌的软件安全产品)发布的签名报告或其他通知。值得注意的是,该图中列出的安全产品是虚构的。签名报告或其他通知可被聚集和/或标准化为事件表404,该事件表可进一步指定安全事故的来源、安全事故的目标和/或安全事故的类型。
图4进一步示出概要表406,该概要表列出了由对应的软件安全程序发布的对应签名报告或其他通知的签名号、机器计数、总和、以及签名名称,如上所述。值得注意的是,签名名称和报告中的一些可能比其他更具信息性。例如,签名号681868只具有名称“ASA-6-605:Misc.Unknown IP”,该名称是相对模糊和无信息的。相比之下,签名号92575具有名称“Worm2.exe Targeted PW Exploit”,该名称更加详细和具体,并且因此对用户或客户更具信息性且有帮助。具体地讲,签名名称指示安全事故与特定种类的已知恶意软件相关联,使用特定类型的可执行文件(“Worm2.exe”)来利用或破坏与非目标或无差别的一般群体攻击不同的目标攻击(“Targeted”)中的密码(“PW”)。因此,签名号92575提供了比签名号681868更详细、更有洞察力且更有帮助的信息。
图4另外示出了相关性表408,该相关性表进一步示出了在概要表406内列出的签名号之间的相关性或同现率。为了简单和易于讨论,并且由于图4中的空间限制,相关性表408仅示出签名号681868与概要表406内的剩余签名号之间的相关性。然而,读者可容易地理解,相关性表408还可包括在概要表406中列出的签名号之间的任何其他相关性,即使签名号681868不涉及每个相关性。
如该图中进一步所示,签名号681868具有零或接近于零的相关率,其中除了签名号92575之外,每个其他签名号具有98%的相关率。可满足置信度或有效性的任意或预定义统计测量(例如,大于90%相关性)的98%的相对高的相关率强烈地指示签名号681868和签名号92575彼此相关,作为相同安全威胁或攻击的一部分。换句话讲,相关性表408强烈地指示相对模糊和无信息的签名号681868进一步与更加详细和更具信息性的签名号92575相关联。因此,如果用户或客户在生成签名号681868的客户端机器上使用特定软件安全产品,而也不使用将可预测地生成签名号92575的不同软件安全产品,则用户或客户先前将不会从签名号92575的生成中受益。然而,所公开的***和方法可通过以下方式来克服与这些情况相关联的问题:识别相关性,诸如相关性表408中的相关性;以及使用这些相关性来补充或改进与签名号681868相关联的签名报告,使得用户或客户可从签名号92575的假设或预测触发中受益,即使用户或客户尚未激活与客户端设备上的签名号92575相关联的不同软件安全产品。
返回图3,在步骤306处,本文所述的***中的一个或多个可基于通过查询关联数据库推断出的其他签名报告,执行至少一个保护动作以保护客户端设备免受与安全事故相关联的安全威胁。例如,作为图2中的服务器206的一部分,执行模块108可基于通过查询数据库120推断出的签名报告212,执行至少一个保护动作以保护计算设备202免受与安全事故相关联的安全威胁。
如本文所用,术语“保护动作”通常是指软件安全产品和/或安全供应商可根据方法300来执行以保护客户端设备免受对应的安全威胁的任何合适的动作。合适的保护动作的示例可包括修改、修正和/或改进安全事故报告(例如,通过修正或补充安全事故报告以包括关于签名报告212的信息);通知用户或管理员;以及/或者自动执行(和/或提示用户或管理员执行)补救动作,诸如更新防病毒签名集,执行一个或多个清理或接种脚本或程序,启用、加强和/或增强一个或多个安全措施、设置和/或特征,以及/或者禁用、隔离、沙箱化和/或关闭一个或多个软件、硬件、虚拟和/或网络计算资源(例如,其中这些保护动作中的一个或多个是对签名报告210和/或签名报告212具体规定和/或定制的)。
执行模块108可以各种方式执行保护动作。一般来讲,执行模块108可通过用从推断签名报告212导出的信息补充或改进安全事故报告来执行保护动作,如上所讨论的。因此,执行模块108可通过以下方式来改进安全事故报告或其他通知的信息质量和数量:用与根据方法300的步骤304推断或推测的“幻像事件”相关联的信息补充安全事故报告。补充信息还可使执行模块108能够执行附加补救动作,诸如上文列出的那些补救动作,所述补救动作被更具体地定制以解决与签名报告212相关联的更具体地识别的安全威胁。
图3的上述讨论提供了对本文所公开的各种***和方法的全面描述。另外,以下讨论提供了关于另外的实施方案的附加细节。
受管理的安全服务提供者(“MSSP”)事故检测具有挑战性,因为每个客户部署一组安全产品。一个特定品牌的防火墙损害指示符可指示端点安全代理在端点安全代理被部署在客户端设备上时始终识别的特定僵尸网络,但是当端点安全代理未被部署时,防火墙损害指示符的含义可能非常不明确,从而导致客户在提供有不完整证据时不采取动作。所公开的***和方法通过进行以下推测来改进客户理解事故的能力:如果假设的端点安全代理或产品在客户端上是可用且活动的,则会触发有用的“幻像事件”(即,来自假设的端点安全代理,该端点安全代理在实际和原始的损害指示符时实际上不存在且不活动)。
通过将缺失事件推测为安全事故的附加情景,所公开的***和方法提供了附加安全代理和产品在许多情况下将递送的情景。一个目标是识别每当两个产品在客户环境中彼此并排部署时,在安全事故场景中由第一安全产品生成的哪些签名强烈暗示存在由第二不同产品生成的特定签名集。当客户在不存在第二产品的情况下部署第一产品,并且第一产品检测到安全事故时,该***和方法可包括第二产品的强烈暗示签名作为“幻像事件”,以便为安全事故提供附加情景。第二产品的暗示签名可以是“强烈暗示的”,从该意义上讲,它们满足与实际触发的第一产品的签名的相关性统计阈值。
存在用于识别幻像事件的多种可能的方法。在一个实施方案中,关联规则挖掘可识别幻像事件。关联规则挖掘可通过识别经常一起出现的频繁签名组(即,根据统计阈值)来进行。在一个实施方案中,当两个产品在特定客户环境中部署在一起时,出于在两个产品之间生成幻象信号的目的,该***和方法计算频繁签名组。一旦识别出跨越两个产品的一组签名,该***和方法便测量来自两个产品的签名之间的规则的支持(例如,根据关联规则挖掘)。该***和方法还可确定对关联规则挖掘规则中的一个或多个的支持(例如,规则应用的时间的比例)。
在一些示例中,该***和方法可选择性地过滤幻像事件,使得仅报告或作用于某些幻像事件。例如,一些幻象事件可比其他幻像事件更能指示安全损害。一般来讲,就信息质量和洞察力而言,一些幻像事件可比其他幻像事件更有价值。该***和方法可通过以下机制来识别更高值的幻像事件:(1)包括手动识别为高严重性或高置信度的幻像事件,(2)确定哪些幻象事件(或事件类型)在与非安全损害情况(即,假阳性)相反的安全损害情况下不成比例地击发,以及(3)使用安全供应商的置信度分数,该置信度分数(根据统计阈值)识别总是或几乎总是与指示真正安全损害的更严重的签名一起出现的签名。
另外,该***和方法可自动填充幻像事件的属性。该***和方法可推测幻像事件的属性。该***和方法还可识别事件类型,诸如与事件相关联的最可能的动作(例如,不阻止、阻止、隔离)。可能推测的附加字段包括涉及的文件、统一资源定位符、互联网协议地址等。在一些示例中,如果可根据统计测量和阈值高度确定地推测出***和方法,则该***和方法将仅包括这些另外的属性。
该***和方法由此帮助受管理的安全服务客户更好地理解受管理的安全服务提供者(和相关联的软件)检测到的签名。该***和方法还增加了客户将对这些检测进行操作的可能性。该***和方法还可用作用以向客户显示他们可能期望从附加安全产品的实际部署(例如,从受管理的安全服务提供者部署)获得什么的机制。
图5是能够实现本文描述和/或例示的实施方案中的一个或多个的示例性计算***510的框图。例如,计算***510的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个(诸如图3所示的步骤中的一个或多个)和/或作为用于执行其的装置。计算***510的全部或一部分也可执行本文描述和/或例示的任何其他步骤、方法或过程和/或作为用于执行其的装置。
计算***510在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或***。计算***510的示例包括但不限于:工作站、笔记本电脑、客户端侧终端、服务器、分布式计算***、手持设备或任何其他计算***或设备。在其最基本的配置中,计算***510可包括至少一个处理器514和***存储器516。
处理器514通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器514可接收来自软件应用程序或模块的指令。这些指令可使处理器514执行本文描述和/或例示的示例性实施方案中的一个或多个的功能。
***存储器516通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。***存储器516的示例包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施方案中,计算***510可包括易失性存储器单元(诸如,例如***存储器516)和非易失性存储设备(诸如,例如主存储设备532,如下详述)两者。在一个示例中,图1的模块102中的一个或多个模块可被加载到***存储器516中。
在某些实施方案中,除处理器514和***存储器516之外,示例性计算***510还可包括一个或多个组件或元件。例如,如图5所示,计算***510可包括存储器控制器518、输入/输出(I/O)控制器520和通信接口522,它们中的每一个都可经由通信基础结构512互连。通信基础结构512通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构512的示例包括但不限于通信总线(诸如工业标准体系结构(ISA)、***组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器518通常表示能够处理存储器或数据或者控制计算***510的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器518可经由通信基础结构512来控制处理器514、***存储器516和I/O控制器520之间的通信。
I/O控制器520通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器520可控制或促进计算***510的一个或多个元件之间的数据传输,这些元件是诸如处理器514、***存储器516、通信接口522、显示适配器526、输入接口530和存储接口534。
通信接口522在广义上表示能够促进示例性计算***510与一个或多个另外设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口522可促进计算***510与包括另外计算***的专用或公共网络之间的通信。通信接口522的示例包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口522可经由与网络,诸如互联网的直接链接来提供与远程服务器的直接连接。通信接口522也可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。
在某些实施方案中,通信接口522还可表示主机适配器,该主机适配器被配置为经由外部总线或通信信道来促进计算***510与一个或多个另外网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机***接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可允许计算***510参与分布式或远程计算。例如,通信接口522可接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图5所示,计算***510也可包括至少一个显示设备524,该显示设备经由显示适配器526联接到通信基础结构512。显示设备524通常表示能够以可视方式显示由显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526通常表示被配置为转发来自通信基础结构512(或来自帧缓冲器,如本领域中已知)的图形、文本和其他数据以在显示设备524上显示的任何类型或形式的设备。
如图5所示,示例性计算***510还可包括经由输入接口530联接到通信基础结构512的至少一个输入设备528。输入设备528通常表示能够向示例性计算***510提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备528的示例包括但不限于键盘、指示设备、语音识别设备或任何其他输入设备。
如图5所示,示例性计算***510还可包括主存储设备532和经由存储接口534联接到通信基础结构512的备份存储设备533。存储设备532和533通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口534通常表示用于在存储设备532和533与计算***510的其他组件之间传输数据的任何类型或形式的接口或设备。在一个示例中,图1的数据库120可存储在主要存储设备532中。
在某些实施方案中,存储设备532和533可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备532和533还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算***510内的其他类似结构或设备。例如,存储设备532和533可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备532和533还可为计算***510的一部分,或者可为通过其他接口***进行访问的独立设备。
可将许多其他设备或子***连接到计算***510。相反地,无需图5中示出的所有组件和设备都存在,亦可实践本文描述和/或例示的实施方案。上文提及的设备和子***也可以不同于图5所示的方式互连。计算***510也可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施方案可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括但不限于传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,例如,硬盘驱动器、带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配***。
可将包含计算机程序的计算机可读介质加载到计算***510中。然后可将计算机可读介质上存储的全部或一部分计算机程序存储在***存储器516和/或存储设备532和533的各个部分中。当由处理器514执行时,加载到计算***510中的计算机程序可使处理器514执行本文描述和/或例示的示例性实施方案中的一个或多个的功能和/或作为用于执行其的装置。除此之外或另选地,可在固件和/或硬件中实现本文描述和/或例示的示例性实施方案中的一者或多者。例如,计算***510可被配置为适于实现本文所公开的示例性实施方案中的一个或多个的专用集成电路(ASIC)。
图6为示例性网络体系结构600的框图,其中客户端***610、620和630以及服务器640和645可联接到网络650。如上所详述,网络体系结构600的全部或一部分可单独地或与其他元件结合来执行本文所公开的步骤中的一个或多个(诸如图3所示的步骤中的一个或多个)和/或作为用于执行其的装置。网络体系结构600的全部或一部分还可用于执行本公开中阐述的其他步骤和特征和/或作为用于执行其的装置。
客户端***610、620和630通常表示任何类型或形式的计算设备或***,诸如图5中的示例性计算***510。类似地,服务器640和645通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或***,诸如应用程序服务器或数据库服务器。网络650通常表示任何电信或计算机网络包括,例如,内联网、WAN、LAN、PAN或互连网。在一个示例中,客户端***610、620和/或630和/或服务器640和/或645可包括图1的***100的全部或一部分。
如图6所示,一个或多个存储设备660(1)-(N)可直接附接到服务器640。类似地,一个或多个存储设备670(1)-(N)可直接附接到服务器645。存储设备660(1)-(N)和存储设备670(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备660(1)-(N)和存储设备670(1)-(N)可表示被配置为使用各种协议(诸如网络文件***(NFS)、服务器消息块(SMB)或通用互联网文件***(CIFS))与服务器640和645进行通信的网络附接存储(NAS)设备。
服务器640和645也可连接到存储区域网络(SAN)架构680。SAN架构680通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构680可促进服务器640和645与多个存储设备690(1)-(N)和/或智能存储阵列695之间的通信。SAN架构680还可通过网络650以及服务器640和645以这样的方式促进客户端***610、620和630与存储设备690(1)-(N)和/或智能存储阵列695之间的通信:设备690(1)-(N)和阵列695呈现为客户端***610、620和630的本地附接设备。与存储设备660(1)-(N)和存储设备670(1)-(N)相同,存储设备690(1)-(N)和智能存储阵列695通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方案中,并参照图5的示例性计算***510,通信接口(诸如图5中的通信接口522)可用于在每个客户端***610、620和630与网络650之间提供连接性。客户端***610、620和630可能能够使用例如网页浏览器或其他客户端软件来访问服务器640或645上的信息。此类软件可允许客户端***610、620和630访问由服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)或智能存储阵列695托管的数据。尽管图6示出了使用网络(诸如互联网)来交换数据,但本文描述和/或例示的实施方案并非仅限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,本文所公开的一个或多个示例性实施方案中的全部或一部分可被编码为计算机程序并加载到服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、智能存储阵列695或它们的任意组合上并由其加以执行。本文所公开的一个或多个示例性实施方案中的全部或一部分也可被编码为计算机程序,存储在服务器640中,由服务器645运行,以及通过网络650分配到客户端***610、620和630。
如上所详述,计算***510和/或网络体系结构600的一个或多个组件可单独地或与其他元件结合来执行用于检测安全威胁的示例性方法的一个或多个步骤和/或作为用于执行其的装置。
虽然上述公开内容使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或例示的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。
在一些示例中,图1中的示例性***100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性***100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算***(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作***、处理***和/或存储***。本文所述模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性***100的全部或一部分可在虚拟环境内实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,虚拟机监控程序)从计算硬件中抽象出来的任何操作***环境。除此之外或另选地,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作***环境和/或从操作***环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件***过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作***的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件***和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些示例中,图1中的示例性***100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,包括例如对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位***、陀螺仪、加速度计等提供的)位置和移动数据、限制对***级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序)等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
此外,图1中的示例性***100的全部或一部分可表示一个或多个信息管理***的部分,与一个或多个信息管理***交互,使用由一个或多个信息管理***产生的数据和/或产生被一个或多个信息管理***使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理***的示例可包括但不限于:存储***、备份***、存档***、复制***、高可用性***、数据搜索***、虚拟化***等。
在一些实施方案中,图1中的示例性***100的全部或一部分可表示一个或多个信息安全***的部分,产生受一个或多个信息安全***保护的数据和/或与一个或多个信息安全***通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全***的示例可包括但不限于提供受管理的安全服务的***、数据丢失防护***、身份认证***、访问控制***、加密***、策略遵循***、入侵检测与防护***、电子发现***等等。
根据一些示例,图1中的示例性***100的全部或一部分可表示一个或多个端点安全***的部分、与一个或多个端点安全***通信和/或受一个或多个端点安全***保护。如本文所用,术语“端点安全”可指保护端点***免遭未经授权和/或非法使用、访问和/或控制。端点保护***的示例可包括但不限于反恶意软件***、用户认证***、加密***、保密***、垃圾邮件过滤服务,等等。
本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或例示的各种示例性方法也可省略本文描述或例示的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外步骤。
虽然在全功能计算***的背景中描述和/或例示了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不顾及用于实际执行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算***中的其他可执行文件。在一些实施方案中,这些软件模块可将计算***配置为执行本文所公开的示例性实施方案中的一个或多个。
此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。除此之外或另选地,本文所述模块中的一个或多个可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“...中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。