一种抵御黑客攻击的方法和系统的制作方法

文档序号:7804376阅读:157来源:国知局
一种抵御黑客攻击的方法和系统的制作方法
【专利摘要】本发明提供一种抵御黑客攻击的方法和系统,有助于降低WEB服务器受到DDoS攻击时的负荷。本发明的抵御黑客攻击的方法包括:记录需要保护的多个网络地址及其数据交换协议名称;向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序;拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据,若是,则根据该网络地址的数据交换协议,将预设的挑战代码发送给所述当前客户端,否则将所述数据调用请求向所述网络地址转发。
【专利说明】一种抵御黑客攻击的方法和系统
【技术领域】
[0001]本发明涉及一种抵御黑客攻击的方法和系统。
【背景技术】
[0002]当今互联网业务中,Web服务占据了相当大的比例,尤其是智能终端设备比如手机等的大面积普及,使得通过Web提供和获取信息的公司和用户呈爆炸性增长,Web服务的安全问题也日益成为人们的一大关注点。超文本传输协议(Hyper Text TransferProtocol, HTTP)作为Web应用的核心协议,经常被黑客利用来实施分布式拒绝服务攻击(Distributed Denial of Service, DDoS)。在实施 DDoS 时,黑客发动大量的 HTTP 请求,使服务器的主要资源在短时间内被用来处理这些HTTP请求从而被几乎耗尽,无法提供其他服务。由于这些HTTP请求非常接近于用户行为,让一般防火墙等防御工具无法区分其为黑客行为还是用户正常访问,所以很难检测和防御。
[0003]黑客发动在实施DDoS攻击前,先通过特殊手段按分级治理(黑客主机控制主僵尸,主僵尸控制从僵尸,从僵尸发动攻击)的方式来控制大批散落于互联网各处的可运行程序的计算机或智能设备,这些可运行程序的设备被统称为“肉鸡”,通过操纵数量众多的“肉鸡”,黑客能够在短时间发起大量的HTTP请求,即实施DDoS攻击。

【发明内容】

[0004]本发明的主要目的是提供一种抵御黑客攻击的方法和系统,有助于降低WEB服务器受到DDoS攻击时的负荷。
[0005]为实现上述目的,根据本发明的一个方面,提供了一种抵御黑客攻击的方法。
[0006]本发明的抵御黑客攻击的方法包括:记录需要保护的多个网络地址及其数据交换协议名称;向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序;拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据,若是,则根据该网络地址的数据交换协议,将预设的挑战代码发送给所述当前客户端,否则将所述数据调用请求向所述网络地址转发。
[0007]可选地,所述挑战代码中包含从预设的算法库中随机选择的计算任务。
[0008]可选地,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务:算术四则运算任务集,要求对生成的随机数进行算术四则运算;数值计算任务集:要求对生成的随机数按指定方式进行数值计算;图像处理方法集:要求对指定的图像按指定方式进行处理。
[0009]可选地,所述挑战代码是从预设的代码集中选择的对应于所述当前客户端的类型的专用挑战代码。
[0010]可选地,所述预设的代码集中包括如下的一种或几种代码,其中每种代码包括一组或多组代码:用于计算客户端人机界面几何尺寸的代码;用于获取运行平台特征的代码;用于实现CSS效果的代码。
[0011 ] 可选地,在将所述挑战代码发送给所述当前客户端之前,还包括:对所述挑战代码进行阅读混淆处理。
[0012]根据本发明的另一方面,提供了一种抵御黑客攻击的系统。
[0013]本发明的抵御黑客攻击的系统包括:记录模块,用于记录需要保护的多个网络地址及其数据交换协议名称;提供模块,用于向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序;判断模块,用于拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据;发送模块,用于在所述数据调用请求用于从所述需要保护的网络地址调用数据的情况下,根据该网络地址的数据交换协议,将预设的挑战代码发送给所述当前客户端;否则将所述数据调用请求向所述网络地址转发。
[0014]可选地,还包括算法库模块,用于保存算法库,该算法库中包含多项计算任务;所述发送模块还用于从所述算法库中随机选择计算任务并添加到所述挑战代码中。
[0015]可选地,还包括代码集模块,用于保存代码集,所述代码集中包含适用于多种客户端类型的专用挑战代码;所述发送模块还用于从所述代码集中选择对应于所述当前客户端的类型的专用挑战代码。
[0016]可选地,所述发送模块还用于在将所述挑战代码发送给所述当前客户端之前,对所述挑战代码进行阅读混淆处理。
[0017]根据本发明的技术方案,根据本发明实施例的技术方案,从最基本的方面来说,客户端需要具备执行脚本的功能,对于黑客的许多攻击工具来说并不具备该功能,因此有助于降低WEB服务器受到DDoS攻击时的负荷。并且采用本实施例的技术方案,能够在同域或跨域调用数据的情况下提供保护。另外本实施例中提供的挑战代码的方案是针对黑客攻击的特点而设计,有助于减少黑客控制的“肉鸡”的数量,降低黑客的攻击强度。
【专利附图】

【附图说明】
[0018]附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0019]图1是根据本发明实施例的计算机系统的一种结构的示意图;
[0020]图2是根据本发明实施实施例的抵御黑客攻击的方法的主要步骤的示意图;
[0021]图3是根据本发明实施例的抵御黑客攻击的系统的基本组成部分的示意图。
【具体实施方式】
[0022]以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0023]图1是根据本发明实施例的计算机系统的一种结构的示意图。如图1所示,本发明实施例的计算机系统包括代理服务器14与第一服务器11、第二服务器12等WEB服务器。第一服务器11和/或第二服务器12可以与互联网中的其他计算机采用f0rm、Url、Xml等技术进行同域的数据交换,或采用JavaScript/jsonp等技术进行跨域的数据交换。在根据上述技术的相关协议进行数据交换时,客户端19执行代理服务器14提供的网页中的脚本程序,从而生成对于第一服务器11和/或第二服务器12中的数据的调用请求。这种脚本程序目前可采用JavaScript等脚本语言。这种调用请求首先被代理服务器14截获,后者执行一定的安全措施之后再允许或拒绝客户端19继续访问WEB服务器。图1中的代理服务器14也可以作为功能模块分别设置在第一服务器11和第二服务器12中,此时该功能模块通常称作“WEB前端”。
[0024]以下结合图2对本发明实施例的方法做出说明,图2是根据本发明实施实施例的抵御黑客攻击的方法的主要步骤的示意图。
[0025]步骤S21:记录需要保护的多个网络地址以及这些网络地址采用的数据交换协议的名称。这里的网络地址一般以统一资源定位符URL表示,它们可以属于同一个域名,也可以属于不同域名。
[0026]步骤S22:代理服务器向客户端提供网页。如采用WEB前端的方式,则由WEB前端向当前的客户端提供网页。该网页中包含的脚本程序能够用来从其他网络地址调取数据。客户端下载该网页的过程中执行该脚本程序,从而生成向其他服务器调用数据的调用请求然后向该服务器发送。
[0027]步骤S23:代理服务器拦截客户端发送的调用请求。作为客户端来说,是向WEB服务器发送调用请求,但是被代理服务器拦截。
[0028]步骤S24:代理服务器判断拦截的调用请求是否用来从受保护的网络地址调用数据。若是,则进入步骤S25,否则进入步骤S28。
[0029]步骤S25:代理服务器将挑战代码发送给客户端。因为客户端的调用请求是遵守WEB服务器所在网络地址的数据交换协议,所以这里的挑战代码也相应遵守该数据交换协议。此后,客户端接收挑战代码然后执行得出挑战结果,将该结果向WEB服务器发送,同样又被代理服务器截获。
[0030]步骤S26:代理服务器判断挑战结果是否正确,如正确,则将调用请求转发给WEB服务器,即进入步骤S28 ;否则可以直接拒绝客户端的数据调用请求,即进入步骤S27,此时可向客户端输出一条提示信息,例如“有关内容拒绝显示”,或者在网页的相关部位输出类似的提示信息。当然,在挑战结果不正确的情况下,代理服务器允许客户端进行重试,此时再向客户端发送另一项挑战代码并对客户端返回的挑战结果进行检查。在重试次数超出预设次数的情况下再拒绝客户端。
[0031]挑战代码对应的挑战结果,即按通常的做法加以保存。对于挑战代码,可以对其做一些处理以提高对于黑客攻击的抵御能力。例如可以在挑战代码中包含计算任务。可以预先设置一个算法库,里面包含各种计算任务,并且可以对计算任务进行分类以便挑选。计算任务集例如:算术四则运算任务集,要求对生成的随机数进行算术四则运算;数值计算任务集:要求对生成的随机数按指定方式进行数值计算;图像处理方法集:要求对指定的图像按指定方式进行处理。
[0032]为了能够控制尽可能多的“肉鸡”,黑客使用的攻击工具一般都比较简单以便能够被尽可能多的(其中包括配置较低的)计算机执行。而上述的计算任务对于客户端所在计算机的处理能力提出了一定的要求,不具备相应处理能力的计算机将无法通过挑战,所以有助于减少黑客可以控制的“肉鸡”的数量,相应就降低了黑客发起DDoS攻击时WEB服务器遭受的负荷。
[0033]也可以针对客户端的类型,选择对应于该客户端类型的专用挑战代码。在客户端请求获取网页时,请求信息中通常包含有关客户端以及用户的一些信息,例如用户名、密码、IP地址、浏览器类型等。因此代理服务器可以通过客户端的访问请求来确定该客户端是哪种浏览器。这里的“专用”是指代码只能被指定的客户端执行而不能被其他客户端执行。例如只能被IE浏览器执行,而无法被火狐浏览器执行。挑战代码的具体挑战内容是执行指定客户端特有的指令,例如计算浏览器窗口的尺寸的指令、获取浏览器版本的指令、客户端IP地址的指令、获取客户端操作系统名称和/或版本的指令、用于实现特定CSS效果的指令……等。可以将包含这些指令的代码集预先保存起来供选择。 [0034]黑客在进行攻击时,采用的攻击工具一般会伪装成某种类型的浏览器。按照上述流程,黑客的攻击工具将收到挑战代码。因为挑战代码是从代码集中选择的,具有不确定性,因此黑客即使预先准备一个要加入跳转请求的挑战结果,也难以保证刚好是收到的挑战代码对应的挑战结果。因为黑客使用的攻击工具一般都比较简单,通常不具备现有浏览器的全部或多数功能,其仅仅是伪装成现有的浏览器,在这种情况下采用该浏览器的专用指令作为挑战代码,黑客使用的攻击工具往往无法执行,从而“露馅”,无法通过挑战。
[0035]如果黑客试图破解算法库中的所有问题,或者破解代码集中的所有专用挑战代码,则可以再对上述的挑战代码做进一步处理。因为黑客在破解挑战代码时会对其进行人工分析,所以对挑战代码做进一步处理时主要是对其进行阅读混淆处理。阅读混淆处理是使代码变得不适宜人工阅读的一种处理方式,目前通常的做法是去除网页源代码中的帮助人类阅读的内容,例如注释、有层级的缩进量、空行等,使该源代码难以阅读,也可以在源代码中加入大量空白篇幅以干扰阅读。本实施例中,还可以在源代码中添加无效代码,无效代码是在执行源代码时不被执行的代码,但它们能够占用无效代码的篇幅,为分析者带来阅读和分析的困难。
[0036]图3是根据本发明实施例的抵御黑客攻击的系统的基本组成部分的示意图,该系统可以设置在代理服务器或WEB前端。如图3所示,抵御黑客攻击的系统30主要包括记录模块31、提供模块32、判断模块33、以及发送模块34。
[0037]记录模块31用于记录需要保护的多个网络地址及其数据交换协议名称;提供模块32用于向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序;判断模块33用于拦截当前客户端通过执行网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从需要保护的网络地址调用数据;发送模块34用于在数据调用请求用于从需要保护的网络地址调用数据的情况下,根据该网络地址的数据交换协议,将预设的挑战代码发送给当前客户端;否则将数据调用请求向网络地址转发。
[0038]抵御黑客攻击的系统30还可以包括算法库模块,用于保存算法库,该算法库中包含多项计算任务。这样发送模块34还可用于从该算法库中随机选择计算任务并添加到挑战代码中。
[0039]抵御黑客攻击的系统30还可包括代码集模块,用于保存代码集,该代码集中包含适用于多种客户端类型的专用挑战代码。这样发送模块34还可用于从该代码集中选择对应于当前客户端的类型的专用挑战代码。另外,发送模块34还用于在将挑战代码发送给当前客户端之前,对挑战代码进行阅读混淆处理。[0040]根据本发明实施例的技术方案,从最基本的方面来说,客户端需要具备执行脚本的功能,对于黑客的许多攻击工具来说并不具备该功能,因此有助于降低WEB服务器受到DDoS攻击时的负荷。并且采用本实施例的技术方案,能够在同域或跨域调用数据的情况下提供保护。例如某公司有多个同域的服务器,可采用同一代理服务器提供主页和向有可能被黑客操纵的客户端提出挑战,方便网络维护。又如某公司的网页跨域从另一公司网页调取数据,按照本发明实施例的技术方案,可以将该另一公司的网页地址列入被保护范围,从而保证被调用的网址的安全。另外本实施例中提供的挑战代码的方案是针对黑客攻击的特点而设计,有助于减少黑客控制的“肉鸡”的数量,降低黑客的攻击强度。
[0041]以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和设备的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
[0042]因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来开发出的任何存储介质。
[0043]还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
[0044]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【权利要求】
1.一种抵御黑客攻击的方法,其特征在于,包括: 记录需要保护的多个网络地址及其数据交换协议名称; 向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序; 拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据,若是,则根据该网络地址的数据交换协议,将预设的挑战代码发送给所述当前客户端,否则将所述数据调用请求向所述网络地址转发。
2.根据权利要求1所述的方法,其特征在于,所述挑战代码中包含从预设的算法库中随机选择的计算任务。
3.根据权利要求2所述的方法,其特征在于,所述算法库中包括如下的一个或多个计算任务集,每个计算任务集包含多个计算任务: 算术四则运算任务 集,要求对生成的随机数进行算术四则运算; 数值计算任务集:要求对生成的随机数按指定方式进行数值计算; 图像处理方法集:要求对指定的图像按指定方式进行处理。
4.根据权利要求1所述的方法,其特征在于,所述挑战代码是从预设的代码集中选择的对应于所述当前客户端的类型的专用挑战代码。
5.根据权利要求4所述的方法,其特征在于,所述预设的代码集中包括如下的一种或几种代码,其中每种代码包括一组或多组代码: 用于计算客户端人机界面几何尺寸的代码; 用于获取运行平台特征的代码; 用于实现CSS效果的代码。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在将所述挑战代码发送给所述当前客户端之前,还包括:对所述挑战代码进行阅读混淆处理。
7.一种抵御黑客攻击的系统,其特征在于,包括: 记录模块,用于记录需要保护的多个网络地址及其数据交换协议名称; 提供模块,用于向当前客户端提供网页,该网页中包含用于从一个或多个网络地址调用数据的脚本程序; 判断模块,用于拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求,然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据; 发送模块,用于在所述数据调用请求用于从所述需要保护的网络地址调用数据的情况下,根据该网络地址的数据交换协议,将预设的挑战代码发送给所述当前客户端;否则将所述数据调用请求向所述网络地址转发。
8.根据权利要求7所述的系统,其特征在于, 还包括算法库模块,用于保存算法库,该算法库中包含多项计算任务; 所述发送模块还用于从所述算法库中随机选择计算任务并添加到所述挑战代码中。
9.根据权利要求7所述的系统,其特征在于, 还包括代码集模块,用于保存代码集,所述代码集中包含适用于多种客户端类型的专用挑战代码;所述发送模块还用于从所述代码集中选择对应于所述当前客户端的类型的专用挑战代码。
10.根据权利要求7、8或9所述的系统,其特征在于,所述发送模块还用于在将所述挑战代码发送给所述当前 客户端之前,对所述挑战代码进行阅读混淆处理。
【文档编号】H04L29/06GK103997494SQ201410218804
【公开日】2014年8月20日 申请日期:2014年5月22日 优先权日:2014年5月22日
【发明者】岳大炯, 肖飞, 陈 峰, 宋德鲁, 潘晔 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1