本发明使用了请求隔离技术,主要应用于服务端远程数据请求,属于信息安全技术领域。
背景技术:
随着网络的发展,网络安全越来越受重视,而有一大部分网络安全事件的发生源自于应用程序的安全缺陷。如果程序需要调用外部资源则需要通过服务端发起对外资源的请求,在许多情况下必须请求用户可控或者部分可控的外部资源,由此导致服务器端请求为找漏洞。
ssrf(server-siderequestforge,服务端请求伪造/服务器端请求伪造漏洞)是存在于应用程序中的常见漏洞之一。传统的防御方式是通过判断远程资源地址来决定是否发起远程请求,但是传统的防御方式可能被域名绑定内网地址、dns重绑、url跳转等方式绕过防御,因此请求隔离是一种成本低廉并能有效防御服务器端请求伪造漏洞的方法。
本发明将提供一种用于防御服务器端请求伪造漏洞的系统及方法,允许客户端通过该系统来请求外部地址,由此隔离请求服务器与应用服务器,同时减少人力成本、漏洞防御成本。
技术实现要素:
本发提供的是一种用于防御服务器端请求伪造漏洞的系统及方法,系统会代替客户端请求远程资源,并将请求结果返回或者发送给客户端。
用户可通过在平台上设置来同时修改单个或多个客户端的请求参数和请求配置,客户端通过该系统可与请求发起服务器隔离,由此来防御服务器端请求伪造漏洞,同时降低客户端服务维护成本。
该发明可有效的防御服务器端请求伪造漏洞,同时降低客户端服务维护成本。
附图说明
图1为系统结构图。
图2为业务流程图。
具体实施方式
如图1所示,本发明实施例基于c/s或s/s架构,提供软件开发工具包与应用程序接口供客户端调用,同时提供在线浏览器页面供用户直接操作。
本系统的组成主要包括下述四个功能模块:1.任务接收模块。负责接受客户端发送过来的请求地址和额外参数,将其保存到任务列表、将任务从任务列表移除、修改任务参数。2.任务分配模块。负责将任务列表中的请求任务分配给请求发起模块。3.请求模块。发起请求,并返回或保存响应内容。4.用户操作界面。负责负责与用户交互,用户可在操作界面上导入、导出、修改配置、查看日志。
该系统可防御的漏洞类型包括:ssrf、xss、代码执行、命令执行、字符串注入、任意url跳转、(任意)文件创建、(任意)文件删除、(任意)文件包含、(任意)文件下载、(任意)文件上传、http头注入、http_host未过滤、ldap注入、mysql注入、memcached注入、mongodb注入、nosql注入、xpath注入、xquery注入、php对象注入、模板注入、xml/xxe注入、越权、弱比较、敏感信息泄漏、变量覆盖漏洞、第三方组件漏洞、缓冲区溢出、整数溢出、格式化字符串、日志伪造、目录遍历、使用弱/伪随机数。
本发明的技术创新点主要有:1.系统化隔离服务端与请求端。2.可对请求进行系统控制,用户只需在系统中对请求进行配置。3.用户可通过客户端或浏览器在线对请求和请求日志进行修改、查看操作。
如图2所示,本发明的业务流程包括如下步骤:1.步骤201,客户端发送请求地址和可能的额外参数到任务接收模块。2.步骤202,任务接收模块根据配置或额外参数判断是否直接返回请求响应内容,直接返回请求内容则调用请求模块发起请求并返回请求模块返回内容,否则将请求任务加入请求任务列表。3.步骤203,任务分配模块从任务列表中获取任务分配给请求模块。4.步骤204,请求模块根据系统设置和任务参数判断是否发起请求,若发起请求则根据系统设置和任务参数判断保存请求响应内容或主动推送请求内容给客户端。5.步骤205,用户可对系统进行黑名单、白名单、请求参数、请求方式、请求参数、客户端参数、任务参数的设置和配置。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。