一种实现安全扫描的方法及分布式系统技术方案

技术编号:10122882 阅读:145 留言:0更新日期:2014-06-12 12:48
本发明专利技术提供了一种实现安全扫描的方法及分布式系统,该方法包括:开始任务接口将生成的任务消息上传到待爬取消息队列;爬虫进程依据在所述待爬取消息队列中监听到的任务消息中的待扫描任务入口URL,得到所述待扫描任务入口URL下的子链接,并发送扫描消息给待扫描消息队列;扫描监听进程在待扫描消息队列监听到所述扫描消息时,将所述子链接存储到数据库;web server收到扫描进程发送的http请求后,依据数据库存储的子链接生成扫描任务,将生成的扫描任务返回给扫描进程;扫描进程对收到的子链接进行漏洞扫描,出现漏洞时生成漏洞数据,并依据漏洞数据生成扫描结果。根据本发明专利技术提供的技术方案,能够大大提高web安全测试的效率。

【技术实现步骤摘要】
一种实现安全扫描的方法及分布式系统
本专利技术涉及互联网的安全测试技术,尤其涉及一种实现安全扫描方法及分布式系统。
技术介绍
目前,对网站进行web安全测试的方法主要有以下三种方式:第一种是由专门的安全测试人员对网站进行人工web安全测试。这种方式的缺点是:依赖于人工操作,测试周期较长,需要占用较多人力资源和时间资源,测试效率较低。第二种是利用一些安全扫描工具对网站进行安全扫描,这种方式的缺点是:安全扫描工具都是客户端或服务器模式,仍然需要依赖人工进行安装和部署客户端或服务器,需要占用较多人力资源和时间资源,测试效率较低。第三种是安全测试人员通过web页面提交扫描任务后,利用抓取URL模块得到需要的子链接,然后进入漏洞扫描,最后生成扫描报告。这种方式的缺点是:抓取工具和扫描工具在同一设备下串行工作,这样爬虫工具和扫描工具势必会出现相互等待和相互制约的情况,而且整个设备的稳定性、容错性和方便扩展性都将受到较大制约,测试效率较低。
技术实现思路
本专利技术提供了一种实现安全扫描的方法及分布式系统,能够大大提高web安全测试的效率。本专利技术的具体技术方案如下:根据本专利技术一优选实施例,一种实现安全扫描的分布式系统,包括:开始任务接口、包括待爬取消息队列和待扫描消息队列的消息服务器、包括一个以上爬虫进程的爬虫集群、包含扫描监听进程和数据库的监听服务器、web服务器(server)和包括一个以上扫描进程的扫描集群;其中,开始任务接口,用于将生成的任务消息上传到待爬取消息队列;爬虫进程,用于依据在所述待爬取消息队列中监听到的任务消息中的待扫描任务入口URL,得到所述待扫描任务入口URL下的子链接,并发送扫描消息给待扫描消息队列;扫描监听进程,用于在待扫描消息队列监听到所述扫描消息时,将所述子链接存储到数据库;webserver,用于收到扫描进程发送的http请求后,依据数据库存储的子链接生成扫描任务,将生成的扫描任务返回给扫描进程;扫描进程,用于对收到的子链接进行漏洞扫描,出现漏洞时生成漏洞数据,并依据漏洞数据生成扫描结果。上述系统中,所述爬虫进程在得到所述待扫描任务入口URL下的子链接时,具体包括:对待爬取消息队列进行监听,第一个监听到任务消息的爬虫进程获取所述任务消息,并在所述待爬取消息队列中将所述任务消息的标志位设置为正在处理;对所述任务消息中的待扫描任务入口URL进行爬取,得到所述待扫描任务入口URL下的所有子链接。上述系统中,所述待爬取消息队列,还用于当爬虫进程对待扫描任务入口URL进行爬取的过程中,所述爬虫进程所在的机器出现故障时,将所述爬虫进程正在爬取的任务消息的标志位设置为等待处理。上述系统中,所述爬虫进程,还用于依据得到的待扫描任务入口URL的子链接生成爬虫结果,将保存爬虫结果的爬虫结果文件保存到缓存服务器。上述系统中,所述webserver在将生成的扫描任务发送给扫描进程时,具体包括:依据数据库中的子链接生成扫描任务,每个扫描任务中包含的子链接的数量等于预设的任务链接数;依据每个扫描进程一次只发送一个扫描任务的策略,将生成的扫描任务返回给请求扫描任务的扫描进程;将扫描任务中子链接在数据库中的标志位设置为正在扫描。上述系统中,所述扫描进程在对收到的子链接进行漏洞扫描时,具体包括:从扫描任务中第一个子链接的第一个参数开始,将规则库中的参数值作为子链接中参数的参数值输入到子链接中,如果输入后报出漏洞则终止对所述参数的扫描,对所述子链接的其他参数进行扫描,对所述子链接的所有参数扫描完毕后,对扫描任务中的其他子链接进行扫描。上述系统中,所述webserver,还用于在等待超时时间内没有收到扫描进程发送的确认完成信息时,将子链接在数据库中的标志位设置为等待分配。上述系统中,该系统还包括:停止扫描接口;所述消息服务器还包括停止爬取消息队列和停止扫描消息队列;停止扫描接口,用于前端界面的停止任务按钮被触发后,判断所述扫描任务处于爬取过程还是扫描过程;如果所述扫描任务处于爬取过程,将生成的停止爬取消息发送到消息服务器的停止爬取消息队列;爬虫进程用于从停止爬取消息队列监听到停止爬取消息时,终止所述扫描任务的爬取操作;如果扫描任务处于扫描过程,停止扫描接口用于将生成的停止扫描消息发送到停止扫描消息队列,扫描监听进程用于从停止扫描消息队列监听到停止扫描消息时,如果扫描任务的子链接还没有被分配到扫描进程,则将所述子链接设置为停止扫描;如果所述子链接已经被分配到扫描进程,则不停止所述子链接的扫描。一种实现安全扫描的方法,开始任务接口将生成的任务消息上传到待爬取消息队列;爬虫进程依据在所述待爬取消息队列中监听到的任务消息中的待扫描任务入口URL,得到所述待扫描任务入口URL下的子链接,并发送扫描消息给待扫描消息队列;扫描监听进程在待扫描消息队列监听到所述扫描消息时,将所述子链接存储到数据库;包括:webserver收到扫描进程发送的http请求后,依据数据库存储的子链接生成扫描任务,将生成的扫描任务返回给扫描进程;扫描进程对收到的子链接进行漏洞扫描,出现漏洞时生成漏洞数据,并依据漏洞数据生成扫描结果。上述方法中,爬虫进程得到所述待扫描任务入口URL下的子链接的方法为:爬虫进程对待爬取消息队列进行监听,第一个监听到任务消息的爬虫进程获取所述任务消息,并在所述待爬取消息队列中将所述任务消息的标志位设置为正在处理;爬虫进程对所述任务消息中的待扫描任务入口URL进行爬取,得到所述待扫描任务入口URL下的所有子链接。上述方法中,该方法还包括:当爬虫进程对待扫描任务入口URL进行爬取的过程中,所述爬虫进程所在的机器出现故障,待爬取消息队列将所述爬虫进程正在爬取的任务消息的标志位设置为等待处理。上述方法中,爬虫进程发送扫描消息给待扫描消息队列之前,该方法还包括:爬虫进程依据得到的待扫描任务入口URL的子链接生成爬虫结果,将保存爬虫结果的爬虫结果文件保存到缓存服务器。上述方法中,所述webserver将生成的扫描任务发送给扫描进程的方法为:依据数据库中的子链接生成扫描任务,每个扫描任务中包含的子链接的数量等于预设的任务链接数;依据每个扫描进程一次只发送一个扫描任务的策略,将生成的扫描任务返回给请求扫描任务的扫描进程;将扫描任务中子链接在数据库中的标志位设置为正在扫描。上述方法中,扫描进程对收到的子链接进行漏洞扫描的方法为:扫描进程从扫描任务中第一个子链接的第一个参数开始,将规则库中的参数值作为子链接中参数的参数值输入到子链接中,如果输入后报出漏洞则终止对所述参数的扫描,对所述子链接的其他参数进行扫描,对所述子链接的所有参数扫描完毕后,对扫描任务中的其他子链接进行扫描。上述方法中,该方法还包括:如果webserver在等待超时时间内没有收到扫描进程发送的确认完成信息,则将子链接在数据库中的标志位设置为等待分配。上述方法中,该方法还包括:当前端界面的停止任务按钮被触发后,停止扫描接口判断所述扫描任务处于爬取过程还是扫描过程;如果所述扫描任务处于爬取过程,将生成的停止爬取消息发送到消息服务器的停止爬取消息队列,爬虫进程从停止爬取消息队列监听到停止爬取消息时,终止所述扫描任务的爬取操作;如果扫描任务处于扫描过程,停止扫描接口将生成的停止本文档来自技高网...

【技术保护点】
一种实现安全扫描的分布式系统,其特征在于,该系统包括:开始任务接口、包括待爬取消息队列和待扫描消息队列的消息服务器、包括一个以上爬虫进程的爬虫集群、包含扫描监听进程和数据库的监听服务器、web服务器server和包括一个以上扫描进程的扫描集群;其中,开始任务接口,用于将生成的任务消息上传到待爬取消息队列;爬虫进程,用于依据在所述待爬取消息队列中监听到的任务消息中的待扫描任务入口URL,得到所述待扫描任务入口URL下的子链接,并发送扫描消息给待扫描消息队列;扫描监听进程,用于在待扫描消息队列监听到所述扫描消息时,将所述子链接存储到数据库;web server,用于收到扫描进程发送的http请求后,依据数据库存储的子链接生成扫描任务,将生成的扫描任务返回给扫描进程;扫描进程,用于对收到的子链接进行漏洞扫描,出现漏洞时生成漏洞数据,并依据漏洞数据生成扫描结果。

【技术特征摘要】
1.一种实现安全扫描的分布式系统,其特征在于,该系统包括:开始任务接口、包括待爬取消息队列和待扫描消息队列的消息服务器、爬虫集群、包含扫描监听进程和数据库的监听服务器、web服务器和扫描集群;其中,开始任务接口,用于将生成的任务消息上传到待爬取消息队列;爬虫集群,包括一个以上机器,每个机器包括一个以上爬虫进程;扫描集群,包括一个以上机器,每个机器包括一个以上扫描进程;爬虫进程,用于依据在所述待爬取消息队列中监听到的任务消息中的待扫描任务入口URL,得到所述待扫描任务入口URL下的子链接,并发送扫描消息给待扫描消息队列;扫描监听进程,用于在待扫描消息队列监听到所述扫描消息时,将所述子链接存储到数据库;web服务器,用于收到扫描进程发送的http请求后,依据数据库存储的子链接生成扫描任务,将生成的扫描任务返回给扫描进程;扫描进程,用于对收到的子链接进行漏洞扫描,出现漏洞时生成漏洞数据,并依据漏洞数据生成扫描结果。2.根据权利要求1所述的系统,其特征在于,所述爬虫进程在得到所述待扫描任务入口URL下的子链接时,具体包括:对待爬取消息队列进行监听,第一个监听到任务消息的爬虫进程获取所述任务消息,并在所述待爬取消息队列中将所述任务消息的标志位设置为正在处理;对所述任务消息中的待扫描任务入口URL进行爬取,得到所述待扫描任务入口URL下的所有子链接。3.根据权利要求2所述的系统,其特征在于,所述待爬取消息队列,还用于当爬虫进程对待扫描任务入口URL进行爬取的过程中,所述爬虫进程所在的机器出现故障时,将所述爬虫进程正在爬取的任务消息的标志位设置为等待处理。4.根据权利要求1所述的系统,其特征在于,所述爬虫进程,还用于依据得到的待扫描任务入口URL的子链接生成爬虫结果,将保存爬虫结果的爬虫结果文件保存到缓存服务器。5.根据权利要求1所述的系统,其特征在于,所述web服务器在将生成的扫描任务发送给扫描进程时,具体包括:依据数据库中的子链接生成扫描任务,每个扫描任务中包含的子链接的数量等于预设的任务链接数;依据每个扫描进程一次只发送一个扫描任务的策略,将生成的扫描任务返回给请求扫描任务的扫描进程;将扫描任务中子链接在数据库中的标志位设置为正在扫描。6.根据权利要求1所述的系统,其特征在于,所述扫描进程在对收到的子链接进行漏洞扫描时,具体包括:从扫描任务中第一个子链接的第一个参数开始,将规则库中的参数值作为子链接中参数的参数值输入到子链接中,如果输入后报出漏洞则终止对所述参数的扫描,对所述子链接的其他参数进行扫描,对所述子链接的所有参数扫描完毕后,对扫描任务中的其他子链接进行扫描。7.根据权利要求6所述的系统,其特征在于,所述web服务器,还用于在等待超时时间内没有收到扫描进程发送的确认完成信息时,将子链接在数据库中的标志位设置为等待分配。8.根据权利要求1所述的系统,其特征在于,该系统还包括:停止扫描接口;所述消息服务器还包括停止爬取消息队列和停止扫描消息队列;停止扫描接口,用于前端界面的停止任务按钮被触发后,判断所述扫描任务处于爬取过程还是扫描过程;如果所述扫描任务处于爬取过程,将生成的停止爬取消息发送到消息服务器的停止爬取消息队列;爬虫进程用于从停止爬取消息队列监听到停止爬取消息时,终止所述扫描任务的爬取操作;如果扫描任务处于扫描过程,停止扫描接口用于将生成的停止扫描消息发送到停止扫描消息队列,扫描监听进程用于从停止扫描消息队列监听到停止扫描消息时,如果扫描任务的子链接还没有被分配到扫描...

【专利技术属性】
技术研发人员:李鸣雷王丹练坤梅
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1