确定分布式拒绝服务攻击的系统和方法与流程

文档序号:16734509发布日期:2019-01-28 12:31阅读:187来源:国知局
确定分布式拒绝服务攻击的系统和方法与流程

本发明涉及计算机安全领域,并且更具体地涉及用于检测分布式拒绝服务(ddos)攻击的系统和方法。



背景技术:

目前,实际上,所有公司和组织都在互联网上以一种或另一种方式表示,并且其中许多公司和组织使用互联网作为商业工具。与此同时,互联网在“默认”情况下不提供适当的服务保护。此外,现在还不能通过诸如防火墙、防攻击系统、防病毒软件等的个人防护手段来防御大量的互联网威胁。这种威胁的一个明显例子是分布式拒绝服务(ddos)攻击。

拒绝服务(dos)攻击是针对计算机系统的为了使其失效的网络攻击,也就是创建这样的条件,在这种条件下合法的(授权的)用户不能访问由系统提供的资源(服务器),或者在这种条件下访问速度更慢或更困难。这种攻击的动机可能差别很大——它们可能充当竞争活动的要素,敲诈勒索、复仇、表达不满情绪、展示能力或引起注意的手段,这种手段通常被视为网络恐怖主义。如果攻击是从大量计算机同时进行的,则该攻击表明是ddos攻击(分布式拒绝服务)。存在两种主要的ddos攻击:对带宽的攻击和对应用程序的攻击。

对带宽的攻击通过用大量数据包堵塞通信信道、分配的带宽和设备来操作。被选中的受害者是路由器、服务器和防火墙,其中每个受害者只有有限的处理资源(如内存缓冲区、网络接口带宽)。在攻击的影响下,这些设备可能变得无法处理正确的事务(即合法请求),或者它们可能会在意料之外的繁重工作负载下崩溃。最常见形式的基于堵塞带宽的网络攻击是使用数据包调度的所谓的雪崩攻击,在此期间,大量看似可信的传输控制协议(tcp)、用户数据报协议(udp)或互联网控制消息协议(icmp)的数据包被发送到特定点。

对应用程序的攻击通过利用网络协议(tcp、超文本传输协议(http)等)的行为特征以及服务和应用程序的行为特征,并捕获计算机(攻击的目标在该计算机上运行)的计算资源而不允许它处理合法的事务和请求来操作。攻击应用程序的例子是使用半打开的http连接的攻击和使用错误的http连接的攻击。

最近,所谓的“慢速”或“低速和慢速(lowandslow)”攻击变得越来越普遍。这种攻击利用了执行服务端(例如web服务器)应用程序时的缺陷,并且可以通过仅使用少量请求而使服务器端的重要服务不能使用。在这种攻击过程中产生的通信量(traffic)可能非常少,因此对带宽攻击的检测和缓解方法证明是无效的。此外,慢速攻击涉及看似合法的通信(即按照协议规则),其不违反网络标准或公共安全策略。因此,对应用程序的攻击的传统检测和缓解方法因为恶意数据包与合法数据包的相似性通常无法对它们进行区分。

这种慢速攻击的例子是slowloris攻击。这种攻击方法甚至可以由单台计算机执行。这种攻击包括发送不完整的http请求(部分请求,例如get请求),之后主机发送额外的报头,但请求本身从未完成。因此,服务器保留所有用于http处理的套接字,这导致拒绝对其他客户的服务。该攻击需要很长时间。

在许多最近的专利出版物中,例如美国公开号为2016/0226896的专利申请已经提出基于网络协议,特别是安全套接层(ssl)协议来执行对数据的分析。然而,这种分析是高度专用于协议的。因此,如果未来的攻击使用了其他协议或者如果特定协议改变(例如,在下一个版本中),则已知的分析技术可能在检测或缓解这种慢速攻击方面变得无用。需要更灵活且更通用的解决方案来分析来自用户的数据包,而不管所使用的之前用于确定服务器上可能的网络攻击的协议如何。

而且,已知在ddos攻击之后进行另一攻击的情况,称为有针对性的网络攻击或高级持续威胁(apt)。因此,需要一种解决方案,该方案不仅能够发现ddos攻击和使ddos攻击无效,而且还能够为ddos攻击所针对的组织的整个保护基础设施提供反馈。对目前的现有技术的分析得出的结论是,以前的技术是无效的,并且在某些情况下不能采用,并且它们的缺陷通过本发明的各方面来解决。



技术实现要素:

公开了用于检测分布式拒绝服务(ddos)攻击的系统和方法。示例性方法包括:从第一用户接收针对在服务器上执行的服务的一个或多个请求,并且生成与所述第一用户相关联的第一向量,所述第一向量包括指示访问所述服务的所述第一用户的多个特征。所述方法还包括计算所述第一向量与参考向量之间的比较(comparison),其中所述参考向量包括访问所述服务的多个用户的特征的平均分布。所述方法包括基于所述第一向量与所述参考向量之间的所述比较来确定所述服务处于拒绝服务攻击之下。

在另一个示例性方面中,提供了一种被配置用于防止分布式拒绝服务(ddos)攻击的系统。该系统包括存储设备和硬件处理器。所述硬件处理器被配置为从第一用户接收针对在服务器上执行的服务的一个或多个请求,并且生成与所述第一用户相关联的第一向量,所述第一向量包括指示访问所述服务的所述第一用户的多个特征。所述处理器还被配置为计算所述第一向量与参考向量之间的比较,其中所述参考向量包括访问所述服务的多个用户的特征的平均分布。所述处理器还被配置为基于所述第一向量与所述参考向量之间的所述比较来确定所述服务处于拒绝服务攻击之下。

根据另一示例性方面,提供了一种包含指令的计算机可读介质,所述指令包括用于执行本文公开的任何方法的计算机可执行指令。

以上对示例性方面的简化概述用于提供对本发明的基本理解。本概述不是对所有预期方面的广泛概述,并且既不旨在确定所有方面的关键或重要元素,也不描绘本发明的任何或全部方面的范围。其唯一目的是以简化的形式呈现一个或多个方面,作为对本发明的以下更详细描述的序言。为了实现前述内容,本发明的一个或更多个方面包括权利要求中所描述和示例性指出的特征。

附图说明

并入本说明书并构成本说明书的一部分的附图示出了本发明的一个或多个示例方面,并且与详细描述一起用于解释它们的原理和实现方式。

图1是示出根据示例性方面的用于处理通信和防止ddos攻击的系统的框图。

图2示出了来自典型的人类用户的请求的直方图。

图3示出了来自恶意用户(机器人程序(bot))的请求的直方图。

图4示出了来自搜索引擎bot的请求的直方图。

图5是示出根据示例性方面的用于基于从用户收集的数据来防止ddos攻击的方法的流程图。

图6是示出根据示例性方面的用于处理通信并防止ddos攻击的系统的框图。

图7a示出了在检测到的攻击期间保护模块和安全应用程序的交互的示例。

图7b示出了当攻击被准许通过时保护模块和安全应用程序的交互的示例。

图8是根据示例性方面的在其上实现所公开的系统和方法的通用计算机系统的框图。

具体实施方式

本文在用于检测用户计算机上的ddos攻击的系统、方法和计算机程序产品的上下文下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅是示例性的,并不意图以任何方式进行限制。受益于本发明的本领域技术人员将容易地想到其他方面。现在将详细介绍如附图中所示的示例性方面的实现方式。在整个附图和以下描述中尽可能使用相同的附图标记来指代相同或相似的项目。

图1是示出根据示例性方面的用于处理通信并防止ddos攻击的系统100的框图。系统100包括ddos保护模块130,ddos保护模块130可通信地连接到服务器140并被配置为保护服务器140免受ddos攻击。如图所示,多个(合法)用户110可以向服务器140发出请求102。在下文中,所有示例都与该服务器140的保护有关。除了传统理解中的服务器本身(即,用户110从他们的浏览器访问的网站),也可以存在使用诸如超文本标记语言(html)、可扩展标记语言(xml)、web服务定义语言(wsdl)、简单对象访问协议(soap)之类的现代标准构建的任何给定的web服务。此外,服务器140可以提供用于访问其他服务的接口,例如数据库管理系统或dbms(未示出)。还应该理解的是,服务器140可以包括不仅一个物理计算机(服务器),而且可包括具有它们自己的负载平衡机构的整个组(集群或数据中心)。

请求不仅可以从普通用户110而且还可以从恶意用户(或bot)120到达服务器140。这种用户120的目标是使用多个请求104来攻击服务器140。在一些方面,在数量(每秒字节数)和频率(每秒请求数)方面,请求104构成针对服务器140的带宽的带宽洪流(bandwidth-flood),该带宽洪流影响网络带宽本身和服务器140的用于处理大量请求的资源(例如,cpu)。在某些方面,攻击可能是针对运行在服务器(如web服务器)上的应用程序的应用程序层攻击。需要注意的是,普通用户110和恶意用户120都是服务器140的客户端。为了防止这种攻击,使用了ddos保护模块130。本发明将更详细地检查其工作,为此需要更详细地讨论用户访问服务器的进程。

用户110(或恶意用户120)例如使用网络浏览器应用程序向服务器140发送请求(例如,请求102、104),或者他们发送已经以特定方式格式化的数据包。例如,上述请求可以是指定get方法(或者在其他情况下为post方法)的http请求。下面提供了具有多个参数的示例性请求:

1get/path/to/resource/http/1.1

2host:site.com

3user-agent:mozilla/5.0(windows;u;windowsnt6.1;en-us;rv:1.9.1.5)

4gecko/20091102firefox/3.5.5(.netclr3.5.30729)

5accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

6accept-language:en-us,en;q=0.5

7accept-encoding:gzip,deflate

8accept-charset:iso-8859-1,utf-8;q=0.7,*;q=0.7

9keep-alive:300

10connection:keep-alive

11cookie:phpsessid=r2t5uvjq435r4q7ib3vtdjq120

12pragma:no-cache

13cache-control:no-cache

列表1:示例性http请求

如第1行和第2行所示,该请求包括通向用户获得访问权限的源的路径。在上面的示例中,该请求指定了路径“/path/to/resource/”和主机名称(例如site.com)。该路径可以被格式化为统一资源标识符(uri),也被称为用于访问网页的统一资源定位符(url)。该路径可以是唯一的或动态的,即在用户的浏览器和服务器140之间的信息交换期间被格式化。通过使用诸如模糊哈希和的哈希方法,可以格式化用于访问服务器140的路径的有限集。

因此,对于每个用户(例如,用户110、120),可以依据路径标识符构建对服务器140的多个请求的直方图。图2描绘了这样的直方图200。普通用户浏览网站,向服务器140发送请求,其结果是由他们的访问构成的直方图200通常包括具有不同路径的多个请求。在一个示例性的涉及电子商务的场景中,用户首先将网上商店的url输入到web浏览器(第一路径),在网上商店内搜索期望的产品(若干不同路径),读取评论并下订单(再次,几个不同的路径)。

在一个示例性方面中,对于每个用户,可以基于对服务器140发出的请求的频率来构建直方图。普通用户浏览网站,手动发送请求。因此,例如,即使在浏览器中重复按下“刷新”按钮时,普通用户的请求频率也不会超过每秒特定阈值请求数,如每秒5个请求。

在一个方面,通过使用由用户访问的页面(url)来构建发出请求的频率的直方图。因此,页面所包含的到其他页面的链接越少,在从该页面导航时,用户做出的请求(数量和频率)就越少。

另一方面,使用用户正在交互的协议来构建所发出的请求的频率的直方图。因此,例如,tcp协议保证了数据包的传送,并且因此对同一页面的重复请求将指示攻击。

另一方面,使用由用户访问的资源(例如,url、网页)的内容来构建所发出的请求的频率的直方图。因此,如果页面包含某个可刷新图表(如forex),则正常刷新频率为每5秒一次。如果页面包含新闻(例如新闻社的网站),则正常刷新频率为每分钟一次。但是,如果页面包含静态信息(如维基百科页面),则页面的重复访问也可能指示对服务的攻击开始。

图3示出了恶意用户(bot)120做出的请求的直方图300,恶意用户(bot)120通常通过某一路径(有时为多条路径)获得访问权限,如可以看作在直方图中的单个列。该行为与图2中的普通用户110的行为不相似。为了比较,图4示出了来自搜索引擎bot(有时被称为网络爬虫或蜘蛛)的请求的直方图400。搜索引擎bot是通常通过使用递归遍历方法来检查网站上的所有页面而遍历网站,然后构建它的网站地图的程序。从这些直方图200、300、400可以看出,不同用户(或程序和bot)的行为可能差别很大,其可以被ddos保护模块130使用。在下文中,ddos保护模块130将被描述为简称保护模块130。

图5是示出根据示例性方面的基于从用户收集到的数据来防止ddos攻击的方法500的流程图。应注意的是,该示例性方法的以下描述参考上述系统和部件。在步骤510时,保护模块130没有关于用户的数据,并且在其工作开始时,保护模块130需要收集关于每个可能用户(普通用户110和恶意用户120)的统计数据,这是在步骤520期间完成的。

在步骤520处,保护模块130基于收集到的数据生成参考向量。该参考向量可以包括针对访问该服务的多个用户的特征的平均分布。在一些方面中,保护模块130基于所收集到的与来自多个用户的http请求的参数相关联的数据来生成参考向量。在另一方面,保护模块130可以收集具有由来自多个用户的对服务的请求所指定的路径的数据,并且将参考向量生成为按路径的请求的平均频率。

步骤520的持续时间可以是由几秒或几分钟构成的持续时间或诸如几天或几周的更长的持续时间。在一些方面,收集数据的持续时间(步骤520)可以在操作期间基于对保护模块检测dos攻击的能力的反馈而动态修改。通常,在几分钟之后,可以在步骤530中构建参考直方图,该参考直方图是所有用户的平均直方图。在这种情况下的主要假设是,绝大多数用户是普通(合法)用户110,并且与它们有关的数据使得能够“消除”与恶意用户120有关的数据。

在一个方面中,保护模块130在启动之后使用在其他资源上用统计方法获得的用户的直方图。例如,保护模块130可以接收从安全网络服务接收到的用户请求的直方图。安全网络服务可以是基于云的服务,其编译和提供与新的或已知的威胁相关的数据、应用程序的信誉数据、网站的信誉数据以及与检测到的威胁和可疑活动相关的其他数据。安全网络服务的一个例子可为由卡巴斯基提供的卡巴斯基安全网络(ksn)。

进一步地,在本申请的上下文中,本发明将用向量来代替直方图的概念,该向量由表征访问服务器140的用户的多个属性组成。该向量可以包括已经提到的在用户请求(通过使用浏览器访问)的路径(uri)上的数据。该向量还可以包括来自接收到的请求的其他参数。在一些方面,该向量可以包括对请求的协议(和版本)的指示,诸如“http1.1”。在一些方面,该向量可以包括关于接收到请求的端口序号的信息。在一些方面中,该向量可以包括:接收到的请求的报头字段,诸如“user-agent(用户代理)”或“referrer(推荐人)”(在http的情况下);关于用户的(源)ip地址的信息;ssl会话标识符;服务器对请求的响应代码和其他信息。

在步骤535中,保护模块130生成与用户相关联的向量,该向量包括指示访问服务的用户的多个特征。在步骤540中,保护模块130可以将生成的向量与参考向量(直方图)进行比较,以确定特定用户与标准用户的配置文件适合程度,而标准用户如前所述对应于某个“平均”用户。在一个方面中,“平均”(标准)用户是常规用户,其向量是关于所有获得的向量的算术平均值。计算平均值的其他方法可以采用加权算术平均值、调和平均值或加权调和平均值。在一些方面中,保护模块130可以基于生成的向量和参考向量之间的比较来确定服务处于拒绝服务攻击之下。

向量的比较可以使用不同的比较技术来完成,例如莱文斯坦(levenshtein)距离,赫明(hemming)距离、雅卡尔(jaccard)指数以及其他度量。关于这些比较度量的使用,可以说所描述的技术避免了诸如特定用户是“好”(用户110)还是“坏”(用户120)这样的概念。可以认为一个好的(合法的)用户是其向量与标准用户的向量(即参考向量)之间的距离小于指定阈值的用户。通过使用这样的度量,可以对用户进行分类,例如在下面的表1中所看到的。

表1:示例性分类

如表1中所示,响应于确定计算出的用户向量和参考向量之间的差值超过阈值(例如,>1),保护模块130可以将该用户确定(即,分类)为恶意用户。在其他情况下,响应于确定所计算的差值小于第二阈值(例如,<0.1),保护模块130可以确定(分类)该用户是合法用户。

对于“低速和慢速攻击”,还可以分析tcp协议级别上的因素,例如请求的传输速度以及从用户产生的响应(在慢速httppost攻击的情况下),将这些参数包含在用户向量中。与带宽上的普通ddos攻击相比,这种攻击可以以低传输速度的请求为特征。例如,每秒200个请求的1000个连接就足以让web服务器只能处理三分之一的连接,而其他连接在等待处理。请求本身可能包含容许的数据(例如,格式正确的报头),这不允许将每个请求单独判断为恶意的。

已经确定,“低速和慢速攻击”的主要特征可以如下。来自“低速和慢速攻击”的请求类似于来自合法用户110的请求。用于检测ddos攻击(例如,带宽洪流)的传统技术不能够检测这种攻击。基于签名检测或异常检测的入侵防御系统(ips)和入侵检测系统(ids)的方法也无法检测到这种攻击。“低速和慢速攻击”不需要大量资源,并且可以从单台计算机上执行。这种攻击可能会使web服务器不能工作,即使是具有大备用硬件容量的服务器也是如此。现在本发明的各方面将考虑来自服务器140的基础设施的数据来描述用户向量的更详细的使用和比较。

图6是示出根据示例性方面的用于处理通信并防止ddos攻击的系统600的框图。系统600包括ddos保护模块130,ddos保护模块130可通信地连接到服务器140并且被配置为保护服务器140免受ddos攻击。除了在服务器140一侧更详细地呈现出服务器侧的基础设施外,系统600类似于图1中描绘的系统100。例如,服务器140可以包括在其上执行的各种服务610(诸如web服务器612、邮件服务器614、文件传输协议(ftp)服务器616等)。

根据一个方面,系统600可以包括负责安全性的一个或多个应用程序620。安全应用程序620可以是ips/ids解决方案、一个或多个防火墙、siem(安全信息和事件管理)元素的解决方案以及数据泄露防护(dlp)模块。此类解决方案的示例是诸如用于微软交换服务器tm(microsoftexchangeservertm)的卡巴斯基安全(kaspersky)应用程序或用于windowstm的端点安全(endpointsecurity)应用程序。在一个方面中,系统600还可以包括具有内置保护机制的计算和/或联网硬件625,例如由提供的路由器。一个或多个安全应用程序620和/或硬件625可以从服务610获得信息、配置它们(改变它们的设置)、并与保护模块130交换信息。保护模块130和该一个或多个应用程序620之间的信息交换可以使用已知的协议和数据格式(例如json(javascriptobjectnotation))来完成。在下文中,通过应用程序620,本发明涉及负责计算机安全的全套应用程序620。在一个示例性方面中,安全应用程序620是硬件设备625中的至少一个硬件设备的固件。

根据一个方面,系统600包括管理模块630(例如,作为软件应用程序执行),管理模块630被配置为集中管理安全应用程序620和具有内置保护机制的硬件625。可以使用管理模块630(例如通过系统管理员)为系统600生成安全策略并根据那些安全策略分配各种安全应用程序620和硬件设备625的配置。管理模块630的示例可以是诸如卡巴斯基安全中心tm(kasperskysecuritycentertm)或迈克菲木马程式编排器tm(mcafeeepolicyorchestratortm)的应用程序。

在一些方面中,保护模块130可以被配置为处理由安全应用程序620接收(例如,来自服务610)的事件通知。以下提供了可以由安全应用程序620从服务610接收的通知以及应用程序620和保护模块130如何处理该信息的示例。

示例1

由于对服务器140的攻击,其中一个服务610(诸如web服务器612)已停止正确地处理来自用户的请求602。接下来,应用程序620重新启动服务610,并且还可以将服务610的设置更改为更适合的设置以防止攻击。例如,安全应用程序620可以修改web服务器配置文件(例如在阿帕奇(apache)web服务器的情况下为“httpd.conf”)以设置用于从用户接收http请求报头和http请求正文的超时。如果用户未能在配置的超时时间段内发送正文数据的报头,则web服务器612发送请求超时错误(例如,408请求超时)。下面的示例性配置文件允许用户用多达20秒发送报头数据,并且最多40秒钟完成报头(即“报头=20-40”):

1<ifmodulemod_reqtimeout.c>

2requestreadtimeoutheader=20-40,minrate=500body=20,minrate=500

3</ifmodule>

列表2:示例性配置文件

另外,应用程序620向保护模块130发送关于服务610的不正确工作的数据,以用于保护模块130的工作参数的后续重新配置。将在下面给出保护模块130的工作的重新配置的示例。

示例2

在一个方面,由于对服务器140的攻击,其中一个服务610(诸如web服务器612)停止正确地处理用户的请求。接下来,应用程序620从保护模块130接收攻击针对特定版本的web服务器(例如,apache版本2.2.15)的信息,并且为了成功抵御该攻击,在受攻击的web服务器612之前,补充web服务器(例如)以代理模式打开。

示例3

在另一方面,保护模块130可以检测到用户120具有与通过密码持续访问页面的行为相关联的非典型向量。作为响应,保护模块130可以将关于该用户120的信息发送给安全应用程序620。由应用程序620得出正在发生强力攻击的结论,并且需要重新配置相应的应用程序或模块(比如ips),或者将正在发生此次攻击的用户120的计算机的ip地址添加到黑名单中。

示例4

在另一方面,保护模块130发送关于具有非典型向量的用户110的信息,其中显而易见的是用户110经常访问特定服务610(诸如不断从ftp服务器616下载文件)。尽管用户110的计算机的ip地址在白名单中,但来自保护模块130的这种信息将由应用程序620得出的结论是正在发生数据泄漏,并且需要重新配置相应的应用程序或模块(例如防数据丢失或dlp)或者将正在发生该攻击的用户110的计算机的ip地址添加到黑名单中。

示例5

在另一方面,应用程序620可确定正在发生http响应分裂类型的攻击。对于web服务器而言,这种攻击通常涉及报头缺少正确的http验证。响应于这种攻击,应用程序620可以重新配置保护模块130以用于分析http报头。

将考虑用于保护模块130的重新配置以基于由安全应用程序620和硬件625提供的信息来检测慢速型网络攻击的示例。如已经提及的,向量可以包括数据和度量,这些数据和度量例如指示在一段时间内访问的页面数或它们的uri请求数、正在使用的协议(如http)、端口序号;报头及ip地址。

在向量改变的一个示例中,应用程序620警告保护模块130关于web服务器612由于可能的“低速和慢速”网络攻击而已经停止处理用户请求的事实。通过对该信息的分析,保护模块130改变收集关于访问的页面数或它们的uri请求数的信息的时间间隔,例如从10分钟变为5分钟。其结果是,根据上述分类示例,用户向量与参考向量之间的差值相对于参考向量超过1,并且正在执行“低速和慢速”网络攻击的恶意用户120由于修改后的向量现在将会被检测到。

向量改变的另一个示例涉及解决与大量数据有关的问题的向量。例如,该向量可能过度包含太多数据(即噪声),使得与参考向量相比较,所有向量都不超过阈值,并且所有用户都被认为是正常的(合法的)。但是,如果从该向量中排除某些数据,例如报头上的信息(在绝大多数用户(普通用户110和恶意用户120)中可能都是相同的),那么该向量的值将会改变,并且它将变得更准确地对用户进行分类。这个问题(降维)的解决方案的一个示例是主成分(主成分分析,pca)方法。

改变向量的另一个示例包括增加新的参数。例如,在添加用表述性状态转移(rest)协议工作的另一个服务610之后,保护模块130可以分析与新服务的操作有关的数据。下面示出了通过该协议传输的数据的一个示例。

列表3:示例性rest协议数据

因此,对于保护模块130,还添加了正在使用的协议的解析器,该解析器将允许提取关于必要的标签(诸如<reply>标签)的信息,可将其插入到向量中用于分析。

本发明还示出了保护模块130与应用程序620之间的数据的可能的相关性的示例。例如,保护模块130确定在公司a已发生了ddos攻击。此后同样发现,在这次攻击期间,有些服务610没有正常工作。从其中一个dbms(同样地,其中一个服务610)中,重要信息被转录,其被记录在应用程序620的其中一个日志中。因此,可以确定使用ddos攻击来将注意力从数据盗窃转移。为了这种相关性的未来检测,以下信息以如下规则的形式保存。响应于从向量确定攻击并且该向量具有指定的特征,保护模块130配置应用程序620(诸如dlp模块或ids模块)以抵抗其中一个服务610(如dbms)的数据泄漏。对于使用这种服务的任何其他公司而言,这样的规则可以通过保护模块130和应用程序620的链接而被保存并被使用。

在一些方面中,保护模块130可以借助机器学习方法来生成一个或更多个规则。可使用的用于生成用以配置安全应用程序620的规则的机器学习技术的示例包括使用诸如线性或逻辑回归的回归模型、支持向量机、人工神经网络和聚类。

在具有一个隐藏层的简单神经网络的示例中,可以构建与上面给出的规则类似的规则。例如,来自神经网络的输入层的神经元将从保护模块130接收数据。可以基于已知的事件进行学习(即,向神经元分配权重)。

此外,前述规则可以用诸如javascript的高级语言编写,并且这些规则将呈现如下外观:

12if(condition){

13#codefortheconfiguringofvariables

14}

列表4:示例性规则格式

在一个方面,管理模块630可以被配置为使用自动化技术来修改和管理应用程序620和具有内置保护机制的硬件625的配置。借助于编写脚本和启动场景,该技术为网络管理员提供了使防病毒保护自动化或使网络管理员能够控制应用程序620和硬件625的设置的能力。这种技术的示例是卡巴斯基安全中心tm(kasperskysecuritycentertm)10提供的管理套件自动化(administrationkitautomation)10。在一些方面,管理模块630可以使用ole(对象链接与嵌入)部件或activex部件接收脚本。该脚本可以用诸如jscript和vbscript的语言以及支持ole技术的高级语言(如c、c++、visualbasic、visualbasic.net、c#、j#)编写。因此,在应用程序620和具有内置保护机制的硬件625的配置借助于已经以高级语言编写的前述规则完成的情况下,管理模块630的操作可以完全自动化。

图7a示出了在检测到对保护模块130的攻击期间保护模块130和应用程序620的交互700的示例。在步骤710中,保护模块130确定针对服务器140及其服务610的dos攻击(或者任何其他可以检测到的攻击,诸如“低速和慢速”类型的攻击)。接下来,在步骤720中,保护模块130将与攻击的参数有关的信息(其向量)发送给应用程序620。应用程序620反过来改变其自己的工作机制。例如,安全应用程序620可以将攻击者的ip地址添加到黑名单。并且在步骤740期间,应用程序620对服务610的操作参数进行改变——例如,其通过更新其配置文件并重新启动服务来修改web服务器的操作参数。

图7b示出当攻击通过(例如错过)保护模块130时保护模块130与应用程序620的交互800的示例。在步骤810中,应用程序620确定其中一个服务运行不正常——例如,web服务器612没有响应来自用户的请求,或者dbms正在异常传输大量的数据。如果这种异常已被登记,则在步骤820中,应用程序620改变其自身的操作参数。例如,应用程序620开始对定位了运行不正常服务610的计算机进行防病毒扫描。随后,在步骤830中,安全应用程序620改变在执行中检测到异常的前述服务的操作参数。此后,在步骤840中,应用程序620对保护模块130的操作参数进行更改。例如,安全应用程序620可以改变时间间隔,在该时间间隔期间,根据用户请求从服务器140(以及相应的服务610)收集数据。

在本发明中,模块和设备630、620、625和140可以被实现为使用硬件实现的实际设备、系统、部件、一组部件,(诸如集成微电路(专用集成电路,asic)或可编程门阵列(现场可编程门阵列,fpga)),或者例如以软件和硬件的组合的形式实现(例如微处理器系统和软件指令集,以及神经形态芯片(神经突触芯片))。模块630、620、625和140的功能可以仅由硬件来实现,并且还可以以组合的形式实现,其中一些功能由软件实现,一些功能由硬件(软件/硬件组合)实现。在一些示例性方面中,模块630、620、625和140中的一些模块可以在通用计算机系统(在图8中描述)的处理器上实现。

图8是示出了根据示例性方面的其上可以实现用于防止ddos攻击的系统和方法的各方面的通用计算机系统20的框图。应该注意的是,计算机系统20可以对应于前面描述的模块130、630、服务器140和硬件625。

如图所示,计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各个系统部件的系统总线23,所述系统部件可以包括与中央处理单元21相关联的存储器。如本领域普通技术人员将理解的,系统总线23可以包括总线存储器或总线存储器控制器、外围总线以及能够与任何其他总线架构交互的本地总线。系统存储器可以包括永久存储器(rom)24和随机存取存储器(ram)25。基本输入/输出系统(bios)26可以存储用于在计算机系统20的各元件之间传输信息的基本程序,诸如在使用rom24加载操作系统时的那些程序。

计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28、以及用于读取和写入可移动光盘31(诸如cd-rom、dvd-rom和其它光学介质)的光盘驱动器30。硬盘27、磁盘驱动器28和光盘驱动器30分别通过硬盘接口32、磁盘接口33和光盘驱动器接口34连接到系统总线23。驱动器和相应的计算机信息介质是用于存储计算机系统20的计算机指令、数据结构、程序模块和其他数据的电源独立的模块。

计算机系统20包括通过控制器55连接到系统总线23的硬盘27、可移动磁盘29和可移动光盘31。本领域普通技术人员将会理解,也可以使用能够以计算机可读形式存储数据的任何类型的介质56(固态驱动器、闪存卡、数字盘、随机存取存储器(ram)等)。

计算机系统20具有可存储操作系统35的文件系统36、以及附加的程序应用37、其他程序模块38以及程序数据39。计算机系统20的用户可以使用键盘40、鼠标42或本领域普通技术人员已知的任何其它输入设备(例如但不限于麦克风、操纵杆、游戏控制器、扫描仪等)来输入命令和信息。这种输入设备通常通过串行端口46插入计算机系统20,串行端口46又连接到系统总线,但是本领域普通技术人员将理解,输入设备也可以以其他方式连接,例如但不限于,通过并行端口、游戏端口或通用串行总线(usb)连接。监控器47或其他类型的显示设备也可以通过诸如视频适配器48的接口连接到系统总线23。除了监控器47之外,个人计算机还可以配备有其他外围输出设备(未示出),如扬声器、打印机等。

计算机系统20可以使用与一个或多个远程计算机49的网络连接而在网络环境中操作。一个或多个远程计算机49可以是本地计算机工作站或服务器,其包括在描述计算机系统20的性质时描述的上述元件中的大多数元件或全部元件。计算机网络中还可以存在其他设备,例如但不限于路由器、网站、对等设备或其他的网络节点。

网络连接可以形成局域计算机网络(local-areacomputernetwork,lan)50和广域计算机网络(wide-areacomputernetwork,wan)。这种网络用在公司计算机网络和公司内部网络,并且这些网络通常有权访问互联网。在lan或wan网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机系统20可以使用调制解调器54或本领域普通技术人员熟知的、实现与广域计算机网络(诸如因特网)的通信的其他模块。调制解调器54可以是内部设备或外部设备,可以通过串行端口46连接到系统总线23。本领域普通技术人员将理解,所述网络连接是使用通信模块建立一台计算机与另一台计算机的连接的许多熟知方式的非限制性示例。

在各个方面,本文所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实现。如果以软件实现,则所述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。作为示例而非限制,这种计算机可读介质可以包括ram、rom、eeprom、cd-rom、闪存,或其他类型的电存储介质、磁存储介质或光存储介质,或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。

在各个方面中,本发明中所描述的系统和方法可以按照模块来描述。本文中所使用的术语“模块”指的是例如使用硬件(例如通过专用集成电路(applicationspecificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga))实现的实际的设备、部件、或部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中仅通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,可以在通用计算机(诸如上文在图8中更详细描述的通用计算机)的处理器上实现模块的至少一部分(以及在一些情况下,模块的全部)。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。

为了清楚起见,本文中没有公开各个方面的所有常规特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的常规任务。

此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。

本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1