一种适用于云环境的分布式无状态半开扫描方法与流程

文档序号:26003935发布日期:2021-07-23 21:21阅读:183来源:国知局
一种适用于云环境的分布式无状态半开扫描方法与流程

本发明涉及计算机信息安全领域,特别涉及一种适用于云环境的分布式无状态半开扫描方法。



背景技术:

随着互联网的发展,互联网暴露面资产扫描成为企业的必备应用之一。传统扫描方法专注于提升单机环境下资源的利用率,没有考虑云环境多机环境下的解决方案,在特定条件下传统单机扫描方法存在三个问题:1、若资产范围变动需要手动调整。2、现有资源池为多机器环境,传统扫描方法无法充分使用每台机器的资源。3、云环境下云平台会对涉及网络io性能的多个参数限制,特别是扫描行为短时间内会发起大量连接请求,连接数限制很容易成为单机性能瓶颈,造成带宽利用率低的问题。



技术实现要素:

本发明要解决的技术问题是克服现有技术的缺陷,提供一种适用于云环境的分布式无状态半开扫描方法,以解决传统扫描方法在云环境下扩容困难,资源利用率低的问题。

为了解决上述技术问题,本发明提供了如下的技术方案:

本发明提供一种适用于云环境的分布式无状态半开扫描方法,包括以下具体方案:

一、云环境与传统部署方式的不同

云环境是指能够从动态虚拟化的资源池中向用户或者各种应用系统按需提供计算能力、存储能力或者虚拟机服务等的互联网或者大数据环境。扫描器部署在云环境时,由于云环境的特点,存在以下问题:

1、云环境支持资源的动态扩展,弹性伸缩。支持资源动态伸缩,实现基础资源的网络冗余,意味着扫描系统需具备足够的鲁棒性,满足添加、删除、修改云计算环境的任一资源节点,亦或任意资源节点异常宕机,都不会导致云环境下的扫描系统中断。

2、云环境下单台主机支持网络带宽按需分配。由于网络带宽的可能频繁变化,由于资产扫描系统自身的特点,扫描效率与误报率与网络带宽强相关,扫描系统需要能够自动适应每个节点网络环境的变化。

3、云环境下为了保证云租户的安全,在出口处常常默认有网络防火墙,对出口流量做限制。资产扫描行为具备黑客资产探测扫描的特征,可能会被防火墙拦截,资产扫描系统需要考虑防火墙给的限制因素。

二、系统架构

该扫描方法由4个模块组成:

①数据中心:负责维护扫描资产数据和扫描结果数据,生成任务数据发送给控制器;

②控制器:负责接收数据中心下发的任务,并监控计算节点的负载情况,将任务下发给计算节点队列;

③队列:每个计算节点对应一个队列,负责缓存控制器的任务信息;

④计算节点:负责执行扫描任务;由于扫描是网络io密集型工作,性能瓶颈一般在网络io,因此每次执行一个任务即可充分利用网络io资源;任务执行完后,通过回调的形式将扫描结果返回给控制端,由控制端上报给数据中心;

三、控制器

控制器是承载扫描算法的核心,负责执行任务调度算法。通过中心控制节点,解决多机器环境下横向扩容缩容时的任务调度问题,充分利用现有的机器资源;

任务调度算法具体包含以下部分:

①下发任务处理逻辑:控制器通过监控各计算节点的队列数据,确定计算节点的负载;接收到数据中心下发的任务时,控制器会先遍历所有计算节点的队列信息,选择一个任务最少的队列,将任务添加到计算节点队列;

②回调处理逻辑:下发任务时以任务为粒度进行分配,由于每个任务执行时间不同,可能存在任务总执行时间不均的情况,造成计算节点资源不能充分利用,所以需要在每个任务执行完时对所有队列进行一次再分配,将繁忙计算节点的任务取出,下发给空闲计算节点;具体逻辑为:检查触发回调的计算节点队列a,若队列a为空,则遍历其他计算节点队列,若存在待扫描任务数大于2的队列b,将队列b的任务重新分配给队列a;

③扩容:系统在控制端采用配置文件的方式维护计算节点信息,将计算节点部署的url填入配置文件即可添加一个计算节点。

四、计算节点

计算节点需要解决云环境下,如何在保证准确率的前提下,充分利用单台主机性能的问题。

①单机配置:由于扫描是io密集型工作,性能瓶颈一般在网络io,且云环境下网络防火墙会对请求数做限制,单节点配置需要注意:

-单台主机cpu及内存不宜过大,否则由于网络io先到达瓶颈,cpu及内存均无法充分利用;

-网络带宽配置需参考云供应商防火墙对单台主机请求数的限制,计算方法为用单位时间内云供应商防火墙的连接数请求乘tcpsyn包的长度,得到单台主机带宽上限。例如已知tcpsyn包长度为66bytes,若云供应商防火墙限制每分钟1000000次连接请求,则带宽上限为1000000*66/60/1024/1024=1.05mb/s。

②自动调整速率策略:由于无状态半开扫描直接操作网卡捕获处理数据包,不经过完整的系统tcp/ip协议栈处理,因此在网络抖动的情况下无法通过tcp可靠传输的重传机制保证数据包到达被扫描主机。因此需要自动调整网络速率,即拥塞控制,在保证扫描准确率的前提下,充分利用单机扫描的带宽性能。

tcp拥塞控制算法设计为已知丢包的前提下对传输速率的控制,扫描行为无法通过丢包判断网络拥塞情况,因为丢包既可能是因为网络拥塞,也可能是被扫描主机未开启该端口。计算节点采用对比扫描结果的方法判断扫描速率是否匹配主机网络环境限制。

计算节点先以确认未触发主机带宽限制阈值的较慢速率对一个网段进行扫描,记录扫描结果,然后以固定步长提高扫描速率,以第一次扫描结果为基准记录后续每一次扫描准确率。一次速率调整的过程如下表所示:

则计算节点采用速率7000pps执行扫描任务。

与现有技术相比,本发明的有益效果如下:

本方法的核心是调度算法,可充分利用现有服务器资源,并可通过快速配置,实现扫描架构的弹性伸缩,满足扫描架构的性能要求,适应需求的快速变化。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1是本发明的整体方案示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例1

以中国天翼电子商务有限公司安全大脑项目在天翼云部署的端口扫描器为例,技术方案如下:

一、软件架构

①数据中心:数据中心集成在安全大脑的资产发现模块,负责任务的下发和任务结果数据的处理展示。后端采用java+springboot+mysql+jpa编写,前端采用vue+element-ui编写,资产发现模块与部署在天翼云的资产发现扫描器通过http(s)通信,并在天翼云限制请求源ip,以保证请求来源的合法性;

②控制器:负责接收数据中心下发的任务,并监控计算节点的负载情况,将任务下发给计算节点队列,采用python+flask+requests编写,与数据中心、计算节点通过http(s)通信;

③队列:每个计算节点对应一个队列,负责缓存控制器的任务信息;

④计算节点:负责执行扫描任务,采用masscan+python+flask+requests实现;

二、控制器部署

控制器与计算节点需部署在同一网段内,以相互通信。控制节点对外暴露18081端口,接收数据中心下发的任务。控制器需配置计算节点的监听端口信息,并需本机的通信地址信息,下发任务时需将本机通信地址发送给计算节点,作为回调。

三、计算节点部署

天翼云对单台主机(虚拟机)单位时间内请求数有限制,经测算扫描速率约为7000pps,即约3.5mbps时触发防火墙的丢包策略。单台主机硬件配置采用1cpu1g即可满足内存及cpu算力的要求。

计算节点部署在内网,不直接与外网通信,监听端口为18080,计算节点无需配置,每次带宽调整的时候需运行一次扫描速率调整算法,确定该计算节点的扫描速率。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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