攻击检测方法和装置
技术领域
本申请的实施方式涉及网络安全领域,更具体地,本申请的实施方式涉及攻击检测方法和装置。
背景技术
本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前,随着网络能够为用户提供的内容越来越多,而且用户数量不断增大,如何提高网络安全成为行业内不但深入解决的问题。
具体来说,为了维护网络安全,需要对恶意用户的攻击行为进行检测。相关技术中通常统计同一用户在一定时间段内发送的访问请求的数量。具体的,统计同一IP(InternetProtocol,网络之间互连的协议)地址,在一定时间段内发送的URL(Uniform ResourceLocator,统一资源定位符)的数量,若该数量超过阈值,则确定检测到攻击行为。并进一步的拦截该IP发送的访问请求。
发明内容
出于相关技术中仅通过IP地址来检测是否发生攻击行为的原因,现有技术中,网络攻击检测的检测维度单一,检测结果不够准确。此外,考虑到误判的影响,现有技术中攻击检测的阈值设置的较高,使得攻击检测的灵敏度低。而且,现有技术中,一旦检测到攻击行为,就封锁用户IP,该用户不能够在发送访问请求,在存在误判的情况下,使得误判的用户无法继续进行访问操作,降低用户体验。
因此在现有技术中,存在检测维度单一、检测结果不够准确、灵敏度低以及误判率高的问题,使得用户被误判后无法操作,用户整体满意度低,这是非常令人烦恼的过程。
为此,非常需要一种改进的攻击检测方法和装置,达到提高检测准确性,降低误判率的目的,并能够提高用户的应用体验。
在本上下文中,本申请的实施方式期望提供一种攻击检测方法和装置。
在本申请实施方式的第一方面中,提供了一种攻击检测方法,包括:
获取访问请求中的用户标识和URL;
确定所述URL归属的预设URL分组的分组标识;
构建一条包含所述用户标识和所述分组标识的访问行为描述信息;
若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
进一步的,所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击之前,所述方法还包括:
确定构建的所述访问行为描述信息不在访问行为白名单中;和/或,
确定所述用户标识不在攻击者名单中。
进一步的,若所述用户标识不在所述攻击者名单中,所述方法还包括:
将构建的所述访问行为描述信息提交到预置分析队列中;
所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击,具体包括:
采用独立的线程处理所述预置分析队列,并若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
进一步的,所述方法还包括:
判断所述预置分析队列中的访问行为描述信息总量是否达到指定总量;
若是,则丢弃构建的所述访问行为描述信息;
若否,则将构建的所述访问行为描述信息提交到预置分析队列中。
进一步的,所述采用独立的线程处理所述预置分析队列,并若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击,具体包括:
采用独立的线程从所述预置分析队列中获取构建的所述访问行为描述信息;并,
采用原子操作的方式将分布式内存缓存中记录的包含所述用户标识和所述分组标识的访问行为描述信息的数量累加1,并获取累加结果;
若在预设时长内所述累加结果大于所述预设阈值,则确定检测到攻击。
进一步的,所述获取访问请求中的用户标识和统一资源定位符URL之前,所述方法还包括:
确定自动熔断开关处于关闭状态;
所述方法还包括:
若第一指定时长内未获取到累加结果的次数超过第一预设次数,则配置所述自动熔断开关处于打开状态。
进一步的,所述确定构建的所述访问行为描述信息不在访问行为白名单中,具体包括:
确定构建的所述访问行为描述信息不在分布式内存缓存中存储的访问行为白名单中;
所述确定所述用户标识不在攻击者名单中,具体包括:
确定所述用户标识不在分布式内存缓存中存储的攻击者名单中。
进一步的,所述获取访问请求中的用户标识和统一资源定位符URL之前,所述方法还包括:
确定自动熔断开关处于关闭状态;
所述方法还包括:
若第二指定时长内确定访问行为描述信息是否在访问行为白名单中的操作和/或确定用户标识是否在攻击者名单中的操作的超时的总次数超过第二预设次数,则配置所述自动熔断开关处于打开状态。
进一步的,若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,所述方法还包括:
若确定所述用户标识不在所述攻击者名单中,则将所述用户标识添加到所述攻击者名单中。
进一步的,确定所述URL归属的预设URL分组的分组标识,具体包括:
确定所述URL与满足预设正则规则的URL集合中的URL类是否匹配;
若匹配,则将匹配的URL类对应的分组标识、确定为所述URL归属的预设URL分组的分组标识。
进一步的,所述方法还包括:
接收携带至少一组URL分组的攻击检测参数的配置指令;
根据所述配置指令配置所述至少一组攻击检测参数;其中,所述攻击检测参数包括:对应URL分组的所述预设时长、对应URL分组和对应URL分组的所述预设阈值。
进一步的,若确定所述用户标识在所述攻击者名单中,所述方法还包括:
请求用于发送所述访问请求的终端返回指定的需要手动输入的验证信息;
若所述终端返回正确的验证信息,则将构建的所述用户访问行为描述信息添加到所述访问行为白名单中;以及,
将所述访问请求所请求的数据发送给所述终端。
进一步的,所述确定检测到攻击之后,所述方法还包括:
输出遭到攻击的报警提示。
进一步的,所述获取访问请求中的用户标识和统一资源定位符URL之前,所述方法还包括:
确定手动拦截校验开关处于关闭状态、且自动检测开关处于打开状态、以及所述访问请求对应的IP地址不在预置的IP地址白名单中。
进一步的,所述方法还包括:
针对所述访问行为白名单中的每一条访问行为描述信息,若该条访问行为描述信息在所述访问行为白名单中的存储时长大于第一预设存储时长,则删除该条访问行为描述信息;
针对所述攻击者名单中的每一个用户标识,若该用户标识在所述攻击者名单中的存储时长大于第二预设存储时长,则删除该用户标识。
在本申请实施方式的第二方面中,提供了一种攻击检测装置,包括:
URL获取模块,用于获取访问请求中的用户标识和URL;
分组标识确定模块,用于确定所述URL归属的预设URL分组的分组标识;
构建模块,用于构建一条包含所述用户标识和所述分组标识的访问行为描述信息;
检测模块,用于若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
在本申请实施方式的第三方面中,提供了一种攻击检测设备,例如,可以包括存储器和处理器,其中,处理器可以用于读取存储器中的程序,执行下列过程:
获取访问请求中的用户标识和URL;
确定所述URL归属的预设URL分组的分组标识;
构建一条包含所述用户标识和所述分组标识的访问行为描述信息;
若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
在本申请实施方式的第四方面中,提供了一种程序产品,其包括程序代码,当所述程序产品运行时,所述程序代码用于执行以下过程:
获取访问请求中的用户标识和URL;
确定所述URL归属的预设URL分组的分组标识;
构建一条包含所述用户标识和所述分组标识的访问行为描述信息;
若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
根据本申请实施方式的攻击检测方法和装置,在获取访问请求中的用户标识和URL后;确定所述URL归属的预设URL分组的分组标识;并构建一条包含所述用户标识和所述分组标识的访问行为描述信息;若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。这样,本申请相当于将用户的访问行为抽象成用户行为描述信息。那么,攻击检测是基于访问行为描述信息来进行的,也即预设时长内,相同的访问行为描述信息的数量超过预设阈值则说明,该访问行为描述信息对应的访问行为是攻击行为。用户行为描述信息是基于用户标识和访问的URL的分组标识构建的,相对于现有技术中仅通过IP地址来检测,用户行为描述信息更适用于来判断用户访问行为是否为攻击行为。所以,本申请提供的技术方案能够提高检测结果的准确性。进一步地,由于检测的准确性提高,误判率也就会降低,检测时的预设阈值相比现有技术也能够设置的小一些,从而检测的灵敏度也能够提高。误判率降低了,故此也能够进一步提高用户整体的应用体验。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,其中:
图1示意性地示出了根据本申请实施方式的应用场景示意图之一;
图2示意性地示出了根据本申请实施方式的应用场景示意图之二;
图3示意性地示出了根据本申请一实施例的攻击检测方法的流程示意图;
图4示意性地示出了根据本申请另一实施例的攻击检测方法的流程示意图;
图5示意性地示出了根据本申请再一实施例的攻击检测装置的结构示意图;
图6示意性地示出了根据本申请再一实施例的攻击检测装置的结构示意图;
图7示意性地示出了根据本申请一实施例的攻击检测的程序产品的结构示意图;
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本申请的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本申请的实施方式,提出了一种攻击检测方法和装置。
在本文中,需要理解的是,所涉及的术语:
1、URL分组:根据设定的分类规则对不同的URL进行分类,一类URL为一个URL分组;也就是说,每个URL分组中包括至少一个URL。
2、访问行为描述信息:顾名思义,用来描述用户的访问行为的信息,一个用户标识加一个URL分组的分组标识可以构建一条访问行为描述信息。
3、攻击行为:统计一个检测周期内的同一访问行为描述信息的数量,若该数量大于预设阈值,则确定检测到访问攻击。其中,检测周期,指下文中的预设时长。
4、原子操作:线程间交互数据最细粒度的同步操作,它可以保证线程间读写某个数值的原子性。由于不需要加重量级的互斥锁进行同步,因此非常轻量,而且也不需要在内核间来回切换调度,效率较高。
5、分布式内存缓存:可以缓存至少一个服务器的内存。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本申请的若干代表性实施方式,详细阐释本申请的原理和精神。
发明概述
本发明人在实现本发明的过程中研究发现,现有技术中,出于相关技术中仅通过IP地址来检测是否发生攻击行为的原因,现有技术中,网络攻击检测的检测维度单一,检测结果不够准确。此外,考虑到误判的影响,现有技术中攻击检测的阈值设置的较高,使得攻击检测的灵敏度低。而且,现有技术中,一旦检测到攻击行为,就封锁用户IP,该用户不能够在发送访问请求,在存在误判的情况下,使得误判的用户无法继续进行访问操作,降低用户体验。
本申请实施例中,在获取访问请求中的用户标识和URL后;确定所述URL归属的预设URL分组的分组标识;并构建一条包含所述用户标识和所述分组标识的访问行为描述信息;若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。这样,本申请相当于将用户的访问行为抽象成用户行为描述信息。那么,攻击检测是基于访问行为描述信息来进行的,也即预设时长内,相同的访问行为描述信息的数量超过预设阈值则说明,该访问行为描述信息对应的访问行为是攻击行为。用户行为描述信息是基于用户标识和访问的URL的分组标识构建的,相对于现有技术中仅通过IP地址来检测,用户行为描述信息更适用于来判断用户访问行为是否为攻击行为。所以,本申请提供的技术方案能够提高检测结果的准确性。进一步地,由于检测的准确性提高,误判率也就会降低,检测时的预设阈值相比现有技术也能够设置的小一些,从而检测的灵敏度也能够提高。误判率降低了,故此也能够进一步提高用户整体的应用体验。
在介绍了本申请的基本原理之后,下面具体介绍本申请的各种非限制性实施方式。
应用场景总览
首先参考图1其为本申请实施例提供的攻击检测方法的应用场景示意图之一。该场景例如可以包括发送访问请求的用户10、用户终端11和提供访问服务的访问资源服务器12。其中,所述用户终端11中可安装有各种客户端,如网易新闻客户端、网易一元购客户端、视频客户端等。用户10可基于所述用户终端11中的客户端,向访问资源服务器12下发携带用户标识和URL的访问请求;由访问资源服务器12获取访问请求中的用户标识和统一资源定位符URL;确定所述URL归属的预设URL分组的分组标识;构建一条包含所述用户标识和所述分组标识的访问行为描述信息;若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
此外,管理攻击检测的管理员可以通过访问资源服务器配置用于进行攻击检测的参数。例如配置URL分组的参数、配置检测周期即预设时长的参数等等。该检测维护设备可以为访问资源服务器12,也可以是访问资源服务器12之外的其它设备(例如除用户终端11之外的另一个终端,或者其它服务器)。
如图2所示,为本申请实施例提供的攻击检测方法的应用场景示意图之二。该场景例如可以包括发送访问请求的用户10、用户终端11和至少一个访问资源服务器12(图2中示出了包含多个访问资源服务器的情况)和分布式内存缓存服务器13以及配置平台14。其中,可以由访问资源服务器12进行攻击检测,管理攻击检测的管理员可以通过配置平台14配置进行攻击检测的参数,如前述的URL分组、检测周期等。分布式内存缓存服务器13可以为访问资源服务器12提供内存缓存功能,以便于提高攻击检测的效率。其中,所述用户终端11中可安装有各种客户端,如网易新闻客户端、网易一元购客户端、视频客户端等。用户10可基于所述用户终端11中的客户端,向所述访问资源服务器12下发携带用户标识和URL的访问请求;由所述访问资源服务器12获取访问请求中的用户标识和统一资源定位符URL;确定所述URL归属的预设URL分组的分组标识;构建一条包含所述用户标识和所述分组标识的访问行为描述信息;若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
其中,进一步的,内存缓存服务器13中可以存储有访问行为白名单和/或攻击者名单。当具有访问行为白名单和攻击者名单时,访问资源服务器12在执行若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击之前,可以先确定构建的所述访问行为描述信息不在所述访问行为白名单中,并且确定所述用户标识不在所述攻击者名单中。
具体实施时,分布式内存缓存服务器中还可以存储和管理有其它信息,具体的将在后文中描述,这里暂不详述。
综上,在图1和图2所示的应用场景中,用户终端11和访问资源服务器12可通过通信网络进行通信连接,该网络可以为局域网、广域网等。用户终端11可以为手机、平板电脑、笔记本电脑、个人计算机等,访问资源服务器12可以为任何能够支持相应的攻击检测的服务器设备。
示例性方法
下面结合图1和图2所述的应用场景,参考图3-4来描述根据本申请示例性实施方式的用于的方法。需要注意的是,上述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
如图3所示,为本申请实施例提供的攻击检测方法的流程示意图,包括:
步骤301:获取访问请求中的用户标识和URL。
步骤302:确定所述URL归属的预设URL分组的分组标识。
步骤303:构建一条包含所述用户标识和所述分组标识的访问行为描述信息。
步骤304:若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
其中,在一个实施例中,可以预先配置有预设URL分组。例如/product/*.html为一个预设URL分组,其中“*”可以理解为通配符,用于与任意字符匹配。也就是说包含/product/*.html的URL均属于该URL分组。例如,/product/123.html,/product/456.html等页面均属于/product/*.html分组。
具体实施时,为了提高确定分组标识的效率,步骤302中确定所述URL归属的预设URL分组的分组标识,可具体包括:
步骤A1:确定所述URL与满足预设正则规则的URL集合中的URL类是否匹配。
步骤A2:若匹配,则将匹配的URL类对应的分组标识、确定为所述URL归属的预设URL分组的分组标识。
其中,具体实施时,分组标识可以根据实际需求设定,本申请对此不做限定。
当然,需要说明的是,也可以采用其他方法进行URL分组,例如提供相似展示对象的URL分为一组,相似展示对象例如是外观和功能相似的手机的图片。当然,任何能够分组的方法均适用于本申请实施例,本申请对此不做限定。
其中,在一个实施例中,为了满足功能性需求,管理攻击检测的管理员可根据实际需求配置用于攻击检测的参数。具体的,所述方法还包括:
步骤B1:接收携带至少一组URL分组的攻击检测参数的配置指令。
步骤B2:根据所述配置指令配置所述至少一组攻击检测参数;其中,所述攻击检测参数包括:对应URL分组的所述预设时长、对应URL分组和对应URL分组的所述预设阈值。
例如,具体实施时,管理员可以通过应用场景2中的配置平台14配置第一URL分组,第二URL分组,并分别配置第一URL分组和第二URL分组各自对应的预设时长和预设阈值。例如,第一URL分组对应的预设时长为T1,第二URL分组对应的预设时长为T2(当然T1和T2可以相同也可以不同)。然后,配置平台生成配置指令发送出去。然后,应用场景2中的访问资源服务器12在接收到配置指令后进行相应配置。
这样,管理员可以根据自身需求来进行参数配置,以便于动态的调整参数,满足当前的需求,实现更加合理的攻击检测。
其中,在一个实施例中,还可以接收删除URL分组及对应的攻击检测参数的删除指令,这样,以便于将不需要的URL分组及攻击检测参数删除,节约存储资源。
进一步地,本申请实施例中为了提高攻击检测的效率,在所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击之前,所述方法还包括:
确定构建的所述访问行为描述信息不在访问行为白名单中;和/或,
确定所述用户标识不在攻击者名单中。
其中,访问行为白名单中存储的访问行为描述信息是表示没有攻击行为的访问行为描述信息。所以,当步骤303中构建的访问行为描述信息在白名单中时,可以表示无需执行步骤304。同理,攻击者名单中存储的用户标识表示的是具有攻击行为的用户的用户标识。所以,当步骤303中构建的访问行为描述信息中的用户标识存在于攻击者名单中时,则可以直接确定检测到攻击或执行其它操作,而无需执行步骤304。故此,可以提高检测的效率。
具体实施时,访问行为白名单和攻击者名单可以是独立的名单,也可以是混合在一起的名单。混合在一起时的访问行为白名单和攻击者名单,可以如表1所示,各个访问行为描述信息都有对应的名单成员标识,称为Key值,在表1中,0表示攻击者名单成员,1表示访问行为白名单成员。需要说明的是,表1仅用于说明访问行为白名单和攻击者名单,并不用于限定本申请实施例。具体实施时,可以根据实际需要确定,本申请对此不作限定。
表1
访问行为描述信息 |
名单成员标识(Key值) |
A1 |
0 |
…… |
…… |
Nn |
1 |
具有key值时,确定构建的所述访问行为描述信息不在访问行为白名单中;可具体执行为,若构建的所述访问行为描述信息对应的key值不为1,则确定构建的所述访问行为描述信息不在访问行为白名单中。
同理,确定所述用户标识不在攻击者名单中,可具体执行为若所述用户标识对应的访问行为描述信息对应的key值不为0则确定所述用户标识不在攻击者名单中。
当然,若具体实施时,根据访问行为描述信息查询访问行为白名单和攻击者名单后,返回的访问行为描述信息对应的key值为空,则说明即不在访问行为描述信息白名单中也不在攻击者名单中。
当然,具体实施时,为了进一步便于描述访问行为描述信息,也可以为访问行为描述信息生成对应的信息标识。当然,同样访问行为描述信息的信息标识相同。
其中,访问行为白名单中存储的访问行为描述信息可以是根据实际需要添加的。例如,预先可以确定安全用户的用户标识,以及安全用户访问请求中的安全URL分组,由安全用户的用户标识和安全URL分组的分组标识构建访问行为描述信息,然后可以将该访问行为描述信息添加到访问行为白名单中。
同理,针对攻击者名单,也可以将预先确定的攻击者的用户标识添加到攻击者名单中。
进一步的,若采用攻击者名单时,为了实现对攻击者名单的自动完善,以保证攻击者名单中各用户标识的全面性和有效性。本申请实施例中,若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值的情况下,所述方法还包括:若确定所述用户标识不在所述攻击者名单中,则将所述用户标识添加到所述攻击者名单中。也就是说,当访问行为描述信息的数量大于预设阈值时,说明发生了攻击行为,该攻击行为的发起者即是该访问行为描述信息中的用户标识对应的用户;与此同时,若攻击者名单中没有该用户标识,则需要将该攻击者补入到攻击者名单中,实现对攻击者名单的自动完善和优化。
进一步的,攻击行为通常由机器实现,并非人工发送多个访问请求。故此,本申请实施例中,为了降低误判带来的风险,降低误判造成的访问用户的体验差,若确定所述用户标识在所述攻击者名单中,所述方法还包括:
步骤C1:请求用于发送所述访问请求的终端返回指定的需要手动输入的验证信息。
其中,需要手动输入的验证信息,例如是需要手动输入的验证码等。
步骤C2:若所述终端返回正确的验证信息,则将构建的所述用户访问行为描述信息添加到所述访问行为白名单中。
与此同时,在添加到访问行为白名单中之后或同时,还可以将所述访问请求中的用户标识从攻击者名单中删除。
也就是说,若终端返回正确的验证信息则产生了误判,可以将构建的所述用户访问行为描述信息添加到所述访问行为白名单来表明该终端发送的访问请求不存在攻击行为。
其中,若所述终端没有返回正确的验证信息时,或者若所述终端没有返回正确的验证信息的次数达到预设验证次数时,则可以确定该终端的访问请求对应的访问行为是攻击行为,从而可以丢弃该访问请求不予处理,并可以拦截该终端而不处理该终端的访问请求。
步骤C3:将所述访问请求所请求的数据发送给所述终端。
也就是说,若所述终端返回正确的验证信息则说明,则说明终端的访问请求不是机械性大量发出的,也就是该终端不存在攻击行为,则可以减少误判发生率。
需要说明的是步骤C2中的将构建的所述用户访问行为描述信息添加到所述访问行为白名单中和步骤C3的执行顺序不受限。
其中,在一个实施例中,为了实现对访问行为白名单和攻击者名单的不断更新,若采用访问行为白名单,则针对所述访问行为白名单中的每一条访问行为描述信息,若该条访问行为描述信息在所述访问行为白名单中的存储时长大于第一预设存储时长,则删除该条访问行为描述信息。
同理,若采用攻击者名单,则针对所述攻击者名单中的每一个用户标识,若该用户标识在所述攻击者名单中的存储时长大于第二预设存储时长,则删除该用户标识。
当然,具体实施时,还可以采用进一步细化的方案来更新访问行为白名单和攻击者名单。具体的,针对访问行为白名单,在上述删除访问行为白名单中的访问行为描述信息之前,还可以进一步确定从当前时间开始的第一指定时间段内未构建该访问行为描述信息。也就是说,该第一指定时间段内没有接收到该访问行为描述信息对应的访问请求。需要说明的是,由上述分析可知,访问请求中的URL对应一个URL分组,所以不同的访问请求构建的访问行为描述信息可能相同。所以,同一访问行为描述信息可以对应多个访问请求。
而,针对攻击者名单,在上述删除攻击者名单中的用户标识之前,还可以确定从当前时间开始的第二指定时间段内未接收到携带该用户标识的访问请求。其中,第二指定时间段和第一指定时间段可以相同也可以不同。
进一步地,为了提高处理效率,访问行为白名单和/或攻击者名单可以预先存储在分布式内存缓存中,那么所述确定构建的所述访问行为描述信息不在访问行为白名单中,可具体包括:确定构建的所述访问行为描述信息不在分布式内存缓存中存储的访问行为白名单中;
同理,所述确定所述用户标识不在攻击者名单中,可具体包括:确定所述用户标识不在分布式内存缓存中存储的攻击者名单中。也就是说,通过分布式内存缓存能够提高操作访问行为白名单和/或攻击者名单的效率,而之后针对访问行为白名单和/或攻击者名单都可以基于分布式内存缓存实现,从而提高处理效率。
其中,在一个实施例中,若攻击检测和拦截和处理访问请求的业务代码在同一进程中会消耗处理资源,如CPU(Central Processing Unit,中央处理器)和内存等。为了不影响业务,尽量实现不耦合业务代码,使得本申请的攻击检测方案使用简单。另一方面,为了尽可能少地占用处理资源,也为了不明显影响正常访问的响应时间,提高运行的稳定性。本申请实施例中,若所述用户标识不在所述攻击者名单中,所述方法还可包括:将构建的所述访问行为描述信息提交到预置分析队列中;则,所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击,可具体包括:采用独立的线程处理所述预置分析队列,并若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
也就是说,访问请求的处理可以由一线程来实现,具体的攻击检测可以由另一独立的线程进行处理。具体的,由第一线程处理访问请求,并构建访问行为描述信息,而由独立的第二线程来判断若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量是否大于预设阈值。这样,数量的判断和访问请求的处理可以分别由独立的线程完成,能够尽量不耦合业务代码,同时提高运行的稳定性。
此外,在将构建的所述访问行为描述信息提交到预置分析队列中之后,还可以返回访问请求所请求的数据,从而减少对访问的响应时间的影响,保证访问请求业务处理的及时性,提高访问用户的应用体验。
进一步的,为了保证运行的稳定性,减少可能出现的风险,所述方法还包括:
步骤D1:判断所述预置分析队列中的访问行为描述信息总量是否达到指定总量。
步骤D2:若是,则丢弃构建的所述访问行为描述信息;若否,则将构建的所述访问行为描述信息提交到预置分析队列中。
也就是说,在将访问行为描述信息提交到预置分析队列之前,先确定预置分析队列是否已满,若是则可能导致预置分析队列溢出,而出现异常。所以,在本申请实施例中,及时丢弃构建的所述访问行为描述信息能够避免预置分析队列溢出,降低风险。
其中,在一个实施例中,在提供访问服务的分布式系统中,如果同一用户的访问请求一部分落在该分布式系统中的第一服务器处理,另一部分落在第二服务器处理。故此,同一访问行为描述信息可能部分落在第一服务器上,另一部分落在第二服务器上。所以如果单机检测将丢掉部分访问行为描述信息,导致累加结果不准确。故此,为了实现分布式检测,提高检测的准确性和效率,所述采用独立的线程处理所述预置分析队列,并若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击,可具体包括:
步骤E1:采用独立的线程从所述预置分析队列中获取构建的所述访问行为描述信息。
步骤E2:采用原子操作的方式将分布式内存缓存中记录的包含所述用户标识和所述分组标识的访问行为描述信息的数量累加1,并获取累加结果。
步骤E3:若在预设时长内所述累加结果大于所述预设阈值,则确定检测到攻击。
也就是说,具体实施时,分布式内存缓存可统计各个提供访问服务的服务器中的同一访问行为描述信息的数量。例如具体实施时,若采用原子操作的方式实现整数的加减,在分布式系统集群中,各个执行攻击检测的设备,只需要一条语句就可以实现分布式内存缓存中对同一条访问行为描述信息的计数。而攻击检测设备之间不需要使用互斥锁来决定谁来控制分布式内存缓存,具体的执行由分布式内存缓存执行即可。故此,采用分布式内存缓存加原子操作的方式,能够有效的统计同一访问行为信息的数量,提高攻击检测的准确性和效率。
其中,在一个实施例中,引入分布式内存缓存之后,容易带来额外的风险,例如,分布式内存缓存出现故障将导致攻击检测无法操作或者操作错误。故此,为了保证正常运行,降低风险、以便于能够正常处理用户的访问业务,本申请实施例中,将引入自动熔断开关。该自动熔断开关处于打开状态时,可以暂停攻击检测,而对用户的访问请求则正常处理并返回请求的数据。该自动熔断开关处于关闭状态时,则本申请实施例的攻击检测方案照常进行。较佳的,当确定存在指定的异常事件时,则自动将自动熔断开关配置成打开状态。该异常事件例如是一定时长内对分布式内存缓存操作的超时次数达到预设超时次数。具体执行时,所述获取访问请求中的用户标识和URL之前,所述方法还包括确定自动熔断开关处于关闭状态;也就是说,在自动熔断开关处于关闭状态时,可以继续进行后续的攻击检测。
相应的,为了根据实际需求开关自动熔断开关,所述方法还包括:若第一指定时长内未获取到累加结果的次数超过第一预设次数,则配置所述自动熔断开关处于打开状态。也就是说,如果第一指定时长内未获取到累加结果的次数超过第一预设次数,则可能无法正常访问分布式内存缓存,为了避免用户的访问请求不能及时处理,所以,自动打开自动熔断开关。
同理,所述方法还包括:若第二指定时长内确定访问行为描述信息是否在访问行为白名单中的操作和/或确定用户标识是否在攻击者名单中的操作的超时的总次数超过第二预设次数,则配置所述自动熔断开关处于打开状态。也就是说,对访问行为白名单和/或攻击者名单的操作超时次数较多时,则也可能表示无法正常访问分布式内存缓存,所以自动打开自动熔断开关。
其中,在一个实施例中,为了能够提供各种的攻击检测方案,以便于实施攻击检测的管理员能够根据自身的需求确定采用何种攻击检测方式。本申请实施例中可以提供手动拦截校验开关,若手动拦截校验开关处于开启状态时,则确定执行手动拦截校验,而无需执行本申请实施例中的攻击检测方案。相应的,所述获取访问请求中的用户标识和URL之前,所述方法还包括:确定手动拦截校验开关处于关闭状态、且自动检测开关处于打开状态、以及所述访问请求对应的IP地址不在预置的IP地址白名单中。
其中,预置的IP地址白名单中用于存储表示不存在攻击行为的用户的IP地址。例如合作用户,由于发起攻击的用户往往不会是合作用户,所以对合作用户不执行步骤301及后续的操作,可以节省处理资源,提高处理效率。
其中,自动检测开关处于打开状态则表示采用本申请实施例中提供的攻击检测方案即执行步骤301及后续的操作。
其中,在一个实施例中,为了便于管理员能够了解到检测到攻击,使其采取后续的有效处理措施,本申请实施例中,所述确定检测到攻击之后,所述方法还包括:输出遭到攻击的报警提示。这样,管理员可以根据该提示了解检测到攻击行为。具体实施时,该提示可以包括发出攻击的用户标识和攻击的提供访问服务的服务器。那么管理员可以根据实际情况采取保护措施。
综上所述,本申请实施例中,将用户的访问行为抽象成用户行为描述信息。那么,攻击检测是基于访问行为描述信息来进行的,也即预设时长内,相同的访问行为描述信息的数量超过预设阈值则说明,该访问行为描述信息对应的访问行为是攻击行为。用户行为描述信息是基于用户标识和访问的URL的分组标识构建的,相对于现有技术中仅通过IP地址来检测,用户行为描述信息更适用于来判断用户访问行为是否为攻击行为。所以,本申请提供的技术方案能够提高检测结果的准确性。进一步地,由于检测的准确性提高,误判率也就会降低,检测时的预设阈值相比现有技术也能够设置的小一些,从而检测的灵敏度也能够提高。误判率降低了,故此也能够进一步提高用户整体的应用体验。
此外,通过分布式内存缓存访问行为白名单和/或攻击者名单,能够提高检测的效率。同时实现分布式集群的攻击检测,而非单机检测,从而进一步提高攻击检测的准确性。还有,通过加入自动熔断机制,可以减少分布式内存缓存带来的风险。
此外,通过采用独立的线程统计相同的访问行为描述信息,能够提高运行的稳定性。减少对访问业务的影响。
此外,通过引入手动校验机制(即请求终端返回指定的需要手动输入的验证信息),可以降低误判带来的风险。
进一步的,还可以进一步引入全局开关开确定是否进行攻击检测。进一步地,以访问资源服务器中可以运行有第一线程和独立的第二线程为例,对本申请实施例提供的技术方案进行说明。需要说明的是具体实施时,本申请实施例可以提供一个JAR包,执行攻击检测的设备,只需要安装该JAR包既可以具有本申请实施例提供的攻击检测功能。如图4所示的为该方法的流程示意图,包括以下步骤:
步骤401:第一线程接收终端发送的访问请求。
步骤402:第一线程判断全局开关是否处于打开状态,若是,则执行步骤404,若否,则执行步骤403。
步骤403:第一线程获取访问请求所请求的数据,若获取到数据则返回给终端。
步骤404:第一线程判断手动拦截校验开关是否处于关闭状态,若否,则执行步骤405,若是,则执行步骤406.
步骤405:第一线程拦截处理。
步骤406:第一线程判断自动检测开关是否处于打开状态,若否,则执行步骤403;若是,则执行步骤407。
步骤407:第一线程判断自动熔断开关是否处于关闭状态,若否,则执行步骤403;若是,则执行步骤408。
步骤408:第一线程确定访问请求对应的IP地址是否在预置的IP地址白名单中,若是,则执行步骤403;若否,则执行步骤409。
步骤409:第一线程获取访问请求中的用户标识和URL。
步骤410:第一线程确定步骤409中获取的URL归属的预设URL分组的分组标识。
步骤411:第一线程构建一条包含获取的用户标识和分组标识的访问行为描述信息。
步骤412:第一线程从分布式内存缓存中获取步骤411中的访问行为描述信息对应的key值,并若确定key值为1,则执行步骤403;若确定key值为0,则执行步骤419;若确定key值为空,则执行步骤413。
其中,key值为1表示在访问行为白名单中,key值为0表示在攻击者名单中,key值为空表示即不在访问行为白名单中也不在攻击者名单中。
当然,具体实施时,也可以生成访问行为描述信息对应的信息标识用于标识一类访问行为描述信息。
步骤413:第一线程判断预置分析队列中的访问行为描述信息总量是否达到指定总量,若是,执行步骤414,若否,执行步骤415。
步骤414:第一线程丢弃构建的访问行为描述信息。
步骤415:第一线程将构建的访问行为描述信息提交到预置分析队列中。
步骤416:采用独立的第二线程从所述预置分析队列中获取构建的所述访问行为描述信息。
步骤417:第二线程采用原子操作的方式将分布式内存缓存中记录的包含所述用户标识和所述分组标识的访问行为描述信息的数量累加1,并获取累加结果。
其中,在一个实施例中,第二线程若第一指定时长内未获取到累加结果的次数超过第一预设次数,则配置自动熔断开关处于打开状态。
步骤418:第二线程若在预设时长内确定所述累加结果大于所述预设阈值,则确定检测到攻击,并将访问请求中包含的用户标识添加到攻击者名单中。
具体,可以执行为将该用户标识对应的访问行为描述信息添加到分布式内存缓存中并设置其key值为0。
步骤419:第一线程请求终端返回指定的需要手动输入的验证信息。
步骤420:第一线程若终端返回正确的验证信息,则将构建的用户访问行为描述信息添加到访问行为白名单中,并返回执行步骤403。
其中,在一个实施例中,还可以记录第一线程和第二线程在第三指定时长内对分布式内存缓存操作失败的次数,操作失败例如是包含下述操作的至少一种:第一指定时长内未成功获取到累加结果、第二指定时长内未成功获取到构建的访问行为描述信息的key值、步骤418中在第四指定时长内未成功将访问请求中包含的用户标识添加到攻击者名单中、步骤420中未在第五指定时长内成功将构建的用户访问行为描述信息添加到访问行为白名单中。若第三指定时长内操作失败的次数大于预设失败次数,则确定可能无法访问分布式内存缓存,而配置自动熔断开关处于打开状态。
综上所述,本申请实施例中,可以将用户的访问行为抽象成用户行为描述信息。那么,攻击检测是基于访问行为描述信息来进行的,也即预设时长内,相同的访问行为描述信息的数量超过预设阈值则说明,该访问行为描述信息对应的访问行为是攻击行为。用户行为描述信息是基于用户标识和访问的URL的分组标识构建的,相对于现有技术中仅通过IP地址来检测,用户行为描述信息更适用于来判断用户访问行为是否为攻击行为。所以,本申请提供的技术方案能够提高检测结果的准确性。进一步地,由于检测的准确性提高,误判率也就会降低,检测时的预设阈值相比现有技术也能够设置的小一些,从而检测的灵敏度也能够提高。误判率降低了,故此也能够进一步提高用户整体的应用体验。
示例性设备
在介绍了本申请示例性实施方式的方法之后,接下来,参考图5对本申请示例性实施方式的攻击检测装置进行说明。
如图5所示,为本申请实施例提供的攻击检测装置的结构示意图,包括:
URL获取模块501,用于获取访问请求中的用户标识和统一资源定位符URL;
分组标识确定模块502,用于确定所述URL归属的预设URL分组的分组标识;
构建模块503,用于构建一条包含所述用户标识和所述分组标识的访问行为描述信息;
检测模块504,用于若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
其中,在一个实施例中,所述装置还包括:
访问行为白名单校验模块505,用于在所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击之前,确定构建的所述访问行为描述信息不在访问行为白名单中;和/或,
攻击者名单校验模块506,用于在所述若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击之前,确定所述用户标识不在攻击者名单中。
其中,在一个实施例中,若所述用户标识不在所述攻击者名单中,所述装置还包括:
分析队列提交模块507,用于将构建的所述访问行为描述信息提交到预置分析队列中;
所述检测模块504,具体用于:采用独立的线程处理所述预置分析队列,并若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
其中,在一个实施例中,所述装置还包括:
队列容量判断模块508,用于判断所述预置分析队列中的访问行为描述信息总量是否达到指定总量;
丢弃模块509,用于若是,则丢弃构建的所述访问行为描述信息;
所述分析队列提交模块507,具体用于若否,则将构建的所述访问行为描述信息提交到预置分析队列中。
其中,在一个实施例中,所述检测模块504,具体用于采用独立的线程从所述预置分析队列中获取构建的所述访问行为描述信息;并,采用原子操作的方式将分布式内存缓存中记录的包含所述用户标识和所述分组标识的访问行为描述信息的数量累加1,并获取累加结果;若在预设时长内所述累加结果大于所述预设阈值,则确定检测到攻击。
其中,在一个实施例中,所述装置还包括:
第一自动熔断开关判断模块510,用于在所述URL获取模块501获取访问请求中的用户标识和URL之前,确定自动熔断开关处于关闭状态;
第一自动熔断开关配置模块511,用于若第一指定时长内未获取到累加结果的次数超过第一预设次数,则配置所述自动熔断开关处于打开状态。
其中,在一个实施例中,所述访问行为白名单校验模块505,具体用于确定构建的所述访问行为描述信息不在分布式内存缓存中存储的访问行为白名单中;
所述攻击者名单校验模块506,具体用于确定所述用户标识不在分布式内存缓存中存储的攻击者名单中。
其中,在一个实施例中,所述装置还包括:
第二自动熔断开关判断模块512,用于在所述URL获取模块501获取访问请求中的用户标识和统一资源定位符URL之前,确定自动熔断开关处于关闭状态;
第二自动熔断开关配置模块513,用于若第二指定时长内确定访问行为描述信息是否在访问行为白名单中的操作和/或确定用户标识是否在攻击者名单中的操作的超时的总次数超过第二预设次数,则配置所述自动熔断开关处于打开状态。
其中,在一个实施例中,所述装置还包括:
攻击者名单更新模块514,用于在检测模块504确定若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值之后,若确定所述用户标识不在所述攻击者名单中,则将所述用户标识添加到所述攻击者名单中。
其中,在一个实施例中,分组标识确定模块502,具体包括:
匹配单元515,用于确定所述URL与满足预设正则规则的URL集合中的URL类是否匹配;
分组单元516,用于若匹配,则将匹配的URL类对应的分组标识、确定为所述URL归属的预设URL分组的分组标识。
其中,在一个实施例中,所述装置还包括:
配置指令接收模块517,用于接收携带至少一组URL分组的攻击检测参数的配置指令;
配置模块518,用于根据所述配置指令配置所述至少一组攻击检测参数;其中,所述攻击检测参数包括:对应URL分组的所述预设时长、对应URL分组和对应URL分组的所述预设阈值。
其中,在一个实施例中,若确定所述用户标识在所述攻击者名单中所述装置还包括:
验证信息请求模块519,用于请求用于发送所述访问请求的终端返回指定的需要手动输入的验证信息;
白名单更新模块520,用于若所述终端返回正确的验证信息,则将构建的所述用户访问行为描述信息添加到所述访问行为白名单中;以及,
发送模块521,用于将所述访问请求所请求的数据发送给所述终端。
其中,在一个实施例中,所述装置还包括:
报警提示输出模块522,用于在所述检测模块504确定检测到攻击之后,输出遭到攻击的报警提示。
其中,在一个实施例中,所述装置还包括:
综合信息确定模块523,用于在所述URL获取模块501获取访问请求中的用户标识和URL之前,确定手动拦截校验开关处于关闭状态、且自动检测开关处于打开状态、以及所述访问请求对应的IP地址不在预置的IP地址白名单中。
其中,在一个实施例中,所述装置还包括:
访问行为描述信息删除模块524,用于针对所述访问行为白名单中的每一条访问行为描述信息,若该条访问行为描述信息在所述访问行为白名单中的存储时长大于第一预设存储时长,则删除该条访问行为描述信息;
用户标识删除模块525,用于针对所述攻击者名单中的每一个用户标识,若该用户标识在所述攻击者名单中的存储时长大于第二预设存储时长,则删除该用户标识。
根据本申请实施方式的攻击检测装置,在获取访问请求中的用户标识和URL后;确定所述URL归属的预设URL分组的分组标识;并构建一条包含所述用户标识和所述分组标识的访问行为描述信息;若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。这样,本申请相当于将用户的访问行为抽象成用户行为描述信息。那么,攻击检测是基于访问行为描述信息来进行的,也即预设时长内,相同的访问行为描述信息的数量超过预设阈值则说明,该访问行为描述信息对应的访问行为是攻击行为。用户行为描述信息是基于用户标识和访问的URL的分组标识构建的,相对于现有技术中仅通过IP地址来检测,用户行为描述信息更适用于来判断用户访问行为是否为攻击行为。所以,本申请提供的技术方案能够提高检测结果的准确性。进一步地,由于检测的准确性提高,误判率也就会降低,检测时的预设阈值相比现有技术也能够设置的小一些,从而检测的灵敏度也能够提高。误判率降低了,故此也能够进一步提高用户整体的应用体验。
在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的攻击检测装置。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的攻击检测装置可以包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的攻击检测方法中的各种步骤。例如,所述处理单元可以执行如图3中所示的步骤301:获取访问请求中的用户标识和URL;步骤302:确定所述URL归属的预设URL分组的分组标识;步骤303:构建一条包含所述用户标识和所述分组标识的访问行为描述信息;步骤304:若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
下面参照图6来描述根据本申请的这种实施方式的攻击检测装置60。图6显示的攻击检测装置仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,攻击检测装置60可以以通用计算设备的形式表现,例如其可以为服务器设备。攻击检测装置60的组件可以包括但不限于:上述至少一个处理单元61、上述至少一个存储单元62、连接不同系统组件(包括存储单元62和处理单元61)的总线63。
总线63表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元62可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。
存储单元62还可以包括具有一组(至少一个)程序模块624的程序/实用工具625,这样的程序模块624包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
攻击检测装置60也可以与一个或多个外部设备64(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与该攻击检测装置60交互的设备通信,和/或与使得该攻击检测装置60能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,攻击检测装置60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与攻击检测装置60的其它模块通信。应当明白,尽管图中未示出,可以结合攻击检测装置60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
示例性程序产品
在一些可能的实施方式中,本申请的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在服务器设备上运行时,所述程序代码用于使所述服务器设备执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的方法中的步骤,例如,所述服务器设备可以执行如图3中所示的步骤301:获取访问请求中的用户标识和URL;步骤302:确定所述URL归属的预设URL分组的分组标识;步骤303:构建一条包含所述用户标识和所述分组标识的访问行为描述信息;步骤304:若预设时长内包含所述用户标识和所述分组标识的访问行为描述信息的数量大于预设阈值,则确定检测到攻击。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图7所示,描述了根据本申请的实施方式的用于攻击检测的程序产品70,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在服务器设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本申请的精神和原理,但是应该理解,本申请并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本申请旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。