CN113157456A - 一种适用于云环境的分布式无状态半开扫描方法 - Google Patents
一种适用于云环境的分布式无状态半开扫描方法 Download PDFInfo
- Publication number
- CN113157456A CN113157456A CN202110460190.5A CN202110460190A CN113157456A CN 113157456 A CN113157456 A CN 113157456A CN 202110460190 A CN202110460190 A CN 202110460190A CN 113157456 A CN113157456 A CN 113157456A
- Authority
- CN
- China
- Prior art keywords
- tasks
- queue
- task
- scanning
- computing node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 230000008859 change Effects 0.000 abstract description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机信息安全领域,本发明公开了一种适用于云环境的分布式无状态半开扫描方法,包括软件架构和任务调度算法。本方法的核心是调度算法,可充分利用现有服务器资源,并可通过快速配置,实现扫描架构的弹性伸缩,满足扫描架构的性能要求,适应需求的快速变化。
Description
技术领域
本发明涉及计算机信息安全领域,特别涉及一种适用于云环境的分布式无状态半开扫描方法。
背景技术
随着互联网的发展,互联网暴露面资产扫描成为企业的必备应用之一。传统扫描方法专注于提升单机环境下资源的利用率,没有考虑云环境多机环境下的解决方案,在特定条件下传统单机扫描方法存在三个问题:1、若资产范围变动需要手动调整。2、现有资源池为多机器环境,传统扫描方法无法充分使用每台机器的资源。3、云环境下云平台会对涉及网络IO性能的多个参数限制,特别是扫描行为短时间内会发起大量连接请求,连接数限制很容易成为单机性能瓶颈,造成带宽利用率低的问题。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种适用于云环境的分布式无状态半开扫描方法,以解决传统扫描方法在云环境下扩容困难,资源利用率低的问题。
为了解决上述技术问题,本发明提供了如下的技术方案:
本发明提供一种适用于云环境的分布式无状态半开扫描方法,包括以下具体方案:
一、云环境与传统部署方式的不同
云环境是指能够从动态虚拟化的资源池中向用户或者各种应用系统按需提供计算能力、存储能力或者虚拟机服务等的互联网或者大数据环境。扫描器部署在云环境时,由于云环境的特点,存在以下问题:
1、云环境支持资源的动态扩展,弹性伸缩。支持资源动态伸缩,实现基础资源的网络冗余,意味着扫描系统需具备足够的鲁棒性,满足添加、删除、修改云计算环境的任一资源节点,亦或任意资源节点异常宕机,都不会导致云环境下的扫描系统中断。
2、云环境下单台主机支持网络带宽按需分配。由于网络带宽的可能频繁变化,由于资产扫描系统自身的特点,扫描效率与误报率与网络带宽强相关,扫描系统需要能够自动适应每个节点网络环境的变化。
3、云环境下为了保证云租户的安全,在出口处常常默认有网络防火墙,对出口流量做限制。资产扫描行为具备黑客资产探测扫描的特征,可能会被防火墙拦截,资产扫描系统需要考虑防火墙给的限制因素。
二、系统架构
该扫描方法由4个模块组成:
①数据中心:负责维护扫描资产数据和扫描结果数据,生成任务数据发送给控制器;
②控制器:负责接收数据中心下发的任务,并监控计算节点的负载情况,将任务下发给计算节点队列;
③队列:每个计算节点对应一个队列,负责缓存控制器的任务信息;
④计算节点:负责执行扫描任务;由于扫描是网络IO密集型工作,性能瓶颈一般在网络IO,因此每次执行一个任务即可充分利用网络IO资源;任务执行完后,通过回调的形式将扫描结果返回给控制端,由控制端上报给数据中心;
三、控制器
控制器是承载扫描算法的核心,负责执行任务调度算法。通过中心控制节点,解决多机器环境下横向扩容缩容时的任务调度问题,充分利用现有的机器资源;
任务调度算法具体包含以下部分:
①下发任务处理逻辑:控制器通过监控各计算节点的队列数据,确定计算节点的负载;接收到数据中心下发的任务时,控制器会先遍历所有计算节点的队列信息,选择一个任务最少的队列,将任务添加到计算节点队列;
②回调处理逻辑:下发任务时以任务为粒度进行分配,由于每个任务执行时间不同,可能存在任务总执行时间不均的情况,造成计算节点资源不能充分利用,所以需要在每个任务执行完时对所有队列进行一次再分配,将繁忙计算节点的任务取出,下发给空闲计算节点;具体逻辑为:检查触发回调的计算节点队列A,若队列A为空,则遍历其他计算节点队列,若存在待扫描任务数大于2的队列B,将队列B的任务重新分配给队列A;
③扩容:系统在控制端采用配置文件的方式维护计算节点信息,将计算节点部署的url填入配置文件即可添加一个计算节点。
四、计算节点
计算节点需要解决云环境下,如何在保证准确率的前提下,充分利用单台主机性能的问题。
①单机配置:由于扫描是IO密集型工作,性能瓶颈一般在网络IO,且云环境下网络防火墙会对请求数做限制,单节点配置需要注意:
-单台主机CPU及内存不宜过大,否则由于网络IO先到达瓶颈,CPU及内存均无法充分利用;
-网络带宽配置需参考云供应商防火墙对单台主机请求数的限制,计算方法为用单位时间内云供应商防火墙的连接数请求乘TCP SYN包的长度,得到单台主机带宽上限。例如已知TCP SYN包长度为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,计算节点无需配置,每次带宽调整的时候需运行一次扫描速率调整算法,确定该计算节点的扫描速率。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种适用于云环境的分布式无状态半开扫描方法,其特征在于,包括以下具体方案:
一、软件架构
该扫描方法由4个模块组成:
①数据中心:负责维护扫描资产数据和扫描结果数据,生成任务数据发送给控制器;
②控制器:负责接收数据中心下发的任务,并监控计算节点的负载情况,将任务下发给计算节点队列;
③队列:每个计算节点对应一个队列,负责缓存控制器的任务信息;
④计算节点:负责执行扫描任务;由于扫描是网络IO密集型工作,性能瓶颈一般在网络IO,因此每次执行一个任务即可充分利用网络IO资源;任务执行完后,通过回调的形式将扫描结果返回给控制端,由控制端上报给数据中心;
二、任务调度算法
控制器是承载扫描算法的核心,负责执行任务调度算法;
具体包含以下部分:
①下发任务处理逻辑:控制器通过监控各计算节点的队列数据,确定计算节点的负载;接收到数据中心下发的任务时,控制器会先遍历所有计算节点的队列信息,选择一个任务最少的队列,将任务添加到计算节点队列;
②回调处理逻辑:下发任务时以任务为粒度进行分配,由于每个任务执行时间不同,可能存在任务总执行时间不均的情况,造成计算节点资源不能充分利用,所以需要在每个任务执行完时对所有队列进行一次再分配,将繁忙计算节点的任务取出,下发给空闲计算节点;具体逻辑为:检查触发回调的计算节点队列A,若队列A为空,则遍历其他计算节点队列,若存在待扫描任务数大于2的队列B,将队列B的任务重新分配给队列A;
③扩容:系统在控制端采用配置文件的方式维护计算节点信息,将计算节点部署的url填入配置文件即可添加一个计算节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110460190.5A CN113157456A (zh) | 2021-04-27 | 2021-04-27 | 一种适用于云环境的分布式无状态半开扫描方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110460190.5A CN113157456A (zh) | 2021-04-27 | 2021-04-27 | 一种适用于云环境的分布式无状态半开扫描方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113157456A true CN113157456A (zh) | 2021-07-23 |
Family
ID=76871537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110460190.5A Pending CN113157456A (zh) | 2021-04-27 | 2021-04-27 | 一种适用于云环境的分布式无状态半开扫描方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157456A (zh) |
-
2021
- 2021-04-27 CN CN202110460190.5A patent/CN113157456A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6600373B2 (ja) | トラフィックディレクタ環境におけるトラフィックのアクティブ−パッシブルーティングおよび制御のためのシステムおよび方法 | |
US11729260B2 (en) | Internet-of-things resource access system and method | |
US11582163B2 (en) | System for early system resource constraint detection and recovery | |
EP3588865B1 (en) | Event ingestion management | |
US9712374B1 (en) | Network services resource management | |
US11303737B2 (en) | Method and device for data transmission | |
CN114125055A (zh) | 多协议自动适配云原生网关系统控制方法、系统、设备及应用 | |
US8539089B2 (en) | System and method for vertical perimeter protection | |
WO2021120633A1 (zh) | 一种负载均衡方法及相关设备 | |
US8051213B2 (en) | Method for server-directed packet forwarding by a network controller based on a packet buffer threshold | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN106936926B (zh) | 访问数据节点的方法及系统 | |
US10608889B2 (en) | High-level interface to analytics engine | |
Zulfiqar et al. | The Slow Path Needs an Accelerator Too! | |
Alvarez et al. | Specializing the network for scatter-gather workloads | |
CN113157456A (zh) | 一种适用于云环境的分布式无状态半开扫描方法 | |
CN214959613U (zh) | 一种负载均衡设备 | |
WO2024056042A1 (zh) | 一种负载均衡处理方法、装置、存储介质及电子装置 | |
CN111090503B (zh) | 一种基于fpga芯片的高性价比云计算服务系统 | |
CN113535329A (zh) | 一种多租户云中虚拟机的部署方法和装置 | |
WO2024129061A1 (en) | Seamless nfs server pod addition | |
CN115361271A (zh) | Ssh服务器切换与连接方法、云端服务器及存储介质 | |
CN115378872A (zh) | 一种流量控制方法、系统、计算机设备及可读存储介质 | |
CN115879561A (zh) | 量子电路任务超时原因确定方法、装置、设备及存储介质 | |
CN113312605A (zh) | 一种数据传输方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210723 |
|
WD01 | Invention patent application deemed withdrawn after publication |