基于Basic认证的流量代理漏洞检测方法及系统与流程

文档序号:12492961阅读:1107来源:国知局
基于Basic认证的流量代理漏洞检测方法及系统与流程

本发明属于网络信息安全技术领域,尤其涉及基于Basic认证的流量代理漏洞检测方法及系统。



背景技术:

Web应用扫描器通过Web前端与Web应用程序通信,可以自动检查Web应用程序,探测、分析其响应,从而发现潜在的安全问题和架构缺陷。目前主流的Web应用扫描器采用爬虫的方式完成对Web应用程序的全部爬取与识别。常见的Web应用扫描器有绿盟WVSS、安恒明鉴、AWVS、Appscan等。

在Web2.0的时代传统的扫描器已经无法满足用户在Web检测方面需求,目前,移动互联网时代使得企业互联网业务由以往的PC端延伸到手机移动端。由于移动APP绝大部分通信还是基于http协议,在移动APP前端“入口封装”的前提下,传统的Web漏洞扫描器由于基于爬虫式的扫描原理,无法获得移动APP与后台调用的API,导致无法进行漏洞检测。目前主要体现在以下方面:

1、传统Web检测工具通过爬虫系统来获取链接,传统Web检测工具对于JavaScript生成的Ajax请求无法进行检测,其中,Ajax即Asynchronous JavaScript And XML(异步JavaScript和XML);

2、大量登录后的基于业务交互行为的隐藏链接无法通过爬虫进行爬取;

3、移动APP绝大部分通信还是基于http协议,但传统的漏洞扫描器是基于爬虫式的扫描,不能获取到APP后台调用的API,无法进行漏洞检测,其中,API即Application Programming Interface(应用程序编程接口);

4、目前开源的被动式扫描无法实现不同用户的流量分离。



技术实现要素:

本发明实施例的目的在于提供一种基于Basic认证的流量代理漏洞检测方法及系统,能够更好进行漏洞检测,实现不同用户的流量分离。

本发明实施例是这样实现的:

基于Basic认证的流量代理漏洞检测方法,包括:

在终端或手机上的设置流量代理,使流量流经检测系统,在检测系统中,在接收HTTP流量前加入Basic认证,验证代理用户名及密码是否正确,通过Basic认证中的用户名与流量进行关联,分离各个用户名下的流量;

检测系统接收HTTP流量,截取所代理的HTTP的所有请求信息并记录到检测系统的数据库中;采用异步框架及多进程方式定期读取数据库中的请求信息,重放请求会话过程,在会话过程中,对请求链接进行安全检测,包括SQL注入、XSS或命令执行的漏洞检测。

所述的方法的检测系统,包括:

代理流量对接模块,用于接收所代理的流量信息;

Basic认证流量分离模块,用于对用户名与流量进行关联,分离各个用户名下的流量;

数据库,用于存储所截取的代理的HTTP的所有请求信息;

扫描模块,用于采用异步框架及多进程方式读取数据库中的请求信息,重放请求会话过程根据用户设定的扫描策略,指定相应的扫描插件,对请求信息进行特定的漏洞检测。

本发明实施例通过采用代理的方式,截取用户会话,根据会话中的内容加入漏洞检测,解决传统扫描器对于大量登录后的基于业务交互行为的隐藏链接无法准确扫描以及App交互端无法进行漏洞检测的问题,同时结合Basic认证,解决不同用户的流量分离问题。

附图说明

图1是本发明中基于Basic认证的流量代理漏洞检测方法流程图;

图2是本发明方法实施的系统架构图;

图3是本发明方法的检测系统原理图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例通过采用代理的方式,截取用户会话,根据会话中的内容加入漏洞检测,解决传统扫描器对于大量登录后的基于业务交互行为的隐藏链接无法准确扫描以及App交互端无法进行漏洞检测的问题,同时结合Basic认证,解决不同用户的流量分离问题。

以下结合具体实施例对本发明的具体实现进行详细描述:

如图1所示,基于Basic认证的流量代理漏洞检测方法,包括:

在终端或手机上的设置流量代理,使流量流经检测系统,在检测系统中,在接收HTTP流量前加入Basic认证,验证代理用户名及密码是否正确,通过Basic认证中的用户名与流量进行关联,分离各个用户名下的流量;

检测系统接收HTTP流量,截取所代理的HTTP的所有请求信息并记录到检测系统的数据库中,即复制访问流量;采用异步框架及多进程方式定期读取数据库中的请求信息,重放请求会话过程,在会话过程中加入安全测试语句,实现目标扫描,对请求链接进行安全检测,包括SQL注入、XSS或命令执行的漏洞检测,以对这些请求信息进行漏洞检测。

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

图3中,所述的方法的检测系统,包括:

代理流量对接模块,用于接收所代理的流量信息;

Basic认证流量分离模块,用于验证代理用户名及密码是否正确,对用户名与流量进行关联,分离各个用户名下的流量;

数据库,用于存储所截取的代理的HTTP的所有请求信息;

扫描模块,用于采用异步框架及多进程方式读取数据库中的请求信息,重放请求会话过程根据用户设定的扫描策略,指定相应的扫描插件,对请求信息进行特定的漏洞检测。

图2中,终端或手机上设置代理,当启动APP应用及应用系统时,web流量测试系统会检测web漏洞、系统漏洞及弱口令等问题,web漏洞主要包括:SQL注入、跨站脚本、目录遍历、系统备份文件、常见CMS漏洞等上百种常规及业务逻辑漏洞;系统漏洞主要包括:Structs2漏洞、Svn信息泄露、Java反序列CVE漏洞以及运维失当问题;弱口令主要包括:常见系统弱口令、SSH弱口令、FTP弱口令、telnet弱口令、Mysql弱口令、NFS弱口令、Redis空口令、Memcached空口令、Mongodb空口令等常见应用及服务弱口令。产品使用较为简单,用户通过在浏览器下设置代理,当浏览流量经过扫描系统时,扫描系统会自动记录会话,并进行重放,在重放过程中插入安全测试语句,整个过程中用户仅需要在页面点击链接无需任何操作即可完成对目标的检测。

本发明的实施例中,采用tornado框架实现异步高效率的http与Https代理服务器,代理程序在代理http请求的同时,截取所有请求信息记录到数据库;后端扫描程序采用twisted异步框架及多进程multiprocessing模块,具有高效率高并发的优势的方式,定期到数据库中读取请求信息,并对这些请求信息进行漏洞检测,同时修改tornado源码在接收http流量前加入Basic认证,通过Basic认证中的用户名与流量进行关联,实现对流量分账户管理。其中,Tornado就是FriendFeed的Web服务器及其常用工具的开源版本,Tornado每秒可以处理数以千计的连接,因此Tornado是实时Web服务的一个理想框架;Basic认证是HTTP协议规范中的两种认证方式之一,客户端每次访问都需要将用户名和密码放置报文一同发送给服务端。

twisted是一个用python语言写的事件驱动的网络框架,他支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,比如HTTP,SMTP,NNTM,IRC,XMPP/Jabber。非常好的一点是twisted实现和很多应用层的协议,开发人员可以直接只用这些协议的实现。其实要修改Twisted的SSH服务器端实现非常简单。很多时候,开发人员需要实现protocol类。一个Twisted程序由reactor发起的主循环和一些回调函数组成。

通过上述的方法,这样就解决传统扫描器中大量登录后的基于业务交互行为的隐藏链接以及Javascript生成的Ajax请求无法进行检测的问题;解决移动App中交互端的安全漏洞无法自动化检测的问题;解决开源被动式扫描系统中无法实现不同用户的流量分离的问题。

本发明中的检测方法及系统还适用于上线前自动化安全评估等安全场景的需求,在开发测试阶段或者维护阶段的版本更新都可以对安全性进行检测,在开发迭代的过程中,开发测试人员在进行功能开发与测试的同时,设置代理,将流量引入到本发明的检测系统中,将安全检测自动融入到开发过程中,在出现安全问题时及时告警开发与测试人员进行修补,更好地提高代码的安全性,减少上线前安全检测的时间和投入成本。

本发明的漏洞检测系统的价值在于:

1.更准确:相对于传统基于爬虫式的Web扫描器,通过使用本系统,能够更好地提高安全检测的深度,发现更多隐藏的安全问题。

2.无缝对接:通过本系统的部署,将安全检测无缝对接到开发与测试过程中,提高在应用快速迭代场景下的安全保障能力,同时减少上线前安全评估的时间和人力成本。

3.提升效率:由开发测试人员执行功能测试的同时,就能完成安全测试,测试发现的漏洞可以由专业安全人员做进一步的分析和处置,使功能测试与安全测试并行处理,释放安全人员的精力,提升整体效率。

4.自动化:由于系统使用了功能强大,并富有实践经验的检测规则,漏洞的定位和查找提升到了自动化的状态。从而规避了常见安全测试过程中,即便是经验丰富人员也会犯的人为因素错误。

以上所述仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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