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

文档序号:20918906发布日期:2020-05-29 13:53阅读:182来源:国知局
Web应用安全保护方法、装置、电子设备及存储介质与流程

本发明实施例涉及it应用技术领域,特别涉及一种web应用安全保护的方法、装置、电子设备及存储介质。



背景技术:

网站(web)已经深入各行各业,成为流行的信息和业务平台,包括:电子政务、电子商务、网上银行、网上营业厅等。各类机构不断增加网站上的功能,尤其是增加互动功能,以提供更好的用户体验。网络业务的流行,使得75%以上的网络攻击都瞄准了web,而随着web应用类型的丰富,web攻击也丰富起来。日益频繁和多样化的web攻击使运营者意识到web安全面临的巨大风险,网站自身及客户的数据泄露风险巨大,网站的声誉极易受损,网站可用性难以保障,业务中断带来的经济损失巨大。

web应用防火墙(webapplicationfirewall,简称waf)通过精细的配置将多种web安全检测方法连接成一套完整的解决方案,能够对网站的http请求进行检测,识别恶意请求。但是,发明人发现,市面上大部分waf均基于静态规则对http请求进行检测,规则的提炼基于对各类攻击语句进行提炼,构造正则匹配,或者识别请求中是否包含敏感文件、路径及命令等。基于规则的恶意http请求识别对一些基础攻击请求能起到一定的识别作用,包括sql注入、xss注入、远程命令执行、文件包含等,但是规则也非常容易被绕过,不能覆盖住比较隐藏或者深度构造的恶意请求,同时规则数量的增加对系统性能影响非常大,但是随着攻击方式的逐日更新,必须定期更新规则,这样给性能带来很大的挑战。综上,传统的被动防护方法基于规则的恶意http请求识别已经不能满足现阶段waf的需求,我们需要更加主动的方法,对web网站进行防护。

目前,国内已有主动防御相关专利的发表,公开号cn104954384b。该专利发明公开了一种保护web应用安全的url拟态方法,该方法在网关中,对标识后台web服务器资源的url进行动态变化,使之对外表现变化后的url,隐藏了真实的url,并且可以配置每一个变化后的url的有效访问次数。应用该方法可以使攻击者无法掌握web应用服务器上的资源的真正入口,从而无法随意进行攻击尝试,进而保护web应用的安全。但发明人发现,现有的url拟态方法在网关上进行url加密,会给网关造成比较大的计算压力,影响网关性能。现有的url拟态方法,在收到返回包后,对返回包中的url进行拟态保护,但是未拟态保护url的请求,会直接通过网关,无法保护已经知道服务器路径的攻击者的情况。现有的url拟态方法,为每一个加密后的url限制了访问次数,若该链接进行分享,则一段时间超过访问次数后,该链接将不能打开。



技术实现要素:

本发明实施方式的目的在于提供一种web应用安全保护方法、电子设备、装置及计算机可读存储介质,能够基于web应用防火墙,化被动防御为主动防御,从而提高web应用资源的安全性,并降低了资源占用率以及时延。

为解决上述技术问题,本发明的实施方式提供了一种web应用安全保护方法,所述方法包括:

接收客户端发送的包含加密的url的第一web请求;

对所述第一web请求中加密的url进行解密,得到解密的url;

生成包含解密的url的第二web请求;

将所述第二web请求发送给web服务器。

优选地,在接收客户端发送的包含加密的url的第一web请求之前,所述方法还包括:

检测所述客户端发送的web请求中的url是否加密;

在检测到所述客户端发送的web请求中的url未加密时,将对url进行加密的加密信息发送给所述客户端;

在所述客户端对url加密后,接收所述第一web请求。

优选地,所述加密信息包括包含url加密算法的js脚本及公钥。

优选地,所述加密算法包括基于椭圆曲线的加密算法,其中所述加密的url是基于所述公钥及所述客户端的请求时间确定的随机数生成的密文。

优选地,所述对所述第一web请求中加密的url进行解密,得到解密的url包括:

利用所述基于椭圆曲线的加密算法的私钥及所述客户端的请求时间确定的随机数,对所述第一web请求中加密的url进行解密,得到解密的url。

优选地,所述方法还包括:

接收所述web服务器基于解密的url发送的所述第二web请求的响应信息。

优选地,所述接收所述web服务器基于解密的url发送的所述第二web请求的响应信息包括:

在所述web服务器根据解密的url确定所述第二web请求是正常请求时,接收所述web服务器发送的所述第二web请求对应的回复数据,并将所述回复数据发送给所述客户端;

在所述web服务器根据解密的url确定所述第二web请求是不正常请求时,接收所述web服务器发送的错误信息,并将所述错误信息发送给所述客户端。

为了解决上述问题,本发明还提供一种web应用安全保护装置,其特征在于,所述装置包括:

请求接收模块,用于接收客户端发送的包含加密的url的第一web请求;

解密模块,用于对所述第一web请求中加密的url进行解密,得到解密的url;

生成模块,用于生成包含解密的url第二web请求;

请求发送模块,用于将所述第二的web请求发送给web服务器。

为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

存储器,存储至少一个指令;及

处理器,执行所述存储器中存储的指令以实现上述所述的web应用安全保护方法。

为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现上述所述的web应用安全保护方法。

本发明实施例在客户端发起加密的url的web请求时,所述web请求先到达web应用防火墙,,web应用防火墙在对url解密后,再将web请求发送给web服务器,在web应用防火墙上只需要进行解密,不需要进行加密,降低了资源占用率以及时延。

进一步地,本发明实施例中,web应用防火墙要求客户端的web请求中的url必须是加密的,否则会返回加密信息,要求所述客户端对url进行加密后再重新发送请求,从而有效的防护扫描器以及通用脚本攻击,提高web应用资源的安全性。

进一步地,本发明实施例利用基于椭圆曲线的加密算法对url进行加密,其中加密公钥是基于所述客户端的请求时间确定的随机数配置的。这样由于请求时间的不同,同样的url每次发起访问请求,加密后的url都不一样,但是web应用防火墙都能够将其正确的进行解密,从而更能提高web应用的安全性。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明web应用安全保护方法的较佳实施例的应用环境示意图。

图2为本发明实施例提供的web应用安全保护方法的第一较佳实施例的流程示意图;

图3为本发明实施例提供的web应用安全保护方法的交互流程示意图;

图4为本发明实施例提供的web应用安全保护方法的第二较佳实施例的流程示意图;

图5本发明实施例提供的web应用安全保护方法的第三较佳实施例的流程示意图;

图6为本发明实施例提供的web应用安全保护装置的模块示意图;

图7为本发明实施例提供的实现web应用安全保护方法的电子设备的内部结构示意图;

本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的实施方式涉及一种web应用安全保护方法,本实施方式的核心在于在客户端发起web请求时,所述web请求先到达web应用防火墙(简称waf),web应用防火墙检测客户端的请求中的url是否加密,web应用防火墙要求客户端的请求中的url必须是加密的,否则会返回js以及加密公钥,要求所述客户端对url进行加密后再重新发送请求,从而有效的防护扫描器以及通用脚本攻击,提高web应用资源的安全性。web应用防火墙在对url解密后,再将web请求发送给web服务器,在web应用防火墙上只需要进行解密,不需要进行加密,降低了资源占用率以及时延。下面对本实施方式的web应用安全保护实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

参阅图1所示,是本发明web应用安全保护方法的较佳实施例的应用环境示意图。本发明所述web应用安全保护方法应用在包括客户端、web应用防火墙、web应用服务器的网络架构中。所述客户端、web应用防火墙、web应用服务器之间通过网络进行通信。

所述web应用防火墙安装于电子设备中。所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程门阵列(field-programmablegatearray,fpga)、数字处理器(digitalsignalprocessor,dsp)、嵌入式设备等。

所述网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtualprivatenetwork,vpn)等。

在电子设备的web应用购买了web应用防火墙(webapplicationfirewall,简称waf)时,所有客户端的web请求,将先到达waf,waf对客户端的请求进行检测,将恶意请求拦截,将正常请求送到web应用服务器。web应用服务器接到客户端请求,进行响应回复,回复包也同样会通过waf到达客户端,一次访问事件结束。

参阅图2及图3所示,图2是本发明第一实施方式中web应用安全保护的流程图,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。图3为本发明实施例提供的web应用安全保护方法的交互流程示意图。

以下结合图2及图3,详细阐述所述web应用安全保护方法,包括:

s1、接收客户端发送的包含加密的url的第一web请求。

在本实施例中,客户端接收到用户提交的动态web请求时,先将web请求发送给waf。较佳地,waf要求所有的请求包中的url必须是加密的,否则会返回加密信息,要求客户端对url进行加密后再重新发送请求。因此,如图4为本发明实施例提供的web应用安全保护方法的第二较佳实施例的流程示意图,在接收客户端发送的包含加密的url的第一web请求之前,所述方法还包括:

s01,接收所述客户端发送的web请求请求。

s02、检测所述客户端发送的web请求中的url是否加密。

在本实施例中,若所述客户端发送的web请求中的url未加密,执行s03。在所述客户端发送的web请求中的url已加密时,接收的web请求请求即为步骤s1中的第一web请求请求,继续执行s2。

s03、在检测到所述客户端发送的web请求中的url未加密时,将对url进行加密的加密信息发送给所述客户。

在所述客户端对url加密后,向waf发送第一web请求。

在本实施例中,waf要求所有的请求包中的url必须是加密的,否则会返回加密信息,要求客户端对url进行加密后再重新发送请求。

进一步地,所述加密信息包括包含url加密算法的js脚本及公钥。

基于url加密可以有效的防御扫描器攻击以及常规脚本攻击。扫描器进行扫描的时候,会先进行路径探测。然后waf接受到探测请求,会返回js脚本、公钥密码,而扫描器无法解析js脚本,即无法将url加密进行请求,所以,waf会将所有扫描器对应的请求拒绝,所以扫描器的所有请求,均到达不了服务器。

脚本攻击也是同理,常规的攻击脚本,将攻击请求批量发送,waf返回js以及公钥密码,由于攻击脚本不能解析js脚本,不能对url进行加密,所以waf将会把脚本攻击请求全部返回。若攻击者的脚本针对waf算法有针对性的破解攻击,能够正确解析js,并对url进行加密,请求加密后的url路径,则不能进行防护。

因此,本发明实施例能有效的防护扫描器以及通用脚本攻击。而waf或网关进行加密的情况,若遇到未加密的请求访问,将放过该请求,以免误拦截,将无法防护扫描攻击,以及通用脚本攻击。

较佳地,所述加密算法包括基于椭圆曲线的加密算法,其中其中所述加密的url是基于所述公钥及所述客户端的请求时间确定的随机数生成的密文。

客户端在对url加密时,可以使用基于椭圆曲线加密算法,简称(ellipticcurvecryptography,ecc),是基于椭圆曲线数学理论实现的一种非对称加密算法。相比rsa,ecc优势是可以使用更短的密钥,来实现与rsa相当或更高的安全。

具体地,基于椭圆曲线加密算法对url加密的原理如下:

(1)配置私钥、公钥分别为k、k,即k=kg,其中g为g点。

(2)利用公钥对url加密。

用于消息m表示url,利用所述客户端的请求时间生成随机数r,将消息m生成密文c,该密文是一个点对,即:c1=rg,c2=m+rk,其中k为公钥。

基于椭圆曲线加密算法对url进行加密,可以保证客户端的每一次请求加密后将得到不同的url值,从而提高web应用的安全性。

s2、对所述第一web请求中加密的url进行解密,得到解密的url。

较佳地,利用基于椭圆曲线的加密算法的私钥及所述客户端的请求时间确定的随机数,对所述第一web请求中加密的url进行解密,得到解密的url。

具体地,私钥解密:m=c2-kc1=m+rk-k(rg)=m+rkg-krg=m,其中k,k分别为私钥和公钥。

本实施例中,在基于椭圆曲线的加密算法对url进行加密时,利用客户端将请求时间戳作为随机数r。waf利用基于椭圆曲线的加密算法的私钥对url进行解密。基于椭圆曲线的加密算法的url加解密方法,可以保证客户端对url哪怕是相同路径相同参数加密后将得到不同的url值,即使是相同路径相同参数加密后将得到不同的url值,因此,可以保证每一次请求的加密url路径均不同,保证了web应用资源的安全性。而且waf都能够将其正确的进行解密,因此,本实施例加密后的url支持分享,不影响web应用正常业务推广,即使一段时间超过访问次数后,该url的链接仍能能打开。

在本实施例中,对url加密过程都在客户端实现,和在waf或者网关上对服务器返回包的url上加密的技术相比,能够有效的降低waf和网关自身的压力,在waf上只需要进行解密,不需要进行加密,降低了资源占用率以及时延。

s3、生成包含解密的url第二web请求。

在本实施例中,将解密后的url替换第一web请求包中加密的url,并得到第二web请求。

s4、将所述第二web请求发送给web服务器。

在本实施例中,web服务器对在解密url后提交的动态网页请求进行回应,根据解密的url确定动态网页请求是否是正常请求,发送返回包给waf。

如图5所示,图5本发明实施例提供的web应用安全保护方法的第三较佳实施例的流程示意图,在s4之后,所述方法还包括:

s5、接收所述web服务器基于解密的url发送的所述第二web请求的响应信息。

较佳地,所述接收所述web服务器基于解密的url发送的所述第二web请求的响应信息包括:

在所述web服务器根据解密的url确定所述第二web请求是正常请求时,接收所述web服务器发送的所述第二web请求对应的回复数据,并将所述回复数据发送给所述客户端;

在所述web服务器根据解密的url确定所述第二web请求是不正常请求时,接收所述web服务器发送的错误信息,并将所述错误信息发送给所述客户端。

具体地,在解密的url路径不存在时,web服务器确定是不正常请求。在解密的url路径存在时,web服务器确定是正常请求。

如图6所示,是本发明web应用安全保护装置的功能模块图。

本发明所述web应用安全保护装置100可以安装于电子设备中。根据实现的功能,所述web应用安全保护装置可以包括请求接收模块101、解密模块102、生成模块103、请求发送模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。

在本实施例中,关于各模块/单元的功能如下:

请求接收模块101,用于接收客户端发送的包含加密的url的第一web请求;

解密模块102,用于对所述第一web请求中加密的url进行解密,得到解密的url;

生成模块103,用于生成包含解密的url的第二web请求;

请求发送模块104,用于将所述第二的web请求发送给web服务器。

本申请所提供的装置中的模块能够在使用时基于与上述的web应用安全保护方法,在于在客户端发起web请求时,所述web请求先到达web应用防火墙,web应用防火墙检测客户端的请求中的url是否加密,web应用防火墙要求客户端的请求中的url必须是加密的,要求所述客户端对url进行加密后再重新发送请求,从而有效的防护扫描器以及通用脚本攻击,提高web应用资源的安全性。web应用防火墙在对url解密后,再将web请求发送给web服务器,在web应用防火墙上只需要进行解密,不需要进行加密,降低了资源占用率以及时延。其在具体运行时可以取得上述的方法实施例一样的技术效果。

如图7所示,是本发明实现web应用安全保护方法的电子设备的结构示意图。

所述电子设备1可以包括处理器12、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器12上运行的计算机程序。所述电子设备1中的web应用安装有web防火墙。

其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如web应用安全保护程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器12在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器12是所述电子设备的控制核心(controlunit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行web应用安全保护程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。

所述总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器12等之间的连接通信。

图7仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图7示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

所述电子设备1中的所述存储器11存储的请求web应用安全保护程序12是多个指令的组合,在所述处理器10中运行时,可以实现:

接收客户端发送的包含加密的url的第一web请求。

对所述第一web请求中加密的url进行解密,得到解密的url。

生成包含解密的url的第二web请求。

将所述第二web请求发送给web服务器。

具体地,所述处理器11对上述指令的具体实现方法可参考图2、图3、图4及图5对应实施例中相关步骤的描述,在此不赘述。

进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。

所述计算机可读存储介质上存储有权限控制程序,所述权限控制程序可被一个或多个处理器执行,以实现如下操作:

接收客户端发送的包含加密的url的第一web请求;

对所述第一web请求中加密的url进行解密,得到解密的url;

生成包含解密的url的第二web请求;

将所述第二web请求发送给web服务器。

在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。

因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。

此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1