CN114157504A - 一种基于Servlet***的安全防护方法 - Google Patents
一种基于Servlet***的安全防护方法 Download PDFInfo
- Publication number
- CN114157504A CN114157504A CN202111494318.6A CN202111494318A CN114157504A CN 114157504 A CN114157504 A CN 114157504A CN 202111494318 A CN202111494318 A CN 202111494318A CN 114157504 A CN114157504 A CN 114157504A
- Authority
- CN
- China
- Prior art keywords
- data
- request
- user
- interceptor
- attack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于Servlet***的安全防护方法,其特征在于,包括:构建***;配置服务器端获取访问上下文信息的对象;滥用检测指标项的累加计算及比对;基于用户名和访问时间生成解密密钥并返回浏览器端;比对用户输入的解禁密钥与***中的解禁密钥;各***拦截获取不同类型的请求数据,执行黑白名单校验;调用预设在***中的攻击检测方法的组件,检测用户输入数据、***输出数据中是否存在攻击数据。达到形成对不同级别安全问题的识别,和执行不同程度的监控处理,实现分级防控,不仅减少人力对漏洞问题的监测及处理,更重要的是提升了安全防控的覆盖面,最终提高防控效率的效果。
Description
技术领域
本发明隶属于***防御技术领域,具体涉及一种基于Servlet***的安全防护的方法。
背景技术
JavaWeb技术诞生至今,互联网上已经含有海量的Java服务端网页,但是目前依然存在相当一部分网站是脆弱易受黑客侵入的。黑客等不法分子会利用网页中的元素、脚本和漏洞等威胁互联网和计算机安全。黑客入侵网站一方面会导致网站打不开,服务器宕机;另一方面则利用漏洞和薄弱点获取服务器权限。防范黑客攻击是个长期工作,而网页防御黑客入侵往往又需要资深的开发工程师耗费大量的时间设计一整套检测监控统计方法。
市面上已存在利用采用***执行安全防护的方法,专利“一种基于***实现java网络***权限管理的方法”(申请号:201710704299.2)通过***拦截发往服务器的请求,查询操作该用户的权限信息,实现用户权限的有效管理。专利“一种基于***的浏览器报错的方法”(申请号:201010599823.2)获取浏览器的返回信息,拦截报错信息,使浏览器无法接收到访问服务器时返回的错误信息,防止浏览器跳转到报错网页导致的浏览器输入数据丢失的问题。然而现有技术只关注到一个具体功能的安全防护,却忽略了安全防护应覆盖整个应用的输入口和输出口,欠缺的完善工作无疑增加了开发人员的时间,也增加了代码的重复度;加之只能限制某一类入口白名单,并不能做到一个功能或者一个参数级对应一类黑白名单,也给安全防护带来了更高的难度和更多的漏洞。
因此需要一种扩展性强、安全性能高且能覆盖所有***入口及***出口的安全防控技术。
发明内容
本发明欲解决的技术问题是Web安全漏洞高发并且无标准防御技术。本发明针对常见类型的Web网页工作做了高效的检测和拦截,并在此之上提供一个可以接入统计和监控***的框架,该框架使得工程师可以扩展并实现更加丰富的监控预警功能。通过该方法能高效准确的拦截大量的Web恶意攻击,无需投入大量人力即可满足一定的安全性要求。
一种基于Servlet***的安全防护方法,具体实现步骤如下:
步骤1:构建***;具体是为不同的请求数据处理阶段构建Servlet***,拦截获取不同类型的请求数据;所述请求数据的类型包含用户输入数据及***输出数据;所述用户输入数据是从请求报文的请求行、请求头和请求体中获取的请求路径、请求资源的地址及请求参数的数据,所述输出数据是从响应报文中获取服务端输出至浏览器端的响应请求的数据;
步骤2:配置服务器端获取访问上下文信息的对象;具体是配置从请求报文中采集请求地址和Cookie的访问信息;待获取所述访问信息后构建访问上下文信息的内容,包含请求地址、用户名、访问时间、访问间隔、访问频次;所述访问间隔是取同一用户本次访问与上一次访问的时间差;所述访问频次是取访问间隔内产生的请求访问网页地址的次数,包含访问同一个网页地址的次数及访问不同网页地址的次数;
步骤3:滥用检测指标项的累加计算及比对;基于步骤2获得访问上下文信息和Cookie 信息,以用户名为单位,累加计算滥用指标项的数值,所述滥用指标项的数值包括用户访问次数、用户访问频率、用户的资源请求数、用户开启会话数,将滥用检测指标的数值与预设的指标阈值比对,若滥用检测指标的数值全部小于预设的指标阈值,判定为通过滥用检测,执行步骤6;若用户访问次数、用户访问频率、用户的资源请求数的任一数值大于等于预设指标的阈值,判定为未通过滥用检测,生成访问受限事件,修改预设在***内的会话封禁状态值为已封禁;执行步骤4;若用户开启会话数的数值大于等于预设指标的阈值,判定为未通过滥用检测,生成严重封禁事件,修改预设在***内的用户封禁状态值为已封禁;
步骤4:基于用户名和访问时间生成解密密钥并返回浏览器端:以访问时间生成访问时间戳;组合用户名和访问时间戳,并对组合内容执行哈希计算,形成哈希值;拼接用户名、访问时间戳与所述哈希值,形成解禁密钥;储存解禁密钥在***中,并写入由***动态生成的页面中,返回至浏览器端显示;
步骤5:比对用户输入的解禁密钥与***中的解禁密钥;经比对,若比对一致,判定通过滥用检测,修改预设在***内的会话封禁状态值为解禁,同时将4个滥用检测指标的数值全部归0,执行步骤6;若比对不一致,后台统计的解禁密码错误次数的数值加1,继续获取用户输入的解禁密钥比对;若解禁密码错误次数超过预设阈值,生成严重封禁事件,修改***内的用户封禁状态值为已封禁,终止用户访问;
步骤6:各***拦截获取不同类型的请求数据,执行黑白名单校验;处于不同请求处理阶段的***提取预设在内部的黑白名单,对拦截获取的用户输入数据和***输出数据执行黑白名单比对,针对用户输入数据,若所述数据中的请求路径、请求资源的地址及请求参数的任一数据存在于黑名单中,执行步骤7;若所述数据中的请求路径、请求资源的地址及请求参数均存在于黑名单中均存在于白名单中,将数据传至后台服务器;针对***输出数据,若存在于***的黑名单中,执行步骤7;若存在于***的白名单中,将用***输出数据传至浏览器端;
步骤7:调用预设在***中的攻击检测方法的组件,检测步骤6中的用户输入数据、***输出数据中是否存在攻击数据;所述攻击数据是指未通过攻击检测方法的数据;经检测,若用户输入数据、***输出数据通过攻击检测方法的检测,判定不存在攻击数据,将用户输入数据传至后台服务器,将***输出数据传至浏览器端;若用户输入数据、***输出数据未通过任一攻击检测方法的检测,判定存在攻击数据,从用户输入数据中清除攻击数据后,生成数据清洗结果传至后台服务器,将***输出数据清除攻击数据后,生成数据清洗结果传至浏览器端,同步将未通过检测的数据与数据清洗结果存入缓存中。
所述步骤1中构建Servlet***具体为:对应请求路径接收、请求参数接收、文件上传参数接收、***输出的4个数据处理阶段,分别构建请求体***、请求参数***、文件上传参数***、输出表达式***;所述步骤1中的用户输入数据包含从请求行中获取的请求路径、请求资源的地址,以及从请求体中获取的文件上传参数和请求参数,所述参数包括:网页表单内上传的文件数据、网页表单内填写的数据、以ajax技术传输的网页表单数据;
所述步骤1中构建Servlet***,具体是在Servlet***的配置文件web.xml中配置滥用检测指标项的数值统计方法及数值阈值;配置数值累加器用于累加计算滥用检测指标,按照数值统计方法执行滥用检测指标项的数值统计;配置存储器用于储存用户封禁状态值、会话封禁状态值、滥用检测指标项的数值、解禁密钥;所述封禁状态值包含已封禁和解禁;配置事件***用于监听到生成的任一事件时,通知下游服务器执行事件处理,所述事件处理包括日志文件打印、修改用户封禁状态值、修改会话封禁状态值、邮件报警、事件分类统计;配置攻击检测方法的组件及黑白名单;所述攻击检测方法的组件包括XSS漏铜检测组件、 SQL漏洞检测组件、敏感词检测组件;所述黑白名单包括请求路径黑白名单、请求资源地址黑白名单、请求参数黑白名单;在所述请求体***中配置请求路径黑白名单;所述请求参数***中配置请求参数黑白名单;所述文件上传参数***中配置请求路径黑白名单、请求资源地址黑白名单、请求参数黑白名单。
在所述步骤1中,所述XSS漏洞检测方法的组件是Antisamy组件;所述SQL漏洞检测方法的组件是Libinjection组件。
在所述步骤3中,累加计算滥用检测指标的数值具体包含:累加用户访问不同网页地址的次数,更新为当前的用户访问次数的值;累加用户访问相同网页地址的次数,更新为当前的资源请求数的值;累进访问间隔,利用累进算法计算并更新当前的用户访问频率的值;以 Cookie判定用户的会话状态,若请求头中未含有Cookie,则判定是第一次会话,用户开启会话数的值加1;否则维持用户开启会话数不变;
在执行所述步骤3中,判断是否执行滥用检测指标项的累加计算,具体是在预设的请求路径黑白名单中检索是否存在用户输入数据中的请求路径,若请求路径在请求路径黑名单中,判定执行滥用检测指标项的累加计算,若请求路径在预设的请求路径白名单中,判定不执行滥用检测指标项的累加计算,获取用户输入数据,执行步骤6。
在所述步骤4的生成解禁密钥时,后台累加计算的滥用警告次数的数值加1,用户被封禁次数的数值加1;滥用警告次数的数值与用户被封禁次数的数值中任一数值超过预设阈值,生成严重封禁事件,修改***中储存的用户封禁状态值为已封禁,终止用户访问。
在所述步骤4和步骤5中,当用户的封禁状态值变更为已封禁时,后台累加计算的滥用警告次数、用户被封禁次数、解禁密码错误次数的数值归0。
在所述步骤7调用攻击检测方法的组件之前,检索缓存中是否存在与用户输入数据相同的攻击数据,若存在,从缓存中获取攻击数据对应的处理结果传至服务器,所述处理结果是经删除攻击数据后的用户输入数据;若不存在,调用攻击检测方法的组件;检索缓存中是否存在与***输出数据相同的攻击数据,若存在,从缓存中获取攻击数据对应的处理结果传至浏览器端;若不存在,调用攻击检测方法的组件;
在所述步骤7中判定为存在攻击数据时,后台累加计算的用户攻击次数的数值加1,生成攻击事件,在攻击事件中记录用户名、用户攻击次数的数值、未通过检测的数据、请求数据处理阶段的名称;统计2个小时内的用户攻击次数的数值,若数值大于等于3,修改***储存的用户封禁状态值为已封禁;若数值小于3,修改***储存的会话封禁状态值为已封禁,并按照所述步骤4-步骤5生成解禁密钥执行解禁;若事件***监听到攻击事件,将攻击事件记录的用户名、攻击次数、攻击数据、请求数据处理阶段写入日志文件中。
在步骤1-步骤7中,事件***监听到任一生成的访问受限事件、严重封禁事件、攻击事件时,以邮件通知***维护人员;统计最近2个小时内各事件生成的数值并利用可视化工具绘制成报表图;实时采集包含访问上下文信息的内容、各类事件生成的数值、用户攻击次数的数值,通过接入外部的可视化展示***,显示网页访问情况、当前设备建立会话情况、遭受攻击情况。
本发明所达到的有益效果如下:
本发明通过为不同请求数据接收及处理阶段构建***,能拦截用户输入数据及***输出数据,并针对不同类型的数据给予不同的黑白名单校验及攻击检测方法,不仅要求能识别***入口和***出口,还能快速地将拦截过滤代码集成在各***输入口及输出口,实现对***入口和***出口安全防控的全面覆盖;并辅以缓存处理结果,避免重复检测导致的处理性能降低问题发生。
本发明通过对用户访问信息的数据归类和汇总、以及对输入数据和输出数据的安全漏洞组合判定,区分用户级和会话级的安全防控及解禁,形成对不同级别安全问题的识别,和执行不同程度的监控处理,实现分级防控,对于低级别防控问题自动解决,对于高级别防控问题则提醒关注,不仅减少人力对漏洞问题的监测及处理,更重要的是提升了安全防控的覆盖面,实现了对99%的XSS漏洞及SQL漏洞的识别,最终提高了防控效率。
本发明通过***实施对用户请求访问的滥用检测及攻击检测,不仅对基于用户访问信息的网页访问情况进行安全性检测,也对用户在网页表单内的输入数据及响应用户的***输出数据进行安全性检测,加强了请求防控的安全度。
本发明通过***实施对安全防护过程中访问受限事件、封禁事件及严重封禁事件的全面监听,并针对不同事件执行封禁及自助解禁处理,减少了人工处理的人力成本,提升封禁解封的处理响应速度;并能与外部***对接实施数据统计及分析,提高了用户访问行为多维度数据的利用率。
本发明通过***建立统一的接口,形成统一的黑白名单、统一的事件监测及通知,使得多种检测机制能共同作用,并且代码风格统一。
附图说明
图1为本发明实施例中基于Servlet***的安全防护方法实现流程示意图;
图2为本发明实施例中基于Servlet***的安全防护***的结构示意图。
具体实施方式
下面结合附图和示例性实施对本发明作进一步的说明:
Servlet是一种运行在服务器端的java应用程序,具有独立于平台和协议的特性,并且能动态地生成web页面,用于处理来自HTTP客户端的请求,访问后端数据源。利用Servlet 可截获来自网页表单的用户输入,获取、修改来自数据源的数据,甚至还可以动态创建网页。
图1为本发明实施例中基于Servlet***的安全防护方法实现流程示意图,具体流程包括:
步骤101:为不同的请求数据处理阶段构建Servlet***;对应于请求路径接收、请求参数接收、文件上传参数接收、***输出的4个请求数据处理阶段,分别构建请求体***、请求参数***、文件上传参数***、输出表达式***拦截用户输入数据及***输出数据;所述用户输入数据是指从请求行中获取的请求路径、请求资源的地址;从请求体中获取文件上传参数和请求参数,具体是包含网页表单内上传文件的数据、网页表单内填写的数据、以ajax技术传输的表单数据;所述输出数据是从响应报文中获取服务端输出至浏览器端的数据;通过分析用户请求数据的处理过程,总结出对安全防控至关重要的4个请求数据处理阶段,实施数据的拦截获取,提高数据拦截获取的有效性;
所述步骤101中构建Servlet***,具体是在Servlet***的配置文件web.xml中配置滥用检测指标项的数值统计方法及各指标项的数值阈值;配置数值累加器按照数值统计方法执行数值统计;配置存储器储存用户封禁状态值、会话封禁状态值、滥用检测指标项的数值阈值、解禁密钥;所述封禁状态值包含封禁和解禁;配置事件***监听生成的事件并通知下游服务器执行日志文件打印、封禁用户、封禁会话、监控报警及事件统计至少一个处理;配置攻击检测方法的组件及黑白名单;本发明实施例中的攻击是指漏洞攻击,包含XSS 漏洞攻击、SQL漏洞攻击及敏感词攻击;所述攻击检测方法的组件是XSS漏铜检测组件、SQL 漏洞检测组件、敏感词检测组件中至少一种检测组件;所述黑白名单是访问路径黑白名单、访问资源黑白名单、访问参数黑白名单中至少一种黑白名单;
在本发明实施例中,所述步骤101的构建Servlet***是在web.xml文件中配置Servlet***的个性化模块、攻击检测模块的公共组件、滥用检测模块的公共组件;
所述配置攻击检测模块的公共组件是配置攻击检测使用的检测方法组件;所述检测方法组件包含执行XSS漏铜检测组件的Antisamy组件、执行SQL漏洞检测组件Libinjection组件、敏感词检测组件;
所述配置滥用检测模块的公共组件是配置滥用检测指标项、数值累加器、存储器、***;所述数值累加器按照设定的数值统计方法执行数值统计;所述存储器存储用户封禁状态值、会话封禁状态值、滥用检测指标的数值、解禁密钥;所述解禁密钥基于用户名和访问时间自动生成;
所述封禁状态值包含已封禁和解禁,所述用户封禁状态值与用户名对应;所述用户名从用户访问信息的Cookie中提取;所述设备封禁状态的值包含已封禁和解禁,所述设备封禁状态指与会话ID对应;所述会话ID在会话创建时***自动生成;
所述事件***监听事件并通知下游服务器执行日志文件打印、修改用户封禁状态值、修改会话封禁状态值、邮件报警及事件分类统计的至少一种处理;
所述配置个性化模块是配置***执行攻击检测使用的检测方法组合及黑白名单;所述检测方法组合配置不少于1个攻击检测方法的组件及各组件执行顺序;所述检测方法组件从所述攻击检测模块的公共组件中选择;
所述黑白名单包含请求参数黑白名单、请求路径黑白名单、请求资源黑白名单、;所述黑白名单配置在***中;在所述请求体***中配置请求路径黑名单和请求路径白名单;所述请求参数***中配置请求参数黑名单和请求参数白名单;所述文件上传参数***中配置请求路径、请求资源、请求参数的黑名单和白名单;所述输出表达式***中,配置请求路径黑名单白名单;
步骤102:配置服务器端获取访问上下文信息的对象,具体是配置从请求报文中收集和统计的用户访问信息,包含Cookie信息和请求地址;待获取到用户访问信息后,基于用户访问信息构建访问上下文信息的内容;所述访问上下文信息的内容包含请求访问的网页地址、用户身份标识、访问时间、访问间隔、访问频次;所述用户身份标识是用户名;所述访问间隔是取同一个用户本次访问时间与上一次访问时间的时间差;所述访问频次是问间隔内产生的网页访问次数,具体包含单位时间内访问网站内同一个网页的次数及单位时间内访问网站内不同网页的次数;现有技术多是通过校验用户身份数据后判定用户具备访问资源的合法性,并综合加密算法对用户认证和授权数据进行加密保护,但这却不能有效防止身份伪造、造假或者加密算法破解,而用户行为是最能真实反映用户的数据,唯有对用户行为数据的搜集和校验才是最有安全保障的安全防控方法;
尽管现有技术也有提及对服务名和参数表的获取,但对所有参数的全部搜集,不仅会带来存储的压力,而且对未经筛选的参数搜集,只会带来监控的繁琐;本发明剥离出最能体现用户行为的访问次数、访问频率、访问间隔、访问频率等参数,通过对这些参数的搜集和统计监测,区分不同级别的安全问题,而不是像现有技术仅有认证成功和认证失败2种安全监测结果,没有细粒度的安全监测方式。
步骤103:滥用检测指标的累加计算;依据步骤102获取的访问上下文信息的内容,分别累加计算用户访问次数、用户访问频率、用户的资源请求数、用户开启会话数的滥用指标项的数值,将各滥用检测指标的数值与各指标预设阈值比对,若滥用检测指标的数值全部小于预设阈值,判定为通过滥用检测,允许用户请求访问;若用户访问次数、用户访问频率、用户的资源请求数的任一数值大于等于预设指标的阈值,生成访问受限事件,修改***内的会话封禁状态值为已封禁;执行步骤104;若用户开启会话数的数值大于等于预设指标的阈值,生成严重封禁事件,修改***内的用户封禁状态值为已封禁;
在所述步骤103中,累加计算滥用检测指标具体为:
累加用户访问不同网页地址的次数,为用户访问次数的值;
累加用户访问相同网页地址的次数,为资源请求数的值;
累进访问间隔,利用累进算法计算用户访问频率的值;
以Cookie判定用户的会话状态,若请求头中未含有Cookie,则是第一次会话,用户开启会话数的值加1;否则维持用户开启会话数不变;
在执行所述步骤103时,判断是否执行滥用检测指标项的累加计算,具体是在预设的请求路径黑白名单中检索是否存在用户输入数据中的请求路径,若请求路径在请求路径黑名单中,判定执行滥用检测指标项的累加计算,若请求路径在预设的请求路径白名单中,判定不执行滥用检测指标项的累加计算,获取用户输入数据,执行步骤106;
步骤104:基于用户名和访问时间生成解密密钥并返回浏览器端:将访问时间生成访问时间戳;对用户名和访问时间戳的组合内容执行哈希计算形成哈希值,将所述哈希值与用户名、访问时间戳拼接形成解禁密钥,将所述解禁密钥写入Servlet***动态生成的页面中,并将所述页面返回至设备的浏览器显示;同时存储所述解禁密钥在Servlet***的存储器中;
在生成解禁密钥时,后台统计的滥用警告次数加1,用户被封禁次数加1;滥用警告次数与用户被封禁次数任一数值超过预设阈值,生成严重封禁事件,封禁用户,修改用户的封禁状态为“已封禁”,终止用户访问;
步骤105:比对用户输入的解禁密钥与存储器中的解禁密钥;经比对,若比对一致,滥用检测通过,解禁会话,修改会话封禁状态值为解禁,允许用户请求访问,将四个滥用检测指标的数值归0,执行步骤106;若比对不一致,后台统计的解禁密码错误次数加1,继续获取用户输入的解禁密钥比对;若解禁密码错误次数超过预设阈值,生成严重封禁事件,封禁用户,修改用户封禁状态值为“已封禁”,终止用户继续访问;
在所述步骤104和步骤105中,当用户的封禁状态值变更为“已封禁”时,后台统计的滥用警告次数、被封禁次数、解禁密码错误次数的数值重新归0统计;
步骤106:***拦截获取处于不同请求数据处理阶段的用户输入数据和***输出数据,并提取对应的***内的黑白名单对用户输入数据、***输出数据执行校验;若用户输入数据包含的请求路径、请求资源的地址、请求参数的任一数据存在于***的黑名单中,执行
步骤107;若用户输入数据中的请求路径、请求资源的地址及请求参数均存在于***的白名单中,将用户输入数据传至后台服务器;若***输出数据存在于***的黑名单中,执行步骤107;若***输出数据存在于***的白名单中,将用***输出数据传至浏览器端;
步骤107:执行攻击检测方法组件检测用户输入数据、***输出数据中是否存在攻击数据;所述攻击数据是未通过攻击检测方法的数据;本发明实施例以用户输入数据为例具体流程为:
步骤107-1:获取缓存中的攻击检测处理结果传至服务器:检索缓存中是否存在与用户输入数据相同的攻击数据,若存在从缓存中获取攻击数据对应的处理结果传至服务器,所述处理结果是删除攻击数据后的输入数据;若不存在,执行步骤107-2;
步骤107-2:在步骤106的***中获取攻击检测方法组件,在本发明实施例中获取的攻击检测方法组件依次为检测XSS漏洞的Antisamy组件、检测SQL漏洞的Libinjection组件、敏感词检测组件;在本发明实施例中,所述Antisamy组件通过将用户输入数据按照HTML词法进行词法分析后,形成DOM树结构;获取并检测DOM数结构内每个分支节点,判定不被接受的数据为攻击数据;Libinjection组件通过根据SQL关键词、SQL函数、SQL语句将用户输入数据转变为标记表达式,比如输入数据select*from dual经转变后的标记表达式为Eokn;根据标记表达式的黑名单筛选确认是否攻击数据;所述敏感词组件是通过对用户输入数据进行分词处理,经匹配预设的敏感词,确认是否存在攻击数据;
依照设定的各组件执行顺序,依次调用每一个攻击检测方法的组件检查用户输入数据是否存在攻击数据,若用户输入数据通过攻击检测组件的检测,判定不存在攻击数据,将用户输入数据传至服务器;若用户输入数据未通过任一攻击检测组件的检测,判定存在攻击数据,从用户输入数据中清除未通过检测的数据,将清除后的输入数据作为数据清洗结果传至服务器,同步将未通过检测的数据与数据清洗结果存入缓存中;
步骤107-3:后台的用户攻击次数加1,生成攻击事件,在事件中记录用户名、攻击次数、未通过检测的数据、当前的请求数据处理阶段;若2个小时内记录的用户攻击次数大于等于 3,封禁用户,修改用户的封禁状态为已封禁;若2个小时内记录的用户攻击次数小于3,封禁会话,修改会话封禁状态为已封禁,并按照所述步骤4-步骤5生成解禁密钥执行解禁;
步骤107-4:事件***监听到攻击事件,将攻击事件记录的用户名、攻击次数、攻击数据、请求数据处理阶段写入日志文件中;
通过对用户访问信息的数据归类和汇总、以及对输入数据和输出数据的安全漏洞组合判定,区分用户级和会话级的安全防控及解禁,形成对不同级别安全问题的识别,和执行不同程度的监控处理,实现分级防控,对于低级别防控问题自动解决,对于高级别防控问题则提醒关注,不仅减少人力对漏洞问题的监测及处理,更重要的是提升了安全防控的覆盖面,实现了对99%的XSS漏洞及SQL漏洞的识别,最终提高了防控效率。
在所述步骤101-步骤107中,***监听到访问受限事件、严重封禁事件、攻击事件的任一事件时,以邮件通知***维护人员;统计近2个小时内各事件生成的数值并绘制成报表图;在所述步骤101-步骤107中,实时采集包含访问上下文信息的内容、各类事件发生数、用户攻击次数的数据,通过接入外部的可视化展示***,显示网页访问情况、当前设备建立会话情况、遭受攻击情况。
图2为本发明实施例中基于Servlet***的安全防护***的结构示意图,包含浏览器、服务器、Servlet***和下游处理器;
所述浏览器是用户访问请求发出方,在所述用户访问请求的请求报文中含有用户输入数据;所述服务器是用户访问请求响应方,在所述服务器发出的响应报文中含有***输出数据;
所述Servlet***包含数据拦截模块、滥用检测模块、攻击检测模块、黑白名单、攻击检测方法组件、事件***、存储器及累加器;在本发明实施例中共注册配置4个Servlet ***,包含请求参数***、请求体***、文件上传请求***、输出表达式***;
所述数据拦截模块用于拦截获取用户输入数据及***输出数据;
所述滥用检测模块根据采集的用户访问信息判断用户请求的安全性,以执行封禁及解禁;
所述攻击检测模块根据调用已集成的攻击检测方法组件,判断用户输入数据及***输出数据中是否存在攻击数据;并从用户输入数据及***输出数据中清除攻击数据;
所述黑白名单是预设的请求参数黑白名单、请求路径黑白名单、请求资源黑白名单、路径输出参数黑名单中至少一个,用于保护特定的用户请求;所述黑白名单根据业务需求进行变更和配置;
所述攻击检测方法组合集成了至少一种开源、自研的攻击数据检测方法,供攻击检测时调用;
所述事件***用于监听滥用检测和攻击检测过程中产生的事件;
所述存储器用于存储用户封禁状态、设备封禁状态、滥用检测指标阈值、解禁密钥;
所述累加器是用于统计滥用检测指标的数值;
所述下游处理器包含日志打印处理器、封禁处理器、监控报警处理器及攻击统计处理器;所述***待监听到滥用检测及攻击检测过程中产生的任一事件时,通知下游处理器执行日志打印、封禁会话、封禁用户、封禁监控及攻击事件分类统计。
以上实施例不以任何方式限定本发明,凡是对以上实施例以等效变换方式做出的其它改进与应用,都属于本发明的保护范围。
Claims (8)
1.一种基于Servlet***的安全防护方法,其特征在于,具体流程包括:
步骤1:构建***;具体是为不同的请求数据处理阶段构建Servlet***,拦截获取不同类型的请求数据;所述请求数据的类型包含用户输入数据及***输出数据;所述用户输入数据是从请求报文的请求行、请求头和请求体中获取的请求路径、请求资源的地址及请求参数的数据,所述输出数据是从响应报文中获取服务端输出至浏览器端的响应请求的数据;
步骤2:配置服务器端获取访问上下文信息的对象;具体是配置从请求报文中采集请求地址和Cookie的访问信息;待获取所述访问信息后构建访问上下文信息的内容,包含请求地址、用户名、访问时间、访问间隔、访问频次;所述访问间隔是取同一用户本次访问与上一次访问的时间差;所述访问频次是取访问间隔内产生的请求访问网页地址的次数,包含访问同一个网页地址的次数及访问不同网页地址的次数;
步骤3:滥用检测指标项的累加计算及比对;基于步骤2获得访问上下文信息和Cookie信息,以用户名为单位,累加计算滥用指标项的数值,所述滥用指标项的数值包括用户访问次数、用户访问频率、用户的资源请求数、用户开启会话数,将滥用检测指标的数值与预设的指标阈值比对,若滥用检测指标的数值全部小于预设的指标阈值,判定为通过滥用检测,执行步骤6;若用户访问次数、用户访问频率、用户的资源请求数的任一数值大于等于预设指标的阈值,判定为未通过滥用检测,生成访问受限事件,修改预设在***内的会话封禁状态值为已封禁;执行步骤4;若用户开启会话数的数值大于等于预设指标的阈值,判定为未通过滥用检测,生成严重封禁事件,修改预设在***内的用户封禁状态值为已封禁;
步骤4:基于用户名和访问时间生成解密密钥并返回浏览器端:以访问时间生成访问时间戳;组合用户名和访问时间戳,并对组合内容执行哈希计算,形成哈希值;拼接用户名、访问时间戳与所述哈希值,形成解禁密钥;储存解禁密钥在***中,并写入由***动态生成的页面中,返回至浏览器端显示;
步骤5:比对用户输入的解禁密钥与***中的解禁密钥;经比对,若比对一致,判定通过滥用检测,修改预设在***内的会话封禁状态值为解禁,同时将4个滥用检测指标的数值全部归0,执行步骤6;若比对不一致,后台统计的解禁密码错误次数的数值加1,继续获取用户输入的解禁密钥比对;若解禁密码错误次数超过预设阈值,生成严重封禁事件,修改***内的用户封禁状态值为已封禁,终止用户访问;
步骤6:各***拦截获取不同类型的请求数据,执行黑白名单校验;处于不同请求处理阶段的***提取预设在内部的黑白名单,对拦截获取的用户输入数据和***输出数据执行黑白名单比对,针对用户输入数据,若所述数据中的请求路径、请求资源的地址及请求参数的任一数据存在于黑名单中,执行步骤7;若所述数据中的请求路径、请求资源的地址及请求参数均存在于黑名单中均存在于白名单中,将数据传至后台服务器;针对***输出数据,若存在于***的黑名单中,执行步骤7;若存在于***的白名单中,将用***输出数据传至浏览器端;
步骤7:调用预设在***中的攻击检测方法的组件,检测步骤6中的用户输入数据、***输出数据中是否存在攻击数据;所述攻击数据是指未通过攻击检测方法的数据;经检测,若用户输入数据、***输出数据通过攻击检测方法的检测,判定不存在攻击数据,将用户输入数据传至后台服务器,将***输出数据传至浏览器端;若用户输入数据、***输出数据未通过任一攻击检测方法的检测,判定存在攻击数据,从用户输入数据中清除攻击数据后,生成数据清洗结果传至后台服务器,将***输出数据清除攻击数据后,生成数据清洗结果传至浏览器端,同步将未通过检测的数据与数据清洗结果存入缓存中。
2.如权利要求1所述的一种基于Servlet***的安全防护方法,其特征在于,所述步骤1中构建Servlet***具体为:对应请求路径接收、请求参数接收、文件上传参数接收、***输出的4个数据处理阶段,分别构建请求体***、请求参数***、文件上传参数***、输出表达式***;所述步骤1中的用户输入数据包含从请求行中获取的请求路径、请求资源的地址,以及从请求体中获取的文件上传参数和请求参数,所述参数包括:网页表单内上传的文件数据、网页表单内填写的数据、以ajax技术传输的网页表单数据;
所述步骤1中构建Servlet***,具体是在Servlet***的配置文件web.xml中配置滥用检测指标项的数值统计方法及数值阈值;配置数值累加器用于累加计算滥用检测指标,按照数值统计方法执行滥用检测指标项的数值统计;配置存储器用于储存用户封禁状态值、会话封禁状态值、滥用检测指标项的数值、解禁密钥;所述封禁状态值包含已封禁和解禁;配置事件***用于监听到生成的任一事件时,通知下游服务器执行事件处理,所述事件处理包括日志文件打印、修改用户封禁状态值、修改会话封禁状态值、邮件报警、事件分类统计;配置攻击检测方法的组件及黑白名单;所述攻击检测方法的组件包括XSS漏铜检测组件、SQL漏洞检测组件、敏感词检测组件;所述黑白名单包括请求路径黑白名单、请求资源地址黑白名单、请求参数黑白名单;在所述请求体***中配置请求路径黑白名单;所述请求参数***中配置请求参数黑白名单;所述文件上传参数***中配置请求路径黑白名单、请求资源地址黑白名单、请求参数黑白名单。
3.如权利要求2所述的一种基于Servlet***的安全防护方法,其特征在于:在所述步骤1中,所述XSS漏洞检测方法的组件是Antisamy组件;所述SQL漏洞检测方法的组件是Libinjection组件。
4.如权利要求3所述的一种基于Servlet***的安全防护方法,其特征在于:在所述步骤3中,累加计算滥用检测指标的数值具体包含:累加用户访问不同网页地址的次数,更新为当前的用户访问次数的值;累加用户访问相同网页地址的次数,更新为当前的资源请求数的值;累进访问间隔,利用累进算法计算并更新当前的用户访问频率的值;以Cookie判定用户的会话状态,若请求头中未含有Cookie,则判定是第一次会话,用户开启会话数的值加1;否则维持用户开启会话数不变;
在执行所述步骤3中,判断是否执行滥用检测指标项的累加计算,具体是在预设的请求路径黑白名单中检索是否存在用户输入数据中的请求路径,若请求路径在请求路径黑名单中,判定执行滥用检测指标项的累加计算,若请求路径在预设的请求路径白名单中,判定不执行滥用检测指标项的累加计算,获取用户输入数据,执行步骤6。
5.如权利要求4所述的一种基于Servlet***的安全防护方法,其特征在于:在所述步骤4的生成解禁密钥时,后台累加计算的滥用警告次数的数值加1,用户被封禁次数的数值加1;滥用警告次数的数值与用户被封禁次数的数值中任一数值超过预设阈值,生成严重封禁事件,修改***中储存的用户封禁状态值为已封禁,终止用户访问。
6.如权利要求5所述的一种基于Servlet***的安全防护方法,其特征在于:在所述步骤4和步骤5中,当用户的封禁状态值变更为已封禁时,后台累加计算的滥用警告次数、用户被封禁次数、解禁密码错误次数的数值归0。
7.如权利要求6所述的一种基于Servlet***的安全防护方法,其特征在于:在所述步骤7调用攻击检测方法的组件之前,检索缓存中是否存在与用户输入数据相同的攻击数据,若存在,从缓存中获取攻击数据对应的处理结果传至服务器,所述处理结果是经删除攻击数据后的用户输入数据;若不存在,调用攻击检测方法的组件;检索缓存中是否存在与***输出数据相同的攻击数据,若存在,从缓存中获取攻击数据对应的处理结果传至浏览器端;若不存在,调用攻击检测方法的组件;
在所述步骤7中判定为存在攻击数据时,后台累加计算的用户攻击次数的数值加1,生成攻击事件,在攻击事件中记录用户名、用户攻击次数的数值、未通过检测的数据、请求数据处理阶段的名称;统计2个小时内的用户攻击次数的数值,若数值大于等于3,修改***储存的用户封禁状态值为已封禁;若数值小于3,修改***储存的会话封禁状态值为已封禁,并按照所述步骤4-步骤5生成解禁密钥执行解禁;若事件***监听到攻击事件,将攻击事件记录的用户名、攻击次数、攻击数据、请求数据处理阶段写入日志文件中。
8.如权利要求7所述的一种基于Servlet***的安全防护方法,其特征在于:在步骤1-步骤7中,事件***监听到任一生成的访问受限事件、严重封禁事件、攻击事件时,以邮件通知***维护人员;统计最近2个小时内各事件生成的数值并利用可视化工具绘制成报表图;实时采集包含访问上下文信息的内容、各类事件生成的数值、用户攻击次数的数值,通过接入外部的可视化展示***,显示网页访问情况、当前设备建立会话情况、遭受攻击情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111494318.6A CN114157504A (zh) | 2021-12-08 | 2021-12-08 | 一种基于Servlet***的安全防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111494318.6A CN114157504A (zh) | 2021-12-08 | 2021-12-08 | 一种基于Servlet***的安全防护方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114157504A true CN114157504A (zh) | 2022-03-08 |
Family
ID=80453983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111494318.6A Withdrawn CN114157504A (zh) | 2021-12-08 | 2021-12-08 | 一种基于Servlet***的安全防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114157504A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622803A (zh) * | 2022-12-02 | 2023-01-17 | 北京景安云信科技有限公司 | 基于协议分析的权限控制***及方法 |
CN118250341A (zh) * | 2024-05-28 | 2024-06-25 | 杭州政云数据技术有限公司 | 表单请求处理方法、装置、设备及存储介质 |
-
2021
- 2021-12-08 CN CN202111494318.6A patent/CN114157504A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115622803A (zh) * | 2022-12-02 | 2023-01-17 | 北京景安云信科技有限公司 | 基于协议分析的权限控制***及方法 |
CN115622803B (zh) * | 2022-12-02 | 2023-04-14 | 北京景安云信科技有限公司 | 基于协议分析的权限控制***及方法 |
CN118250341A (zh) * | 2024-05-28 | 2024-06-25 | 杭州政云数据技术有限公司 | 表单请求处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112383546B (zh) | 一种处理网络攻击行为的方法、相关设备及存储介质 | |
CN108780485B (zh) | 基于模式匹配的数据集提取 | |
US9712560B2 (en) | Web page and web browser protection against malicious injections | |
US8880893B2 (en) | Enterprise information asset protection through insider attack specification, monitoring and mitigation | |
US8776241B2 (en) | Automatic analysis of security related incidents in computer networks | |
CN109274637B (zh) | 确定分布式拒绝服务攻击的***和方法 | |
CN103701795B (zh) | 拒绝服务攻击的攻击源的识别方法和装置 | |
US8949988B2 (en) | Methods for proactively securing a web application and apparatuses thereof | |
CN109167754A (zh) | 一种网络应用层安全防护*** | |
KR20140113705A (ko) | 웹 호스트에 의해 제공된 웹 콘텐츠의 진본성을 보장하기 위한 방법, 디바이스, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US20100325685A1 (en) | Security Integration System and Device | |
CN114598525A (zh) | 一种针对网络攻击的ip自动封禁的方法和装置 | |
Lindqvist et al. | eXpert-BSM: A host-based intrusion detection solution for Sun Solaris | |
US20040030931A1 (en) | System and method for providing enhanced network security | |
CN114157504A (zh) | 一种基于Servlet***的安全防护方法 | |
US20120102541A1 (en) | Method and System for Generating an Enforceable Security Policy Based on Application Sitemap | |
KR101658450B1 (ko) | 웹 애플리케이션 서버로부터 수집된 트랜잭션 정보 및 고유세션 id 통한 사용자 식별을 이용한 보안장치. | |
RU2481633C2 (ru) | Система и способ автоматического расследования инцидентов безопасности | |
CN116708033B (zh) | 终端安全检测方法、装置、电子设备及存储介质 | |
KR101754195B1 (ko) | 복수의 로그 수집 서버를 기반으로 한 보안 강화 방법 | |
US20090222876A1 (en) | Positive multi-subsystems security monitoring (pms-sm) | |
US11632393B2 (en) | Detecting and mitigating malware by evaluating HTTP errors | |
CN116996238A (zh) | 一种网络异常访问的处理方法以及相关装置 | |
Helmer | Intelligent multi-agent system for intrusion detection and countermeasures | |
Feukoun | Mitigate SQL Injection and Cross-Site Scripting Attacks on Web Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220308 |