《一种抵御黑客攻击的方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种抵御黑客攻击的方法和系统.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103997494 A (43)申请公布日 2014.08.20 CN 103997494 A (21)申请号 201410218804.9 (22)申请日 2014.05.22 H04L 29/06(2006.01) (71)申请人 北京京东尚科信息技术有限公司 地址 100080 北京市海淀区杏石口路 65 号 西杉创意园四区11C楼东段1-4层西段 1-4 层 申请人 北京京东世纪贸易有限公司 (72)发明人 岳大炯 肖飞 陈峰 宋德鲁 潘晔 (74)专利代理机构 中原信达知识产权代理有限 责任公司 11219 代理人 刘光明 陆锦华 (54) 发明名称 一种抵。
2、御黑客攻击的方法和系统 (57) 摘要 本发明提供一种抵御黑客攻击的方法和系 统, 有助于降低 WEB 服务器受到 DDoS 攻击时的负 荷。本发明的抵御黑客攻击的方法包括 : 记录需 要保护的多个网络地址及其数据交换协议名称 ; 向当前客户端提供网页, 该网页中包含用于从一 个或多个网络地址调用数据的脚本程序 ; 拦截所 述当前客户端通过执行所述网页中的脚本程序而 生成的数据调用请求, 然后判断该数据调用请求 是否用于从所述需要保护的网络地址调用数据, 若是, 则根据该网络地址的数据交换协议, 将预设 的挑战代码发送给所述当前客户端, 否则将所述 数据调用请求向所述网络地址转发。 (51)I。
3、nt.Cl. 权利要求书 2 页 说明书 5 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图2页 (10)申请公布号 CN 103997494 A CN 103997494 A 1/2 页 2 1. 一种抵御黑客攻击的方法, 其特征在于, 包括 : 记录需要保护的多个网络地址及其数据交换协议名称 ; 向当前客户端提供网页, 该网页中包含用于从一个或多个网络地址调用数据的脚本程 序 ; 拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求, 然后判 断该数据调用请求是否用于从所述需要保护的网络地址调用数据, 若是, 则。
4、根据该网络地 址的数据交换协议, 将预设的挑战代码发送给所述当前客户端, 否则将所述数据调用请求 向所述网络地址转发。 2. 根据权利要求 1 所述的方法, 其特征在于, 所述挑战代码中包含从预设的算法库中 随机选择的计算任务。 3. 根据权利要求 2 所述的方法, 其特征在于, 所述算法库中包括如下的一个或多个计 算任务集, 每个计算任务集包含多个计算任务 : 算术四则运算任务集, 要求对生成的随机数进行算术四则运算 ; 数值计算任务集 : 要求对生成的随机数按指定方式进行数值计算 ; 图像处理方法集 : 要求对指定的图像按指定方式进行处理。 4. 根据权利要求 1 所述的方法, 其特征在于。
5、, 所述挑战代码是从预设的代码集中选择 的对应于所述当前客户端的类型的专用挑战代码。 5. 根据权利要求 4 所述的方法, 其特征在于, 所述预设的代码集中包括如下的一种或 几种代码, 其中每种代码包括一组或多组代码 : 用于计算客户端人机界面几何尺寸的代码 ; 用于获取运行平台特征的代码 ; 用于实现 CSS 效果的代码。 6.根据权利要求1至5中任一项所述的方法, 其特征在于, 在将所述挑战代码发送给所 述当前客户端之前, 还包括 : 对所述挑战代码进行阅读混淆处理。 7. 一种抵御黑客攻击的系统, 其特征在于, 包括 : 记录模块, 用于记录需要保护的多个网络地址及其数据交换协议名称 ;。
6、 提供模块, 用于向当前客户端提供网页, 该网页中包含用于从一个或多个网络地址调 用数据的脚本程序 ; 判断模块, 用于拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调 用请求, 然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据 ; 发送模块, 用于在所述数据调用请求用于从所述需要保护的网络地址调用数据的情况 下, 根据该网络地址的数据交换协议, 将预设的挑战代码发送给所述当前客户端 ; 否则将所 述数据调用请求向所述网络地址转发。 8. 根据权利要求 7 所述的系统, 其特征在于, 还包括算法库模块, 用于保存算法库, 该算法库中包含多项计算任务 ; 所述发送模块还。
7、用于从所述算法库中随机选择计算任务并添加到所述挑战代码中。 9. 根据权利要求 7 所述的系统, 其特征在于, 还包括代码集模块, 用于保存代码集, 所述代码集中包含适用于多种客户端类型的专 用挑战代码 ; 权 利 要 求 书 CN 103997494 A 2 2/2 页 3 所述发送模块还用于从所述代码集中选择对应于所述当前客户端的类型的专用挑战 代码。 10. 根据权利要求 7、 8 或 9 所述的系统, 其特征在于, 所述发送模块还用于在将所述挑 战代码发送给所述当前客户端之前, 对所述挑战代码进行阅读混淆处理。 权 利 要 求 书 CN 103997494 A 3 1/5 页 4 一种。
8、抵御黑客攻击的方法和系统 技术领域 0001 本发明涉及一种抵御黑客攻击的方法和系统。 背景技术 0002 当今互联网业务中, Web 服务占据了相当大的比例, 尤其是智能终端设备比如手 机等的大面积普及, 使得通过 Web 提供和获取信息的公司和用户呈爆炸性增长, Web 服 务的安全问题也日益成为人们的一大关注点。超文本传输协议 (Hyper Text Transfer Protocol, HTTP) 作为 Web 应用的核心协议, 经常被黑客利用来实施分布式拒绝服务攻击 (Distributed Denial of Service, DDoS)。在实施 DDoS 时, 黑客发动大量的 H。
9、TTP 请求, 使 服务器的主要资源在短时间内被用来处理这些 HTTP 请求从而被几乎耗尽, 无法提供其他 服务。由于这些 HTTP 请求非常接近于用户行为, 让一般防火墙等防御工具无法区分其为黑 客行为还是用户正常访问, 所以很难检测和防御。 0003 黑客发动在实施 DDoS 攻击前, 先通过特殊手段按分级治理 ( 黑客主机控制主僵 尸, 主僵尸控制从僵尸, 从僵尸发动攻击 ) 的方式来控制大批散落于互联网各处的可运行 程序的计算机或智能设备, 这些可运行程序的设备被统称为 “肉鸡” , 通过操纵数量众多的 “肉鸡” , 黑客能够在短时间发起大量的 HTTP 请求, 即实施 DDoS 攻击。
10、。 发明内容 0004 本发明的主要目的是提供一种抵御黑客攻击的方法和系统, 有助于降低 WEB 服务 器受到 DDoS 攻击时的负荷。 0005 为实现上述目的, 根据本发明的一个方面, 提供了一种抵御黑客攻击的方法。 0006 本发明的抵御黑客攻击的方法包括 : 记录需要保护的多个网络地址及其数据交换 协议名称 ; 向当前客户端提供网页, 该网页中包含用于从一个或多个网络地址调用数据的 脚本程序 ; 拦截所述当前客户端通过执行所述网页中的脚本程序而生成的数据调用请求, 然后判断该数据调用请求是否用于从所述需要保护的网络地址调用数据, 若是, 则根据该 网络地址的数据交换协议, 将预设的挑战。
11、代码发送给所述当前客户端, 否则将所述数据调 用请求向所述网络地址转发。 0007 可选地, 所述挑战代码中包含从预设的算法库中随机选择的计算任务。 0008 可选地, 所述算法库中包括如下的一个或多个计算任务集, 每个计算任务集包含 多个计算任务 : 算术四则运算任务集, 要求对生成的随机数进行算术四则运算 ; 数值计算 任务集 : 要求对生成的随机数按指定方式进行数值计算 ; 图像处理方法集 : 要求对指定的 图像按指定方式进行处理。 0009 可选地, 所述挑战代码是从预设的代码集中选择的对应于所述当前客户端的类型 的专用挑战代码。 0010 可选地, 所述预设的代码集中包括如下的一种或。
12、几种代码, 其中每种代码包括一 组或多组代码 : 用于计算客户端人机界面几何尺寸的代码 ; 用于获取运行平台特征的代 说 明 书 CN 103997494 A 4 2/5 页 5 码 ; 用于实现 CSS 效果的代码。 0011 可选地, 在将所述挑战代码发送给所述当前客户端之前, 还包括 : 对所述挑战代码 进行阅读混淆处理。 0012 根据本发明的另一方面, 提供了一种抵御黑客攻击的系统。 0013 本发明的抵御黑客攻击的系统包括 : 记录模块, 用于记录需要保护的多个网络地 址及其数据交换协议名称 ; 提供模块, 用于向当前客户端提供网页, 该网页中包含用于从一 个或多个网络地址调用数据。
13、的脚本程序 ; 判断模块, 用于拦截所述当前客户端通过执行所 述网页中的脚本程序而生成的数据调用请求, 然后判断该数据调用请求是否用于从所述需 要保护的网络地址调用数据 ; 发送模块, 用于在所述数据调用请求用于从所述需要保护的 网络地址调用数据的情况下, 根据该网络地址的数据交换协议, 将预设的挑战代码发送给 所述当前客户端 ; 否则将所述数据调用请求向所述网络地址转发。 0014 可选地, 还包括算法库模块, 用于保存算法库, 该算法库中包含多项计算任务 ; 所 述发送模块还用于从所述算法库中随机选择计算任务并添加到所述挑战代码中。 0015 可选地, 还包括代码集模块, 用于保存代码集,。
14、 所述代码集中包含适用于多种客户 端类型的专用挑战代码 ; 所述发送模块还用于从所述代码集中选择对应于所述当前客户端 的类型的专用挑战代码。 0016 可选地, 所述发送模块还用于在将所述挑战代码发送给所述当前客户端之前, 对 所述挑战代码进行阅读混淆处理。 0017 根据本发明的技术方案, 根据本发明实施例的技术方案, 从最基本的方面来说, 客 户端需要具备执行脚本的功能, 对于黑客的许多攻击工具来说并不具备该功能, 因此有助 于降低 WEB 服务器受到 DDoS 攻击时的负荷。并且采用本实施例的技术方案, 能够在同域或 跨域调用数据的情况下提供保护。 另外本实施例中提供的挑战代码的方案是针。
15、对黑客攻击 的特点而设计, 有助于减少黑客控制的 “肉鸡” 的数量, 降低黑客的攻击强度。 附图说明 0018 附图用于更好地理解本发明, 不构成对本发明的不当限定。其中 : 0019 图 1 是根据本发明实施例的计算机系统的一种结构的示意图 ; 0020 图 2 是根据本发明实施实施例的抵御黑客攻击的方法的主要步骤的示意图 ; 0021 图 3 是根据本发明实施例的抵御黑客攻击的系统的基本组成部分的示意图。 具体实施方式 0022 以下结合附图对本发明的示范性实施例做出说明, 其中包括本发明实施例的各种 细节以助于理解, 应当将它们认为仅仅是示范性的。因此, 本领域普通技术人员应当认识 到,。
16、 可以对这里描述的实施例做出各种改变和修改, 而不会背离本发明的范围和精神。同 样, 为了清楚和简明, 以下的描述中省略了对公知功能和结构的描述。 0023 图 1 是根据本发明实施例的计算机系统的一种结构的示意图。如图 1 所示, 本发 明实施例的计算机系统包括代理服务器14与第一服务器11、 第二服务器12等WEB服务器。 第一服务器 11 和 / 或第二服务器 12 可以与互联网中的其他计算机采用 form、 url、 xml 等 技术进行同域的数据交换, 或采用 JavaScript/jsonp 等技术进行跨域的数据交换。在根据 说 明 书 CN 103997494 A 5 3/5 页。
17、 6 上述技术的相关协议进行数据交换时, 客户端 19 执行代理服务器 14 提供的网页中的脚本 程序, 从而生成对于第一服务器 11 和 / 或第二服务器 12 中的数据的调用请求。这种脚本 程序目前可采用 JavaScript 等脚本语言。这种调用请求首先被代理服务器 14 截获, 后者 执行一定的安全措施之后再允许或拒绝客户端 19 继续访问 WEB 服务器。图 1 中的代理服 务器 14 也可以作为功能模块分别设置在第一服务器 11 和第二服务器 12 中, 此时该功能模 块通常称作 “WEB 前端” 。 0024 以下结合图 2 对本发明实施例的方法做出说明, 图 2 是根据本发明实。
18、施实施例的 抵御黑客攻击的方法的主要步骤的示意图。 0025 步骤 S21 : 记录需要保护的多个网络地址以及这些网络地址采用的数据交换协议 的名称。这里的网络地址一般以统一资源定位符 URL 表示, 它们可以属于同一个域名, 也可 以属于不同域名。 0026 步骤 S22 : 代理服务器向客户端提供网页。如采用 WEB 前端的方式, 则由 WEB 前端 向当前的客户端提供网页。该网页中包含的脚本程序能够用来从其他网络地址调取数据。 客户端下载该网页的过程中执行该脚本程序, 从而生成向其他服务器调用数据的调用请求 然后向该服务器发送。 0027 步骤 S23 : 代理服务器拦截客户端发送的调用。
19、请求。作为客户端来说, 是向 WEB 服 务器发送调用请求, 但是被代理服务器拦截。 0028 步骤 S24 : 代理服务器判断拦截的调用请求是否用来从受保护的网络地址调用数 据。若是, 则进入步骤 S25, 否则进入步骤 S28。 0029 步骤 S25 : 代理服务器将挑战代码发送给客户端。因为客户端的调用请求是遵守 WEB 服务器所在网络地址的数据交换协议, 所以这里的挑战代码也相应遵守该数据交换协 议。此后, 客户端接收挑战代码然后执行得出挑战结果, 将该结果向 WEB 服务器发送, 同样 又被代理服务器截获。 0030 步骤 S26 : 代理服务器判断挑战结果是否正确, 如正确, 则。
20、将调用请求转发给 WEB 服务器, 即进入步骤 S28 ; 否则可以直接拒绝客户端的数据调用请求, 即进入步骤 S27, 此时 可向客户端输出一条提示信息, 例如 “有关内容拒绝显示” , 或者在网页的相关部位输出类 似的提示信息。当然, 在挑战结果不正确的情况下, 代理服务器允许客户端进行重试, 此时 再向客户端发送另一项挑战代码并对客户端返回的挑战结果进行检查。 在重试次数超出预 设次数的情况下再拒绝客户端。 0031 挑战代码对应的挑战结果, 即按通常的做法加以保存。 对于挑战代码, 可以对其做 一些处理以提高对于黑客攻击的抵御能力。例如可以在挑战代码中包含计算任务。可以预 先设置一个算。
21、法库, 里面包含各种计算任务, 并且可以对计算任务进行分类以便挑选。 计算 任务集例如 : 算术四则运算任务集, 要求对生成的随机数进行算术四则运算 ; 数值计算任 务集 : 要求对生成的随机数按指定方式进行数值计算 ; 图像处理方法集 : 要求对指定的图 像按指定方式进行处理。 0032 为了能够控制尽可能多的 “肉鸡” , 黑客使用的攻击工具一般都比较简单以便能够 被尽可能多的 ( 其中包括配置较低的 ) 计算机执行。而上述的计算任务对于客户端所在计 算机的处理能力提出了一定的要求, 不具备相应处理能力的计算机将无法通过挑战, 所以 有助于减少黑客可以控制的 “肉鸡” 的数量, 相应就降低。
22、了黑客发起 DDoS 攻击时 WEB 服务 说 明 书 CN 103997494 A 6 4/5 页 7 器遭受的负荷。 0033 也可以针对客户端的类型, 选择对应于该客户端类型的专用挑战代码。在客户端 请求获取网页时, 请求信息中通常包含有关客户端以及用户的一些信息, 例如用户名、 密 码、 IP 地址、 浏览器类型等。因此代理服务器可以通过客户端的访问请求来确定该客户端 是哪种浏览器。这里的 “专用” 是指代码只能被指定的客户端执行而不能被其他客户端执 行。例如只能被 IE 浏览器执行, 而无法被火狐浏览器执行。挑战代码的具体挑战内容是执 行指定客户端特有的指令, 例如计算浏览器窗口的尺。
23、寸的指令、 获取浏览器版本的指令、 客 户端 IP 地址的指令、 获取客户端操作系统名称和 / 或版本的指令、 用于实现特定 CSS 效果 的指令等。可以将包含这些指令的代码集预先保存起来供选择。 0034 黑客在进行攻击时, 采用的攻击工具一般会伪装成某种类型的浏览器。按照上述 流程, 黑客的攻击工具将收到挑战代码。因为挑战代码是从代码集中选择的, 具有不确定 性, 因此黑客即使预先准备一个要加入跳转请求的挑战结果, 也难以保证刚好是收到的挑 战代码对应的挑战结果。因为黑客使用的攻击工具一般都比较简单, 通常不具备现有浏览 器的全部或多数功能, 其仅仅是伪装成现有的浏览器, 在这种情况下采用。
24、该浏览器的专用 指令作为挑战代码, 黑客使用的攻击工具往往无法执行, 从而 “露馅” , 无法通过挑战。 0035 如果黑客试图破解算法库中的所有问题, 或者破解代码集中的所有专用挑战代 码, 则可以再对上述的挑战代码做进一步处理。因为黑客在破解挑战代码时会对其进行人 工分析, 所以对挑战代码做进一步处理时主要是对其进行阅读混淆处理。阅读混淆处理是 使代码变得不适宜人工阅读的一种处理方式, 目前通常的做法是去除网页源代码中的帮助 人类阅读的内容, 例如注释、 有层级的缩进量、 空行等, 使该源代码难以阅读, 也可以在源代 码中加入大量空白篇幅以干扰阅读。 本实施例中, 还可以在源代码中添加无效。
25、代码, 无效代 码是在执行源代码时不被执行的代码, 但它们能够占用无效代码的篇幅, 为分析者带来阅 读和分析的困难。 0036 图 3 是根据本发明实施例的抵御黑客攻击的系统的基本组成部分的示意图, 该系 统可以设置在代理服务器或 WEB 前端。如图 3 所示, 抵御黑客攻击的系统 30 主要包括记录 模块 31、 提供模块 32、 判断模块 33、 以及发送模块 34。 0037 记录模块 31 用于记录需要保护的多个网络地址及其数据交换协议名称 ; 提供模 块 32 用于向当前客户端提供网页, 该网页中包含用于从一个或多个网络地址调用数据的 脚本程序 ; 判断模块 33 用于拦截当前客户端。
26、通过执行网页中的脚本程序而生成的数据调 用请求, 然后判断该数据调用请求是否用于从需要保护的网络地址调用数据 ; 发送模块 34 用于在数据调用请求用于从需要保护的网络地址调用数据的情况下, 根据该网络地址的数 据交换协议, 将预设的挑战代码发送给当前客户端 ; 否则将数据调用请求向网络地址转发。 0038 抵御黑客攻击的系统 30 还可以包括算法库模块, 用于保存算法库, 该算法库中包 含多项计算任务。这样发送模块 34 还可用于从该算法库中随机选择计算任务并添加到挑 战代码中。 0039 抵御黑客攻击的系统 30 还可包括代码集模块, 用于保存代码集, 该代码集中包含 适用于多种客户端类型。
27、的专用挑战代码。这样发送模块 34 还可用于从该代码集中选择对 应于当前客户端的类型的专用挑战代码。另外, 发送模块 34 还用于在将挑战代码发送给当 前客户端之前, 对挑战代码进行阅读混淆处理。 说 明 书 CN 103997494 A 7 5/5 页 8 0040 根据本发明实施例的技术方案, 从最基本的方面来说, 客户端需要具备执行脚本 的功能, 对于黑客的许多攻击工具来说并不具备该功能, 因此有助于降低 WEB 服务器受到 DDoS 攻击时的负荷。并且采用本实施例的技术方案, 能够在同域或跨域调用数据的情况下 提供保护。例如某公司有多个同域的服务器, 可采用同一代理服务器提供主页和向有。
28、可能 被黑客操纵的客户端提出挑战, 方便网络维护。又如某公司的网页跨域从另一公司网页调 取数据, 按照本发明实施例的技术方案, 可以将该另一公司的网页地址列入被保护范围, 从 而保证被调用的网址的安全。 另外本实施例中提供的挑战代码的方案是针对黑客攻击的特 点而设计, 有助于减少黑客控制的 “肉鸡” 的数量, 降低黑客的攻击强度。 0041 以上结合具体实施例描述了本发明的基本原理, 但是, 需要指出的是, 对本领域的 普通技术人员而言, 能够理解本发明的方法和设备的全部或者任何步骤或者部件, 可以在 任何计算装置(包括处理器、 存储介质等)或者计算装置的网络中, 以硬件、 固件、 软件或者 。
29、它们的组合加以实现, 这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们 的基本编程技能就能实现的。 0042 因此, 本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来 实现。所述计算装置可以是公知的通用装置。因此, 本发明的目的也可以仅仅通过提供包 含实现所述方法或者装置的程序代码的程序产品来实现。也就是说, 这样的程序产品也构 成本发明, 并且存储有这样的程序产品的存储介质也构成本发明。 显然, 所述存储介质可以 是任何公知的存储介质或者将来开发出的任何存储介质。 0043 还需要指出的是, 在本发明的装置和方法中, 显然, 各部件或各步骤是可以分解和 / 或重新组。
30、合的。这些分解和 / 或重新组合应视为本发明的等效方案。并且, 执行上述系列 处理的步骤可以自然地按照说明的顺序按时间顺序执行, 但是并不需要一定按照时间顺序 执行。某些步骤可以并行或彼此独立地执行。 0044 上述具体实施方式, 并不构成对本发明保护范围的限制。本领域技术人员应该明 白的是, 取决于设计要求和其他因素, 可以发生各种各样的修改、 组合、 子组合和替代。 任何 在本发明的精神和原则之内所作的修改、 等同替换和改进等, 均应包含在本发明保护范围 之内。 说 明 书 CN 103997494 A 8 1/2 页 9 图 1 图 2 说 明 书 附 图 CN 103997494 A 9 2/2 页 10 图 3 说 明 书 附 图 CN 103997494 A 10 。