本技术涉及因特网安全的系统和方法。具体地,本方法允许服务基础设施在服务基础设施处预测和检测潜在异常。
背景技术:
:数据中心和云基础设施集成了许多服务器,以向大量客户端提供相互托管服务。数据中心可以包括数十万的服务器并且为其客户端托管数百万个域。在这些服务器中,文件传输协议(ftp)服务器用于从客户端传输数据、软件和其他信息元素,以存储在基础设施上。一般而言,域与ftp服务器相关联,尽管给定的ftp服务器可以服务多于一个域,这取决于该服务器的容量。尽管非常有用,但是文件传输协议具有已知的安全问题。数据中心和云基础设施例如经常是滥用错误地安装在这些系统托管的域上并且导致垃圾邮件、侵犯版权或网络钓鱼的恶意软件的受害者。尽管不是恶意软件进入数据中心的唯一入口,但是恶意第三方有时会使用ftp服务器在托管的域上安装恶意软件。防止滥用基础设施的一个特殊困难与以下事实有关:通常不允许数据中心操作者检查在ftp服务器上接收到的客户端数据的内容。除了没有与基础设施所有者建立关系的第三方进行的滥用外,还发现数据中心的某些客户端正试图利用ftp安全缺陷来访问基础设施的超出其合法内容或空间的部分。在基础设施上安装恶意软件后,可能会造成重大损失。例如,当第三方在合法客户端的域中安装了恶意软件时,该恶意软件可能会例如通过发送垃圾邮件导致异常。这样的异常有时会被基础设施外部的其他实例检测到。这些其他实例可能会在内部将该合法客户端列入黑名单,从而使该合法客户端丧失某些服务。甚至糟糕的是,客户端通常购买一定范围的连续ip地址。可能会将合法客户端列入黑名单的实例实际上可能会阻挡整个ip地址范围。除了滥用之外,其他类型的异常也可能影响数据中心和云基础设施的操作。可能发生和检测到的异常类型包括但不限于操作系统崩溃、诸如服务器或路由器的硬件部件故障等。对基础设施设备上的活动日志进行解析,以尝试识别过去的滥用并且建立恶意软件数据库。然而,不存在允许自动检测以下信号的解决方案,这些信号是基础设施上托管的域的异常的先兆。事实上,认为以足够快的速度实际检测到少数异常,特别是少数滥用,以及时采取纠正措施。另一有关问题是,阻挡与恶意软件有关的长期信息不一定是可行的解决方案。例如,恶意方可能会获取ip地址并将其用于安装恶意软件。然后,恶意方可以释放该ip地址,该ip地址以后可以由合法方获取。永久阻挡该ip地址可能会剥夺合法方的服务。尽管上面述及的近期发展可以提供益处,但仍然需要改进。
背景技术:
部分中讨论的主题不应该仅因为在
背景技术:
部分中提及而被视为现有技术。类似地,在
背景技术:
部分中提及的或与
背景技术:
部分的主题相关联的问题不应被视为先前已在现有技术中认识到。
背景技术:
部分中的主题仅表示不同的方法。技术实现要素:基于开发人员对与现有技术相关联的缺点的认识,开发出本技术的实施方式。特别地,这样的缺点可能包括难以识别可能影响服务基础设施的异常(包括滥用)的原因以及由于发现异常的延迟而无法及时采取纠正措施。在一个方面中,本技术的各种实现方式提供了一种在服务基础设施处检测潜在异常的方法,包括:访问串表,该串表的每个相应条目定义相应字符串和该字符串的相应异常概率;在服务基础设施的数据库中生成与在服务基础设施中发生的事件有关的日志条目,该日志条目包括指定文件名和ip地址中之一的字符串,该日志条目包括由服务基础设施托管的域名;在串表中搜索该字符串;以及如果在串表中找到该字符串并且如果与该字符串对应的异常概率超过预定阈值,则将域名标记为可疑。在本技术的一些实现方式中,该方法还包括:填充域表,该域表的每个给定条目包含:给定域名、在关注的时间帧中与给定域名相关联的给定字符串、以及与将给定域与给定字符串相关联的所有日志条目中的最新关联时间对应的给定关联时间。在本技术的一些实现方式中,填充域表包括:对数据库中的多个日志条目进行解析,以从每个日志条目中提取相应域名、相应字符串和相应关联时间。在本技术的一些实现方式中,串表的每个相应条目还定义:(i)与相应字符串相关联并且在关注的时间帧中存在异常的域的相应数目;以及(ii)与相应字符串相关联并且在关注的时间帧中不存在异常的域的相应数目。在本技术的一些实现方式中,该方法还包括:在服务基础设施处,确定在与受影响域有关的检测时间处发生了异常;访问异常表,该异常表的每个条目包括在关注的时间帧中已经检测到异常的域的名称以及对应异常时间;如果针对受影响域存在异常表条目,则用检测时间更新异常表条目中的对应异常时间;并且如果针对受影响域不存在异常表条目,则:为受影响域创建新的异常表条目,该新的异常表条目包括受影响域的名称和检测时间,从域表中提取与受影响域相关联的字符串列表;针对与受影响域相关联的字符串列表中的每个字符串,在串表中使与该字符串相关联并且在关注的时间帧中存在异常的域的数目递增,并且针对与受影响域相关联的字符串列表中的每个字符串,在串表中使与该字符串相关联并且在关注的时间帧中不存在异常的域的数目递减。在本技术的一些实现方式中,该方法还包括:定期更新关注的时间帧,使得其从过去的预定持续时间延伸直到当前时间;以及在更新关注的时间帧之后:删除域表中的、关联时间早于关注的时间帧的条目,删除异常表中的、异常时间早于关注的时间帧的条目,并且根据更新后的关注的时间帧重新填充串表。在本技术的一些实现方式中,根据更新后的关注的时间帧重新填充串表包括:针对域表的每个已删除条目:如果异常表的、针对存在于域表的已删除条目中的域名的条目指示针对该域名在关注的时间帧中发现异常,则在串表中使与存在于已删除条目中的字符串相关联并且在关注的时间帧中存在异常的域的数目递减,如果异常表中没有针对存在于域表的已删除条目中的域名的条目,则在串表中使与存在于已删除条目中的字符串相关联并且在关注的时间帧中不存在异常的域的数目递减;以及扫描域表以查找包含从异常表的每个已删除条目中提取的域名的条目;以及针对域表的每个所查找条目的所查找字符串:在串表中使与存在于域表的已删除条目中的所查找字符串相关联并且在关注的时间帧中存在异常的域的数目递减,并且在串表中使与存在于域表的已删除条目中的所查找字符串相关联并且在关注的时间帧中不存在异常的域的数目递增。在本技术的一些实现方式中,该方法还包括:针对串表的每个相应条目,基于以下四者来计算相应异常概率:(i)与相应字符串相关联并且在关注的时间帧中不存在异常的域的相应数目,(ii)与相应字符串相关联并且在关注的时间帧中存在异常的域的相应数目,(iii)异常表中列出的域的数目,以及(iv)由服务基础设施托管的域的总数目。在本技术的一些实现方式中,通过将贝叶斯滤波器应用于以下四者来计算每个相应异常概率:(i)与相应字符串相关联并且在关注的时间帧中不存在异常的域的相应数目;(ii)与相应字符串相关联并且在关注的时间帧中存在异常的域的相应数目;(iii)异常表中列出的域的数目;以及(iv)由服务基础设施托管的域的总数目。在本技术的一些实现方式中,该方法还包括通过以下方式计算服务基础设施的、与域表中的域名中的一个域名有关的异常的聚合概率:计算与域名中的所述一个域名有关的字符串的异常概率中的每一个的对数;以及对与域名中的所述一个域名有关的字符串的异常概率中的每一个的对数进行组合。在本技术的一些实现方式中,该方法还包括通过以下方式计算服务基础设施的、与域表中的域名中的一个域名有关的异常的聚合概率:针对具有最大异常概率的、与域名中的所述一个域名有关的字符串的第一子集,计算所述服务基础设施的在域名中的所述一个域名上的异常的第一聚合概率;针对具有最小异常概率的、与域名中的所述一个域名有关的字符串的第二子集,计算所述服务基础设施的在域名中的所述一个域名上的异常的第二聚合概率;以及对第一聚合概率和第二聚合概率进行组合。在本技术的一些实现方式中,如果服务基础设施的与存在于所生成的日志条目中的域名有关的异常的聚合概率低于预定阈值,则将该域名无条件地标记为不可疑。在本技术的一些实现方式中,该方法还包括在将域名标记为可疑之后,执行选自包括以下的组的动作:丢弃与日志条目的生成有关的接收到的数据分组,向与域名有关的客户端发送消息,在服务基础设施上提供警报,阻挡与域名有关的所有数据业务,及其组合。在其他方面中,本技术的各种实现方式提供了一种在服务基础设施处预测潜在异常的方法,包括:定义串表,该串表的每个相应条目定义:(i)相应字符串,(ii)由服务基础设施托管的、与相应字符串相关联并且在关注的时间帧中存在异常的域的相应数目,(iii)由服务基础设施托管的、与相应字符串相关联并且在关注的时间帧中不存在异常的域的相应数目,以及(iv)该字符串的相应异常概率;在服务基础设施的数据库中生成多个日志条目,每个日志条目与在服务基础设施中发生的事件有关,每个日志条目将指定文件名和ip地址中之一的字符串与由服务基础设施托管的域名相关联,每个日志条目还记录特定的关联时间;对所述多个日志条目进行解析以填充域表,该域表的每个给定条目包含给定域名、在关注的时间帧中与给定域名相关联的给定字符串、以及与将给定域与给定字符串相关联的所有日志条目中的最新关联时间相对应的给定关联时间;在服务基础设施处检测在与受影响域有关的检测时间处发生的异常;访问异常表,该异常表的每个条目包括在关注的时间帧中已经检测到异常的域的名称以及对应异常时间;如果针对受影响域存在异常表条目,则用检测时间更新异常表条目中的对应异常时间;并且如果针对受影响域不存在异常表条目,则:为受影响域创建新的异常表条目,该新的异常表条目包括受影响域的名称和检测时间,从域表中提取与受影响域相关联的字符串列表,针对与受影响域相关联的字符串列表中的每个字符串,在串表中使与字符串相关联并且在关注的时间帧中存在异常的域的数目递增,并且针对与受影响域相关联的字符串列表中的每个字符串,在串表中使与该字符串相关联并且在关注的时间帧中不存在异常的域的数目递减。在其他方面中,本技术的各种实现方式提供了一种服务基础设施,包括:服务器,其被配置成接收来自客户端的数据分组和/或命令;数据库,其被配置成存储多个日志条目,日志的每个相应日志条目包括与相应域名相关联的相应字符串;处理器;以及存储器装置,其包括在其上存储可执行代码的非暂态计算机可读介质,可执行代码包括用于当可执行代码在处理器上运行时执行在服务基础设施处检测潜在异常的方法和/或在服务基础设施处预测潜在异常的方法的指令。在本说明书的上下文中,除非另有明确规定,否则计算机系统可以指代但不限于“电子装置”、“操作系统”、“系统”、“基于计算机的系统”、“控制器单元”、“监测装置”、“控制装置”以及/或者适合于当前相关任务的其任何组合。在本说明书的上下文中,除非另有明确说明,否则表述“计算机可读介质”和“存储器”旨在包括任何性质和种类的介质,该介质的非限制性示例包括ram、rom、磁盘(cd-rom、dvd、软盘、硬盘驱动器等)、usb密钥、闪存卡、固态驱动器和磁带驱动器。仍然在本说明书的上下文中,“一种”计算机可读介质和“该”计算机可读介质不应被解释为是相同的计算机可读介质。相反,在任何合适的时候,“一种”计算机可读介质和“该”计算机可读介质也可以被解释为第一计算机可读介质和第二计算机可读介质。在本说明书的上下文中,除非另有明确规定,否则词语“第一”、“第二”、“第三”等已被用作形容词,仅出于能够相互区分它们修饰的名词的目的,而不是出于描述这些名词之间的任何特定关系的目的。本技术的实现方式各自具有上述目的和/或方面中的至少一者,但不一定具有所有这些目的和/或方面。应当理解,由于试图获得上面提及的目的而得到的本技术的一些方面可能不满足该目的和/或可能满足本文未明确提及的其他目的。根据以下描述、附图和所附权利要求书,本技术的实现方式的附加和/或替选特征、方面和优点将变得明显。附图说明为了更好地理解本技术及其其他方面和另外的特征,参考以下结合附图使用的描述,在附图中:图1示出了根据本技术的实施方式的服务基础设施;图2是示出根据本技术的实施方式在服务基础设施处检测潜在异常的方法的操作的顺序图;图3a和图3b是示出根据本技术的实施方式记录关于在服务基础设施中的检测到的异常的信息的方法的操作的顺序图;图4a和图4b是示出根据本技术的实施方式更新服务基础设施的关注的时间帧的方法的操作的顺序图;图5是示出根据本技术的实施方式用于计算服务基础设施的异常的聚合概率的第一方法的操作的顺序图;图6是示出根据本技术的实施方式用于计算服务基础设施的异常的聚合概率的第二方法的操作的顺序图;以及图7是根据本技术的实施方式概述多个托管域的异常概率的操作者显示器的简化图示。还应注意,除非本文另有明确说明,否则附图未按比例进行绘制。具体实施方式本文中提及的示例和条件语言主要旨在帮助读者理解本技术的原理,而不是将本技术的范围限制于如此具体引用的示例和条件。将理解的是,本领域技术人员可以设计各种布置,这些布置尽管未在本文中明确地描述或示出,但是仍实施了本技术的原理并且包括在本技术的精神和范围内。此外,为了帮助理解,以下描述可以描述本技术的相对简化的实现方式。正如本领域技术人员将理解的,本技术的各种实现方式可以具有更大的复杂度。在某些情况下,也可以提出被认为是对本技术的有益的修改示例。这样做仅仅是为了帮助理解,再次强调,而不是为了限定本技术的范围或阐述本技术的界限。这些修改并非是详尽的罗列,并且本领域技术人员可以进行其他但仍然在本技术的范围内的修改。此外,在没有提出修改示例的情况下,其不应被解释为不能进行修改和/或所描述的内容是实现本技术的该要素的唯一方式。此外,本文中叙述本技术的原理、方面和实现方式的所有陈述,以及其具体示例,都旨在包括其结构上和功能上的等同方案,无论它们是目前已知的还是将来开发的。因此,例如,本领域技术人员应当认识到,本文中的任何框图表示体现本技术的原理的说明性电路的概念视图。类似地,将理解的是,任何流程图、流图、状态转移图、伪代码等表示可以基本上在计算机可读介质中表示并且因此由计算机或处理器执行的各种过程,无论这样的计算机或处理器是否明确地示出。可以通过使用专用硬件以及能够与适当的软件相关联地执行软件的硬件来提供附图中示出的各种元件的功能,包括标记为“处理器”的任何功能块。在由处理器提供时,可以由单个专用处理器、由单个共享处理器或由多个单独的处理器(其中一些处理器可以是共享的)来提供功能。在本技术的一些实施方式中,处理器可以是通用处理器例如中央处理单元(cpu)或专用于特定目的的处理器例如数字信号处理器(dsp)。此外,术语“处理器”的明确使用不应被解释为排外地指能够执行软件的硬件,并且可以隐含地非限制性地包括专用集成电路(asic)、现场可编程门阵列(fpga)、用于存储软件的只读存储器(rom)、随机存取存储器(ram)和非易失性存储装置。还可以包括传统和/或定制的其他硬件。软件模块(或者仅被暗示为软件的模块)在本文中可以被表示为流程图要素或指示过程步骤和/或文本描述的性能的其他要素的任何组合。这些模块可以由被明确地或隐含地示出的硬件来执行。此外,应当理解,模块可以包括例如但不限于提供所需能力的计算机程序逻辑、计算机程序指令、软件、堆栈、固件、硬件电路或其组合。通过适当利用这些基本原理,现在将考虑一些非限制性示例来说明本技术的各方面的各种实现方式。本技术解决了由于缺乏自动检测在服务基础设施异常之前的信号的先前解决方案而引起的一些问题。引入了一种技术,通过该技术,设备日志(例如文件传输协议(ftp)服务器日志)存储在服务基础设施中,并且被定期维护以涵盖关注的时间帧,例如直到现在一(1)个月的时间段。日志可以包含例如标识文件名或ip地址的字符串。进行分析以评估异常的概率。当在表中找到与当前事件(例如,从客户端或从冒充客户端的恶意方接收到数据分组或命令)有关的字符串时,怀疑存在异常,该字符串被标记为与诸如由服务基础设施托管的域的滥用的异常有关。除非另外说明,在一方面中,当这些数据分组或命令中的一些可以与最近发生的异常有关时,本技术可以依赖于在服务基础设施处接收到的数据分组或命令之间的相似性。因此,该技术包括允许随时间使异常模式关联的学习功能。特别地,代替搜索异常的特定原因,例如恶意软件或故障路由器,本技术试图识别最近与异常相关联的用户,该用户是通过从这些用户接收到的数据分组或命令中包含的ip地址或文件名来识别的。服务基础设施的操作者或外部参与者输入的潜在合法但错误的命令也可能导致本技术可能检测到的异常。尽管本文提供的示例提到了数据分组和命令,但是可以评估导致服务基础设施中日志生成的其他类型事件的异常概率。提及数据分组和命令是出于说明的目的,并不意味着降低本公开内容的一般性。认为最终会检测到少数滥用,或者以足够快的速度检测到少数滥用以及时采取纠正措施。本技术提供的学习功能允许扩展异常搜索的范围并快速检测潜在的异常事件。在本技术的一个方面中,可以使用贝叶斯滤波器来计算异常的概率。尽管可能会发生对异常的误报检测,但是贝叶斯滤波器考虑了给定字符串可能合法出现的概率。当合法用户的域或ip地址被第三方使用时,自动阻挡域或ip地址可能导致阻挡合法用户。在某些地区,出于法律原因,这可能是不可能的,并且在任何情况下这都可能破坏基础设施所有者与客户端之间的关系。因此,在实施方式中,可以在操作者接口上提供有关可疑异常的信息,而不是自动阻挡域或ip地址,或者可以在自动阻挡域或ip地址之前在操作者接口上提供有关可疑异常的信息。无论如何,本技术的确包含了将实体阻挡在异常根源处的可能性作为可选特征。图1示出了根据本技术的实施方式的服务基础设施100。服务基础设施100包括向客户端120提供服务的大量服务器110(为了简化图示示出了仅一个)例如ftp服务器。服务器110是客户端120的域的托管方。服务器110生成日志,日志存储在数据库130中。服务基础设施100的其他部件包括解析器140、检测器150、用户接口160、信令接口170和阻挡器180。解析器140可以解析在数据库130中存储的日志并且生成在数据库130中存储的结果表。检测器150检测异常,或者由外部检测系统190内部地通知。检测器使用由解析器140在数据库130中存储的表来计算在数据库130的另一表中存储的异常概率。检测器150还被通知在服务器110处从客户端120接收的数据分组和命令例如ftp命令。检测器150鉴于接收到的数据分组或命令中的可疑信息来识别可能被视为可疑的域。用户接口160允许检测器150与服务基础设施100的操作者之间的通信。信令接口170允许检测器150与客户端120以及与外部检测系统190进行通信。更详细地,数据库130针对每个服务器110存储包含关于服务器110的各种事件和活动的信息的日志。这样的事件和活动的示例包括在服务器110处接收的命令、在服务器110处进行的计算等。当在服务器110处接收到来自客户端120的数据分组或命令时,或者当在关注的时间帧发生其他事件时,一些日志条目被生成。例如,日志条目可以以纯文本格式存储。对于在服务基础设施100处接收到的每个数据分组或命令,日志中的条目可以包含:日期或事件的日期和时间、由作为命令或数据分组的预期接收者的服务基础设施100托管的域、表示接收的数据分组或命令中包括的文件名的字符串(或简称为“串”)和/或表示接收的数据分组或命令中包括的ip地址的字符串。以上提及的表包括由解析器140生成并且在数据库130中存储的“域表”,“域表”提供关于与下述数据分组或命令中的文件名或ip地址有关的字符串的出现的信息,所述数据分组或命令在关注的时间帧期间(例如,在从一个月前延伸直至当前时间的时间段)在由服务基础设施100托管的域处被接收到。例如,可以通过解析服务于由服务基础设施100托管的域的服务器例如ftp服务器的日志来填充域表。在服务基础设施100处理数据业务和命令时,可以替选地实时更新域表。在表i中示出了域表的示例。表i域名串串的最后出现的日期域1string_a2018年8月26日域1string_b2018年9月11日域1string_c2018年9月22日域2string_c2018年9月25日域2string_d2018年9月20日域3string_f2018年9月25日域4string_b2018年9月14日表i反映了2018年9月25日域表的内容。如表i所示,域表包含与日志中找到的各种串的出现有关的信息。域表的每个条目(每行)包括三(3)个有关字段。第一字段包含域名,并且第二字段包含字符串,域和串在日志的公共条目中被找到。在示出的示例中,第三字段包含可以被表示为该域上的“串的最后出现的日期”的时间值。时间值可以以其他方式被表示为自该串在该域上最后出现以来的天数,在这种情况下,每个条目均有规律地递增,例如每天递增一(1)天,使得自串的最后出现以来的时间被正确地反映。如果日志中的多个条目包括由域名和字符串形成的对,则使用这些条目中的最新条目来填充域表的该条目中的“串的最后出现的日期”字段。尽管表i上示出了仅几行,但是在实际应用中,域的数目将大得多,例如数百或数千或数百万个域,并且串的数目将在例如数百万个甚至数十亿个串的数量级上。在实施方式中,使用域名作为主要搜索关键字对在域表中的相关信息进行搜索。从域表中删除早于与关注的时间帧对应的预定天数的条目。例如但不限于,可以选择预定天数以用于删除早于30天的条目。从域表中删除在时间帧限制需要保持的条目总数期间在日志中与给定域无关的串的条目。可以考虑生成异常的黑客经常修改其ip地址和文件名以试图绕过常规的互联网安全解决方案来设置时间帧的持续时间。设想使用与较长或较短的时间帧对应的较长或较短的间隔来从域表中删除条目。尽管可以以天表示时间帧的持续时间,但是可以以较高的速率(例如,每几分钟一次)执行检查域表以删除不再有效的条目,以随时间推移分散与删除操作有关的处理负荷。表ii是由检测器150生成并且在数据库130中存储的“异常表”的示例。表ii域名最后异常的日期域12018年9月15日域22018年9月25日域42018年8月26日域52018年9月3日表ii反映了2018年9月25日异常表的内容。异常表的每个条目(每行)包含域名字段和“最后异常的日期”字段。在变型中,给定域上最后异常的时间(即,小时)也可以被插入“最后异常的日期”字段中。在另一变型中,该字段可以指示自针对给定域检测到异常以来的天数。在表ii的示例中,服务基础设施100服务于名为“域1”、“域2”、“域3”、“域4”和“域5”的五(5)个域。异常表中不存在针对“域3”的条目,因为在关注的时间帧中不存在与该域有关的异常。作为后台操作,可以定期地(例如每天一次)从异常表中删除早于时间帧的条目。如在域表的情况下那样,异常表中的条目的数目在实际应用中将大得多,异常表具有数百、数千或数百万个域的条目。即使在托管数百万个域的大型数据中心中,异常表与其他表相比也相当小,并且对最近被发现为异常的域的搜索预计在几毫秒内完成。在异常表中,条目的数目表示在时间帧中已检测到异常的域的数目。可以基于对服务基础设施100中托管的域的总数的了解来推论无异常的域的数目。作为替选方案,异常表可以包含由服务基础设施100托管的每个域的条目,在这种情况下,给定域的“最后异常的数据”字段将设置成null值,以指示在时间帧内没有异常与该给定域相关联。表iii是由检测器150生成并且在数据库130中存储的“串表”。表iii串无异常域的存在有异常域的存在p′(a|stri)string_a106580.935string_b58220.905string_c45170.893string_d140.882string_e50150.871string_f100.000表iii反映了2018年9月25日串表的内容。串表的每个条目(每行)包括:提供串名的第一字段、示出服务基础设施100中托管的、其中该串已被检测为接收的数据分组或命令的一部分并且其中在时间帧期间不存在异常的域的数目的第二字段、示出其中该串已被检测为接收的数据分组或命令的一部分并且其中在时间帧期间存在异常的域的数目的第三字段、以及在服务基础设施100上可能出现异常的概率p′(a|stri),假定表示文件名或ip地址的字符串stri在关注的时间帧中已与在服务基础设施100上托管的至少一个域相关联。在下文中描述了计算值p′(a|stri)的方式。串表中的条目的数目在实际应用中将大得多,串表具有多至数十亿个串的条目。串表由字符串而不是创建日期来索引。这样,通过适度的处理工作即可快速进行对特定串的搜索。域表的内容可以由解析器140按以下方式更新。解析器140定期地(例如但不限于,每天一次、每小时一次)或者甚至连续地并且实际上实时地解析日志。针对域名与串(即,ip地址或文件名)之间的每个关联,解析器140更新域表的对应条目,或者如果域表中先前不存在则创建条目。给定条目的“串的最后出现的日期”字段被设置成在日志中存储的实际日期;如果针对相同域名和相同串找到多于一个日志条目,则将这些日志条目中最近日志条目的日期放置在域表的对应条目中。当解析器140检测到不是串表的先前一部分的新字符串时,解析器140在域表中创建新条目以将新字符串与有关于该字符串的域名相关联,还在该新条目中添加关联时间。解析器140还在串表中创建新条目。在该条目中,“无异常域的存在”字段最初被设置成一(1),“有异常域的存在”字段最初被设置成零(0),并且概率p′(a|stri)最初被设置成零(0)。日志的解析可以以快速的速率进行以检测在服务基础设施100上出现的新字符串,并且以较低的速率(例如每天一次)进行以删除域表的不再在关注的时间帧内的条目。相同文件名可能导致生成多个条目。作为非限制性示例,日志可能示出请求将图像存储在域的文件夹中的‘put’ftp命令被接收。ftp命令可以读取如下:putmy_image.jpg/www/img/my_nicest_pics/my_image.jpg。该命令请求将具有扩展名‘jpg’的文件名为‘my_image’的图像放置在put命令的发行者所拥有的域的路径‘/www/img’内的名为‘my_nicest_pics’的文件夹中。‘www’、‘img’、‘my_nicest_pics’、‘my_image.jpg’和‘my_image’中的每个均可以构成针对其在域表中放置不同条目的不同串,针对托管文件夹/www/img/my_nicest_pics/的相同域,域表的这些条目中的每个条目在“串的最后出现的日期”字段中具有相同值。可以鉴于限制相似串的数目对put命令的内容进行一些修改,例如,用小写字母代替大写字母、用单个空格代替连续空格等。继续该示例,如果在2018年9月25日收到put命令,则用在“串的最后出现的日期”字段中的该日期填充所有条目。如果针对相同域在次日收到请求同一文件夹中‘my_photograph.jpg’条目的类似命令,则在域表中针对‘my_photograph.jpg’和‘my_photograph’创建新条目,这些条目的日期为2018年9月26日。现在‘www’、‘img’、‘my_nicest_pics’的条目的日期为2018年9月26日。‘my_image.jpg’和‘my_image’的条目的日期仍为2018年9月25日。服务基础设施100的实体可以实时检测异常,服务基础设施100的实体从以下接收关于该异常的信息:经由用户接口160从操作者接收、从检测到异常的客户端120接收、从在检测器150中实现的批处理接收、或经由信令接口170从与检测器150进行通信的检测系统190接收。无论以何种方式检测到异常,均由检测器150更新表ii和表iii的内容以考虑新异常。参照表i、表ii和表iii,在非限制性示例中,检测到2018年9月25日出现的异常,异常涉及域2。检查异常表以确定是否针对域2存在条目。如果条目存在,则“最后异常的日期”字段将被更新为2018年9月25日,而无需采取其他动作。如果异常表不具有针对域2的条目,则在异常表中针对域2创建新条目。然后,通过以下更新串表:(i)在域表中搜索与域2有关的所有串(在本示例中,域2与string_c和string_d有关),(ii)在串表中使string_c和string_d中的每个的“无异常域的存在”递减,以及(iii)在串表中使string_c和string_d中的每个的“有异常域的存在”递增。尽管不需要,但string_c和string_d的值p′(a|stri)可以在此时可选地进行更新。在另一非限制性示例中,发现string_f在2018年9月25日与域3相关联。string_f是域表和串表中先前不存在的新串,这意味着string_f在时间帧期间没有出现在服务基础设施100上。在域表中为域3和string_f创建新条目。还在串表中为string_f创建新条目。假定异常表示出在时间帧期间在域3上不存在异常,则string_f的“无异常域的存在”被设置成一(1),并且“有异常域的存在”被设置成零(0)。这反映了string_f仅与域3有关,并且在时间帧期间在域3中没有检测到异常。在string_f已与域表中的域3相关联的情况下,则唯一的动作是将该条目的日期更新为2018年9月25日。在另一非限制性示例中,在2018年9月26日扫描域表,并且发现string_a在2018年8月26日之后或31天前未与域1相关联。在本示例中,与域1相关联的string_a的最后出现超过了与时间帧对应的30天的预定天数。域1和string_a的条目从域表中被删除。异常表示出了最近在2018年9月15日在域1上检测到异常。string_a不再与域1相关联,现在string_a与其中检测到异常的一个更少的域相关联。因此,string_a的“有异常域的存在”递减一(1)。在时间帧内在域1上未检测到异常的情况下,则反而string_a的“无异常域的存在”将递减一(1)。继续在2018年9月26日发生的上述非限制性示例,扫描异常表,并且发现自2018年8月26日或31天前在域4上未发现异常,这在本示例中超过了与时间帧对应的30天的预定天数。域4的条目从异常表中被删除。扫描域表,并且注意到string_b在2018年9月14日与域4相关联,这比域4上的最后异常之后的30天的预定天数短。在串表中,直至目前,string_b的“有异常域的存在”反映了在域4上发现异常的时间段内在域4上存在string_b。现在展示了2018年9月14日域4上string_b的存在与2018年8月26日之后的任何异常均无关。假定在时间帧中在域4中未检测到异常,现在string_b与其中存在异常的一个更少域有关。因此,string_b的“有异常域的存在”递减一(1),并且“无异常域的存在”递增一(1)。对域表中与域4有关的所有串以及在时间帧中可能示出无异常的异常表的所有域重复该处理。返回其中发现string_f在2018年9月25日与域3相关联的以上示例,在接下来的30天内没有收到针对任何域的携载string_f的其他数据分组或命令的情况下,连接域4与string_f的条目将在2018年10月25日从域表中被删除。同时,string_f的条目将从串表中被删除,因为否则“无异常域的存在”将递减为零(0),并且“有异常域的存在”将仍等于零(0)。概括该动作,可以示出,当域表中不再存在给定串时,可以从串表中删除该给定串的对应条目。如下文中所述,可以使用贝叶斯滤波器来执行串表的概率p′(a|stri)的计算。首先,假定表示文件名或ip地址的字符串stri已与在关注的时间帧中在服务基础设施100上托管的至少一个域相关联,则根据等式(1)来计算在服务基础设施100上可能出现异常的概率p(a|stri):其中:p(a)是在时间帧中在其上出现异常的域的数目除以域的总数;是在时间帧中在其上未出现异常的域的数目除以域的总数;p(stri|a)是在时间帧中表示文件名或ip地址的字符串stri在已生成异常的域上与服务基础设施100的域相关联的概率;以及是在时间帧中表示文件名或ip地址的字符串stri在已生成异常的域上已与服务基础设施100的域相关联的概率。在非限制性示例中,异常表可以示出服务基础设施100托管1000个域,并且在时间帧期间针对这些域中的50个域检测到异常。于是,p(a)等于0.050,并且则等于0.950。在域表中可以发现给定串stri与其上出现异常的35个域以及其上未出现异常的5个域相关联。在该情况下,p(stri|a)等于35/50=0.700,并且等于5/(1000-50)=0.0052。然后,使用等式(1),给定串stri的概率p(a|stri)等于0.876,这意味着如果在服务基础设施100处接收到给定串stri,则存在87.6%的出现异常的机率。在变型中,代替基于异常表的内容来计算值p(a)和可以分配固定值。例如,当值p(stri|a)与相距很远时,设置p(a)等于0.100并且设置等于0.900趋于增加概率p(a|stri)的值。在以上示例中使用这些固定值,概率p(a|stri)将等于0.937,这意味着如果在服务基础设施100处接收到给定串stri,则存在93.7%的出现异常的机率。使用等式(1)计算概率p(a|stri)可能受到一些串很少出现的事实的影响。串在时间帧中可能出现仅一次,并且可能与其所相关联的域上的异常事件有关。该串可能与异常的原因有关,也可能无关。对于该串,p(stri|a)等于1.000,并且等于0.000。对于p(a)和的任何值,概率p(a|stri)变为1.000,或100%。可以使用等式(2)计算加权概率以减轻该影响:其中:ni是其上关联有表示文件名和ip地址的字符串stri的不同域的数目,ni等于该串的“无异常域的存在”和“有异常域的存在”的总和;以及k是恒定加权参数值。不受限制地,已发现当日志是ftp服务器的日志时,加权参数值k可以被设置成三(3),此时具有良好的结果。使用其中给定串stri与其上出现异常的35个域以及其上未出现异常的5个域相关联的以上示例,ni等于40个域,概率p(a|stri)从0.269变为0.250(如果对p(a)和使用实值),或者从0.438变为0.407(如果将p(a)和分别设置成固定值0.100和0.900)。除了在与给定串stri相关联的域的数目ni很小的情况下之外,使用加权参数值k的影响不太大。其他加权参数值可以容易地被选择用于其他应用,例如通过反复试验。每次在串表中修改条目时,概率p(a|stri)或加权概率p′(a|stri)可以被重新计算,或者可以替选地以规则间隔例如每隔几分钟对整个串表重新计算。在实施方式中,代替从表i、表ii和表iii中删除早于时间帧的信息,可以将相同数据移动到针对m个更早的时间帧的另外的表中。使用等式(3)或等效地使用等式(4)可以扩展域在较长时间段生成异常的概率的计算:p″(a|stri)t=p′(a|stri)t δp′(a|stri)t-1 δ2p′(a|stri)t-2 δ3p′(a|stri)t-3 ...(3)其中:p″(a|stri)t是在假定表示文件名或ip地址的字符串stri在时间帧t或一个或更多个更早的时间帧t-m中与在服务基础设施100上托管的至少一个域相关联的情况下,在服务基础设施100上可能出现异常的时间加权概率;δ是用于乘以在更早的时间帧t-m中计算的加权概率p′(a|stri)的大于0且小于1的衰减因子;以及h是大于或等于1并且指定在其上计算加权概率的m个更早的时段的整数。因此,h表示在其上可以计算域生成异常的调整概率的时间范围。对δ使用小值,δm迅速减小,并且例如,h可以被限制在三(3)个与五(5)个之间的范围,例如每一(1)月三(3)个与五(5)个之间的更早的时间段。在变型中,可以将早于时间帧的表i、表ii和表iii的内容复制到等效的表i'、表ii'和表iii'以用于先前迭代,这些表在服务基础设施100中保持较长的时间段例如一年,并且被重用来计算时间加权概率p″(a|stri)t。这些表的内容不再改变。在另一变型中,当执行从表i、表ii和表ii移除早于关注的时间帧的信息的操作时,可以将p(a|stri)或p′(a|stri)的当前值与当前日期一起存储在服务基础设施100中。等式(1)、等式(2)、等式(3)和等式(4)提供了计算表示给定域的文件名或ip地址的给定字符串stri的异常概率的各种方式。这些概率可以在以下等式(5)中进行聚合,以提供给定域d的异常的总体概率:其中:id是在时间帧中已与域d相关联的字符串stri的总数;以及p(a|d)是在时间帧中影响域d的异常的聚合概率。尽管如图所示的等式(5)将加权概率p′(a|stri)的值组合,但是变型可以将概率p(a|stri)或时间加权概率p″(a|stri)t的值组合。可能与域d相关联的字符串stri的数目可能很大。尽管在服务基础设施100中可能经常有异常攻击,但是对于绝大多数字符串,任何给定串stri可能引起异常的概率p′(a|stri)预计都很小。使用浮点运算来计算等式(5)的聚合概率p(a|d)可能导致该等式中的各种乘积变为零(0),因为许多中间计算结果均经过了四舍五入。为此,在变型中,可以使用等式(6)和等(7)来计算在时间帧中影响域d的异常的聚合概率p(a|d):其中:在另一变型中,可以通过针对具有域d的最低p′(a|stri)值的小数目的串stri(例如,包含20个串的子集)以及针对具有域d的最高p′(a|stri)值的另一小数目的串stri(例如,包含20个串的子集)计算聚合概率p(a|d)来降低计算复杂度并且避免计算的四舍五入。图2是示出根据本技术的实施方式的在服务基础设施处检测潜在异常的方法的操作的序列图。图2示出包括可以以可变顺序执行的多个操作的序列200,一些操作可以被同时执行,一些操作是可选的。序列200可以从操作205开始,在操作205中,检测器150提供/访问串表,其中,串表的每个相应条目定义了相应字符串和该字符串的相应异常概率。串表的每个相应条目还可以定义与相应字符串相关联的并且其中在关注的时间帧中存在异常的相应域的数目,以及与相应字符串相关联的并且其中在关注的时间帧中不存在异常的相应域的数目。在操作210处生成日志条目。该日志条目与服务基础设施100中发生的事件有关。可以使日志条目生成的事件的示例包括但不限于在基础设施100处接收数据分组或命令(例如ftp命令)。日志条目包括指定数据分组中、命令中或使日志条目生成的任何其他事件中包括的文件名和ip地址中之一的字符串。日志条目还包括由服务基础设施100托管的域名,该域名与使日志条目生成的事件相关联。数据库130可以包含多个日志条目,每个日志条目定义特定字符串与特定域名的关联,每个日志条目还记录特定关联时间。在一个实施方式中,在操作210处生成的日志条目中可以存在多个字符串,每个字符串指定包含在日志条目中的不同文件名或ip地址中的不同之一。序列200的以下操作可以针对日志条目中存在的每个字符串而独立地重复进行。可选地,通过使新条目创建或者如果对应的条目先前是域表的部分通过刷新串的最后出现的数据,在操作210处日志条目的域名、字符串和当前生成时间可以用于更新域表。如果日志条目中存在多于一个字符串,则可以在域表中更新或创建相同数目的条目。在操作215处,检测器150访问串表,并且在串表中搜索字符串(或独立地,搜索从数据分组或命令中提取的每个字符串)。操作220确定是否在日志条目中找到字符串。如果没有找到,则序列200在操作225处结束。如果在串表中找到字符串,则检测器150在操作230处确定与该字符串对应的异常概率是否超过预定阈值。预定阈值可以是固定阈值或可变阈值。固定阈值的典型但非限制性示例可以被设置为0.8,即,将字符串与异常有关的概率设置为80%。不同的阈值可以用于不同类型的异常,所述异常包括例如由恶意软件引起的滥用或由硬件部件的故障引起的错误。鉴于最近发现的滥用概率,阈值可能会随时间变化。例如,通过使用非常高的阈值,可以在很大程度上避免误报检测。当需要更广泛地识别潜在异常时,可以使用较低阈值。服务基础设施100的操作者可以使用用户接口160来修改阈值。在一个实施方式中,可以使用等式(8)基于从服务基础设施处发生的最近事件累积的数据来计算阈值:其中,i是指示函数;m是串表中条目的数目。等式(8)计算出最小值x,使得95%的异常概率小于x(95%的百分位数)。如果希望检测更多异常(具有获得更多误报的风险),则可以减小此95%的比率。可以增加该比率以减小误报的数目。如果异常概率超过预定阈值,则在操作240处该域名被标记为可疑。如果未超过阈值,则序列200在操作235处结束。域名已经被标记为可疑,检测器150可以可选地在操作245处使以下动作中的一个或更多个被执行:与在操作210处生成日志条目有关的接收的数据包可以由已经接收到该数据包的服务器110丢弃,并且如检测器150经由阻挡器180所指示的那样,检测器150可以使得诸如文本或电子邮件之类的消息可以经由信令接口170发送到与域名有关的客户端,检测器150可以使得在服务基础设施100的用户接口160上提供警报,以及/或者检测器150可以使得服务器110阻挡与域名有关的一些或所有数据业务。在任何情况下,序列200在操作250处结束。图3a和图3b是示出根据本技术的实施方式的记录关于在服务基础设施中检测到的异常的信息的方法的操作的序列图。图3a和图3b示出包括可以以可变顺序执行的多个操作的序列300,一些操作可以被同时执行,一些操作是可选的。在操作305处,解析器140可以解析存储在数据库130中的多个日志条目以填充域表,如表i所示,在域表中,每个给定条目都包含给定域名、关注的时间帧中与给定域名相关联的给定字符串、以及与将给定域与给定字符串相关联的所有日志条目中的最新关联时间对应的给定关联时间。考虑到代替操作305或除了操作305之外,当在操作210(图2)处生成日志条目时,可以实时地填充域表,因此该操作305是可选的。序列300继续操作310,在操作310中,检测器150提供/访问异常表,如表ii所示,在异常表中,每个条目包括在关注的时间帧中已经检测到异常的域名和对应的异常时间。在操作315处,服务基础设施100确定在对应的异常时间发生了与受异常影响的域有关的异常。检测器150可以自主地做出该确定。可选地,检测器150可以依赖于在操作230(图2)处进行的检测,以在操作210处生成的日志条目中标识的字符串对应的异常概率超过预定阈值时,确定在操作210处生成的日志条目中所标识的域名中已经发生异常。替选地,在子操作317处,检测器150可以经由信令接口170从检测系统190接收针对受异常影响域的异常指示。检测器150在操作320处确定是否存在受影响域的异常表条目。如果存在,则检测器150在操作325处用检测时间来更新异常表条目中的对应异常时间,并且该序列在操作330处结束。如果不存在受影响域的异常表条目,则检测器150在操作335处为受影响域创建新的异常表条目。新的异常表条目包括受影响域的名称和检测时间。序列300在操作335之后在图3b上继续。在操作340处,检测器150从域表中提取与受影响域相关联的字符串列表。在操作345处,针对与受影响的域相关联的字符串列表中的每个字符串,检测器150在串表中使与该字符串相关联的并且在关注的时间帧中存在异常的域的数目递增。在操作350处,针对与受影响域相关联的字符串列表中的每个字符串,检测器150在串表中使与该字符串相关联的并且在关注的时间帧中不存在异常的域的数目递减。然后在操作355处,针对与同受影响域相关联的字符串列表之一对应的串表的每个条目,检测器150可以基于以下来计算相应异常概率:(i)与该字符串相关联的并且在关注的时间帧中不存在异常的域的数目;(ii)与该字符串相关联的并且在关注的时间帧中存在异常的域的数目;(iii)在异常表中列出的域的数目,以及(iv)由服务基础设施100托管的域的总数目。检测器150可以使用贝叶斯滤波器来计算异常概率。然后,序列300在操作360处结束。在一个实施方式中,可以以规则的间隔来计算与受影响域相关联的字符串的异常概率,检测器150执行串表的可选批处理,而不是遵循操作345和350。在同一或另一个实施方式中,在操作210(图2)处生成的日志条目中存在的字符串的异常概率也可以由检测器150在处理数据包或命令时实时计算。图4a和图4b是示出根据本技术的实施方式的更新服务基础设施100的关注的时间帧的方法的操作的序列图。图4a和图4b示出了包括可以以可变顺序执行的多个操作的序列400,一些操作可以被同时执行,一些操作是可选的。不论以分钟、小时、天或月表示,关注的时间帧都可以看作是跨在当前时间与当前时间之前直到预定时间段之间的滑动窗口。该滑动窗口随时间更新。在非限制性示例中,如果关注的时间帧以天表示,则其范围可以每天更新一次。在操作410处,更新关注的时间帧,使得其从过去的预定持续时间延伸到当前时间,该操作以规则的间隔定期重复。数据库130、解析器140、检测器150或服务基础设施100的任何其他部件可以更新关注的时间帧。在关注的时间帧更新之后,数据库130或解析器140在操作420处删除域表中的、关联时间早于关注的时间帧的条目。数据库130或检测器150在操作430处删除异常表中的、异常时间早于关注的时间帧的条目。在更新关注的时间帧之后,然后在操作440处,由数据库130或检测器150根据更新后的关注时间帧重新填充串表。操作440可以包括子操作442、444和446。在子操作442处,针对域表中每个已删除条目,如果异常表的、针对存在于域表的已删除条目中的域名的条目指示针对该域名在关注的时间帧中发现异常,则在串表中使与存在于已删除条目中的字符串相关联并且在关注的时间帧中存在异常的域的数目递减。在子操作444处,针对域表的每个已删除条目,如果异常表中没有针对存在于域表的已删除条目中的域名的条目,则在串表中使与存在于已删除条目中的字符串相关联并且在关注的时间帧中不存在异常的域的数目递减。然后在子操作446,扫描域表以查找包含从异常表的每个已删除条目提取的域名的条目,并且针对域表的每个所查找条目的所查找字符串,在串表中使与存在于域表的已删除条目中的所查找字符串相关联并且在关注的时间帧中存在异常的域的数目递减,并且在串表中使与存在于域表的已删除条目中的所查找字符串相关联并且在关注的时间帧中不存在异常的域的数目递增。操作450可以可选地在操作440之后。在操作450中,对于与域表的已删除条目的一个或更多个相关联的每个字符串,数据库130或检测器150基于与在操作410、420、430和440之后它们现在所代表的相同参数来重新计算异常概率,所述参数包括与该字符串相关联的并且在关注的时间帧中不存在异常的域的数目、与该字符串相关联的并且在关注的时间帧中存在异常的域的数目、异常表中列出的域的数目以及由服务基础设施100托管的域的总数目。然而,在一个实施方式中,在串表的可选批处理中可以以规则的间隔来计算串表中的所有异常概率。无论操作450是否在操作440之后,序列400在操作460处结束。图5是示出根据本技术的实施方式的用于计算服务基础设施100的异常的聚合概率的第一方法的操作的序列图。图5示出包括可以由检测器150或由数据库130以可变顺序执行的多个操作的序列500,一些操作可以被同时执行,一些操作是可选的。在作为用于计算服务基础设施100的异常聚合概率的第一变型的序列500中,操作510包括计算与域名中之一有关的字符串的异常概率中的每一个的对数。然后,操作520包括将与域名中之一有关的字符串的异常概率中的每一个的对数进行组合。序列500在操作530处结束。图6是示出根据本技术的实施方式的用于计算服务基础设施100的异常的聚合概率的第二方法的操作的序列图。图6示出包括可以由检测器150或由数据库130以可变顺序执行的多个操作的序列600,一些操作可以被同时执行,一些操作是可选的。在作为用于计算服务基础设施100的异常的聚合概率的第二变型的序列600中,操作610包括针对具有最高异常概率的、与域名中的一个域名有关的字符串的第一子集,计算服务基础设施100在域名中的所述一个域名上的异常的第一聚合概率。操作620包括针对具有最低异常概率的、与域名中的一个域名有关的字符串的第二子集,计算服务基础设施100在域名中的所述一个域名上的异常的第二聚合概率。在操作630处将第一聚合概率和第二聚合概率进行组合。序列600在操作640处结束。在包含序列500或600的实施方式中,如果服务基础设施100相对于从数据包或命令中提取的域名的异常的聚合概率低于预定阈值,则在图2的操作210处生成的日志条目中标识的域名可以被检测器150无条件地标记为不可疑。例如,可以以与上面讨论的操作230中所表达的相同或等效的方式来设置用于该操作的预定阈值。序列200、300、400、500和600的操作中的每一个可以被配置成由一个或更多个处理器处理,一个或更多个处理器耦合到存储器。存储器可以包括在其上存储可执行代码的非暂态计算机可读介质,该可执行代码包括在一个或更多个处理器上运行可执行代码时用于执行序列200、300、400、500和600中的任何一个的指令。图7是根据本技术的实施方式的汇总了多个托管域的异常概率的操作者显示器的简化图示。在图1的描述中引入的用户接口160可以在显示器(未示出)上提供电子表格700,该电子表格700汇总了域表和串表的内容。如图1所示,用户接口160可以经由检测器150访问数据库130的信息。在一个实施方式中,用户接口160可以直接连接到数据库130并从数据库130获取对准备电子表格700有用的信息。电子表格700包括用于服务基础设施100的托管域中的每一个的表710,并且显示器可以被布置成提供电子表格700的部分视图。尽管在图7中仅示出四(4)个域名,但是在实际的实现中可以显示更多的域名。每个表710包括域名712和排名714。在一个实施方式中,排名714允许操作者查看哪个域名最受在关注的时间帧中发生的异常影响。每个表710的每行716示出与域表中的域名712匹配的字符串718和表示该字符串718的概率p′(a|stri)的对应分数720。在给定表710中,行716被安排成以降序得分720的方式列出字符串718。针对每个域名显示的行716的实际数目可能大于如图7中所示的数目。在与上述表i、ii和iii的内容一致的图7的示例中,string_a在串表上的具有最高得分720,并且在域1中存在。因此,在非限制性示例中,域1被赋予第一名(1)。string_a与域表中的任何其他域名都不相关,因此将第二名(2)赋予域4,在域4上存在string_b,string_b在串表中具有第二最高得分。每行716还具有有异常的域的存在的数目722和没有异常的域的存在的数目724,这些值和分数720是从串表中提取的。返回到上面的示例,其中域托管文件夹“/www/img/my_nicest_pics/”,不同的子串可能已被存储在不同的日志条目中。在图7所示的示例中,“string_b”实际上等于“/www/img/my_nicest_pics/”(在此特定示例中,域1的表710的第二行716上的串字段718实际上将示出“/www/img/my_nicest_pics/”。)。操作者可以选择(例如点击)域1的表710的第二行716上的串字段718,以使得显示列出与string_b有关的多个子串的窗口730。预期可以在电子表格700上提供其他字段和信息元素。例如,可以用表示在特定托管域上检测到异常类型(例如,网络钓鱼、垃圾邮件等等)的颜色代码显示每个表710或其部分。可以提供操作者可选字段,用于同时显示多个表710、用于显示特定域名的表710、用于选择每个表710中多个显示的行716等。可以以其他方式——例如基于给定表710中的各个行716上的多个得分720——来计算赋予各个表710中的每个域名的排名714。可以对电子表格700的呈现进行许多修改,并且图7的图示不旨在是限制性的。虽然参照以特定顺序执行的特定步骤描述和示出了上述实现方式,但是将理解,这些步骤可以在不背离本技术的教导的情况下被组合、细分或重新排序。可以并行或串行地执行步骤中的至少一些。因此,步骤的顺序和分组不是本技术的限制。应当清楚地理解,并非在本文中提及的所有技术效果都需要在本技术的每个实施方式中享有。对本领域技术人员而言,对本技术的上述实现方式的修改和改进可以变得明显。前面的描述旨在是示例性的而不是限制性的。因此,本技术的范围旨在仅受所附权利要求书的范围限制。当前第1页1 2 3 
技术特征:1.一种在服务基础设施处检测潜在异常的方法,包括:
访问串表,所述串表的每个相应条目定义相应字符串和该字符串的相应异常概率;
在所述服务基础设施的数据库中生成与在所述服务基础设施中发生的事件有关的日志条目,所述日志条目包括指定文件名和ip地址中之一的字符串,所述日志条目包括由所述服务基础设施托管的域名;
在所述串表中搜索所述字符串;以及
如果在所述串表中找到所述字符串并且如果与所述字符串对应的异常概率超过预定阈值,则将所述域名标记为可疑。
2.根据权利要求1所述的方法,其中,所述预定阈值根据以下来计算:
其中:
i是指示函数;并且
m是所述串表中条目的数目。
3.根据权利要求1或2所述的方法,还包括:填充域表,所述域表的每个给定条目包含:给定域名、在关注的时间帧中与所述给定域名相关联的给定字符串、以及与将所述给定域与所述给定字符串相关联的所有日志条目中的最新关联时间对应的给定关联时间。
4.根据权利要求3所述的方法,其中,填充所述域表包括:对所述数据库中的多个日志条目进行解析,以从每个日志条目中提取相应域名、相应字符串和相应关联时间。
5.根据权利要求3或4所述的方法,其中,所述串表的每个相应条目还定义:(i)与所述相应字符串相关联并且在所述关注的时间帧中存在异常的域的相应数目,以及(ii)与所述相应字符串相关联并且在所述关注的时间帧中不存在异常的域的相应数目。
6.根据权利要求5所述的方法,还包括:
在所述服务基础设施处,确定在与受影响域有关的检测时间处发生了异常;
访问异常表,所述异常表的每个条目包括在所述关注的时间帧中已经检测到异常的域的名称以及对应异常时间;
如果针对所述受影响域存在异常表条目,则用所述检测时间更新所述异常表条目中的对应异常时间;并且
如果针对所述受影响域不存在异常表条目,则:
为所述受影响域创建新的异常表条目,所述新的异常表条目包括所述受影响域的名称和所述检测时间,
从所述域表中提取与所述受影响域相关联的字符串列表,
针对与所述受影响域相关联的字符串列表中的每个字符串,在所述串表中使与该字符串相关联并且在所述关注的时间帧中存在异常的域的数目递增,并且
针对与所述受影响域相关联的字符串列表中的每个字符串,在所述串表中使与该字符串相关联并且在所述关注的时间帧中不存在异常的域的数目递减。
7.根据权利要求6所述的方法,其中,确定发生了异常包括:在所述服务基础设施处接收针对所述受影响域的异常指示。
8.根据权利要求6或7所述的方法,还包括:
定期更新所述关注的时间帧,使得所述关注的时间帧从过去的预定持续时间延伸直到当前时间;以及
在更新所述关注的时间帧之后:
删除所述域表中的、关联时间早于所述关注的时间帧的条目,
删除所述异常表中的、异常时间早于所述关注的时间帧的条目,并且
根据更新后的关注的时间帧重新填充所述串表。
9.根据权利要求8所述的方法,其中,根据更新后的关注的时间帧重新填充所述串表包括:
针对所述域表的每个已删除条目:
如果所述异常表的、针对存在于所述域表的已删除条目中的域名的条目指示针对该域名在所述关注的时间帧中发现了异常,则在所述串表中使与存在于所述已删除条目中的字符串相关联并且在所述关注的时间帧中存在异常的域的数目递减,
如果所述异常表中没有针对存在于所述域表的已删除条目中的域名的条目,则在所述串表中使与存在于所述已删除条目中的字符串相关联并且在所述关注的时间帧中不存在异常的域的数目递减;
扫描所述域表,以查找包含从所述异常表的每个已删除条目中提取的域名的条目;以及
针对所述域表的每个所查找条目的所查找字符串:
在所述串表中使与存在于所述域表的已删除条目中的所查找字符串相关联并且在所述关注的时间帧中存在异常的域的数目递减,并且
在所述串表中使与存在于所述域表的已删除条目中的所查找字符串相关联并且在所述关注的时间帧中不存在异常的域的数目递增。
10.根据权利要求6至9中任一项所述的方法,还包括:针对所述串表的每个相应条目,基于以下四者来计算相应异常概率:(i)与相应字符串相关联并且在所述关注的时间帧中不存在异常的域的相应数目,(ii)与相应字符串相关联并且在所述关注的时间帧中存在异常的域的相应数目,(iii)所述异常表中列出的域的数目,以及(iv)由所述服务基础设施托管的域的总数目。
11.根据权利要求10所述的方法,其中,通过将贝叶斯滤波器应用于以下四者来计算每个相应异常概率:(i)与所述相应字符串相关联并且在所述关注的时间帧中不存在异常的域的相应数目,(ii)与所述相应字符串相关联并且在所述关注的时间帧中存在异常的域的相应数目,(iii)所述异常表中列出的域的数目,以及(iv)由所述服务基础设施托管的域的总数目。
12.根据权利要求11所述的方法,还包括:通过以下方式计算所述服务基础设施的、与所述域表中的域名中的一个域名有关的异常的聚合概率:
计算与域名中的所述一个域名有关的字符串的异常概率中的每一个的对数;以及
对与域名中的所述一个域名有关的字符串的异常概率中的每一个的对数进行组合。
13.根据权利要求11所述的方法,还包括:通过以下方式计算所述服务基础设施的、与所述域表中的域名中的一个域名有关的异常的聚合概率:
针对具有最大异常概率的、与域名中的所述一个域名有关的字符串的第一子集,计算所述服务基础设施的在域名中的所述一个域名上的异常的第一聚合概率;
针对具有最小异常概率的、与域名中的所述一个域名有关的字符串的第二子集,计算所述服务基础设施的在域名中的所述一个域名上的异常的第二聚合概率;以及
对所述第一聚合概率和所述第二聚合概率进行组合。
14.根据权利要求12或13所述的方法,其中,如果所述服务基础设施的与存在于所生成的日志条目中的域名有关的异常的聚合概率低于预定阈值,则将该域名无条件地标记为不可疑。
15.根据权利要求2至14中任一项所述的方法,还包括:
在将域名标记为可疑之后,执行选自包括以下的组的动作:丢弃与日志条目的生成有关的接收到的数据分组,向与所述域名有关的客户端发送消息,在所述服务基础设施上提供警报,阻挡与所述域名有关的所有数据业务,以及上述的组合。
16.一种服务基础设施,包括:
服务器,其被配置成从客户端接收数据分组和/或命令;
数据库,其被配置成存储多个日志条目,日志的每个相应日志条目包括与相应域名相关联的相应字符串;
处理器;以及
存储器装置,其包括非暂态计算机可读介质,在所述非暂态计算机可读介质上存储有可执行代码,所述可执行代码包括用于当所述可执行代码在所述处理器上运行时执行根据权利要求1至15中任一项所述的方法的指令。
17.根据权利要求16所述的服务基础设施,其中,所述处理器实现检测器,所述检测器被配置成检测在对应的检测时间发生了与受影响域有关的异常。
18.根据权利要求17所述的服务基础设施,还包括用户接口,所述用户接口能够操作地连接至所述检测器,所述检测器被配置成在域名被标记为可疑时使所述用户接口向所述服务基础设施的操作者发出警告。
19.根据权利要求17或18所述的服务基础设施,还包括信令接口,所述信令接口能够操作地连接至所述检测器,所述检测器被配置成在域名被标记为可疑时使所述信令接口向与所述域名有关的客户端发出消息。
20.根据权利要求17至19中任一项所述的服务基础设施,还包括阻挡器,所述阻挡器能够操作地连接至所述检测器,所述检测器被配置成在域名被标记为可疑时使所述阻挡器向所述服务器发出用于丢弃与日志条目的生成有关的接收到的数据分组的命令。
21.一种在服务基础设施处预测潜在异常的方法,包括:
定义串表,所述串表的每个相应条目定义:(i)相应字符串,(ii)由所述服务基础设施托管的、与所述相应字符串相关联并且在关注的时间帧中存在异常的域的相应数目,(iii)由所述服务基础设施托管的、与所述相应字符串相关联并且在所述关注的时间帧中不存在异常的域的相应数目,以及(iv)所述字符串的相应异常概率;
在所述服务基础设施的数据库中生成多个日志条目,每个日志条目与在所述服务基础设施中发生的事件有关,每个日志条目将指定文件名和ip地址中之一的字符串与由所述服务基础设施托管的域名相关联,每个日志条目还记录特定的关联时间;
对所述多个日志条目进行解析以填充域表,所述域表的每个给定条目包含给定域名、在关注的时间帧中与给定域名相关联的给定字符串、以及与将所述给定域与所述给定字符串相关联的所有日志条目中的最新关联时间相对应的给定关联时间;
在所述服务基础设施处检测在与受影响域有关的检测时间处发生的异常;
访问异常表,所述异常表的每个条目包括在所述关注的时间帧中已经检测到异常的域的名称以及对应异常时间;
如果针对所述受影响域存在异常表条目,则用所述检测时间更新异常表条目中的对应异常时间;并且
如果针对所述受影响域不存在异常表条目,则:
为所述受影响域创建新的异常表条目,所述新的异常表条目包括所述受影响域的名称和所述检测时间,
从所述域表中提取与所述受影响域相关联的字符串列表,
针对与所述受影响域相关联的字符串列表中的每个字符串,在所述串表中使与该字符串相关联并且在所述关注的时间帧中存在异常的域的数目递增,并且
针对与所述受影响域相关联的字符串列表中的每个字符串,在所述串表中使与该字符串相关联并且在所述关注的时间帧中不存在异常的域的数目递减。
22.一种服务基础设施,包括:
服务器,其被配置成接收来自客户端的数据分组和/或命令;
数据库,其被配置成存储多个日志条目,日志的每个相应日志条目包括与相应域名相关联的相应字符串;
处理器;以及
存储器装置,其包括非暂态计算机可读介质,在所述非暂态计算机可读介质上存储有可执行代码,所述可执行代码包括用于当所述可执行代码在所述处理器上运行时执行根据权利要求21所述的方法的指令。
技术总结公开了服务基础设施以及在其处预测和检测潜在异常的方法。访问具有定义字符串和对应异常概率的条目的串表。在数据库中生成与在服务基础设施中发生的事件有关的日志条目。日志条目包括指定文件名或IP地址的字符串以及由服务基础设施托管的域名。在串表中搜索字符串。如果在串表中找到字符串并且该字符串的异常概率超过预定阈值,则将该域名标记为可疑。可以使用贝叶斯滤波器来计算异常概率,该贝叶斯滤波器考虑了最近出现该字符串的服务基础设施托管的域的数目。
技术研发人员:奥利维耶·尼科尔
受保护的技术使用者:OVH公司
技术研发日:2019.12.02
技术公布日:2020.06.09