CN110048960A - 带报文应答的分布式流量生成系统 - Google Patents
带报文应答的分布式流量生成系统 Download PDFInfo
- Publication number
- CN110048960A CN110048960A CN201910308535.8A CN201910308535A CN110048960A CN 110048960 A CN110048960 A CN 110048960A CN 201910308535 A CN201910308535 A CN 201910308535A CN 110048960 A CN110048960 A CN 110048960A
- Authority
- CN
- China
- Prior art keywords
- message
- domain
- flow
- data
- variable
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2466—Traffic characterised by specific attributes, e.g. priority or QoS using signalling traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5061—Pools of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明设计了一种带报文应答的分布式流量生成系统,技术涉及分布式网络系统、传输层TCP和UDP协议栈及其应用层协议解析和报文重构,属于计算机与信息科学技术领域。本发明的目的是为解决目前软件流量生成系统无法提供在渗透测试时可供用户定制的流量应答服务,以及现有软件流量生成系统受单机带宽限制而无法为复杂系统提供用于稳定性测试的大带宽背景流量的问题。本发明在使用时用户可使用针对本系统特意构建的多域高级规则匹配模块,对流量生成规则和报文应答规则进行深度自定义,从而使生成的流量具有高度拟真的特性。同时用户可根据不同的网络拓扑结构部署分布式流量出口,从而可以使生成的流量尽可能充满所有的子网,全面测试网络系统的稳定性和安全性。
Description
技术领域
本发明设计了一种带报文应答的分布书流量生成系统,技术涉及分布式网络系统和传输层TCP和UDP协议栈及其应用层协议解析和报文重构,属于计算机与信息科学技术领域。
背景技术
随着网络技术的快速发展,给我们的工作和生活带来了方便,但是随着提供的服务越来越复杂,网络系统的复杂度也随之提升。复杂的网络系统给我们提供便捷服务的同时,其内部不稳定性也随系统复杂性的提升而增加。这就为系统上线前的稳定性测试和渗透测试带来挑战。目前为止,为了测试系统安全性而使用软件流量生成器只能回放事先录制好的报文捕获文件或回放实现预制的报文内容,面对需要进行多步通信的复杂协议时无法实现生成完全拟真流量,因此不能准确评估系统上线生产环境后的安全性。同时当前的软件流量生成器只是采用单机部署的形式,发送的流量上限受限于单机的出口带宽,尤其是目前中国宽带普遍采用的非对称式宽带,上传速度远小于下载速度。因此单机式流量生成器无法满足日益复杂的网络系统稳定性测试对于高负载流量模拟的要求。因此,本发明将提供一个基于高级规则匹配功能的报文应答服务的分布式流量生成系统,通过灵活的报文应答服务来适应日益复杂的网络协议和网络环境对渗透测试的要求,通过分布式的流量出口来突破单机带宽限制,来满足复杂网络系统对于稳定性测试的高负载要求。
发明内容
本发明的目的是为了解决目前软件流量生成系统无法提供在渗透测试时可供用户定制的流量应答服务,以及现有流量生成系统受单机带宽限制无法为复杂系统提供用于稳定性测试的大带宽背景流量的问题。
本发明的设计原理是:基于高级规则匹配的报文应答服务支持用户通过收到的报文的不同字段或有效载荷来制定下一个(组)封包的协议字段、协议有效载荷的内容、发送延迟等内容,从而生成一系列高度可定制化的报文对话策略。分布式流量出口子系统主要负责发送由主系统分配的流量发送任务队列中的流量。流量出口子系统和主系统通过一种基于UDP的自定义协议进行通信。
本发明的技术方案是通过如下步骤实现的:
步骤1,启动主系统并导入必要的启动参数
步骤1.1,导入用户自定义的应答规则
步骤1.2,导入目标主机IP池
步骤1.3,导入流量出口子系统IP
步骤2,部署流量出口子系统
步骤2.1,开启物理网卡的混杂模式
步骤2.2,安装专用的虚拟网卡驱动
步骤2.3,使用专用的脚本配置配置iptables
步骤2.4,安装并启动出口流量子系统
步骤2.5,导入每个子系统负责的网段
步骤2.6,连接主系统准备从主系统同步流量应答策略和流量发送队列
步骤3,在主系统配置流量生成规则
步骤3.1,选择激活的流量出口
步骤3.2,选择每个流量出口的流量大小
步骤3.3,选择每个流量出口的流量生成和应答策略
步骤4,从主系统选择开始生成流量
有益效果
相比于一般的单机式软件流量生成系统,本发明具有高度可定制化的报文应答服务,可以适应各种复杂协议和网络系统,同时可以产生完全拟真真实生产环境下的流量。另外分布式的多流量出口的机制可以突破单机流量带宽限制,从而可以使流量尽可能充满复杂网络系统中的每一条支路上。
附图说明
图1为主系统和流量出口子系统之间通信的私有协议各字段说明。
具体实施方式
为了更好的说明本发明的目的和优点,下面结合实例对本发明的实施方法做进一步详细说明。
具体流程为:
步骤1,启动主系统并导入必要的启动参数
步骤1.1,导入用户自定义的应答规则。在这里本发明定义了一种报文应答规则手动生成方法,方法包含报文切片、报文组链两步组成,所谓报文切片就是指根据不同的规则将整个报文切分为多个有意义的字符串,方便后续对报文内容进行判断。报文组链就是根据报文的具体内容,将报文数据组成一个链式数据结构,系统收到相应的报文后会到报文链上查找该报文的下一链节点,并将根据该节点上的信息组成一个或一组报文作为答复发出。
方法具体如下:
对于报文切片提供三种模式。第一种模式是数据匹配:定义字段开始和结束的特征字符串或二进制,通过特征数据对报文进行切片。第二种模式是下标切分,给定切分点数据在整个报文数据中的下标值对数据报文进行切片。第三种切分方式为智能切片,可以根据不同的协议,针对协议字段对数据报文进行切分。
对于内容判断和报文组链,这里定义了四种不同的变量域,从上到下分别为全局域(global)、会话域(session)、报文域(message)和片段域(slice),不同域的变量所承担的工作不同,某一个低级域的所有变量从属于高一级的某个变量。此处的变量的数据组织形式类似于C++语言中的类,其内可能含有多个成员变量和成员方法。
对于片段域,主要对应上一步报文切片这种粒度的数据进行操作,即对各字段、各切片二进制数据进行操作。片段域变量主要用于直接参与存储、判断报文源二进制数据片段的内容,并将结果传递给高一级域变量(报文域),作为未来组链的判断依据。
报文域变量主要用于存储单个报文数据、参与对数据进行切片操作、保存从片段域传来的数据、对报文整体特征数据进行判断以及生成保存用户自定义内容的报文数据。报文域主要对单个报文这种粒度的数据进行操作,报文域变量还参与对报文长度、报文接收时间等报文外部特征数据进行判断,并将结果传递给高一级域变量(会话域),作为未来组链的判断依据。
会话域主要用于对单个TCP会话或UDP报文组进行操作,会话域中的变量储存着一次TCP会话或UDP报文组的数据,以及各个报文的上下衔接关系,即决定接受到某个报文后发送特定的报文,这里称这种带有报文数据和上下衔接关系的数据类型为会话支路链,其是报文应答策略的其中一个支路。会话支路链接组链发生在会话域,即在会话域根据低级域传递的数据作为依据,根据用户自定义的各种规则将报文域数据变量组成链状数据结构,并保存在一个会话域变量中。会话域中的某些同样参与到会话支路链接中,会话或报文组中的某种报文出现顺序、数量和频率等统计学特征也可以作为判断会话链接组链的依据。
全局域变量保存着一个完整的报文应答策略,每一个完整的报文应答策略都由若干条支路组成,即全局域变量下属多个会话域变量。在全局域进行的是对会话支路链的操作,将几个会话支路链组合成一个会话支路网,或将几个会话支路链(网)组成一个完整的报文应答策略。
规则定义完成后系统将储存有报文应答规则的全局域变量格式化存储在数据库中。
步骤1.2,导入目标主机IP池,即需要对其提供流量服务的目标主机IP地址、端口号。
步骤1.3,导入流量出口子系统IP,将所有出口流量子系统的IP登记在主系统的数据库中,为之后数据和策略同步做准备。
步骤2,部署流量出口子系统,流量出口子系统已经封装为Docker,如果在不支持Docker的环境中部署,可遵循如下子步骤。如环境中允许部署Docker则跳过步骤2的所有子步骤,直接运行命令“$docker run-d-p10000:10000breach”即可完成流量出口子系统的部署。
步骤2.1,开启物理网卡混杂模式,由于本发明的其中一个目的是模拟真实的业务流量,因此生成的流量不能采用同一个IP发出,开启混杂模式是为了将发往出口流量子系统模拟主机的报文截取下来进行进一步分析。物理网卡混杂模式可以使用“$sudoifconfig eth1promisc”命令开启。
步骤2.2,安装专用虚拟网卡驱动,为了避免生成的流量干扰出口流量子系统和主系统之间的通信,因此所有生成流量均由虚拟网卡发出。由于Linux系统内核限制,不允许程序跳过内核控制而建立TCP连接,否则系统会发送RST数据包关闭连接。但在渗透测试中,TCP半连接是一种非常常用的主机运行状态检测方法,使用原生网卡驱动无法实现此功能。因此本发明包含一个新的内核网卡驱动可以直接将单个TCP数据包写入网卡缓存中。此网卡驱动原理是将网卡的缓存映射到系统内存中,并且包含一个常驻进程,实时同步系统内存和网卡缓存。安装此驱动后,运行在非内核态的流量出口子系统就可以越过内核对网卡进行操控。
步骤2.3,使用专用脚本配置iptables,首先使用命令“$echo 1>/proc/sys/net/ipv4/ip_forward”开启linux的ipv4转发(默认关闭),运行专用脚本,即配置iptables的net表将来自虚拟网卡的所有流量转发到本机的10000端口上。
步骤2.4,编译流量出口子系统的代码,并使用sudo命令运行流量出口子系统。子系统运行后会自动和主系统通信,待主系统配置完毕后同步应答策略和报文发送队列。然后等待主系统开始命令。主系统和子系统之间使用本发明设计的一种基于UDP协议的专用协议,协议各字段规则如附图1所示。
步骤3,在主系统配置流量生成规则
步骤3.1,选择激活的流量出口,即选择那些流量出口子系统被激活开始发送生成流量。
步骤3.2,选择每个流量出口的流量大小,上限为每个子系统的物理网络带宽上限。默认为最大流量输出。
步骤3.3选择每个流量出口的流量生成和应答规则,根据步骤1.2中的IP和端口号,为每一个流量出口设定其流量应答策略和并生成流量发送队列。
步骤4,从主系统选择开始生成流量,主系统和流量出口子系统通过本发明所设计的专有协议通信,待同步完成后,流量生成开始。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.带报文应答的分布式流量生成系统,其特征在于所述方法包括如下步骤:
步骤1,用户使用基于四个变量域的报文切分和报文应答策略制定方法自定义其专有的报文应答策略,并导入其他参数;
步骤2,部署流量出口子系统,其中步骤2.2使用了一个独创的将网卡缓存映射到系统内存并实时同步的网卡驱动程序,步骤2.4中使用了一个私有协议进行主从系统之间的通信;
步骤3,使用了一主多从的分布式流量出口方法部署流量;
步骤4,主从系统通信使用了一个基于UDP的私有协议进行通信。
2.根据权利要求1所述的带应答功能的分布式流量生成系统,其特征在于:步骤1中一种基于四个变量域的报文切分和报文应答策略制定方法,对于报文切片方法:提供三种报文切片方法,分别为特征数据匹配、下标切片和基于协议的智能切片;对于报文应答策略:步骤1定义了四个变量域,这四个变量域具有从属关系;低级域从属于高一级域的某个变量,每个域所操作的数据粒度从低到高依次增大;切片域保存和操作报文切片;报文域保存和操作某个报文的数据和外部特征,并保存该报文的切片域全部变量,同时也可在报文域生成新的自定义报文;会话域保存一组报文域变量,并通过一定的规则将报文域报文域变量链接成链式数据结构;全局域操作会话域的多条支路,将其组合成支路网,从而形成一个完整的报文应答策略。
3.根据权利要求1所述的带应答功能的分布式流量生成系统,其特征在于:步骤2中的步骤2.2,实现了一个跳过内核监管对网卡进行操作的网卡驱动程序,该驱动程序建立了一个虚拟网卡,将物理网卡的缓存映射到系统内存的某区域,并实时同步网卡缓存和系统内存中的数据,从而使流量出口可以正常发送例如TCP半连接等非常规的流量。
4.根据权利要求1所述的带应答功能的分布式流量生成系统,其特征在于:步骤3使用一主多从的分布式流量出口,主系统负责流量分析、应答策略生成、流量生成并管理各流量出口子系统;流量出口子系统负责特定网段的流量生成和报文应答服务。
5.根据权利要求1所述的带应答功能的分布式流量生成系统,其特征在于:步骤2中的步骤2.4和步骤4,使用了一个基于UDP的主从通信私有协议进行主从系统通信。该协议工作在应用层,传输的数据每8bit一组,其中第1组为功能性数据,第1组第1位用于指示此报文传输的命令还是数据,第1组第2位到第8位指示改报文与其他报文的前后次序关系,即序列码;之后每组的前7位为数据,第8位为奇偶校验位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910308535.8A CN110048960B (zh) | 2019-04-17 | 2019-04-17 | 带报文应答的分布式流量生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910308535.8A CN110048960B (zh) | 2019-04-17 | 2019-04-17 | 带报文应答的分布式流量生成系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110048960A true CN110048960A (zh) | 2019-07-23 |
CN110048960B CN110048960B (zh) | 2021-03-30 |
Family
ID=67277567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910308535.8A Expired - Fee Related CN110048960B (zh) | 2019-04-17 | 2019-04-17 | 带报文应答的分布式流量生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110048960B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139165A (zh) * | 2011-11-30 | 2013-06-05 | 中国民航大学 | 针对acars数据链的实体伪装攻击渗透测试方法 |
CN104869081A (zh) * | 2015-05-29 | 2015-08-26 | 华为技术有限公司 | 报文交换处理方法、业务板及网络交换系统 |
CN105871739A (zh) * | 2016-06-17 | 2016-08-17 | 华为技术有限公司 | 一种处理报文的方法及计算设备 |
CN106302859A (zh) * | 2016-09-09 | 2017-01-04 | 中国互联网络信息中心 | 一种dnssec否定应答的响应及处理方法 |
US10038711B1 (en) * | 2017-01-30 | 2018-07-31 | XM Ltd. | Penetration testing of a networked system |
CN108874675A (zh) * | 2018-06-25 | 2018-11-23 | 中国电子技术标准化研究院 | 一种基于字段分类的fuzzing测试用例生成方法 |
US10218735B2 (en) * | 2015-06-30 | 2019-02-26 | The Mitre Corporation | Network attack simulation systems and methods |
-
2019
- 2019-04-17 CN CN201910308535.8A patent/CN110048960B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103139165A (zh) * | 2011-11-30 | 2013-06-05 | 中国民航大学 | 针对acars数据链的实体伪装攻击渗透测试方法 |
CN104869081A (zh) * | 2015-05-29 | 2015-08-26 | 华为技术有限公司 | 报文交换处理方法、业务板及网络交换系统 |
US10218735B2 (en) * | 2015-06-30 | 2019-02-26 | The Mitre Corporation | Network attack simulation systems and methods |
CN105871739A (zh) * | 2016-06-17 | 2016-08-17 | 华为技术有限公司 | 一种处理报文的方法及计算设备 |
CN106302859A (zh) * | 2016-09-09 | 2017-01-04 | 中国互联网络信息中心 | 一种dnssec否定应答的响应及处理方法 |
US10038711B1 (en) * | 2017-01-30 | 2018-07-31 | XM Ltd. | Penetration testing of a networked system |
CN108874675A (zh) * | 2018-06-25 | 2018-11-23 | 中国电子技术标准化研究院 | 一种基于字段分类的fuzzing测试用例生成方法 |
Non-Patent Citations (4)
Title |
---|
BRAD C. JOHNSON: "Internet Penetration Testing:A Seasoned Perspective", 《SYSTEM EXPERTS》 * |
崔颖,章丽娟,吴灏: "基于攻击图的渗透测试方案自动生成方法", 《计算机应用》 * |
李楠: "基于渗透测试的信息安全测评方法研究与应用", 《中国优秀硕士学位论文全文数据库》 * |
邵奇峰,李枫: "基于Android 的无线渗透测试平台的设计", 《互联网天地》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110048960B (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100471139C (zh) | 一种网络测试的系统和方法 | |
CN104079492B (zh) | 一种OpenFlow网络中流表配置的方法、装置和系统 | |
CN105721318B (zh) | 一种软件定义网络sdn中发现网络拓扑的方法和装置 | |
US20130305091A1 (en) | Drag and drop network topology editor for generating network test configurations | |
CN101626383A (zh) | 一种航空电信网的路由测试方法及路由器虚拟机 | |
Koubâa et al. | A vision of cyber-physical internet | |
US20040240440A1 (en) | Virtual network addresses | |
CN106815112A (zh) | 一种基于深度包检测的海量数据监控系统及方法 | |
CN100486182C (zh) | 网络测试设备、系统及方法 | |
CN106712988A (zh) | 一种虚拟网络管理方法及装置 | |
CN102780779A (zh) | 一种园区网出口p2p流量优化方法、装置及网关设备 | |
CN110086640A (zh) | 业务使能的方法和装置 | |
CN108259642A (zh) | 基于私有云的公共服务虚拟机访问方法和装置 | |
CN101202700B (zh) | 一种点对点文件共享的流量控制方法、装置及系统 | |
CN106550241A (zh) | 视频业务识别系统及虚拟化部署方法 | |
EP1213875A2 (en) | Network node emulator and method of node emulation | |
Suresh et al. | ns-3-click: click modular router integration for ns-3 | |
CN110048960A (zh) | 带报文应答的分布式流量生成系统 | |
CN103634290B (zh) | 网络仿真系统 | |
CN103117880A (zh) | 一种基于Web技术的网络拓扑图生成方法 | |
Adjardjah et al. | Performance Evaluation of VoIP Analysis and Simulation | |
CN102104503B (zh) | 一种网络的传输流量仿真方法及设备 | |
CN110445691A (zh) | 定制与回放相结合的网络业务传输性能测试方法和装置 | |
Baldesi et al. | Improving P2P streaming in community-lab through local strategies | |
Sumadi et al. | Semi-reactive switch based proxy arp in sdn |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210330 |
|
CF01 | Termination of patent right due to non-payment of annual fee |