安全检测方法、装置、电子设备及计算机可读存储介质
技术领域
本发明实施例涉及网络安全技术领域,具体涉及一种安全检测方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网技术的发展,Web应用越来越丰富,但同时Web服务器以其强大的计算能力、处理性能及蕴含的较高价值也逐渐成为主要攻击目标,SQL注入、网页篡改、网页挂马等安全事件频繁发生。工作在应用层、能够解决传统防火墙束手无策的Web应用安全问题的网站应用级入侵防御系统(Web Application Firewall,WAF)应运而生。
大部分攻击者在对某个系统进行攻击之前,需要先进行漏洞测试,以补充可供利用的漏洞作为攻击手段,为了节省时间成本,通常会借助工具进行批量快速的探测扫描,该阶段的扫描行为具有几个特点:请求数量大、请求密度高、请求之间无逻辑关联、所有请求都包含恶意内容。这类请求会对Web系统和后续的数据分析带来众多不良影响,比如:1、可能被攻击者发现漏洞进而被利用;2、大量无效请求占用业务系统的正常处理资源;3、污染业务数据,带来不可预测的后果;4、使业务系统产生大量报错报警,导致原本需要关注的报错报警被淹没;5、污染请求日志数据,影响基于日志数据业务的建模和分析。现有基于负载匹配的WAF配置规则可以拦截一部分恶意请求,但由于攻击请求携带的恶意负载PAYLOAD变种太多,因此无法做到全部拦截,因此急需一种不必完全匹配攻击也能对于恶意请求进行有效拦截的方案。
发明内容
本发明实施例提供一种安全检测方法、装置、电子设备及计算机可读存储介质。
第一方面,本发明实施例中提供了一种安全检测方法。
具体的,所述安全检测方法,包括:
获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
结合第一方面,本发明实施例在第一方面的第一种实现方式中,所述获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数,包括:
获取请求数据及所述请求数据携带的负载;
将所述请求数据携带的负载与负载数据库中的负载进行匹配;
当负载匹配成功时,按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数。
结合第一方面和第一方面的第一种实现方式,本发明实施例在第一方面的第二种实现方式中,所述计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数,包括:
获取预设特征维度;
分别计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数。
结合第一方面、第一方面的第一种实现方式和第一方面的第二种实现方式,本发明实施例在第一方面的第三种实现方式中,所述当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作,包括:
当所述累计评价分数高于某一特征维度对应的预设阈值时,根据所述累计评价分数与所述预设阈值之间的差值确定第一预设安全操作有效时间;
获取与所述特征维度相应的预设安全操作;
根据所述第一预设安全操作有效时间执行所述预设安全操作。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式和第一方面的第三种实现方式,本发明实施例在第一方面的第四种实现方式中,所述根据所述第一预设安全操作有效时间执行所述预设安全操作,包括:
当所述预设安全操作在第一预设历史时间段内被执行过时,对所述第一预设安全操作有效时间进行延长修正;
根据修正后的第一预设安全操作有效时间执行所述预设安全操作。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式和第一方面的第四种实现方式,本发明实施例在第一方面的第五种实现方式中,还包括:
当所述累计评价分数低于某一特征维度对应的预设阈值时,计算第二预设时间段内多个计算节点的累计评价分数的和值;
当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式和第一方面的第五种实现方式,本发明实施例在第一方面的第六种实现方式中,所述当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作,包括:
当所述累计评价分数和值高于所述特征维度对应的预设阈值时,根据所述累计评价分数和值与所述预设阈值之间的差值确定第二预设安全操作有效时间;
获取与所述特征维度相应的预设安全操作;
根据所述第二预设安全操作有效时间执行所述预设安全操作。
结合第一方面、第一方面的第一种实现方式、第一方面的第二种实现方式、第一方面的第三种实现方式、第一方面的第四种实现方式、第一方面的第五种实现方式和第一方面的第六种实现方式,本发明实施例在第一方面的第七种实现方式中,所述根据所述第二预设安全操作有效时间执行所述预设安全操作,包括:
当所述预设安全操作在第二预设历史时间段内被执行过时,对所述第二预设安全操作有效时间进行延长修正;
根据修正后的第二预设安全操作有效时间执行所述预设安全操作。
第二方面,本发明实施例中提供了一种安全检测装置。
具体的,所述安全检测装置,包括:
评价模块,被配置为获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
第一计算模块,被配置为计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
第一执行模块,被配置为当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
结合第二方面,本发明实施例在第二方面的第一种实现方式中,所述评价模块包括:
第一获取子模块,被配置为获取请求数据及所述请求数据携带的负载;
匹配子模块,被配置为将所述请求数据携带的负载与负载数据库中的负载进行匹配;
评价子模块,被配置为当负载匹配成功时,按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数。
结合第二方面和第二方面的第一种实现方式,本发明实施例在第二方面的第二种实现方式中,所述第一计算模块包括:
第二获取子模块,被配置为获取预设特征维度;
计算子模块,被配置为分别计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数。
结合第二方面、第二方面的第一种实现方式和第二方面的第二种实现方式,本发明实施例在第二方面的第三种实现方式中,所述第一执行模块包括:
第一确定子模块,被配置为当所述累计评价分数高于某一特征维度对应的预设阈值时,根据所述累计评价分数与所述预设阈值之间的差值确定第一预设安全操作有效时间;
第三获取子模块,被配置为获取与所述特征维度相应的预设安全操作;
第一执行子模块,被配置为根据所述第一预设安全操作有效时间执行所述预设安全操作。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式和第二方面的第三种实现方式,本发明实施例在第二方面的第四种实现方式中,所述第一执行子模块包括:
第一修正子模块,被配置为当所述预设安全操作在第一预设历史时间段内被执行过时,对所述第一预设安全操作有效时间进行延长修正;
第二执行子模块,被配置为根据修正后的第一预设安全操作有效时间执行所述预设安全操作。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式和第二方面的第四种实现方式,本发明实施例在第二方面的第五种实现方式中,还包括:
第二计算模块,被配置为当所述累计评价分数低于某一特征维度对应的预设阈值时,计算第二预设时间段内多个计算节点的累计评价分数的和值;
第二执行模块,被配置为当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式和第二方面的第五种实现方式,本发明实施例在第二方面的第六种实现方式中,所述第二执行模块包括:
第二确定子模块,被配置为当所述累计评价分数和值高于所述特征维度对应的预设阈值时,根据所述累计评价分数和值与所述预设阈值之间的差值确定第二预设安全操作有效时间;
第四获取子模块,被配置为获取与所述特征维度相应的预设安全操作;
第三执行子模块,被配置为根据所述第二预设安全操作有效时间执行所述预设安全操作。
结合第二方面、第二方面的第一种实现方式、第二方面的第二种实现方式、第二方面的第三种实现方式、第二方面的第四种实现方式、第二方面的第五种实现方式和第二方面的第六种实现方式,本发明实施例在第二方面的第七种实现方式中,所述第三执行子模块包括:
第二修正子模块,被配置为当所述预设安全操作在第二预设历史时间段内被执行过时,对所述第二预设安全操作有效时间进行延长修正;
第四执行子模块,被配置为根据修正后的第二预设安全操作有效时间执行所述预设安全操作。
第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条支持安全检测装置执行上述第一方面中安全检测方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述安全检测装置还可以包括通信接口,用于安全检测装置与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储安全检测装置所用的计算机指令,其包含用于执行上述第一方面中安全检测方法为安全检测装置所涉及的计算机指令。
本发明实施例提供的技术方案可以包括以下有益效果:
上述技术方案借助对于请求数据进行评价,并基于得到的评价分数判断是否需要执行相应的安全操作。该技术方案能够在不完全匹配攻击请求时也能对于恶意请求进行有效的检测和自动拦截,增强了WAF对于恶意请求的识别和拦截能力,同时还提高了WAF的自动化程度,减少了人力成本的投入。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本发明实施例的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本发明一实施方式的安全检测方法的流程图;
图2示出根据图1所示实施方式的安全检测方法的步骤S101的流程图;
图3示出根据图1所示实施方式的安全检测方法的步骤S102的流程图;
图4示出根据图1所示实施方式的安全检测方法的步骤S103的流程图;
图5示出根据图4所示实施方式的安全检测方法的步骤S403的流程图;
图6示出根据本发明另一实施方式的安全检测方法的流程图;
图7示出根据图6所示实施方式的安全检测方法的步骤S605的流程图;
图8示出根据图7所示实施方式的安全检测方法的步骤S703的流程图;
图9示出根据本发明一实施方式的安全检测装置的结构框图;
图10示出根据图9所示实施方式的安全检测装置的评价模块901的结构框图;
图11示出根据图9所示实施方式的安全检测装置的第一计算模块902的结构框图;
图12示出根据图9所示实施方式的安全检测装置的第一执行模块903的结构框图;
图13示出根据图12所示实施方式的安全检测装置的第一执行子模块1203的结构框图;
图14示出根据本发明另一实施方式的安全检测装置的结构框图;
图15示出根据图14所示实施方式的安全检测装置的第二执行模块1405的结构框图;
图16示出根据图15所示实施方式的安全检测装置的第三执行子模块1503的结构框图;
图17示出根据本发明一实施方式的电子设备的结构框图;
图18是适于用来实现根据本发明一实施方式的安全检测方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本发明实施例的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本发明实施例中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明实施例。
本发明实施例提供的技术方案借助对于请求数据进行评价,并基于得到的评价分数判断是否需要执行相应的安全操作。该技术方案能够在不完全匹配攻击请求时也能对于恶意请求进行有效的检测和自动拦截,增强了WAF对于恶意请求的识别和拦截能力,同时还提高了WAF的自动化程度,减少了人力成本的投入。
图1示出根据本发明一实施方式的安全检测方法的流程图,如图1所示,所述安全检测方法包括以下步骤S101-S103:
在步骤S101中,获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
在步骤S102中,计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
在步骤S103中,当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
上文提及,目前攻击请求数量众多,而且其携带的恶意负载变种也很复杂,而现有基于负载匹配的WAF配置规则难以实现有效且高效地拦截,因此急需一种不必完全匹配攻击也能对于恶意请求进行有效拦截的方法。
考虑到上述问题,在该实施方式中,提出一种安全检测方法,该方法按照预设评价规则对于获取的请求数据进行评价,得到请求数据评价分数;然后针对某一计算节点,计算第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;当累计评价分数高于某一特征维度对应的预设阈值时,就执行与所述特征维度相应的预设安全操作。该技术方案能够实现在不完全匹配攻击请求时也能对于恶意请求进行有效的检测和自动拦截的效果,增强了WAF对于恶意请求的识别和拦截能力,同时还提高了WAF的自动化程度,减少了人力成本的投入。
其中,所述请求数据指的是外界发送的请求数据,比如携带有请求目标和恶意负载的攻击请求等等。在本实施例的一个可选实现方式中,所述请求目标包括请求域名和请求路径,但不包括请求参数,所述请求目标可通过对于请求地址执行去除请求参数的方式获得。比如,对于一个请求地址http://www.alipay.com/a/b/c?a=1&b=2&c=3,其中,www.alipay.com是域名,/a/b/c是请求路径,a=1&b=2&c=3是请求参数,那么该请求地址对应的请求目标就是:www.alipay.com+/a/b/c。
其中,预设评价规则是预先设置的针对请求数据的评价规则,在设置评价规则时,可先设置评价元素,再根据所述评价元素制定相应的评价规则。
在本发明一实施例中,所述评价元素可包括以下元素中的一个或多个:请求数据恶意可信度、请求数据危害度和请求数据当前阶段等等。其中,所述请求数据恶意可信度可借助所述请求数据是否曾经以恶意请求的身份出现过来表征,若某一请求数据曾经以恶意请求的身份出现过,就说明该请求数据的恶意可信度较高,其被判断为恶意请求的可能性也就越高;所述请求数据危害度用于表征所述请求数据的危险程度,与所述请求数据的攻击类型相关;所述请求数据当前阶段用于表征该请求数据目前所处的攻击阶段,通常一个攻击行为会经历探测、组装、投递等阶段,所处阶段越靠后,就说明该请求越危险。
相应地,在该实施例中,所述评价规则可以包括以下规则中的一种或多种:所述请求数据恶意可信度越高,其评价分数就越高;所述请求数据危害度越高,其评价分数就越高;以及所述请求数据当前阶段越靠后,其评价分数就越高等等。
当然,上述仅为对于请求数据评价机制的示例性说明,不应理解为对于本发明的具体限定。实际上,本领域技术人员可根据实际应用的需要选择合适的评价元素、制定合适的评价规则,本发明对其不作过多赘述。基于上述对于请求数据的评价,能够分析得到该请求数据的危害性和攻击性,从而为后续执行安全操作提供决策支持。
在本发明一实施例中,采用分布式计算集群来实现上述技术方案,其中,所述分布式计算集群中包括多个计算节点以及汇总服务器或者汇总计算节点。
其中,所述预设特征维度指的是预先设置的、能够体现某一数据对象的多方面特征信息的表示。在上述实施例中,所述预设特征维度可以包括以下特征维度中的一种或多种:请求数据的IP地址、请求数据的用户ID、请求数据对应的SESSION、请求数据的cookie、请求数据cookie的预设字段以及以上特征维度的任意组合。通过对于请求数据在多个预设特征维度上累计评价分数的计算,能够分析得到请求数据的来源信息,从而为后续执行的安全操作提供准确的目标操作对象信息。
其中,所述第一预设时间段可根据实际应用的需要进行设置,比如可设置为几分钟、十几分钟、1小时、几小时或者更长/更短的时间。
其中,所述预设阈值也可根据实际应用的需要进行设置,需要注意的是,在该实施例中,所述预设阈值与预设特征维度相对应,也就是说,每一预设特征维度对应一个阈值,当然,不同预设特征维度对应的阈值大小可以相同也可以不相同。在实际应用中,可根据预设特征维度的特点设置相应的阈值,比如,考虑到针对IP地址的安全操作的影响力比较大,因此可将IP地址对应的阈值设置得高一些。
在本发明一实施例中,所述预设阈值可根据防卫等级来设置和调整,当防卫等级较高时,也就是说需要对于攻击行为提高敏感度时,将所述预设阈值设置得低一些,反之,将所述预设阈值设置得高一些。其中,所述防卫等级可与当前时间段、业务需求、拦截维度等因素有关,比如,在非工作时间,由于攻击响应时间较长,此时防卫等级为高级,相应地,可将所述预设阈值设置得低一些,以增加攻击行为反应敏感度;在工作时间,由于攻击响应时间相对较短,此时防卫等级为低级,可将所述预设阈值设置得高一些。
其中,所述预设安全操作是与特征维度相应的操作,上文提及,所述特征维度能够体现请求数据的来源信息,因此,在基于某一特征维度计算得到的累计评价分数高于该特征维度对应的预设阈值时,认为该特征维度对应的数据来源危险性很高,因此,需要针对该数据来源执行安全操作。其中,所述预设安全操作可以包括以下操作中的一种或多种:拦截、强制切断连接、验证、限流、强行等待、记录、警告等等。
在本实施例的一个可选实现方式中,如图2所示,所述步骤S101,即获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数的步骤,包括以下步骤S201-S203:
在步骤S201中,获取请求数据及所述请求数据携带的负载;
在步骤S202中,将所述请求数据携带的负载与负载数据库中的负载进行匹配;
在步骤S203中,当负载匹配成功时,按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数。
考虑到并非所有的请求数据都是攻击性请求,因此为了提高安全操作的准确率,同时也为了降低请求数据筛查的工作量,在该实施方式中,借助基于负载数据库的负载匹配来先行筛选可能需要执行后续安全操作的请求数据。其中,所述负载数据库是一个根据历史负载信息建立的相对齐备的负载数据库。与所述负载数据库匹配成功的负载可认为是可能具有攻击性的请求,后续可按照预设评价规则对其进行评价,以及进行安全操作判断流程。
在本实施例的一个可选实现方式中,如图3所示,所述步骤S102,即计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数的步骤,包括以下步骤S301-S302:
在步骤S301中,获取预设特征维度;
在步骤S302中,分别计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数。
上文提及,在本发明一实施例中,采用分布式计算集群来实现上述技术方案,其中,所述分布式计算集群中包括多个计算节点以及汇总服务器或者汇总计算节点。因此,为了对于请求数据进行全面核查,提高请求数据安全检测的准确性,在计算请求数据在预设特征维度上的累计评价分数时,针对每一计算节点,分别计算其在第一预设时间段内的请求数据在每一预设特征维度上的累计评价分数。
进一步地,为了降低误判操作的发生概率,所述步骤S302中,在计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数时,基于所述计算节点,在所述第一预设时间段内,在某一预设特征维度上,对于请求目标和请求负载均相同的请求数据,无论其出现几次,只计算一次评价分数。这样做的目的是为了降低正常请求误判操作的发生概率,同时,该处理方式也不会对于攻击性请求出现漏判的情况,因为攻击性请求通常会改变请求目标重复进行请求,因此,可借助累计评价分数对其实现捕获。
比如,对于一个正常的请求者A,其请求目标为bizA,命中了负载数据库中的负载payloadA,这个请求本属于正常请求,但如果这个请求发生了多次,按照之前描述的累计评价分数计算方法来计算的话,这个请求就有可能会被认为是一个攻击性的请求,而请求者A会被认为是一个攻击者,即出现了误判。但在该实施方式中,对于请求目标和请求负载均相同的请求数据,无论发生多少次,都只计算一次评价分数,那么对于该请求者A,就在大概率上不会被认为是攻击者,也就不会出现误判的情况。
而对于攻击者B,其请求目标为bizA,也命中了负载数据库中的负载payloadA,但是同时攻击者B还发起了目标分别为bizB、bizC、bizD、bizE、bizF...等的请求,那么基于累计评价分数的计算方法,与该攻击者B相关的分数是他发起的这些具有不同请求目标的请求数据的评价分值的累加,那么即使其对于每个请求目标只发起了一次请求,那么该攻击者B最后对应的分数还是会很高,不会出现漏判的情况。
在本实施例的一个可选实现方式中,如图4所示,所述步骤S103,即所述当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作的步骤,包括以下步骤S401-S403:
在步骤S401中,当所述累计评价分数高于某一特征维度对应的预设阈值时,根据所述累计评价分数与所述预设阈值之间的差值确定第一预设安全操作有效时间;
在步骤S402中,获取与所述特征维度相应的预设安全操作;
在步骤S403中,根据所述第一预设安全操作有效时间执行所述预设安全操作。
在该实施方式中,当累计评价分数高于某一特征维度对应的预设阈值时,首先根据累计评价分数与预设阈值之间的差值确定第一预设安全操作有效时间,然后再根据所述第一预设安全操作有效时间相应执行预设安全操作。
其中,所述第一预设安全操作有效时间指的是预设安全操作的执行时间,其可根据累计评价分数与预设阈值之间的差值来确定,比如若累计评价分数与预设阈值之间的差值较小,或者说累计评价分数与预设阈值之间的差值与预设阈值相比的比例较小,则可认为相应的数据来源危险性不太高,因此,可将第一预设安全操作有效时间设置得短一些,反之,则将第一预设安全操作有效时间设置得长一些。
当然,所述第一预设安全操作有效时间也可根据实际应用的需要进行选择,比如可选为10分钟、半小时或者更长/更短的时间。
举例来说,若所述预设安全操作为拦截操作,所述第一预设安全操作有效时间设为半小时,那么根据所述第一预设安全操作有效时间执行所述预设安全操作的意思就是,执行半小时的拦截操作。
在本实施例的一个可选实现方式中,如图5所示,所述步骤S403,即所述根据所述第一预设安全操作有效时间执行所述预设安全操作的步骤,包括以下步骤S501-S502:
在步骤S501中,当所述预设安全操作在第一预设历史时间段内被执行过时,对所述第一预设安全操作有效时间进行延长修正;
在步骤S502中,根据修正后的第一预设安全操作有效时间执行所述预设安全操作。
若检测发现与某一特征维度对应的预设安全操作被重复执行,这就说明该特征维度对应的数据来源危险性较高,需要加强防范,因此,在该实施方式中,当检测到预设安全操作在第一预设历史时间段内被执行过时,延长预设安全操作的执行时间,以加强对于该数据来源的活动限制。
在本实施例的另一个可选实现方式中,所述方法还包括对于计算节点的累计评价分数进行再次累计判断的步骤,即如图6所示,所述方法包括以下步骤S601-S605:
在步骤S601中,获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
在步骤S602中,计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
在步骤S603中,当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作;
在步骤S604中,当所述累计评价分数低于某一特征维度对应的预设阈值时,计算第二预设时间段内多个计算节点的累计评价分数的和值;
在步骤S605中,当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
考虑到即使上述单一计算节点并未出现累计评价分数高于预设阈值的情况,也不能够说明所述请求数据是安全的,因此,在这种情况下,还需要对于所有计算节点的累计评价分数进行再次累计判断,以确保每一危险请求数据能够被及时处理,其中,该步骤可在汇总服务器或者汇总计算节点处实施。因此,在该实施方式中,当单一计算节点的累计评价分数低于某一特征维度对应的预设阈值时,计算第二预设时间段内多个计算节点的累计评价分数的和值,当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
其中,所述第二预设时间段可根据实际应用的需要进行设置,其可与第一预设时间段相同也可不同。
对计算节点的累计评价分数进行再次累计判断时,与上文针对单一计算节点的累计判断类似,也需要先确定预设安全操作的有效时间,并且在检测到与某一特征维度对应的预设安全操作被重复执行时,也需要延长预设安全操作的执行时间,以加强对于相应数据来源的活动限制。
即,在本实施例的一个可选实现方式中,如图7所示,所述步骤S605,即当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作的步骤,包括以下步骤S701-S703:
在步骤S701中,当所述累计评价分数和值高于所述特征维度对应的预设阈值时,根据所述累计评价分数和值与所述预设阈值之间的差值确定第二预设安全操作有效时间;
在步骤S702中,获取与所述特征维度相应的预设安全操作;
在步骤S703中,根据所述第二预设安全操作有效时间执行所述预设安全操作。
在本实施例的一个可选实现方式中,如图8所示,所述步骤S703,即根据所述第二预设安全操作有效时间执行所述预设安全操作的步骤,包括以下步骤S801-S802:
在步骤S801中,当所述预设安全操作在第二预设历史时间段内被执行过时,对所述第二预设安全操作有效时间进行延长修正;
在步骤S802中,根据修正后的第二预设安全操作有效时间执行所述预设安全操作。
上述实施方式分别与图4和图5所示实施方式类似,本发明在此不再赘述。
下述为本发明装置实施例,可以用于执行本发明方法实施例。
图9示出根据本发明一实施方式的安全检测装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,所述安全检测装置包括:
评价模块901,被配置为获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
第一计算模块902,被配置为计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
第一执行模块903,被配置为当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
上文提及,目前攻击请求数量众多,而且其携带的恶意负载变种也很复杂,而现有基于负载匹配的WAF配置规则难以实现有效且高效地拦截,因此急需一种不必完全匹配攻击也能对于恶意请求进行有效拦截的方法。
考虑到上述问题,在该实施方式中,提出一种安全检测装置,该装置的评价模块901按照预设评价规则对于获取的请求数据进行评价,得到请求数据评价分数;第一计算模块902计算针对某一计算节点,计算第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;当累计评价分数高于某一特征维度对应的预设阈值时,第一执行模块903执行与所述特征维度相应的预设安全操作。该技术方案能够实现在不完全匹配攻击请求时也能对于恶意请求进行有效的检测和自动拦截的效果,增强了WAF对于恶意请求的识别和拦截能力,同时还提高了WAF的自动化程度,减少了人力成本的投入。
其中,所述请求数据指的是外界发送的请求数据,比如携带有请求目标和恶意负载的攻击请求等等。在本实施例的一个可选实现方式中,所述请求目标包括请求域名和请求路径,但不包括请求参数,所述请求目标可通过对于请求地址执行去除请求参数的方式获得。比如,对于一个请求地址http://www.alipay.com/a/b/c?a=1&b=2&c=3,其中,www.alipay.com是域名,/a/b/c是请求路径,a=1&b=2&c=3是请求参数,那么该请求地址对应的请求目标就是:www.alipay.com+/a/b/c。
其中,预设评价规则是预先设置的针对请求数据的评价规则,在设置评价规则时,可先设置评价元素,再根据所述评价元素制定相应的评价规则。
在本发明一实施例中,所述评价元素可包括以下元素中的一个或多个:请求数据恶意可信度、请求数据危害度和请求数据当前阶段等等。其中,所述请求数据恶意可信度可借助所述请求数据是否曾经以恶意请求的身份出现过来表征,若某一请求数据曾经以恶意请求的身份出现过,就说明该请求数据的恶意可信度较高,其被判断为恶意请求的可能性也就越高;所述请求数据危害度用于表征所述请求数据的危险程度,与所述请求数据的攻击类型相关;所述请求数据当前阶段用于表征该请求数据目前所处的攻击阶段,通常一个攻击行为会经历探测、组装、投递等阶段,所处阶段越靠后,就说明该请求越危险。
相应地,在该实施例中,所述评价规则可以包括以下规则中的一种或多种:所述请求数据恶意可信度越高,其评价分数就越高;所述请求数据危害度越高,其评价分数就越高;以及所述请求数据当前阶段越靠后,其评价分数就越高等等。
当然,上述仅为对于请求数据评价机制的示例性说明,不应理解为对于本发明的具体限定。实际上,本领域技术人员可根据实际应用的需要选择合适的评价元素、制定合适的评价规则,本发明对其不作过多赘述。基于上述对于请求数据的评价,能够分析得到该请求数据的危害性和攻击性,从而为后续执行安全操作提供决策支持。
在本发明一实施例中,采用分布式计算集群来实现上述技术方案,其中,所述分布式计算集群中包括多个计算节点以及汇总服务器或者汇总计算节点。
其中,所述预设特征维度指的是预先设置的、能够体现某一数据对象的多方面特征信息的表示。在上述实施例中,所述预设特征维度可以包括以下特征维度中的一种或多种:请求数据的IP地址、请求数据的用户ID、请求数据对应的SESSION、请求数据的cookie、请求数据cookie的预设字段以及以上特征维度的任意组合。通过对于请求数据在多个预设特征维度上累计评价分数的计算,能够分析得到请求数据的来源信息,从而为后续执行的安全操作提供准确的目标操作对象信息。
其中,所述第一预设时间段可根据实际应用的需要进行设置,比如可设置为几分钟、十几分钟、1小时、几小时或者更长/更短的时间。
其中,所述预设阈值也可根据实际应用的需要进行设置,需要注意的是,在该实施例中,所述预设阈值与预设特征维度相对应,也就是说,每一预设特征维度对应一个阈值,当然,不同预设特征维度对应的阈值大小可以相同也可以不相同。在实际应用中,可根据预设特征维度的特点设置相应的阈值,比如,考虑到针对IP地址的安全操作的影响力比较大,因此可将IP地址对应的阈值设置得高一些。
在本发明一实施例中,所述预设阈值可根据防卫等级来设置和调整,当防卫等级较高时,也就是说需要对于攻击行为提高敏感度时,将所述预设阈值设置得低一些,反之,将所述预设阈值设置得高一些。其中,所述防卫等级可与当前时间段、业务需求、拦截维度等因素有关,比如,在非工作时间,由于攻击响应时间较长,此时防卫等级为高级,相应地,可将所述预设阈值设置得低一些,以增加攻击行为反应敏感度;在工作时间,由于攻击响应时间相对较短,此时防卫等级为低级,可将所述预设阈值设置得高一些。
其中,所述预设安全操作是与特征维度相应的操作,上文提及,所述特征维度能够体现请求数据的来源信息,因此,在基于某一特征维度计算得到的累计评价分数高于该特征维度对应的预设阈值时,认为该特征维度对应的数据来源危险性很高,因此,需要针对该数据来源执行安全操作。其中,所述预设安全操作可以包括以下操作中的一种或多种:拦截、强制切断连接、验证、限流、强行等待、记录、警告等等。
在本实施例的一个可选实现方式中,如图10所示,所述评价模块901包括:
第一获取子模块1001,被配置为获取请求数据及所述请求数据携带的负载;
匹配子模块1002,被配置为将所述请求数据携带的负载与负载数据库中的负载进行匹配;
评价子模块1003,被配置为当负载匹配成功时,按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数。
考虑到并非所有的请求数据都是攻击性请求,因此为了提高安全操作的准确率,同时也为了降低请求数据筛查的工作量,在该实施方式中,借助基于负载数据库的负载匹配来先行筛选可能需要执行后续安全操作的请求数据。其中,所述负载数据库是一个根据历史负载信息建立的相对齐备的负载数据库。与所述负载数据库匹配成功的负载可认为是可能具有攻击性的请求,后续可按照预设评价规则对其进行评价,以及进行安全操作判断流程。
在本实施例的一个可选实现方式中,如图11所示,所述第一计算模块902包括:
第二获取子模块1101,被配置为获取预设特征维度;
计算子模块1102,被配置为分别计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数。
上文提及,在本发明一实施例中,采用分布式计算集群来实现上述技术方案,其中,所述分布式计算集群中包括多个计算节点以及汇总服务器或者汇总计算节点。因此,为了对于请求数据进行全面核查,提高请求数据安全检测的准确性,在计算请求数据在预设特征维度上的累计评价分数时,计算子模块1102针对每一计算节点,分别计算其在第一预设时间段内的请求数据在每一预设特征维度上的累计评价分数。
进一步地,为了降低误判操作的发生概率,计算子模块1102在计算某一计算节点第一预设时间段内所述请求数据在所述预设特征维度上的累计评价分数时,基于所述计算节点,在所述第一预设时间段内,在某一预设特征维度上,对于请求目标和请求负载均相同的请求数据,无论其出现几次,只计算一次评价分数。这样做的目的是为了降低正常请求误判操作的发生概率,同时,该处理方式也不会对于攻击性请求出现漏判的情况,因为攻击性请求通常会改变请求目标重复进行请求,因此,可借助累计评价分数对其实现捕获。
比如,对于一个正常的请求者A,其请求目标为bizA,命中了负载数据库中的负载payloadA,这个请求本属于正常请求,但如果这个请求发生了多次,按照之前描述的累计评价分数计算方法来计算的话,这个请求就有可能会被认为是一个攻击性的请求,而请求者A会被认为是一个攻击者,即出现了误判。但在该实施方式中,对于请求目标和请求负载均相同的请求数据,无论发生多少次,都只计算一次评价分数,那么对于该请求者A,就在大概率上不会被认为是攻击者,也就不会出现误判的情况。
而对于攻击者B,其请求目标为bizA,也命中了负载数据库中的负载payloadA,但是同时攻击者B还发起了目标分别为bizB、bizC、bizD、bizE、bizF...等的请求,那么基于累计评价分数的计算方法,与该攻击者B相关的分数是他发起的这些具有不同请求目标的请求数据的评价分值的累加,那么即使其对于每个请求目标只发起了一次请求,那么该攻击者B最后对应的分数还是会很高,不会出现漏判的情况。
在本实施例的一个可选实现方式中,如图12所示,所述第一执行模块903包括:
第一确定子模块1201,被配置为当所述累计评价分数高于某一特征维度对应的预设阈值时,根据所述累计评价分数与所述预设阈值之间的差值确定第一预设安全操作有效时间;
第三获取子模块1202,被配置为获取与所述特征维度相应的预设安全操作;
第一执行子模块1203,被配置为根据所述第一预设安全操作有效时间执行所述预设安全操作。
在该实施方式中,当累计评价分数高于某一特征维度对应的预设阈值时,第一确定子模块1201根据累计评价分数与预设阈值之间的差值确定第一预设安全操作有效时间,第一执行子模块1203根据所述第一预设安全操作有效时间相应执行第三获取子模块1202获得的预设安全操作。
其中,所述第一预设安全操作有效时间指的是预设安全操作的执行时间,其可根据累计评价分数与预设阈值之间的差值来确定,比如若累计评价分数与预设阈值之间的差值较小,或者说累计评价分数与预设阈值之间的差值与预设阈值相比的比例较小,则可认为相应的数据来源危险性不太高,因此,可将第一预设安全操作有效时间设置得短一些,反之,则将第一预设安全操作有效时间设置得长一些。
当然,所述第一预设安全操作有效时间也可根据实际应用的需要进行选择,比如可选为10分钟、半小时或者更长/更短的时间。
举例来说,若所述预设安全操作为拦截操作,所述第一预设安全操作有效时间设为半小时,那么根据所述第一预设安全操作有效时间执行所述预设安全操作的意思就是,执行半小时的拦截操作。
在本实施例的一个可选实现方式中,如图13所示,所述第一执行子模块1203包括:
第一修正子模块1301,被配置为当所述预设安全操作在第一预设历史时间段内被执行过时,对所述第一预设安全操作有效时间进行延长修正;
第二执行子模块1302,被配置为根据修正后的第一预设安全操作有效时间执行所述预设安全操作。
若检测发现与某一特征维度对应的预设安全操作被重复执行,这就说明该特征维度对应的数据来源危险性较高,需要加强防范,因此,在该实施方式中,当检测到预设安全操作在第一预设历史时间段内被执行过时,第一修正子模块1301延长预设安全操作的执行时间,以加强对于该数据来源的活动限制。
在本实施例的另一个可选实现方式中,所述装置还包括对于计算节点的累计评价分数进行再次累计判断的部分,即如图14所示,所述装置包括:
评价模块1401,被配置为获取请求数据,并按照预设评价规则对所述请求数据进行评价,得到请求数据评价分数;
第一计算模块1402,被配置为计算某一计算节点第一预设时间段内所述请求数据在预设特征维度上的累计评价分数;
第一执行模块1403,被配置为当所述累计评价分数高于某一特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作;
第二计算模块1404,被配置为当所述累计评价分数低于某一特征维度对应的预设阈值时,计算第二预设时间段内多个计算节点的累计评价分数的和值;
第二执行模块1405,被配置为当累计评价分数和值高于所述特征维度对应的预设阈值时,执行与所述特征维度相应的预设安全操作。
考虑到即使上述单一计算节点并未出现累计评价分数高于预设阈值的情况,也不能够说明所述请求数据是安全的,因此,在这种情况下,还需要对于所有计算节点的累计评价分数进行再次累计判断,以确保每一危险请求数据能够被及时处理,其中,该部分可在汇总服务器或者汇总计算节点处实现。因此,在该实施方式中,当单一计算节点的累计评价分数低于某一特征维度对应的预设阈值时,第二计算模块1404计算第二预设时间段内多个计算节点的累计评价分数的和值,当累计评价分数和值高于所述特征维度对应的预设阈值时,第二执行模块1405执行与所述特征维度相应的预设安全操作。
其中,所述第二预设时间段可根据实际应用的需要进行设置,其可与第一预设时间段相同也可不同。
对计算节点的累计评价分数进行再次累计判断时,与上文针对单一计算节点的累计判断类似,也需要先确定预设安全操作的有效时间,并且在检测到与某一特征维度对应的预设安全操作被重复执行时,也需要延长预设安全操作的执行时间,以加强对于相应数据来源的活动限制。
即,在本实施例的一个可选实现方式中,如图15所示,所述第二执行模块1405包括:
第二确定子模块1501,被配置为当所述累计评价分数和值高于所述特征维度对应的预设阈值时,根据所述累计评价分数和值与所述预设阈值之间的差值确定第二预设安全操作有效时间;
第四获取子模块1502,被配置为获取与所述特征维度相应的预设安全操作;
第三执行子模块1503,被配置为根据所述第二预设安全操作有效时间执行所述预设安全操作。
在本实施例的一个可选实现方式中,如图16所示,所述第三执行子模块1503包括:
第二修正子模块1601,被配置为当所述预设安全操作在第二预设历史时间段内被执行过时,对所述第二预设安全操作有效时间进行延长修正;
第四执行子模块1602,被配置为根据修正后的第二预设安全操作有效时间执行所述预设安全操作。
上述实施方式分别与图12和图13所示实施方式类似,本发明在此不再赘述。
本发明实施例还公开了一种电子设备,图17示出根据本发明一实施方式的电子设备的结构框图,如图17所示,所述电子设备1700包括存储器1701和处理器1702;其中,
所述存储器1701用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1702执行以实现上述任一方法步骤。
图18适于用来实现根据本发明实施方式的安全检测方法的计算机系统的结构示意图。
如图18所示,计算机系统1800包括中央处理单元(CPU)1801,其可以根据存储在只读存储器(ROM)1802中的程序或者从存储部分1808加载到随机访问存储器(RAM)1803中的程序而执行上述实施方式中的各种处理。在RAM1803中,还存储有系统1800操作所需的各种程序和数据。CPU1801、ROM1802以及RAM1803通过总线1804彼此相连。输入/输出(I/O)接口1805也连接至总线1804。
以下部件连接至I/O接口1805:包括键盘、鼠标等的输入部分1806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1807;包括硬盘等的存储部分1808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1809。通信部分1809经由诸如因特网的网络执行通信处理。驱动器1810也根据需要连接至I/O接口1805。可拆卸介质1811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1810上,以便于从其上读出的计算机程序根据需要被安装入存储部分1808。
特别地,根据本发明的实施方式,上文描述的方法可以被实现为计算机软件程序。例如,本发明的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行所述安全检测方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1809从网络上被下载和安装,和/或从可拆卸介质1811被安装。
附图中的流程图和框图,图示了按照本发明各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明实施例的方法。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。