一种针对网络脆弱性的安犬扫描器集成方法

文档序号:10725526阅读:426来源:国知局
一种针对网络脆弱性的安犬扫描器集成方法
【专利摘要】本发明涉及一种针对网络脆弱性的安犬扫描器集成方法,由三个进程组成,分别是任务排队进程、节点主进程和扫描器监听进程,所述的任务排队进程的目的是将数据库中未添加到扫描器的任务,所述的扫描器监听进程主要目标是监听扫描器任务执行状态,为减少添加任务过程中扫描器异常现象的发生,节点主进程启动任务排队进程和扫描器监听进程。其优点表现为:本发明方法针对网络脆弱性的安犬扫描器及第三方扫描器的特点,定制开发集成队列管理器,将从API请求来的扫描请求添加到队列管理器,定时从扫描器检查任务状态,当任务完成后可从扫描器下载扫描结果,为企业提供一体化的网络安全服务系统,提高用户体验。
【专利说明】
一种针对网络脆弱性的安犬扫描器集成方法
【技术领域】
[0001]本发明涉及计算机网络技术领域,具体地说,是一种针对网络脆弱性的安犬扫描器集成方法。
【【背景技术】】
[0002]随着信息技术和网络的快速发展,国家安全的边界已经超越地理空间的限制,拓展到信息网络,网络安全成为事关国家安全的重要问题。当前世界主要国家进入网络空间战略集中部署时期,国际互联网治理领域出现改革契机,同时网络安全威胁的范围和内容不断扩大和演化,网络安全形势与挑战日益严峻复杂。目前国内网络漏洞扫描检测领域处于刚刚起步阶段,而国际知名漏洞扫描工具需要高昂的购买费用和维护费用,并且国内专业的信息安全人才非常稀缺。
[0003]目前国际国内已经有很多网络漏洞扫描工具,但每种产品都有各自的优势及侧重点,并且每种产品价格都比较昂贵,使企业承载较高的技术成本。由于扫描器供应商的扫描器产品特点各不一样,有支持网络接口方式,也有本地客户端调用方式,生成报告规范也各不相同,但所有扫描器都具备以下几个必备功能:登录认证,添加扫描任务,查看扫描状态,对扫描任务的操作:暂停、恢复、停止、删除、下载。而各种扫描器的不同的特点,可能会有大量网络爬取算法导致网络延迟,大量的线程消耗过多内存而崩溃等问题。
[0004]综上所述,网络漏洞扫描工具领域依然存在改进和创新的空间,面对国内强烈的市场刚性需求,通过集成扫描器算法适配当前所有提供调度接口的扫描器,利用安犬云平台扫描结果对会员的定义的资产漏洞进行统计和趋势分析能生产出客观、专业的、有价格的网络安全评估报告,该技术具有极大的发挥空间,且目前还未见相关报道。

【发明内容】

[0005]本发明的目的是针对现有技术中的不足,提供一种针对网络脆弱性的安犬扫描器集成方法,创新性地集成国际知名漏洞扫描器,配备专业的服务人才,采用SaaS服务方式,低廉的服务价格,极大的降低企业安全服务门槛。
[0006]为实现上述目的,本发明采取的技术方案是:一种针对网络脆弱性的安犬扫描器集成方法,由三个进程组成,分别是节点主进程、任务排队进程和扫描器监听进程,所述的节点主进程包括以下步骤:
[0007]S201验证节点号:每一个节点拥有唯一的用于识别任务调度者身份的固定标识,服务器启动需要验证标识是否生成,即节点是否生成节点号,节点号验证成功则进入步骤S203,若节点号验证失败则需创建节点号后进入步骤S203;S202创建节点号:通过获取当前主机的IP地址,使用MD5算法加密,生成一个32位长度的ID号作为节点号;
[0008]S203预加载扫描器:通过节点号到数据库查找与当前ID所包含的预定义的扫描器相配置的信息,并将上述信息存储于一个静态数组中;
[0009]S204判断是否加载扫描器:上述步骤中,若数据库中查找不到与当前ID所包含的预定义的扫描器配置信息,则判断节点号未成功绑定扫描器,不能执行扫描任务,需要等待I分钟后返回步骤S203重新预加载扫描器;
[0010]S205启动任务排队进程和扫描器监听进程,上述步骤S203预加载扫描器成功后,执行本步骤,
[0011 ]所述的任务排队进程的包括如下步骤:
[0012]S206判断是否有节点号在读取任务:为了防止一个任务同时被多个节点添加的情况,需要锁的机制,即同一时间点,只允许一个节点来获取任务列表,在节点注册表,查询是否有节点的状态为在读状态,且更新时间不超过3分钟,若没有在读状态即全部空闲状态,则进入步骤S207,若有在读状态的节点,就等10秒种之后重新启动任务排队进程;
[0013]S207设置当前节点状态为在读状态;
[0014]S208计算扫描器空闲数:通过数据库读的当前节点绑定的扫描器预设的并发数阈值总和减去每个扫描器当前已经启动的进程数总和为节点空闲数即扫描器空闲数,用公式表述为:节点空闲数=Σ绑定扫描器并发数阈值-Σ绑定扫描器活动数;
[0015]S209读取未执行的扫描任务:从任务列表中按添加时间的先后顺序读取扫描任务,所读取的未执行的扫描任务总数不超过节点当前空闲数;
[0016]S210为扫描器分配任务:按步骤S208计算的扫描器空闲数中,扫描器空闲进程数最多的优先绑定未执行的扫描任务,同时修改数据库中任务执行状态及扫描器活动进程数;
[0017]S211修改节点状态为空闲状态:将当前节点状态设置为空闲状态;至此一次任务添加线程结束,等待下一分钟重复循环此操作,
[0018]所述的扫描器监听进程的包括如下步骤:
[0019]S212扫描器监听启动;
[0020]S213遍历活动扫描器:从节点主进程的步骤S203预加载扫描器获得的扫描器静态数组列表中,每分钟遍历一次活动扫描器信息;
[0021]S214判断服务监听是否正常:针对上一步骤中遍历读出来的扫描器信息做登录测试,判断服务器监听状态;
[0022]S215下载扫描器任务列表:成功连接扫描器,并遍历读取当前扫描器的所有任务列表;
[0023]S216验证任务状态:从扫描器任务列表中读取的任务状态主要包括创建、执行中、完成、暂停和失败,对于状态为完成的任务会触发步骤S218下载结果任务,即下载扫描结果,其它状态则调用步骤S217更新状态,即同步更新数据库中的状态及已经运行所消耗的时间,使数据库中的状态与扫描器一致,至此,一次遍历完成,等待下一分钟的下一次遍历;
[0024]S219注销扫描器:对于连接测试失败的扫描器,需要在数据库中标识为注销状态,防止节点继续调用此扫描器而出错,并启动步骤S220;
[0025]S220发邮件通知管理员,终止扫描器监听进程。
[0026]所述的节点主进程启动任务排队进程和扫描器监听进程并不是同时进行的,扫描器监听进程要在任务排队进程之前启动,目的是验证一下扫描器状态是否正常。
[0027]步骤S207所述的将当前节点状态设置为在读状态,是指为当前节点加锁,在读状态的节点加锁之后,其它节点无法进入执行任务,就会自动等待。
[0028]步骤S211所述的将当前节点状态设置为空闲状态是指为当前节点解锁,当前节点解锁后,其它节点被允许进入队列中读取扫描任务。
[0029]步骤S214中所做的登录测试,测试通过说明扫描器运行正常进入步骤S215,测试不通过说明当前扫描器状态异常不可用,进入步骤S219。
[0030]本发明优点在于:
[0031]1、本发明方法针对网络脆弱性的安犬扫描器及第三方扫描器的特点,定制开发集成队列管理器,将从API请求来的扫描请求添加到队列管理器,定时从扫描器检查任务状态,当任务完成后可从扫描器下载扫描结果,为企业提供一站式的网络安全服务系统,提高用户体验。
[0032]2、本发明方法采用分布式解决方案,每一个节点互不影响,无主从约束,从而保证系统高可用性,算法满足扫描器低负荷、高可用、多并发的要求。
【【附图说明】】
[0033]附图1是本发明方法的分布式队列服务器单一节点运行逻辑示意图。
【【具体实施方式】】
[0034]下面结合附图对本发明提供的【具体实施方式】作详细说明。
[0035]为保证漏洞扫描系统高可用性,满足算法过程中扫描器低负荷、高可用、多并发的要求,本发明采用分布式解决方案,每一个节点互不影响,无主从约束,具体流程结合附图1说明如下。
[0036]本发明方法由三个进程组成,分别是节点主进程、任务排队进程和扫描器监听进程。系统启动后,首先进入节点主进程,节点主进程包括以下步骤。
[0037]S201验证节点号:每一个节点拥有唯一的用于识别任务调度者身份的固定标识,服务器启动需要验证标识是否生成,即节点是否生成节点号,节点号验证成功则进入步骤S203,若节点号验证失败则需创建节点号后进入步骤S203;
[0038]S202创建节点号:通过获取当前主机的IP地址,使用MD5算法加密,生成一个32位长度的ID号作为节点号。这里所述的节点号验证失败的原因包括:由于第一次启动服务器导致节点号配置文件不存在、或发布版本更新或修改导致没有配置相应的节点号、或者节点格式有误导致无法与节点号配置文件相匹配等原因。
[0039]S203预加载扫描器:通过节点号,到数据库查找与当前ID所包含的预定义的扫描器配置信息,并将上述信息存储于一个静态数组中;
[0040]S204判断是否加载扫描器:上述步骤中,若数据库中查找不到与当前ID所包含的预定义的扫描器配置信息,则判断节点号未成功绑定扫描器,不能执行扫描任务,需要等待I分钟后返回步骤S203预加载扫描器。
[0041]上述预加载扫描器成功后,进入步骤S205启动任务排队进程和扫描器监听进程。所述的任务排队进程的目的是将数据库中未添加到扫描器的任务,按加入时间后先后顺序,加入到扫描器中。所述的扫描器监听进程主要目标是监听扫描器任务执行状态,及时更新任务的状态信息,一旦发现任务完成,立即下载扫描结果。为减少添加任务过程中扫描器异常现象的发生,节点主进程启动任务排队进程和扫描器监听进程并不是同时进行的,扫描器监听进程要在任务排队进程之前启动,目的是验证一下扫描器状态是否正常。
[0042]所述的任务排队进程的步骤如下:
[0043]S206判断是否有节点号在读取任务:为了防止一个任务同时被多个节点添加的情况,需要锁的机制,即同一时间点,只允许一个节点来获取任务列表,在节点注册表,查询是否有节点的状态为在读状态,且更新时间不超过3分钟(节点一分钟轮询一次,超过3分钟状态没改的节点说明是故障节点,可忽略),若没有在读状态即全部空闲状态,则进入步骤S207,若有在读状态的节点,就等1秒种之后重新启动任务排队进程。
[0044]S207设置当前节点状态为在读状态:将当前节点状态设置为在读状态,即为当前节点加锁,在读状态的节点加锁之后,其它节点就会自动等待无法进入执行任务。
[0045]S208计算扫描器空闲数:通过数据库读的当前节点绑定的扫描器预设的并发数阈值总和减去每个扫描器当前已经启动的进程数总和为节点空闲数即扫描器空闲数,用公式表述为:节点空闲数=Σ绑定扫描器并发数阈值-Σ绑定扫描器活动数。
[0046]S209读取未执行的扫描任务:从任务列表中按添加时间的先后顺序读取扫描任务,所读取扫描任务总数不超过节点当前空闲数。
[0047]S210为扫描器分配任务:按步骤S208计算的扫描器空闲数中,扫描器空闲进程数最多的优先绑定未执行的扫描任务,同时修改数据库中任务执行状态及扫描器活动进程数。
[0048]S211修改节点状态为空闲状态:任务分配完成后,将当前节点状态设置为空闲状态,即为当前节点解锁,当前节点解锁后,其它节点被允许进入队列中读取扫描任务。
[0049]至此一次任务添加线程结束,等待下一分钟重复循环此操作。
[0050]所述的扫描器监听进程的步骤如下:
[0051 ] S212扫描器监听启动;
[0052]S213遍历活动扫描器:从节点主进程的步骤S203预加载扫描器获得的扫描器静态数组列表中,每分钟遍历一次活动扫描器信息;
[0053]S214判断服务监听是否正常:针对上一步骤中遍历读出来的扫描器信息做登录测试,测试通过说明扫描器运行正常进入步骤S215,测试不通过说明当前扫描器状态异常不可用,进入步骤S219;
[0054]S215下载扫描器任务列表:扫描器测试正常,则可成功连接扫描器,并可以遍历读取当前扫描器的所有任务列表;
[0055]S216验证任务状态:从扫描器读取的任务状态主要包括创建(Waiting)、执行中(Running)、完成(Finished)、暂停(Pause)和失败(Error),根据任务状态调用相关操作,对于状态为完成(Finished)的任务会触发步骤S218下载结果任务,即下载扫描结果。其它状态(仓Il建(Waiting)、执行中(Running)、暂停(Pause)和失败(Error))则调用步骤S217更新状态,即同步更新数据库中的状态及已经运行所消耗的时间,使数据库中的状态与扫描器一致。至此,一次遍历完成,等待下一分钟的下一次遍历。
[0056]S219注销扫描器:对于连接测试失败的扫描器,需要在数据库中标识为注销状态,防止节点继续调用此扫描器而出错,并启动步骤S220。
[0057]S220发邮件通知管理员:当扫描器被注销,说明该扫描器有故障,必须及时发邮件通知管理员及时处理,以免影响业务进行。至此,扫描器监听进程结束。
[0058]以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
【主权项】
1.一种针对网络脆弱性的安犬扫描器集成方法,其特征在于,所述的方法由三个进程组成,分别是节点主进程、任务排队进程和扫描器监听进程,所述的节点主进程包括以下步骤: S201验证节点号:每一个节点拥有唯一的用于识别任务调度者身份的固定标识,服务器启动需要验证标识是否生成,即节点是否生成节点号,节点号验证成功则进入步骤S203,若节点号验证失败则需创建节点号后进入步骤S203; S202创建节点号:通过获取当前主机的IP地址,使用MD5算法加密,生成一个32位长度的ID号作为节点号; S203预加载扫描器:通过节点号到数据库查找与当前ID所包含的预定义的扫描器相配置的信息,并将上述信息存储于一个静态数组中; S204判断是否加载扫描器:上述步骤中,若数据库中查找不到与当前ID所包含的预定义的扫描器配置信息,则判断节点号未成功绑定扫描器,不能执行扫描任务,需要等待I分钟后返回步骤S203重新预加载扫描器; S205启动任务排队进程和扫描器监听进程,上述步骤S203预加载扫描器成功后,执行本步骤, 所述的任务排队进程的包括如下步骤: S206判断是否有节点号在读取任务:为了防止一个任务同时被多个节点添加的情况,需要锁的机制,即同一时间点,只允许一个节点来获取任务列表,在节点注册表,查询是否有节点的状态为在读状态,且更新时间不超过3分钟,若没有在读状态即全部空闲状态,则进入步骤S207,若有在读状态的节点,就等10秒种之后重新启动任务排队进程; S207设置当前节点状态为在读状态; S208计算扫描器空闲数:通过数据库读的当前节点绑定的扫描器预设的并发数阈值总和减去每个扫描器当前已经启动的进程数总和为节点空闲数即扫描器空闲数,用公式表述为:节点空闲数=Σ绑定扫描器并发数阈值-Σ绑定扫描器活动数; S209读取未执行的扫描任务:从任务列表中按添加时间的先后顺序读取扫描任务,所读取的未执行的扫描任务总数不超过节点当前空闲数; S210为扫描器分配任务:按步骤S208计算的扫描器空闲数中,扫描器空闲进程数最多的优先绑定未执行的扫描任务,同时修改数据库中任务执行状态及扫描器活动进程数;S211修改节点状态为空闲状态:将当前节点状态设置为空闲状态;至此一次任务添加线程结束,等待下一分钟重复循环此操作, 所述的扫描器监听进程的包括如下步骤: S212扫描器监听启动; S213遍历活动扫描器:从节点主进程的步骤S203预加载扫描器获得的扫描器静态数组列表中,每分钟遍历一次活动扫描器信息; S214判断服务监听是否正常:针对上一步骤中遍历读出来的扫描器信息做连接测试,判断服务器监听状态;S215下载扫描器任务列表:成功连接扫描器,并遍历读取当前扫描器的所有任务列表;S216验证任务状态:从扫描器任务列表中读取的任务状态主要包括创建、执行中、完成、暂停和失败,对于状态为完成的任务会触发步骤S218下载结果任务,即下载扫描结果,其它状态则调用步骤S217更新状态,即同步更新数据库中的状态及已经运行所消耗的时间,使数据库中的状态与扫描器一致,至此,一次遍历完成,等待下一分钟的下一次遍历; S219注销扫描器:对于连接测试失败的扫描器,需要在数据库中标识为注销状态,防止节点继续调用此扫描器而出错,并启动步骤S220; S220发邮件通知管理员,终止扫描器监听进程。2.根据权利要求1所述的一种针对网络脆弱性的安犬扫描器集成方法,其特征在于,所述的节点主进程启动任务排队进程和扫描器监听进程并不是同时进行的,扫描器监听进程要在任务排队进程之前启动,目的是验证一下扫描器状态是否正常。3.根据权利要求1所述的一种针对网络脆弱性的安犬扫描器集成方法,其特征在于,步骤S207所述的将当前节点状态设置为在读状态,是指为当前节点加锁,在读状态的节点加锁之后,其它节点无法进入执行任务,就会自动等待。4.根据权利要求1所述的一种针对网络脆弱性的安犬扫描器集成方法,其特征在于,步骤S211所述的将当前节点状态设置为空闲状态是指为当前节点解锁,当前节点解锁后,其它节点被允许进入队列中读取扫描任务。5.根据权利要求1所述的一种针对网络脆弱性的安犬扫描器集成方法,其特征在于,步骤S214中所做的登录测试,测试通过说明扫描器运行正常进入步骤S215,测试不通过说明当前扫描器状态异常不可用,进入步骤S219。
【文档编号】G06F21/57GK106096422SQ201610481390
【公开日】2016年11月9日
【申请日】2016年6月27日
【发明人】颜明华
【申请人】上海柯力士信息安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1