首页 / 专利库 / 电脑编程 / 计算机程序 / 网关防攻击的方法和装置

网关防攻击的方法和装置

阅读:75发布:2024-01-01

专利汇可以提供网关防攻击的方法和装置专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种网关防攻击的方法和装置。该方法包括:获取网关各 接口 上的单位时间接收 访问 请求 次数;基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数 阈值 的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载 饱和度 占网关所有接口的接口平均负载饱和度之和的比事先确定;基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。本发明在更准确地识别出不安全访问者地址的同时,减少了将正常用户的频繁访问当作攻击的可能性。,下面是网关防攻击的方法和装置专利的具体信息内容。

1.一种网关防攻击的方法,包括:
获取网关各接口上的单位时间接收访问请求次数;
基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
2.根据权利要求1所述的方法,其中,在获取网关各接口上的单位时间接收访问请求次数后,所述方法还包括:将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较,
其中,基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较确定不安全接口的步骤仅在获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和大于该预设的和阈值的情况下进行。
3.根据权利要求1所述的方法,其中,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。
4.根据权利要求1所述的方法,其中,所述确定不安全接口的步骤包括:如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
5.根据权利要求1所述的方法,其中,所述在不安全接口上确定不安全访问者地址的步骤包括:将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址。
6.根据权利要求1所述的方法,其中,所述在不安全接口上确定不安全访问者地址的步骤包括:将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
7.根据权利要求1所述的方法,其中,在不安全接口上确定不安全访问者地址之后,所述方法还包括:将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关。
8.一种网关防攻击的装置,包括:
用于获取网关各接口上的单位时间接收访问请求次数的装置;
用于基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口的装置,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
用于基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址的装置。
9.根据权利要求8所述的装置,还包括:用于在获取网关各接口上的单位时间接收访问请求次数后,将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较的装置,
其中,基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较确定不安全接口仅在获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和大于该预设的和阈值的情况下进行。
10.根据权利要求8所述的装置,其中,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。
11.根据权利要求8所述的装置,其中,所述确定不安全接口包括:如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
12.根据权利要求8所述的装置,其中,所述在不安全接口上确定不安全访问者地址包括:将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址。
13.根据权利要求8所述的装置,其中,所述在不安全接口上确定不安全访问者地址包括:将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
14.根据权利要求8所述的装置,还包括:用于在不安全接口上确定不安全访问者地址之后,将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关的装置。
15.一种网关防攻击的设备,包括:
一个或多个处理器;
存储器,存储有一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求1-7中任一所述的方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。

说明书全文

网关防攻击的方法和装置

技术领域

[0001] 本发明涉及网络安全,尤其涉及一种网关防攻击的方法和装置。

背景技术

[0002] 在计算机网络中,经常使用网关。网关的主要作用是防攻击、限流量,从而保证网络安全。例如,在企业设置网关,要访问企业内部网的消息首先要进入网关。网关识别出恶意的攻击,从而拒绝访问,并在进入网关的流量过大时限制流量,保证企业内部网安全。目前,网关防攻击的主要方法是:通过单位时间内某个访问者地址(如IP地址)进入网关的请求次数。当次数达到预定阈值时,认为这个访问者地址有攻击行为,将其拉入黑名单,禁止其放置企业内部网。这种做法的缺点是:如果阈值设置过小,可能会把某一访问者地址正常的频繁请求当作攻击;如果阈值设置过大,当面临多个访问者地址的攻击行为时,容易造成服务不可用,甚至宕机。
[0003] 一种优化手段是提前告知某访问者地址的正常用户可能会频繁请求,对于该用户放大阈值。这种做法需要人工干预。
[0004] 现有技术缺乏一种更合理地识别不安全访问者地址从而达到网关防攻击的目的的方法,在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。

发明内容

[0005] 本发明一个目的在于在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。
[0006] 根据本发明的一方面,提供了一种网关防攻击的方法,包括:
[0007] 获取网关各接口上的单位时间接收访问请求次数;
[0008] 基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0009] 基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0010] 根据本发明的一方面,提供了一种网关防攻击的装置,包括:
[0011] 用于获取网关各接口上的单位时间接收访问请求次数的装置;
[0012] 用于基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口的装置,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0013] 用于基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址的装置。
[0014] 根据本发明的一方面,提供了一种设备,包括:
[0015] 一个或多个处理器;
[0016] 存储器,存储有一个或多个程序,
[0017] 当所述一个或多个程序被所述一个或多个处理器执行时,实现如上所述的方法。
[0018] 根据本发明的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上所述的方法。
[0019] 本发明实施例中,基于接口上的单位时间接收访问请求次数与接口 单位时间接收访问请求次数阈值的比较,确定不安全接口,然后基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址,其中,所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。也就是说,该阈值的设定首先与接口单位时间最大负载访问请求次数有关。接口单位时间最大负载访问请求次数越大,说明接口的负载能越强,在这样的接口上可以放大阈值,从而充分利用该接口的负载能力来解决更多访问者地址的访问,减少将正常用户的频繁访问当作攻击的可能性。另外,该阈值与统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比有关,其中接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。接口平均负载饱和度反映了接口惯常工作负载情况,即是经常满负载工作,还是非常清闲地工作。如果一个接口经常很清闲地工作,即平时单位时间接收访问请求的次数仅是其最大负载能力的一个很小比例,突然该接口单位时间接收访问请求的次数变多更有可能是受到了攻击。而如果一个接口经常接近其最大负载能力地工作,其单位时间接收访问请求的次数稍微增大一点,只要还未达到最大负载能力,往往不是由于受到攻击导致的,很可能只是用户的正常频繁请求。因此,接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,使得确定出的不安全接口以及进而确定的不安全访问者地址更科学、合理,在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。
附图说明
[0020] 通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0021] 图1为本发明的一个实施例应用的系统环境示意图。
[0022] 图2为根据本发明的一个实施例的网关防攻击的方法的流程图
[0023] 图3为根据本发明的一个实施例的网关防攻击的装置的框图
[0024] 图4为根据本发明的一个实施例的应用网关防攻击的方法的网关设备硬件图。

具体实施方式

[0025] 在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0026] 在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑平板电脑、智能手机等。
[0027] 所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
[0028] 需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
[0029] 后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件固件中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
[0030] 这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
[0031] 应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
[0032] 应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
[0033] 这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、 整数、步骤、操作、单元、组件和/或其组合。
[0034] 还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
[0035] 下面结合附图对本发明作进一步详细描述。
[0036] 图1为本发明的一个实施例应用的系统环境示意图。如图1所示,本发明应用的环境包括网关1、网关1上的各接口2、通过各接口2访问网关1的各访问者地址3。
[0037] 网关1的主要作用是防攻击、限流量,从而保证网络安全。例如,在企业设置网关,要访问企业内部网的消息首先要进入网关1。网关1在来自各访问者地址3的消息中识别出恶意的攻击,从而拒绝访问,并在进入网关1的流量过大时限制流量,保证企业内部网安全。图1的访问者地址3中有正常的访问者地址,也有攻击者的访问者地址。本发明实施例旨在从各访问者地址3中识别出不安全访问者地址,即可能是攻击者的不安全访问者的地址。
[0038] 根据本发明的一个实施例,如图2所示,提出了一种网关防攻击的方法,包括:
[0039] S210、获取网关各接口上的单位时间接收访问请求次数;
[0040] S220、基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0041] S230、基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0042] 下面对这些步骤进行详细描述。
[0043] 在步骤S210,获取网关各接口上的单位时间接收访问请求次数。
[0044] 网关各接口上的单位时间接收访问请求次数是由各网关在接收到访问请求时记录的。例如,可以在各接口设置计数器。接口每接收到一个访问请求,该计数器的值加1。在单位时间结束时,计数器清零。因此,可以从计数器的值得出各接口上的单位时间接收访问请求次数。
[0045] 在步骤S220,基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口。
[0046] 在一个实施例中,该步骤包括:如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
[0047] 所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。在一个实施例中,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。
[0048] 接口单位时间最大负载访问请求次数即接口单位时间能够承担的最大的访问请求次数,在承担单位时间这些次数或低于这些次数的访问请求时,接口的响应速度是可接受的,在承担单位时间高于这些次数的访问请求时,接口的响应速度是不可接受的。接口单位时间最大负载访问请求次数可以事先通过压测统计,即先在单位时间给接口1次访问请求,再在单位时间给接口2次访问请求,……直到接口的响应速度低于一个预设的响应速度阈值。该响应速度阈值是事先根据需要设定的。
[0049] 预定时间段内接口的单位时间平均接收访问请求次数是预定时间段内该接口总共接收的访问请求次数除以该预定时间段包含的单 位时间个数。例如,在过去的3分钟内,接口A接收访问请求7200次,单位时间是1秒钟,则求得单位时间(每秒)平均接收访问请求次数为7200/180=40次。
[0050] 接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。显然,预定时间段内接口的单位时间平均接收访问请求次数小于或等于该接口单位时间最大负载访问请求次数。接口单位时间最大负载访问请求次数相当于接口的最大负载能力,接口的单位时间平均接收访问请求次数相当于接口实际负载是多少。接口平均负载饱和度表示接口实际负载占其全部能力的比。当接口平均负载饱和度为1时,说明接口满负载工作。
[0051] 假设网关有n个接口,表示为M1,M2,……Mn。事先测得,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,它们的预定时间段内单位时间平均接收访问请求次数为b1,b2……bn。它们的接口平均负载饱和度为c1,c2,……cn。那么,c1=b1/a1,c2=b2/a2……cn=bn/an。
[0052] 各接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比分别为:
[0053] c1/(c1+c2+……cn)=(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0054] c2/(c1+c2+……cn)=(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0055] ……
[0056] cn/(c1+c2+……cn)=(bn/an)/(b1/a1+b2/a2+……bn/an)
[0057] 假设各接口单位时间接收访问请求次数阈值v1,v2……vn等于该接口单位时间最大负载访问请求次数a1,a2,……an乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比c1/(c1+c2+……cn),c2/(c1+c2+……cn)……,cn/(c1+c2+……cn),则
[0058] v1=a1(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0059] v2=a2(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0060] ……
[0061] vn=an(bn/an)/(b1/a1+b2/a2+……bn/an)
[0062] 假设获取的接口上的单位时间接收访问请求次数分别为p1,p2,……pn(与b1,b2……bn不同,b1,b2……bn是过去一个预定时间段内单位时间平均接收访问请求次数,是从历史统计出的,而p1,p2,……pn是接口当前单位时间接收访问请求次数),则可以分别基于p1,p2,……pn与v1,v2,……vn的比较,确定不安全接口。如果p1>v1,则接口M1是不安全接口。如果p2>v2,则接口M2是不安全接口。如果pn>vn,则接口Mn是不安全接口。
[0063] 在步骤S230,基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0064] 在一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址。例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。将请求次数从高到低前三名的访问者地址即A、B、C确定为不安全访问者地址。
[0065] 在另一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
[0066] 例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。对于A-F这六个访问者地址,先去掉一个单位时间访问请求次数最高的,即IP地址A,剩下的单位时间接收访问请求次数为40次,而接口单位时间接收访问请求次数阈值为15次。40次大于15次。再从B-F这五个 访问者地址中,去掉一个单位时间访问请求次数最高的,即IP地址B,剩下的单位时间接收访问请求次数为22次,仍大于接口单位时间接收访问请求次数阈值15次。再从C-F这五个访问者地址中,去掉一个单位时间访问请求次数最高的,即IP地址C,剩下的单位时间接收访问请求次数为10次,小于接口单位时间接收访问请求次数阈值15次。则m=3。IP地址A、B、C为不安全访问者地址。
[0067] 与前面将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址的实施例相比,本实施例不固定不安全访问者地址的数目,而是按单位时间访问该不安全接口的请求次数从高到低一个一个去掉,直到剩下的该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值为止。这样,可以有效控制该不安全接口上的单位时间接收访问请求次数,让其保持不大于接口单位时间接收访问请求次数阈值即可,不必要过分低,造成负载能力的浪费,同时也避免将请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址的实施例中由于确定为不安全访问者地址的数目固定,在攻击者很多、很分散的情况下无法将全部攻击者确定为不安全访问者地址,带来安全隐患。
[0068] 在一个实施例中,在步骤S230之后,所述方法还包括:将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关。
[0069] 将确定的不安全访问者地址拉入黑名单之后,就可以以后禁止这些不安全访问者地址访问网关,提高网关安全性。
[0070] 在一个实施例中,在步骤S210后,所述方法还包括:将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较。
[0071] 上面假设,获取的各接口上的单位时间接收访问请求次数分别为p1,p2,……pn,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,则将p1/a1+p2/a2+……+pn/an得到的结果与预设的和阈值比较,如果得到的结果大于预设的和阈值才进行步骤S220,如果小于预设的和 阈值,说明网关可以承受当前的负载,不用确定不安全访问者地址。
[0072] 将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较的好处是,在一些仅凭各个接口上的访问请求次数作一个简单的判断就能判定出网关不大可能受到攻击的情况下,不必进行步骤S220、S230的计算和处理,减少了网关的处理负荷。并且,可以接受更多的合理请求,提高服务使用率。
[0073] 本发明实施例中,基于接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,然后基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址,其中,所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。也就是说,该阈值的设定首先与接口单位时间最大负载访问请求次数有关。接口单位时间最大负载访问请求次数越大,说明接口的负载能力越强,在这样的接口上可以放大阈值,从而充分利用该接口的负载能力来解决更多访问者地址的访问,减少将正常用户的频繁访问当作攻击的可能性。另外,该阈值与统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比有关,其中接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。接口平均负载饱和度反映了接口惯常工作负载情况,即是经常满负载工作,还是非常清闲地工作。如果一个接口经常很清闲地工作,即平时单位时间接收访问请求的次数仅是其最大负载能力的一个很小比例,突然该接口单位时间接收访问请求的次数变多更有可能是受到了攻击。而如果一个接口经常接近其最大负载能力地工作,其单位时间接收访问请求的次数稍微增大一点,只要还未达到最大负载能力,往往不是由于受到攻击导致的,很可能只是用户的正常频繁请求。因此,接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平 均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,使得确定出的不安全接口以及进而确定的不安全访问者地址更科学、合理,在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。
[0074] 根据本发明的一个实施例,如图3所示,提出了一种网关防攻击的装置200,包括:
[0075] 用于获取网关各接口上的单位时间接收访问请求次数的装置(以下简称为“接口单位时间接收访问请求次数获取装置”)210;
[0076] 用于基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口的装置(以下简称为“不安全接口确定装置”)220,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0077] 用于基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址的装置(以下简称为“不安全访问者地址确定装置”)230。
[0078] 下面对这些步骤进行详细描述。
[0079] 接口单位时间接收访问请求次数获取装置210用于获取网关各接口上的单位时间接收访问请求次数。
[0080] 网关各接口上的单位时间接收访问请求次数是由各网关在接收到访问请求时记录的。例如,可以在各接口设置计数器。接口每接收到一个访问请求,该计数器的值加1。在单位时间结束时,计数器清零。因此,可以从计数器的值得出各接口上的单位时间接收访问请求次数。
[0081] 不安全接口确定装置220用于基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口。
[0082] 在一个实施例中,不安全接口确定装置220进一步用于:如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
[0083] 所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。在一个实施例中,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。
[0084] 接口单位时间最大负载访问请求次数即接口单位时间能够承担的最大的访问请求次数,在承担单位时间这些次数或低于这些次数的访问请求时,接口的响应速度是可接受的,在承担单位时间高于这些次数的访问请求时,接口的响应速度是不可接受的。接口单位时间最大负载访问请求次数可以事先通过压测统计,即先在单位时间给接口1次访问请求,再在单位时间给接口2次访问请求,……直到接口的响应速度低于一个预设的响应速度阈值。该响应速度阈值是事先根据需要设定的。
[0085] 预定时间段内接口的单位时间平均接收访问请求次数是预定时间段内该接口总共接收的访问请求次数除以该预定时间段包含的单位时间个数。例如,在过去的3分钟内,接口A接收访问请求7200次,单位时间是1秒钟,则求得单位时间(每秒)平均接收访问请求次数为7200/180=40次。
[0086] 接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。显然,预定时间段内接口的单位时间平均接收访问请求次数小于或等于该接口单位时间最大负载访问请求次数。接口单位时间最大负载访问请求次数相当于接口的最大负载能力,接口的单位时间平均接收访问 请求次数相当于接口实际负载是多少。接口平均负载饱和度表示接口实际负载占其全部能力的比。当接口平均负载饱和度为1时,说明接口满负载工作。
[0087] 假设网关有n个接口,表示为M1,M2,……Mn。事先测得,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,它们的预定时间段内单位时间平均接收访问请求次数为b1,b2……bn。它们的接口平均负载饱和度为c1,c2,……cn。那么,c1=b1/a1,c2=b2/a2……cn=bn/an。
[0088] 各接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比分别为:
[0089] c1/(c1+c2+……cn)=(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0090] c2/(c1+c2+……cn)=(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0091] ……
[0092] cn/(c1+c2+……cn)=(bn/an)/(b1/a1+b2/a2+……bn/an)
[0093] 假设各接口单位时间接收访问请求次数阈值v1,v2……vn等于该接口单位时间最大负载访问请求次数a1,a2,……an乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比c1/(c1+c2+……cn),c2/(c1+c2+……cn)……,cn/(c1+c2+……cn),则
[0094] v1=a1(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0095] v2=a2(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0096] ……
[0097] vn=an(bn/an)/(b1/a1+b2/a2+……bn/an)
[0098] 假设获取的接口上的单位时间接收访问请求次数分别为p1,p2,……pn(与b1,b2……bn不同,b1,b2……bn是过去一个预定时间段内单位时间平均接收访问请求次数,是从历史统计出的,而p1,p2,……pn是接口当前单位时间接收访问请求次数),则可以分别基于p1,p2,……pn与v1,v2,……vn的比较,确定不安全接口。如果p1>v1,则接口M1是不安全接口。如果p2>v2,则接口M2是不安全接口。如果pn>vn,则接口Mn是不安全接口。
[0099] 不安全访问者地址确定装置230用于基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0100] 在一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址。例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。将请求次数从高到低前三名的访问者地址即A、B、C确定为不安全访问者地址。
[0101] 在另一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
[0102] 例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。对于A-F这六个访问者地址,先去掉一个单位时间访问请求次数最高的,即IP地址A,剩下的单位时间接收访问请求次数为40次,而接口单位时间接收访问请求次数阈值为15次。40次大于15次。再从B-F这五个访问者地址中,去掉一个单位时间访问请求次数最高的,即IP地址B,剩下的单位时间接收访问请求次数为22次,仍大于接口单位时间接收访问请求次数阈值15次。再从C-F这五个访问者地址中,去掉一个单位时间访问请求次数最高的,即IP地址C,剩下的单位时间接收访问请求次数为10次,小于接口单位时间接收访问请求次数阈值15次。则m=3。IP地址A、B、C为不安全访问者地址。
[0103] 与前面将单位时间访问该不安全接口的请求次数从高到低前预定 名次的访问者地址确定为不安全访问者地址的实施例相比,本实施例不固定不安全访问者地址的数目,而是按单位时间访问该不安全接口的请求次数从高到低一个一个去掉,直到剩下的该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值为止。这样,可以有效控制该不安全接口上的单位时间接收访问请求次数,让其保持不大于接口单位时间接收访问请求次数阈值即可,不必要过分低,造成负载能力的浪费,同时也避免将请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址的实施例中由于确定为不安全访问者地址的数目固定,在攻击者很多、很分散的情况下无法将全部攻击者确定为不安全访问者地址,带来安全隐患。
[0104] 在一个实施例中,所述装置200还包括:用于在不安全接口上确定不安全访问者地址之后,将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关的装置。
[0105] 将确定的不安全访问者地址拉入黑名单之后,就可以以后禁止这些不安全访问者地址访问网关,提高网关安全性。
[0106] 在一个实施例中,所述装置200还包括:用于在获取网关各接口上的单位时间接收访问请求次数后,将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较的装置。
[0107] 上面假设,获取的各接口上的单位时间接收访问请求次数分别为p1,p2,……pn,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,则将p1/a1+p2/a2+……+pn/an得到的结果与预设的和阈值比较。如果得到的结果大于预设的和阈值才基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较确定不安全接口。如果小于预设的和阈值,说明网关可以承受当前的负载,不用确定不安全访问者地址。
[0108] 将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较的好处是,在一些仅凭各个接口上的访问请求次数作一个简单的判断就能判定出网 关不大可能受到攻击的情况下,不必进行不安全接口确定装置220和不安全访问者地址确定装置230的计算和处理,减少了网关的处理负荷。并且,可以接受更多的合理请求,提高服务使用率。
[0109] 本发明实施例中,基于接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,然后基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址,其中,所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。也就是说,该阈值的设定首先与接口单位时间最大负载访问请求次数有关。接口单位时间最大负载访问请求次数越大,说明接口的负载能力越强,在这样的接口上可以放大阈值,从而充分利用该接口的负载能力来解决更多访问者地址的访问,减少将正常用户的频繁访问当作攻击的可能性。另外,该阈值与统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比有关,其中接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。接口平均负载饱和度反映了接口惯常工作负载情况,即是经常满负载工作,还是非常清闲地工作。如果一个接口经常很清闲地工作,即平时单位时间接收访问请求的次数仅是其最大负载能力的一个很小比例,突然该接口单位时间接收访问请求的次数变多更有可能是受到了攻击。而如果一个接口经常接近其最大负载能力地工作,其单位时间接收访问请求的次数稍微增大一点,只要还未达到最大负载能力,往往不是由于受到攻击导致的,很可能只是用户的正常频繁请求。因此,接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,使得确定出的不安全接口以及进而确定的不安全访问者地址更科学、合理,在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。
[0110] 图4示出了适于用来实现本发明实施方式的示例性设备12的框图。图4显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0111] 如图4所示,设备12以通用计算设备的形式表现。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0112] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0113] 设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0114] 系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模,这些程序模块被配置以执行本发明各实施例的功能。
[0115] 具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中 的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0116] 设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0117] 处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现一种网关防攻击的方法,包括:
[0118] 获取网关各接口上的单位时间接收访问请求次数;
[0119] 基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0120] 基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0121] 下面对上述过程进行详细描述。
[0122] 首先,获取网关各接口上的单位时间接收访问请求次数。
[0123] 网关各接口上的单位时间接收访问请求次数是由各网关在接收到访问请求时记录的。例如,可以在各接口设置计数器。接口每接收 到一个访问请求,该计数器的值加1。在单位时间结束时,计数器清零。因此,可以从计数器的值得出各接口上的单位时间接收访问请求次数。
[0124] 接着,基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口。
[0125] 在一个实施例中,如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
[0126] 所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。在一个实施例中,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。
[0127] 接口单位时间最大负载访问请求次数即接口单位时间能够承担的最大的访问请求次数,在承担单位时间这些次数或低于这些次数的访问请求时,接口的响应速度是可接受的,在承担单位时间高于这些次数的访问请求时,接口的响应速度是不可接受的。接口单位时间最大负载访问请求次数可以事先通过压测统计,即先在单位时间给接口1次访问请求,再在单位时间给接口2次访问请求,……直到接口的响应速度低于一个预设的响应速度阈值。该响应速度阈值是事先根据需要设定的。
[0128] 预定时间段内接口的单位时间平均接收访问请求次数是预定时间段内该接口总共接收的访问请求次数除以该预定时间段包含的单位时间个数。例如,在过去的3分钟内,接口A接收访问请求7200次,单位时间是1秒钟,则求得单位时间(每秒)平均接收访问请求次数为7200/180=40次。
[0129] 接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。显然,预定时间段内接口的单位时间平均接收访问请求次数小于或等于该接口单位时间最大负载访问请求次数。接口单位时间最大负载访问请求次数相当于接口的最大负载能力,接口的单位时间平均接收访问请求次数相当于接口实际负载是多少。接口平均负载饱和度表示接口实际负载占其全部能力的比。当接口平均负载饱和度为1时,说明接口满负载工作。
[0130] 假设网关有n个接口,表示为M1,M2,……Mn。事先测得,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,它们的预定时间段内单位时间平均接收访问请求次数为b1,b2……bn。它们的接口平均负载饱和度为c1,c2,……cn。那么,c1=b1/a1,c2=b2/a2……cn=bn/an。
[0131] 各接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比分别为:
[0132] c1/(c1+c2+……cn)=(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0133] c2/(c1+c2+……cn)=(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0134] ……
[0135] cn/(c1+c2+……cn)=(bn/an)/(b1/a1+b2/a2+……bn/an)
[0136] 假设各接口单位时间接收访问请求次数阈值v1,v2……vn等于该接口单位时间最大负载访问请求次数a1,a2,……an乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比c1/(c1+c2+……cn),c2/(c1+c2+……cn)……,cn/(c1+c2+……cn),则
[0137] v1=a1(b1/a1)/(b1/a1+b2/a2+……bn/an)
[0138] v2=a2(b2/a2)/(b1/a1+b2/a2+……bn/an)
[0139] ……
[0140] vn=an(bn/an)/(b1/a1+b2/a2+……bn/an)
[0141] 假设获取的接口上的单位时间接收访问请求次数分别为p1,p2,……pn(与b1,b2……bn不同,b1,b2……bn是过去一个预定时间段内单位 时间平均接收访问请求次数,是从历史统计出的,而p1,p2,……pn是接口当前单位时间接收访问请求次数),则可以分别基于p1,p2,……pn与v1,v2,……vn的比较,确定不安全接口。如果p1>v1,则接口M1是不安全接口。如果p2>v2,则接口M2是不安全接口。如果pn>vn,则接口Mn是不安全接口。
[0142] 接着,基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0143] 在一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址。例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。将请求次数从高到低前三名的访问者地址即A、B、C确定为不安全访问者地址。
[0144] 在另一个实施例中,将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
[0145] 例如,如果某接口被确定为不安全接口,单位时间访问该接口有70个请求,其中30个来自IP地址A,18个来自IP地址B,12个来自IP地址C,5个来自IP地址D,3个来自IP地址E,2个来自IP地址F。对于A-F这六个访问者地址,先去掉一个单位时间访问请求次数最高的,即IP地址A,剩下的单位时间接收访问请求次数为40次,而接口单位时间接收访问请求次数阈值为15次。40次大于15次。再从B-F这五个访问者地址中,去掉一个单位时间访问请求次数最高的,即IP地址B,剩下的单位时间接收访问请求次数为22次,仍大于接口单位时间接收访问请求次数阈值15次。再从C-F这五个访问者地址中,去掉一个单 位时间访问请求次数最高的,即IP地址C,剩下的单位时间接收访问请求次数为10次,小于接口单位时间接收访问请求次数阈值15次。则m=3。IP地址A、B、C为不安全访问者地址。
[0146] 与前面将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址的实施例相比,本实施例不固定不安全访问者地址的数目,而是按单位时间访问该不安全接口的请求次数从高到低一个一个去掉,直到剩下的该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值为止。这样,可以有效控制该不安全接口上的单位时间接收访问请求次数,让其保持不大于接口单位时间接收访问请求次数阈值即可,不必要过分低,造成负载能力的浪费,同时也避免将请求次数从高到低前预定名次的访问者地址确定为不安全访问者地址的实施例中由于确定为不安全访问者地址的数目固定,在攻击者很多、很分散的情况下无法将全部攻击者确定为不安全访问者地址,带来安全隐患。
[0147] 在一个实施例中,所述网关防攻击的方法还包括:在不安全接口上确定不安全访问者地址之后,将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关。
[0148] 将确定的不安全访问者地址拉入黑名单之后,就可以以后禁止这些不安全访问者地址访问网关,提高网关安全性。
[0149] 在一个实施例中,所述网关防攻击的方法还包括:在获取网关各接口上的单位时间接收访问请求次数之后,将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较。
[0150] 上面假设,获取的各接口上的单位时间接收访问请求次数分别为p1,p2,……pn,它们的单位时间最大负载访问请求次数分别为a1,a2,……an,则将p1/a1+p2/a2+……+pn/an得到的结果与预设的和阈值比较,如果得到的结果大于预设的和阈值才确定不安全接口,如果小于预设的和阈值,说明网关可以承受当前的负载,不用确定不安全访问者地址。
[0151] 将获取的网关各接口上的单位时间接收访问请求次数与该接口单位 时间最大负载访问请求次数之比的和与预设的和阈值比较的好处是,在一些仅凭各个接口上的访问请求次数作一个简单的判断就能判定出网关不大可能受到攻击的情况下,不必进行确定不安全接口和确定不安全访问者地址的计算和处理,减少了网关的处理负荷。并且,可以接受更多的合理请求,提高服务使用率。
[0152] 本发明实施例中,基于接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,然后基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址,其中,所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定。也就是说,该阈值的设定首先与接口单位时间最大负载访问请求次数有关。接口单位时间最大负载访问请求次数越大,说明接口的负载能力越强,在这样的接口上可以放大阈值,从而充分利用该接口的负载能力来解决更多访问者地址的访问,减少将正常用户的频繁访问当作攻击的可能性。另外,该阈值与统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比有关,其中接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比。接口平均负载饱和度反映了接口惯常工作负载情况,即是经常满负载工作,还是非常清闲地工作。如果一个接口经常很清闲地工作,即平时单位时间接收访问请求的次数仅是其最大负载能力的一个很小比例,突然该接口单位时间接收访问请求的次数变多更有可能是受到了攻击。而如果一个接口经常接近其最大负载能力地工作,其单位时间接收访问请求的次数稍微增大一点,只要还未达到最大负载能力,往往不是由于受到攻击导致的,很可能只是用户的正常频繁请求。因此,接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,使得确定出的不安全接口以及进而确定的不安全访问者地址更科 学、合理,在更准确地识别出不安全访问者地址的同时,减少将正常用户的频繁访问当作攻击的可能性。
[0153] 另外,根据本发明的一个实施例,还提出了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现:
[0154] 获取网关各接口上的单位时间接收访问请求次数;
[0155] 基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较,确定不安全接口,其中所述接口单位时间接收访问请求次数阈值基于该接口单位时间最大负载访问请求次数、以及统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比事先确定,接口平均负载饱和度是预定时间段内该接口的单位时间平均接收访问请求次数与该接口单位时间最大负载访问请求次数之比;
[0156] 基于访问不安全接口的访问者地址单位时间访问该不安全接口的请求次数,在不安全接口上确定不安全访问者地址。
[0157] 可选地,该程序被处理器执行时还实现:将获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和与预设的和阈值比较。基于获取的接口上的单位时间接收访问请求次数与接口单位时间接收访问请求次数阈值的比较确定不安全接口仅在获取的网关各接口上的单位时间接收访问请求次数与该接口单位时间最大负载访问请求次数之比的和大于该预设的和阈值的情况下进行。
[0158] 可选地,所述接口单位时间接收访问请求次数阈值等于该接口单位时间最大负载访问请求次数乘以统计出的该接口平均负载饱和度占网关所有接口的接口平均负载饱和度之和的比。
[0159] 可选地,所述确定不安全接口包括:如果获取的接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,则确定该接口为不安全接口。
[0160] 可选地,所述在不安全接口上确定不安全访问者地址包括:将单位时间访问该不安全接口的请求次数从高到低前预定名次的访问者地址 确定为不安全访问者地址。
[0161] 可选地,所述在不安全接口上确定不安全访问者地址包括:将单位时间访问该不安全接口的请求次数从高到低前m名的访问者地址确定为不安全访问者地址,使得在该不安全接口上去掉这前m名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数不大于接口单位时间接收访问请求次数阈值,而在该不安全接口上去掉前m-1名的访问者地址的访问请求的情况下,该不安全接口上的单位时间接收访问请求次数大于接口单位时间接收访问请求次数阈值,其中m为正整数。
[0162] 可选地,该程序被处理器执行时还实现:在不安全接口上确定不安全访问者地址之后,将确定的不安全访问者地址拉入黑名单,从而禁止这些不安全访问者地址访问网关。
[0163] 需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
[0164] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词 语用来表示名称,而并不表示任何特定的顺序。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈