Web应用安全防护方法和装置、电子设备、存储介质与流程

文档序号:32393676发布日期:2022-11-30 09:22阅读:49来源:国知局
Web应用安全防护方法和装置、电子设备、存储介质与流程
web应用安全防护方法和装置、电子设备、存储介质
技术领域
1.本公开涉及网络安全技术领域,具体而言,涉及一种web应用安全防护方法和装置、电子设备、存储介质。


背景技术:

2.随着网络的快速发展,web服务以其特有的高效性、易用性和及时性使得web应用层的业务种类和业务量款速增长,来自web层面的安全风险也越来越高。
3.web应用往往专注于业务功能的实现,对于自身的安全通常使用传统的网络安全设备来实现,而随着web应用业务量的持续增加,传统的网络安全设备存在响应处理速度慢和防护准确率低的问题。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.本公开实施例的目的在于提供一种web应用安全防护方法和装置、电子设备、存储介质,进而在一定程度上解决了传统的网络安全设备在web应用的安全防护过程中存在的响应处理速度慢和防护准确率低的问题。
6.根据本公开的第一方面,提供了一种web应用安全防护方法,所述方法包括:响应于接收到用户在web页面的访问请求,确定所述访问请求是否包括独立访客cookie;提取所述访问请求中的一组或多组报文特征;若所述访问请求包括独立访客cookie,统计预设时间窗口内所述报文特征对应的独立访客cookie信息;根据所述报文特征对应的独立访客cookie信息,确定所述报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理所述攻击行为。
7.可选地,所述独立访客cookie信息包括独立访客cookie的访问总量和每组报文特征对应的独立访客cookie访问量,所述根据所述报文特征对应的独立访客cookie信息,确定攻击行为,包括:响应于所述独立访客cookie的访问总量大于等于预设第一阈值,确定出现异常访问;在出现所述异常访问的情况下,响应于所述报文特征对应的独立访客cookie数量大于等于第二阈值,确定所述报文特征相关的访问请求为攻击行为。
8.可选地,所述方法还包括:若所述访问请求不包括独立访客cookie,响应于预设时间窗口内所述一组或多组报文特征对应访问请求的增长率大于等于第三阈值,确定所述一组或多组报文特征的分布情况;当所述一组或多组报文特征分布于同一组,则确定该组报文特征相关的访问请求为攻击行为。
9.可选地,所述方法还包括:根据所述独立访客cookie的访问总量与所述报文特征的组数的比值,确定所述第二阈值;根据预设时间窗口内的访问请求总数量与所述报文特征的组数的比值,确定所述第三阈值。
10.可选地,所述方法还包括:对所述报文特征进行哈希映射,获得对应哈希特征值;
将所述哈希特征值与对应的独立访客cookie存储于第一缓存。
11.可选地,所述第一缓存包括第一双向链表和第一哈希表;所述第一双向链表包括多个第一节点,每个第一节点存储一组所述报文特征和对应的独立访客cookie,多个所述第一节点基于最近最多访问算法排序;所述第一哈希表包括多个第一键值对,每个第一键值对的键为一组所述报文特征且值指向所述第一双向链表的对应第一节点;所述将所述哈希特征值与对应的独立访客cookie存储于第一缓存时,若所述第一缓存超过第一容量阈值或到达预设时间,删除所述第一双向链表的尾节点元素。
12.可选地,所述方法还包括:响应于接收到用户在web页面的访问请求,对所述访问请求报文进行安全套接层解密,并基于nginx对解密后的报文进行解析,获得解析结果;实时装载存储于第二缓存中的配置策略,以按照所述配置策略对所述访问请求进行处理,所述配置策略包括所述安全处理策略。
13.可选地,在所述基于nginx对解密后的报文进行解析之后,所述方法还包括:实时装载存储于第三缓存的ip黑名单;通过所述ip黑名单对所述解析结果的ip地址进行过滤和限流。
14.可选地,所述配置策略包括规则启停策略和排序策略,所述方法还包括:根据所述规则启停策略,调整存储于第四缓存中的入侵检测规则列表中的入侵检测规则的状态信息;根据所述排序策略对所述入侵检测规则进行排序;响应于所述入侵检测规则的状态信息和排序结果,从所述第四缓存中实时装载目标入侵检测规则;采用所述目标入侵检测规则对所述访问请求进行入侵检测,并基于所述检测结果处理所述访问请求。
15.可选地,所述配置策略还包括维度筛选策略,所述方法还包括:根据所述维度筛选策略确定多个统计维度和统计指标;根据所述访问请求的处置策略,统计预设时间窗口内每个所述统计维度下的统计指标;根据所述统计指标生成每个所述统计维度的统计黑白名单,并定期将所述统计黑白名单写入第五缓存;实时装载所述统计黑白名单,并根据所述统计黑白名单和所述处置策略处理所述访问请求。
16.可选地,所述第五缓存包括第二双向链表组、第二哈希表和第三哈希表;所述第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向所述第二双向链表组中的一第二双向链表;所述第二双向链表组包括多个第二节点,每个第二节点存储一统计指标,多个所述第二节点基于最不经常使用算法排序;所述第三哈希表包括多个第三键值对,每个第三键值对的键为一统计指标且值指向所述第二双向链表组中的一对应第二节点;所述将所述统计黑白名单写入所述第五缓存时,若所述第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
17.可选地,所述方法还包括:当所述报文特征或独立访客cookie所占用的缓存空间小于等于预设的第四阈值,则生成第一告警信息;响应于所述第一告警信息,对所述第一缓存进行扩容处理。
18.可选地,所述配置策略包括日志分析策略,所述方法还包括:对所述访问请求的处理过程中的关键信息进行日志存储;采用所述日志分析策略对存储的所述关键信息进行统计分析;根据统计分析结果,通过开放接口调整所述第二缓存中的所述配置策略。
19.根据本公开的第二方面,提供了一种web应用安全防护装置,所述装置包括:确定模块、提取模块、统计模块和安全防护处理模块;确定模块,用于响应于接收到用户在web页
面的访问请求,确定所述访问请求是否包括独立访客cookie;提取模块,用于提取所述访问请求中的一组或多组报文特征;统计模块,用于若所述访问请求包括独立访客cookie,统计预设时间窗口内所述报文特征对应的独立访客cookie信息;安全防护处理模块,用于根据所述报文特征对应的独立访客cookie信息,确定所述报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理所述攻击行为。
20.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的方法。
21.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任一实施例的方法。
22.本公开示例性实施例可以具有以下部分或全部有益效果:
23.在本公开示例实施方式所提供的web应用安全防护方法中,可以在访问请求包括独立访客cookie的情况下,统计预设时间窗口内报文特征的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定所述报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理所述攻击行为。一方面,通过首次访问页面时产生的独立访客cookie信息,结合提取的报文特征,能够快速识别攻击行为,提高web应用访问请求的安全防护相应处理速度。另一方面,从独立访客维度和自定义的报文特征维度,实现web应用访问请求的分类处理,提高安全防护的准确性。此外,本公开可以根据业务需求,配置对应的安全处理策略,实现自定义安全防护,提高web应用安全防护系统的灵活性。
24.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1示意性示出了根据本公开的一个实施例的web应用安全防护方法及装置的系统架构示意图。
27.图2示意性示出了根据本公开的一个实施例的web应用安全防护方法的流程示意图。
28.图3示意性示出了根据本公开的一个实施例的第一缓存中的数据结构示意图。
29.图4示意性示出了根据本公开的一个实施例的解析单元和ip黑白名单匹配单元的安全防护处理流程示意图。
30.图5示意性示出了根据本公开的一个实施例的uv识别检测单元和入侵检测单元的安全防护处理流程示意图。
31.图6示意性示出了根据本公开的一个实施例的统计防护单元的安全防护处理流程示意图。
32.图7示意性示出了根据本公开的一个实施例的第五缓存中的数据结构示意图。
33.图8示意性示出了根据本公开的一个实施例的日志分析过程的流程示意图。
34.图9示意性示出了根据本公开的一个实施例的整个安全防护系统的安全防护处理流程示意图。
35.图10示意性示出了传统安全防护系统的安全防护处理流程示意图。
36.图11示意性示出了根据本公开的一个实施例的web应用安全防护装置的结构框图。
37.图12示意性示出了根据本公开的一个实施例的示例性电子设备框图。
具体实施方式
38.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
39.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
40.nginx平台:nginx是一款自由的、开源的、高性能的http服务器和反向代理服务器;同时也是一个支持多种邮件协议的代理服务器。nginx可以作为一个http服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。
41.nginx作为负载均衡服务:nginx既可以在内部直接支持rails和php程序对外进行服务,也可以支持作为http代理服务对外进行服务。nginx采用c语言进行编写,系统资源开销和cpu使用效率都较好。可以处理多种文件,如处理静态文件、索引文件以及进行自动索引。可以进行无缓存的反向代理加速,简单的负载均衡和容错。nginx具有模块化的结构,如果由其它代理服务器处理单页中存在的多个ssi(server side include,服务器端嵌入),则这项处理可以并行运行,而不需要相互等待。该并行嵌入处理特征可以很好的适用于本公开各安全防护节点的嵌入过程,在保证自由配置安全防护节点的同时,可以保证处理效率。
42.图1示出了可以应用本公开实施例的一种通信网络web应用安全防护方法及装置的示例性系统架构100的示意图。如图1所示,系统架构100可以包括终端设备110和服务器120。终端设备110和服务器120之间通过网络进行通信,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。终端设备110可以是具有显示屏的各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等等。应该理解,图1中的终端设备和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备和
服务器。比如服务器120可以是多个服务器组成的服务器集群等。
43.用户通过终端设备110的web页面向服务器120发送访问请求,服务器120可以确定访问请求是否包括独立访客cookie;提取访问请求中的一组或多组报文特征;在访问请求包括独立访客cookie的情况下,统计预设时间窗口内报文特征对应的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。
44.本示例中,服务器120是web服务器,该web服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,其中多个服务器可组成一区块链,而服务器为区块链上的节点,web服务器还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。
45.本公开实施例所提供的web应用安全防护方法可以在服务器120执行,相应地,web应用安全防护装置一般设置于服务器120中。
46.参考图2所示,本公开提供的一种示例实施方式的web应用安全防护方法,基于nginx平台部署实现。具体可以包括以下步骤s210-s240。
47.步骤s210,响应于接收到用户在web页面的访问请求,确定访问请求是否包括独立访客cookie。
48.步骤s220,提取访问请求中的一组或多组报文特征。
49.步骤s230,若访问请求包括独立访客cookie,统计预设时间窗口内报文特征对应的独立访客cookie信息。
50.步骤s240,根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。
51.本公开实施例提供的通信网络web应用安全防护方法中,可以在访问请求包括独立访客cookie的情况下,统计预设时间窗口内报文特征的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。一方面,通过首次访问页面时产生的独立访客cookie信息,结合提取的报文特征,能够快速识别攻击行为,提高web应用访问请求的安全防护相应处理速度。另一方面,从独立访客维度和自定义的报文特征维度,实现web应用访问请求的分类处理,提高安全防护的准确性。此外,本公开可以根据业务需求,配置对应的安全处理策略,实现自定义安全防护,提高web应用安全防护系统的灵活性。
52.以下对本公开实施例的技术方案进行详细阐述:
53.步骤s210,响应于接收到用户在web页面的访问请求,确定访问请求是否包括独立访客cookie。
54.在本示例实施方式中,独立访客cookie(unique visitor cookie,uv cookie)是指用户首次访问页面时,系统为该用户生成的标识信息,可以用于后续会话的cookie,用于标识独立的一个访客。独立访客是指独立ip访客(unique visitor,uv),例如,独立访客cookie可以是nginx在用户首次访问页面时为其生成的随机字符串。
55.在本示例实施方式中,cookie可以是由服务器端生成,发送给客户端的浏览器,浏
览器将cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时可以发送该cookie给服务器。单一会话首次访问请求时,有报文特征而没有uv cookie;单一会话再次访问请求时,有报文特征且有独一无二的uv cookie,在该会话后续的访问请求中,uv cookie保持不变。对于一个正常的会话,报文特征和uv cookie都是不变的,会一直延续到当前浏览器关闭。
56.步骤s220,提取访问请求中的一组或多组报文特征。
57.在本示例实施方式中,报文特征是指针对访问请求报文自定义设置的字段特征;访问请求报文可以是http请求。示例性地,报文特征可以包括请求头中的host字段、报文头中的字段和报文体中字段中的一种或多种。例如,可以将访问请求报文的请求头部(header)作为一组报文特征。还可以将访问请求报文的授权证书(authorization)等信息作为一组报文特征。本示例中,报文特征可以根据业务类型和特点进行自定义设置,本示例对此不做限定。
58.步骤s230,若访问请求包括独立访客cookie,统计预设时间窗口内报文特征对应的独立访客cookie信息。
59.在本示例实施方式中,访问请求包括独立访客cookie可以说明用户不是首次访问网站页面,可以统计预设时间窗口内每一组报文特征对应的独立访客cookie信息。预设时间窗口可以根据网站页面的访问量、系统当前处理能力或用户需求进行设置,例如,可以设置预设时间窗口为1分钟、10分钟或几十分钟,本示例对此不做限定。
60.在本示例实施方式中,独立访客cookie信息是指携带独立访客cookie的访问请求的相关信息。示例性地,相关信息可以包括uv cookie对应的源ip地址信息、uv cookie对应的访问请求包含的报文特征、uv cookie对应的访问请求的总数量、uv cookie对应的访问请求包含的每组报文特征的数量,还可以包括其他信息,本示例对此不做限定。本示例中,可以统计访问请求中携带uv cookie的数量来确定对应uv和uv的访问量。
61.步骤s240,根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。
62.在本示例实施方式中,可以设置当相同uv cookie的访问总量过大(如大于预设第一阈值)时,确定该uv cookie关联的访问请求为攻击行为。还可以设置同一组报文特征的访问量过大(如大于预设第二阈值)时,确定该报文特征关联的访问请求为攻击行为。还可以将报文特征与uv cookie相结合,确定攻击行为。例如,相同uv cookie的访问总量过大且某一组报文特征的访问量过大或突增,确定该uv cookie和该组报文特征共同关联的访问请求为攻击行为。还可以根据uv cookie和/或报文特征进行其他攻击行为判断条件设置,本示例对此不做限定。
63.在本示例实施方式中,安全处理策略可以包括限流处理、阻断访问、生成告警信息、生成静态页、跳转至校验页、蜜罐处理等等,可以根据业务系统、历史安全防护数据、开发人员的经验等进行相应配置,本示例对此不做限定。
64.本公开具有轻量级判断独立访客的机制。具体地,通过首次访问页面时,nginx生成的随机字符串作为uv cookie,进而对报文特征和uv维度的所有请求实施分类处置,提高请求处理效率。通过监控uv cookie及报文特征的访问量确定是否出现异常,在出现异常情况时可以设置相应的处置方法或告警。例如,加入统计黑白名单、确定为爬虫或ddos
(distributed denial of service,分布式拒绝服务)攻击、重点关注提醒、系统资源升级提醒等。
65.在一些实施例中,独立访客cookie信息包括独立访客cookie的访问总量和每组报文特征对应的独立访客cookie访问量,根据报文特征对应的独立访客cookie信息,确定攻击行为,包括:
66.响应于独立访客cookie的访问总量大于等于预设第一阈值,确定出现异常访问。
67.在本示例实施方式中,第一阈值可以根据业务类型和经验进行配置,第一阈值可以配置于配置策略之中,缓存于第二缓存中。当确定出现异常访问时,可以生成相应的异常告警信息,以提醒系统可能存在安全风险。
68.在出现异常访问的情况下,响应于报文特征对应的独立访客cookie数量大于等于第二阈值,确定报文特征相关的访问请求为攻击行为。
69.在本示例实施方式中,第二阈值可以根据独立访客cookie的访问总量与报文特征的组数的比值(即单一报文特征对应uv cookie的全局平均数)来确定。例如可以将第二阈值设置为该全局平均数的若干倍(如3倍)。
70.在本示例实施方式中,在出现异常访问的情况下,系统可以进一步关注每个报文特征与对应uv cookie数量的增长率是否稳定,当每个报文特征与对应uv cookie数量的增长率稳定,意味着业务访问正常增长,可以进一步关注系统资源扩展(如可以生成系统资源升级提醒)。当每个报文特征与对应uv cookie数量的增长率不稳定,例如报文特征对应的独立访客cookie数量大于等于该报文特征的全局平均数,可以确定报文特征相关的访问请求为攻击行为。
71.在本示例实施方式中,如果该报文特征对应访问请求的源ip地址为企业网络出网地址,可以忽略该异常,也可以将企业网络出网地址加入ip白名单,以排除该情况。
72.在一些实施例中,若访问请求不包括独立访客cookie,响应于预设时间窗口内一组或多组报文特征对应访问请求的增长率大于等于第三阈值,确定一组或多组报文特征的分布情况。
73.在本示例实施方式中,第三阈值可以根据预设时间窗口内的访问请求总数量与报文特征的组数的比值(即无uv cookie的全局访问平均值)来确定。第三阈值用于判断无uv cookie的报文特征的访问请求的占比是否出现突然增长的情况。例如第三阈值可以是全局访问平均值的10%,也可以设置为其他比例关系,本示例对此不做限定。当出现该占比突增,则进一步判断这些访问请求的报文特征是否分布与同一组,当报文特征分布于同一组,则确定该组报文特征相关的访问请求为攻击行为。当这些访问请求的报文特征分布与不同组,则可能是瞬时业务访问暴涨,可以重点关注是否有热点事件(如可以生成重点关注提醒)。
74.在一些实施例中,方法还包括:
75.对报文特征进行哈希映射,获得对应哈希特征值。
76.在本示例实施方式中,哈希映射的映射规则可以配置于第二缓存中的配置策略中,将通过哈希算法在不同的报文特征与哈希特征值之间建立映射关系。
77.将哈希特征值与对应的独立访客cookie存储于第一缓存。
78.在本示例实施方式中,将报文特征映射为哈希特征值之后,可以将哈希特征值与
对应的独立访客cookie作为热点数据存储于第一缓存中。本示例通过将报文特征映射为哈希特征值可以降低安全防护处理过程中的字符串长度,避免字符串过长而产生的无法处理的不可控情况的产生。
79.示例性地,第一缓存可以包括第一双向链表和第一哈希表;第一双向链表包括多个第一节点,每个第一节点存储一组报文特征和对应的独立访客cookie,多个第一节点基于最近最多访问算法排序;第一哈希表包括多个第一键值对,每个第一键值对的键为一组报文特征且值指向第一双向链表的对应第一节点;将哈希特征值与对应的独立访客cookie存储于第一缓存时,若第一缓存超过第一容量阈值或到达预设时间,删除第一双向链表的尾节点元素。
80.在本示例中,多个第一节点基于最近最多访问算法排序可以是根据节点地址对应报文特征的最近访问时间和最多访问次数进行排序,例如可以将访问时间最近且访问频率较高的报文特征对应第一节点排在前面(如头指针位置)。还可以对不同的访问时间和访问频率添加不同的权重值,以此来计算第一节点的排序情况。本示例对具体的第一节点排序规则不做特殊限定。
81.举例而言,如图3所示,第一哈希表的数据结构如图3的上半部分所示,第一哈希表的键数据可以是报文特征(feature),如md5 a、md5 b、md5 c,第一哈希表的值数据可以是第一双向链表的节点地址信息,如0xqwer、0xwert、0xerty,第一双向链表的数据结构可以是:(node:{feature,uv cookies})+链表容量+链表长度,node表示第一节点,feature表示报文特征。可以通过第一哈希表的值数据定位对报文特征在第一双向链表中的存储位置。图3中的下半部分为第一双向链表的数据结构示意,可以包括头指针和尾指针,相邻第一节点之间为双向指针。第一双向链表的循环存储过程可以满足元素的插入删除和队满出队的o(1)时间复杂度优化。
82.在一些实施例中,方法还包括:当报文特征或独立访客cookie所占用的缓存空间小于等于预设的第四阈值,则生成第一告警信息;响应于第一告警信息,对第一缓存进行扩容处理。
83.在本示例实施方式中,第四阈值可以设置于配置策略中,具体可以根据开发人员的经验进行设置,例如可以设置为100mb。第四阈值可以是一个较小的判断下限,即根据该容量所存储的数据无法进行异常判断。在实际访问过程中,当第一缓存容量不变时,随着业务量的增长,部分重要性较低的数据也具有安全防护分析价值。此时,可以触发第一告警信息提醒运维人员,运维人员可以根据该第一告警信息适当增加第一缓存的容量。
84.可以认为以上实施例中的特征为本公开方法对应的安全防护系统的uv识别检测单元。
85.在一些实施例中,参考图4,本公开方法对应的安全防护系统还包括解析单元和ip黑白名单匹配单元,基于解析单元和ip黑白名单匹配单元,方法还包括以下步骤。
86.第一步,响应于接收到用户在web页面的访问请求,对访问请求报文进行安全套接层解密,并基于nginx对解密后的报文进行解析,获得解析结果。
87.在本示例实施方式中,ssl(secure socket layer,安全套接层协议层)位于tcp/ip协议与各种应用层协议之间,为数据通讯提供安全支持。ssl解密可以是调用ssl证书和密钥对报文解密,基于nginx对解密后的报文进行解析,解析结果可以是后续处理过程的操
作对象。
88.第二步,实时装载存储于第二缓存中的配置策略,以按照配置策略对访问请求进行处理,配置策略包括安全处理策略。
89.在本示例实施方式中,可以在nginx平台下,将自定义http请求解析、负载均衡、缓存接入、统计黑白名单动态配置、modsecurity等安全防护产品嵌入安全防护系统中,可以通过策略配置进行载入。modsecurity是一个入侵探测与阻止的引擎,它主要是用于web应用程序所以也可以叫做web应用程序防火墙。
90.第三步,实时装载存储于第三缓存的ip黑名单。
91.在本示例实施方式中,第三缓存中还可以缓存有ip白名单进行实时装载。ip黑名单和ip白名单可以通过开放接口配置的ip列表来录入/导入。可以定期或根据业务需求对ip黑名单和ip白名单进行更新。
92.第四步,通过ip黑名单对解析结果的ip地址进行过滤和限流。
93.在本示例实施方式中,将访问请求的ip地址与ip黑名单进行匹配,当匹配成功,则对该ip地址对应的访问请求进行过滤或限流等。还可以进行相应的ip白名单匹配,对ip白名单匹配成功的ip地址对应的访问请求可以直接进入业务系统进行响应处理,也可以设置将与ip白名单匹配成功的访问请求传输至下一安全防护节点,如uv检测识别节点或入侵检测节点,本示例对此不做限定。
94.以上实施例中,可以采用ip白名单来规范用户的输入,可以采用ip黑名单来阻止一些恶意输入和访问敏感信息,如数据库文件和配置文件等。
95.在一些实施例中,参考图5,本公开方法对应的安全防护系统还包括入侵检测单元,配置策略包括规则启停策略和排序策略,基于入侵检测单元本公开方法还包括以下步骤。
96.第一步,根据规则启停策略,调整存储于第四缓存中的入侵检测规则列表中的入侵检测规则的状态信息。
97.在本示例实施方式中,入侵检测规则的状态信息可以包括启用或停用。可以根据配置的规则启停策略调整每个入侵检测规则的状态信息。入侵检测规则一般可以包括基于主机和基于网络的两种入侵检测,两种入侵检测相互补充。
98.第二步,根据排序策略对入侵检测规则进行排序。
99.在本示例实施方式中,排序策略可以是针对不同的业务系统和访问请求进行动态调整,排序策略用于规定入侵检测规则的排序优先级。可以根据重要程度、命中次数、执行时间等维度进行排序。本示例中,对入侵检测规则进行排序后送入入侵检测单元进行规则匹配,能够在系统资源不充足、业务各异的情况下,高效地匹配异常请求。
100.第三步,响应于入侵检测规则的状态信息和排序结果,从第四缓存中实时装载目标入侵检测规则。
101.在本示例实施方式中,可以在配置策略中设置实时装载的入侵检测规则的数量,将当前排序位于前面一定位数的入侵检测规则作为目标入侵检测规则,将目标入侵检测规则装载于入侵检测单元进行入侵检测。
102.第四步,采用目标入侵检测规则对访问请求进行入侵检测,并基于检测结果处理访问请求。
103.在本示例实施方式中,访问请求可以是上一安全防护节点的处理结果。当检测结果为异常入侵行为,其处理措施可以包括报警、切断相关用户的网络连接等,本示例对此不作限定。
104.示例性地,基于(host-based intrusion detection system,hids)的入侵检测过程为:hids对监测系统、事件等的安全记录以及unix环境下的系统进行记录。当有文件被修改时,hids将新的记录条目与已知的特征相比较,查看是否匹配(即入侵检测规则)。如果匹配,就会向系统管理员报警或者做出适当的响应。
105.在一些实施例中,参考图6,本公开方法对应的安全防护系统还包括统计防护单元,配置策略还包括维度筛选策略,基于统计防护单元本公开方法还包括以下步骤。
106.第一步,根据维度筛选策略确定多个统计维度和统计指标。
107.在本示例实施方式中,统计维度可以包括ip地址维度、uv维度和报文特征维度中的一种或多种,还可以包括其他自定义维度,本示例对此不做限定。ip地址维度的统计指标可以包括源ip地址、目标ip地址等信息,uv维度的统计指标可以包括uv cookie、uv的访问量、uv访问类型、uv访问内容等信息,报文特征维度的统计指标可以包括每个报文特征的访问量、访问类型、访问内容等,以上每个统计维度的统计指标可以进行自定义,本示例对此不做限定。
108.第二步,根据访问请求的处置策略,统计预设时间窗口内每个统计维度下的统计指标。
109.在本示例实施方式中,处理策略是指每个访问请求的响应过程中涉及到的处理机制。处置策略可以包括每个维度下的阈值设置、算法模型(如限流处理的算法模型、最近最多算法模型等)。
110.第三步,根据统计指标生成每个统计维度的统计黑白名单,并定期将统计黑白名单写入第五缓存。
111.在本示例实施方式中,统计黑白名单可以包括统计黑名单和统计白名单。可以设置某统计纬度下的一个或多个统计指标的统计值小于某一阈值时,将该统计指标关联的访问请求加入统计白名单;白名单的统计量对应访问请求可以直接进入正常业务系统进行响应。可以设置某统计纬度下的一个或多个统计指标的统计值超过安全上限,将该统计指标关联的访问请求加入统计黑名单。可以定期对统计纬度的统计黑白名单进行更新,更新的期限可以通过配置策略设置。将统计黑白名单写入第二缓存,便于实时载入和更新。
112.示例性地,第五缓存可以包括第二双向链表组、第二哈希表和第三哈希表;第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向第二双向链表组中的一第二双向链表;第二双向链表组包括多个第二节点,每个第二节点存储一统计指标,多个第二节点基于最不经常使用算法排序;第三哈希表包括多个第三键值对,每个第三键值对的键为一统计指标且值指向第二双向链表组中的一对应第二节点;将统计黑白名单写入第五缓存时,若第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
113.在本示例实施方式中,基于最不经常使用算法排序可以是按统计指标的使用频次对多个第二节点进行排序,可以将使用频次最少的第二节点排在第二双向链表的尾部。
114.举例而言,如图7所示,图7的上半部分为第三哈希表的键值对示例,其中,abc、
bcd、cde分别为第三哈希表的键数据,0xqwer、0xwert、0xerty分别为第三哈希表的值数据,表示一个第二双向链表的地址信息。图7下半部分为第二双向链表组和第二哈希表的数据结构,可以表示为(第二节点:{统计指标},freq:nodelist)+链表容量+链表长度,freq表示出现频次,nodelist表示第二节点列表。可以将每个出现频次对应一个第二双向链表,例如,freq=11对应一个第二双向链表,freq=13对应一个第二双向链表,两个出现频次对应的两个第二双向链表可以组成一个第二双向链表组。该第二双向链表组和第二哈希表的数据结构可以满足元素的插入删除和队满根据频率最小出队的o(1)时间复杂度优化。
115.第四步,实时装载统计黑白名单,并根据统计黑白名单和处置策略处理访问请求。
116.在本示例实施方式中,统计黑白名单可以包括统计黑名单和统计白名单,统计黑名单对应的处置策略可以包括限流、阻断访问、生成攻击告警等,本示例对此不作限定。统计白名单对应的处置策略可以是直接进入业务系统进行响应。
117.在一些实施例中,如图8所示,本公开方法对应的安全防护系统还可以包括日志存储单元,配置策略包括日志分析策略,基于日志存储单元方法还可以包括以下步骤s810-s830。
118.第一步,对访问请求的处理过程中的关键信息进行日志存储。
119.在本示例实施方式中,关键信息可以包括将http访问请求、响应对象、uv、匹配的入侵检测规则和处置结果等信息。可以将ip黑白名单匹配单元、uv识别检测单元、入侵检测单元、统计防护单元等处理过程中的关键信息记录在日志中,便于后续分析。
120.第二步,采用日志分析策略对存储的关键信息进行统计分析。
121.在本示例实施方式中,日志分析策略可以设置不同的统计分析维度,例如ip维度、uv维度、报文特征等等,本示例对此不作限定。
122.第三步,根据统计分析结果,通过开放接口调整第二缓存中的配置策略。
123.在本示例实施方式中,可以根据统计分析结果对配置策略进行动态调整,形成信息处理反馈闭环,可以提高安全防护的准确率和效率。
124.在一些实施例中,参考图9,本公开方法对应的安全防护系统900可以包括解析单元910、ip黑白名单匹配单元920、uv识别检测单元930、入侵检测单元940、统计防护单元950、日志存储单元960、处理策略执行单元970和缓存单元980,缓存单元980可以包括第一缓存、第二缓存、第三缓存、第四缓存和第五缓存。
125.基于该安全防护系统900的安全防护方法可以包括以下步骤。
126.第一步,用户在web页面进行目标网站的访问请求。本示例中,访问请求可以是http请求。
127.第二步,解析单元910对该请求报文进行解析,获得http对象。
128.本示例中,解析单元910可以包括ssl解密模块和报文解析模块,ssl解密模块用于对报文进行ssl解密。报文解析模块可以使用nginx内置的报文解析功能模块进行请求报文解析。
129.第三步,实时装载存储于缓存单元980中的第二缓存的配置策略。
130.在本示例中,配置策略可以包括安全防护过程中的各种阈值配置、装载配置、入侵检测规则的排序策略、规则启停策略、淘汰算法(第一缓存的数据淘汰算法)、多维度的统计统计黑白名单调整策略、缓存配置、日志相关配置等。配置策略可以通过系统的对外开放接
口进行配置,在需要使用时从第二缓存中装载至各个安全防护节点中。
131.第四步,实时装载存储于缓存单元980中的第三缓存的ip黑名单和ip白名单至ip黑白名单匹配单元。
132.在本示例中,ip黑名单和ip白名单可以从ip列表中进行手工录入或导入,ip列表可以通过系统的对外开放接口进行配置。
133.第五步,ip黑白名单匹配单元920通过ip黑名单和ip白名单对访问请求的ip地址进行匹配。
134.第六步,处理策略执行单元970根据匹配结果和配置策略进行安全防护处理。
135.在本示例中,对匹配到ip黑名单的请求,可以根据配置策略,进入对应的响应流程,如:返回非200(表示请求失败)或限流等,还可以生成告警信息或进行过滤、限流等操作。对匹配到ip白名单,可以直接进入业务系统等待响应。对于既没有匹配到ip黑名单也没有匹配到ip白名单的,可以进入下一个安全防护节点(如uv识别检测单元)进行检测。对匹配结果,日志存储单元将http请求和响应对象和处置结果记录到日志存储。
136.第七步,uv识别检测单元930判断访问请求是否包括独立访客cookie,当访问请求包括独立访客cookie,根据配置策略计算出报文特征的哈希特征值,将uv cookie和哈希特征值存储到缓存单元980中的第一缓存中。
137.第八步,uv识别检测单元930统计预设时间窗口内报文特征对应的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略通过处理策略执行单元970处理攻击行为。
138.第九步,uv识别检测单元930采用淘汰算法对第一缓存中的数据进行插入和删除。
139.本示例中,淘汰算法的实现方式为通过第一双向链表和第一哈希表的数据删除方式。淘汰算法可以定时启动,也可以在存储容量满时启动。日志存储单元将http请求和响应对象、uv、匹配热点规则和处置结果记录到日志。
140.第十步,入侵检测单元940根据配置策略(规则启停策略和排序策略)对入侵检测规则进行排序和状态调整后送入入侵检测单元进行规则匹配。命中规则,则进入对应的安全处理策略通过处理策略执行单元970响应流程。日志存储单元将访问请求和响应对象、uv、匹配的入侵检测规则和处置结果记录到日志。
141.第十一步,统计防护单元950根据配置策略(如维度筛选、阈值设置、算法模型等),定期将ip、uv、报文特征为维度的动态统计黑白名单写入第五缓存。并根据统计黑白名单确定处置策略,通过处理策略执行单元970执行处置策略。
142.在本示例中,进入响应流程,日志存储单元将http请求和响应对象、uv、匹配情况和处置结果记录到日志。访问请求只需进行每个维度的匹配即可。
143.第十二步,日志存储单元960采用配置策略中的日志分析策略对存储的关键信息进行统计分析;根据统计分析结果,通过开放接口调整第二缓存中的配置策略。
144.以上实施例中,可以通过开放接口导入ip列表,通过手工录入将ip列表中的ip地址录入第三缓存中形成ip黑名单和ip白名单,可以通过定期录入的方式更新ip黑名单和ip白名单。客户端或第三方服务可以通过开放接口进行策略配置或ip列表导入。
145.上述实施例中的各个步骤的顺序只是示例性的,可以根据需要对步骤的顺序进行相应调整。上述实施例中各个步骤的详细介绍可以参照前述实施例中的相应描述,此处不
再赘述。
146.web应用往往专注于业务功能的实现,对于自身的安全通常使用传统的网络安全设备或应用安全框架去实现。传统安全防护系统如图10所示,图10中的网络安全设备为防火墙、waf/ips(web application firewall,web应用防火墙/intrusion prevention systems,入侵防御系统)、ids(intrusion detection system,入侵检测系统)等。从图中可以看出,每个防护节点(网络安全设备)都具有策略配置、日志存储、热点数据缓存和对外开放接口等模块。
147.现有方式存在以下问题:第一,各防护节点的策略配置、日志存储等都是独立的,不能集中进行策略配置和日志查看;热点数据的缓存方式也不一致,因此从数据上存在冗余/丢失的情况的。在这种情况下,关联多个防护节点的数据进行分析几乎不可能实现。第二,通过防护节点外进行的数据分析结果想要动态调整配置/处置策略,只能通过“对外开放接口”传入。就目前来讲,即使开放了接口,自由度也有限。第三,传统的防护节点与业务系统的web服务器不存在直接交互,故无法产生并获取类似于uv cookie这种高度定制的数据。第四,传统的防护节点由于更讲究通用,对http请求和响应的解析偏弱,导致分析web应用时,维度有限。
148.综合以上可知,一方面,传统安全防护方案的业务请求需要经过大量防护节点才能到达业务端。对于不同业务规模和防护等级的系统,只能对每个防护节点设置开关来管理防护系统,无法根据资源分配做到安全防护系统中防护节点的动态伸缩,导致业务系统处理效率降低。另一方面,传统方案受到安全防护节点对应软件本身的限制(通常是高度集成的),无法进行完全的自定义防护,即根据自身需求进行高效地配置策略、分析流量、处置异常。也无法对整个防护处理过程进行集中统计分析。
149.本公开实施例提供的通信网络web应用安全防护方法中,可以在访问请求包括独立访客cookie的情况下,统计预设时间窗口内报文特征的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。一方面,通过首次访问页面时产生的独立访客cookie信息,结合提取的报文特征,能够快速识别攻击行为,提高web应用访问请求的安全防护相应处理速度。另一方面,从独立访客维度和自定义的报文特征维度,实现web应用访问请求的分类处理,提高安全防护的准确性。此外,本公开可以根据业务需求,配置对应的安全处理策略,实现自定义安全防护,提高web应用安全防护系统的灵活性。
150.本公开可以基于ip地址、uv、自定义报文特征为维度,进行安全防护处理过程中的数据传递和保存。在nginx平台下,可以进行自定义请求解析、负载均衡、缓存接入、统计黑白名单动态配置、modsecurity等安全防护产品的嵌入及标准日志输出、响应策略配置等操作。入侵检测规则可以通过重要程度、命中次数、执行时间等维度反馈到第四缓存中,动态调整排序策略和规则启停策略。
151.本公开还设计了日志的统计分析,通过对全局日志数据进行多维度的统计分析,将分析结果反馈至第二缓存,以动态调整配置策略,从而提高安防防护性能和安全防护处理效率。本公开的整个安全防护过程不依赖任一防护节点,学习成本低,安全排查和配置相对简单。
152.本公开设计了uv cookie维度,同一uv cookie意味着是在单次会话中产生的行为
合集,在回溯分析时,可以解决http无状态的“弊端”。而业务系统在做数据分析时,uv也是一个很重要的参考指标,具有重要的参考价值。
153.本公开对第一缓存和第五缓存设计了缓存数据的存储方法和数据删除机制,对不同数据使用不同的淘汰机制,最大限度保证热点数据的留存。对于自定义报文特征采用哈希算法,降低了字符串长度,避免由于处理字符串过长而引起的不可控情况的产生。通过设计多种缓存数据结构,形成了o(1)时间复杂度的匹配算法,避免影响业务系统即时响应。
154.本公开一方面可以对web应用进行集中地、自定义地安全防护配置和安全分析,从而可以对系统资源和业务场景不一致的情况进行自适应安全防护。另一方面,通过设计缓存数据结构,保证关键数据的留存,进而保证分析的准确性;同时通过淘汰算法控制缓存规模,避免影响业务响应。
155.本公开可以应用于有安全分析需求、通过实时或统计的结果对后续web请求进行分类处置的应用场景。示例性地,存在多个系统资源和业务场景不同的web产品的开发,或者有深度的web安全分析需求的安全部门。
156.参见图11,本示例实施方式中还提供了一种web应用安全防护装置1100;装置1100可以包括:确定模块1110、提取模块1120、统计模块1130和安全防护处理模块1140;确定模块,用于响应于接收到用户在web页面的访问请求,确定访问请求是否包括独立访客cookie;提取模块,用于提取访问请求中的一组或多组报文特征;统计模块,用于若访问请求包括独立访客cookie,统计预设时间窗口内报文特征对应的独立访客cookie信息;安全防护处理模块,用于根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。
157.在本公开的一个实施例中,独立访客cookie信息包括独立访客cookie的访问总量和每组报文特征对应的独立访客cookie访问量,安全防护处理模块1140还用于:响应于独立访客cookie的访问总量大于等于预设第一阈值,确定出现异常访问;在出现异常访问的情况下,响应于报文特征对应的独立访客cookie数量大于等于第二阈值,确定报文特征相关的访问请求为攻击行为。
158.在本公开的一个实施例中,安全防护处理模块1140还用于:若访问请求不包括独立访客cookie,响应于预设时间窗口内所有报文特征对应访问请求的增长率大于等于第三阈值,确定报文特征的分布情况;
159.当报文特征分布于同一组,则确定该组报文特征相关的访问请求为攻击行为。
160.在本公开的一个实施例中,安全防护处理模块1140还用于:根据独立访客cookie的访问总量与报文特征的组数的比值,确定第二阈值;根据预设时间窗口内的访问请求总数量与报文特征的组数的比值,确定第三阈值。
161.在本公开的一个实施例中,装置1100还可以包括:映射模块和缓存模块,映射模块可以用于对报文特征进行哈希映射,获得对应哈希特征值;缓存模块可以用于将哈希特征值与对应的独立访客cookie存储于第一缓存。
162.在本公开的一个实施例中,第一缓存包括第一双向链表和第一哈希表;第一双向链表包括多个第一节点,每个第一节点存储一组报文特征和对应的独立访客cookie,多个第一节点基于最近最多访问算法排序;第一哈希表包括多个第一键值对,每个第一键值对的键为一组报文特征且值指向第一双向链表的对应第一节点;缓存模块还可以用于将哈希
特征值与对应的独立访客cookie存储于第一缓存时,若第一缓存超过第一容量阈值或到达预设时间,删除第一双向链表的尾节点元素。
163.在本公开的一个实施例中,方法还包括:解析模块和装载模块,解析模块可以用于响应于接收到用户在web页面的访问请求,对访问请求报文进行安全套接层解密,并基于nginx对解密后的报文进行解析,获得解析结果;装载模块可以用于实时装载存储于第二缓存中的配置策略,以按照配置策略对访问请求进行处理,配置策略包括安全处理策略。
164.ip黑白名单匹配单元920、uv识别检测单元930、入侵检测单元940、统计防护单元950、日志存储单元960、处理策略执行单元970
165.在本公开的一个实施例中,装置1100还可以包括ip黑白名单匹配模块;装载模块还可以用于在基于nginx对解密后的报文进行解析之后,实时装载存储于第三缓存的ip黑名单;ip黑白名单匹配模块可以用于通过ip黑名单对解析结果的ip地址进行过滤和限流。
166.在本公开的一个实施例中,配置策略包括规则启停策略和排序策略,装置1100还可以包括入侵检测模块,入侵检测模块可以用于根据规则启停策略,调整存储于第四缓存中的入侵检测规则列表中的入侵检测规则的状态信息;根据排序策略对入侵检测规则进行排序;响应于入侵检测规则的状态信息和排序结果,从第四缓存中实时装载目标入侵检测规则;采用目标入侵检测规则对访问请求进行入侵检测,并基于检测结果处理访问请求。
167.在本公开的一个实施例中,配置策略还包括维度筛选策略,装置1100还可以包括防护机制统计模块,防护机制统计模块可用于根据维度筛选策略确定多个统计维度和统计指标;根据访问请求的处置策略,统计预设时间窗口内每个统计维度下的统计指标;根据统计指标生成每个统计维度的统计黑白名单,并定期将统计黑白名单写入第五缓存;实时装载统计黑白名单,并根据统计黑白名单和处置策略处理访问请求。
168.在本公开的一个实施例中,第五缓存可以包括第二双向链表组、第二哈希表和第三哈希表;第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向第二双向链表组中的一第二双向链表;第二双向链表组包括多个第二节点,每个第二节点存储一统计指标,多个第二节点基于最不经常使用算法排序;第三哈希表包括多个第三键值对,每个第三键值对的键为一统计指标且值指向第二双向链表组中的一对应第二节点;防护机制统计模块还可以用于将统计黑白名单写入第五缓存时,若第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
169.在本公开的一个实施例中,缓存模块还用于:当报文特征或独立访客cookie所占用的缓存空间小于等于预设的第四阈值,则生成第一告警信息;响应于第一告警信息,对第一缓存进行扩容处理。
170.在本公开的一个实施例中,配置策略包括日志分析策略,装置1100还可以包括日志存储模块,日志存储模块可以用于对访问请求的处理过程中的关键信息进行日志存储;采用日志分析策略对存储的关键信息进行统计分析;根据统计分析结果,通过开放接口调整第二缓存中的配置策略。
171.上述实施例中的web应用安全防护装置中涉及的各个模块/单元的具体细节已经在对应的web应用安全防护方法中进行了详细的描述,因此此处不再赘述。
172.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算
机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备实现如下述实施例中的方法。例如,设备可以实现如图2-图9所示的各个步骤等。
173.需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
174.此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的设备。所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施例、完全的软件实施例(包括固件、微代码等),或硬件和软件方面结合的实施例,这里可以统称为“电路”、“模块”或“系统”。
175.参见图12,图12是本技术实施例提供的一种电子设备的结构示意图。如图12所示,该电子设备1200包括处理器1210、存储器1220、输入输出接口1230以及通信总线1240。处理器1210连接到存储器1220和输入输出接口1230,例如处理器1210可以通过通信总线1240连接到存储器1220和输入输出接口1230。处理器1210被配置为支持该电子设备执行图2-图9中web应用安全防护方法中相应的功能。该处理器1210可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np),硬件芯片或者其任意组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。存储器1220用于存储程序代码等。存储器1220可以包括易失性存储器(volatilememory,vm),例如随机存取存储器(random access memory,ram);存储器1220也可以包括非易失性存储器(non-volatile memory,nvm),例如只读存储器(read-only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd);存储器1220还可以包括上述种类的存储器的组合。
176.该输入输出接口1230用于输入或输出数据。
177.处理器1210可以调用上述程序代码以执行以下操作:
178.响应于接收到用户在web页面的访问请求,确定访问请求是否包括独立访客cookie;提取访问请求中的一组或多组报文特征;若访问请求包括独立访客cookie,统计预设时间窗口内报文特征对应的独立访客cookie信息;根据报文特征对应的独立访客cookie信息,确定报文特征相关的访问请求为攻击行为,并采用配置的安全处理策略处理攻击行为。
179.可选地,独立访客cookie信息包括独立访客cookie的访问总量和每组报文特征对应的独立访客cookie访问量,上述处理器1210还可以根据报文特征对应的独立访客cookie信息,确定攻击行为,执行以下操作:响应于独立访客cookie的访问总量大于等于预设第一阈值,确定出现异常访问;在出现异常访问的情况下,响应于报文特征对应的独立访客cookie数量大于等于第二阈值,确定报文特征相关的访问请求为攻击行为。
180.可选地,上述处理器1210还可以执行以下操作:若访问请求不包括独立访客cookie,响应于预设时间窗口内所有报文特征对应访问请求的增长率大于等于第三阈值,确定报文特征的分布情况;当报文特征分布于同一组,则确定该组报文特征相关的访问请求为攻击行为。
181.可选地,上述处理器1210还可以执行以下操作:根据独立访客cookie的访问总量与报文特征的组数的比值,确定第二阈值;根据预设时间窗口内的访问请求总数量与报文特征的组数的比值,确定第三阈值。
182.可选地,上述处理器1210还可以执行以下操作:对报文特征进行哈希映射,获得对应哈希特征值;将哈希特征值与对应的独立访客cookie存储于第一缓存。
183.可选地,第一缓存包括第一双向链表和第一哈希表;第一双向链表包括多个第一节点,每个第一节点存储一组报文特征和对应的独立访客cookie,多个第一节点基于最近最多访问算法排序;第一哈希表包括多个第一键值对,每个第一键值对的键为一组报文特征且值指向第一双向链表的对应第一节点;上述处理器1210还可以将哈希特征值与对应的独立访客cookie存储于第一缓存时,执行以下操作:若第一缓存超过第一容量阈值或到达预设时间,删除第一双向链表的尾节点元素。
184.可选地,上述处理器1210还可以执行以下操作:响应于接收到用户在web页面的访问请求,对访问请求报文进行安全套接层解密,并基于nginx对解密后的报文进行解析,获得解析结果;实时装载存储于第二缓存中的配置策略,以按照配置策略对访问请求进行处理,配置策略包括安全处理策略。
185.可选地,配置策略包括规则启停策略和排序策略,上述处理器1210还可以执行以下操作:在基于nginx对解密后的报文进行解析之后,实时装载存储于第三缓存的ip黑名单;通过ip黑名单对解析结果的ip地址进行过滤和限流。
186.可选地,上述处理器1210还可以执行以下操作:根据规则启停策略,调整存储于第四缓存中的入侵检测规则列表中的入侵检测规则的状态信息;根据排序策略对入侵检测规则进行排序;响应于入侵检测规则的状态信息和排序结果,从第四缓存中实时装载目标入侵检测规则;采用目标入侵检测规则对访问请求进行入侵检测,并基于检测结果处理访问请求。
187.可选地,配置策略还包括维度筛选策略,上述处理器1210还可以执行以下操作:根据维度筛选策略确定多个统计维度和统计指标;根据访问请求的处置策略,统计预设时间
窗口内每个统计维度下的统计指标;根据统计指标生成每个统计维度的统计黑白名单,并定期将统计黑白名单写入第五缓存;实时装载统计黑白名单,并根据统计黑白名单和处置策略处理访问请求。
188.可选地,第五缓存包括第二双向链表组、第二哈希表和第三哈希表;第二哈希表包括多个第二键值对,每个第二键值对的键为访问频次且值指向第二双向链表组中的一第二双向链表;第二双向链表组包括多个第二节点,每个第二节点存储一统计指标,多个第二节点基于最不经常使用算法排序;第三哈希表包括多个第三键值对,每个第三键值对的键为一统计指标且值指向第二双向链表组中的一对应第二节点;上述处理器1210还可以将统计黑白名单写入第五缓存时,执行以下操作:若第二双向链表组的容量超过第二容量阈值,删除最小访问频次指向的一第二双向链表的尾节点元素。
189.可选地,上述处理器1210还可以执行以下操作:当报文特征或独立访客cookie所占用的缓存空间小于等于预设的第四阈值,则生成第一告警信息;响应于第一告警信息,对第一缓存进行扩容处理。
190.可选地,配置策略包括日志分析策略,上述处理器1210还可以执行以下操作:对访问请求的处理过程中的关键信息进行日志存储;采用日志分析策略对存储的关键信息进行统计分析;根据统计分析结果,通过开放接口调整第二缓存中的配置策略。
191.需要说明的是,各个操作的实现还可以对应参照图2-图9所示的方法实施例的相应描述;上述处理器1210还可以与输入输出接口1230配合执行上述方法实施例中的其他操作。
192.通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台设备执行根据本公开实施例的方法。
193.此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
194.需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等,均应视为本公开的一部分。
195.应可理解的是,本说明书公开和限定的本公开延伸到文中和/或附图中提到或明显的两个或两个以上单独特征的所有可替代组合。所有这些不同的组合构成本公开的多个可替代方面。本说明书的实施方式说明了已知用于实现本公开的最佳方式,并且将使本领域技术人员能够利用本公开。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1