CN116684390A - 基于跨内核异步收发的IPv6地址快速扫描方法及系统 - Google Patents
基于跨内核异步收发的IPv6地址快速扫描方法及系统 Download PDFInfo
- Publication number
- CN116684390A CN116684390A CN202310598150.6A CN202310598150A CN116684390A CN 116684390 A CN116684390 A CN 116684390A CN 202310598150 A CN202310598150 A CN 202310598150A CN 116684390 A CN116684390 A CN 116684390A
- Authority
- CN
- China
- Prior art keywords
- data packet
- scanning
- packet
- ipv6 address
- detection
- 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
Abstract
本发明涉及互联网技术领域,特别涉及一种基于跨内核异步收发的IPv6地址快速扫描方法及系统,依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;解析应答数据包并获取存活的IPv6地址。本发明针对现有IPv6地址扫描存在的扫描速度慢等问题,在基于跨内核异步收发的IPv6地址快速扫描中绕过Linux内核协议栈,直接在用户空间和网卡之间进行数据包的异步收发,实现IPv6地址快速探测需求。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种基于跨内核异步收发的IPv6地址快速扫描方法及系统。
背景技术
近年来,随着越来越多的网络和终端主机支持IPv6网络,IPv6布局发生了巨大变化。为了实现IPv6网络地址扫描的目标,IPv6地址扫描技术已经逐步发展起来。由于IPv4地址长度仅为32位,对IPv4地址的扫描非常容易。而IPv6地址长度为128位,长度是IPv4地址的4倍之多,地址扫描难度呈指数级增长,无法通过IPv4地址扫描的方式来展开遍历式扫描。为有效降低IPv6地址搜索空间,目前IPv6地址扫描主流思路是基于种子地址进行地址预测和目标地址生成。通过挖掘已分配IPv6地址的内在规律,利用机器算法、深度学习模型和图论等数学方法生成可能存活的IPv6预测地址集。该集合中的地址数相较整个IPv6地址空间而言大大降低,因此有效的降低了IPv6地址探测空间,进而可大大提升IPv6存活地址发现效率。然而,现有的IPv6目标地址生成算法存在预测准确率低、漏扫率高等问题。
在成功生成IPv6预测地址集之后,需要对这些IPv6地址进行存活性验证。目前主流使用的存活性验证技术只有Zmapv6。除了Masscan、Xmap、Scan6这3款IPv6遍历式地址扫描技术,Zmapv6也是其中之一。IPv6网络的巨大地址空间使得穷举探测不再可能。例如,在万兆链路上,使用Zmapv6扫描64位前缀范围下的所有IPv6地址至少需要上百万年的时间,这显然是无法接受的。此外,这些扫描技术都是基于内核态实现而来,在不提升网卡性能和网络链路带宽的情况下,很难以明显提升速度发送和接收探测包,这些都成为IPv6网络扫描速度难以提升的主要障碍。
通过对现有Masscan、Scan6、Zmapv6和Xmap这4种IPv6地址扫描技术从所支持的扫描方式和数据包收发方式等角度进行分析。这4种IPv6地址扫描工具都采用都是基于应用态进行改进,需要通过传统基于内核的数据包处理方式完成数据包的收发。当处理IPv6地址扫描所产生的大规模数据包时,传统的基于内核的报文处理方式会使用中断将数据包分发到内核,这会导致频繁的中断和性能开销。而且,当内核处理完数据包后,还需要将数据包拷贝到用户层,这也会对性能产生负面影响。因此这些问题成为了处理IPv6地址扫描产生的大规模数据包所面临的挑战。
发明内容
为此,本发明提供一种基于跨内核异步收发的IPv6地址快速扫描方法及系统,解决现有IPv6地址扫描速度慢的问题,实现IPv6地址快速探测需求。
按照本发明所提供的设计方案,提供一种基于跨内核异步收发的IPv6地址快速扫描方法,包含:
依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;
绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;
解析应答数据包并获取存活的IPv6地址。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测包,包含:
首先,根据用户输入确定扫描任务所需生成探测类型、目的IPv6地址和端口,并通过邻居发现协议NDP获取默认网关的MAC地址;
然后,将扫描主机的IPv6地址和MAC地址作为源地址信息,目标IPv6地址和默认网关的MAC地址作为目标地址信息,并根据探测类型生成相应的探测数据包。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,根据探测类型生成相应的探测数据包时,若探测类型为ICMPv6,则构造ICMPv6回显请求探测包,若探测类型为TCP,则构造TCP_SYN探测包,若探测类型为UDP,则构造UDP探测包。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包,包含:利用数据平面开发套件DPDK、用户空间I/O和轮询模式驱动通过独立线程在用户态和网卡设备之间直接交互数据包。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,通过独立线程在用户态和网卡设备之间直接交互数据包,包含:
首先,针对探测数据包,通过调用DPDK库函数初始化环境抽象层和网卡设备驱动,并设置网卡设备参数,所述网卡设备参数包含MTU、MAC地址和IP地址;
然后,创建内存池,为每个应答数据包分配内存;并利用DPDK库的接口函数将应答数据包直接放入发送队列中,等待网卡发送。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,解析应答数据包并获取存活的IPv6地址,还包含:依据解析结果验证所述应答数据包是否属于当前扫描任务。
作为本发明基于跨内核异步收发的IPv6地址快速扫描方法,进一步地,依据解析结果验证所述应答数据包是否属于当前扫描任务,包含:提取应答数据包下一报头字段信息,依据该字段信息判断应答数据包类型,若应答数据包类型为UDP或TCP,则依次验证应答和探测数据包长度是否相同、源端口和探测目的端口是否一致,若应答数据包类型为ICMPv6回显请求,则验证应答和探测数据包长度是否相同,依据验证结果来判断应答数据包是否属于当前扫描任务引发的响应。
进一步地,本发明还提供一种基于跨内核异步收发的IPv6地址快速扫描系统,包含:探测包构造模块、探测包收发模块和应答包解析模块,其中,
探测包构造模块,用于依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;
探测包收发模块,用于绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;
应答包解析模块,用于解析应答数据包并获取存活的IPv6地址。
本发明的有益效果:
本发明针对现有IPv6地址扫描存在的扫描速度慢等问题,在基于跨内核异步收发的IPv6地址快速扫描中绕过Linux内核协议栈,直接在用户空间和网卡之间进行数据包的异步收发;并进一步提供专门用于IPv6地址快速扫描工具DScan6,从Rapid7、Hitlist等5个数据来源收集到2690万个IPv6地址作为目标地址集,其中包括客户端、路由器和服务器,并随机选择了一个/64前缀的目标地址段,通过实验对比DScan6和Masscan、Scan6、XMap、Zmapv6这4种现有扫描工具的数据包收发速率,DScan6达到千兆以太网链路理论最大速度的99.3%,比现有扫描工具快2.1~3.4倍;另外,对DScan6还获到373.7k个存活的IPv6地址,并可进一步分析来获取这些IPv6地址所属的国家、国家互联网服务提供商以及接口标识符类型和网卡设备制造商,便于在网络精准治理、网络态势分析和网络安全管理中的应用。
附图说明:
图1为实施例中基于跨内核异步收发的IPv6地址快速扫描流程示意;
图2为实施例中同步和异步收发流程示意;
图3为实施例中探测包构造流程示意;
图4为实施例中应答包验证流程示意;
图5为实施例中DScan6扫描工具架构示意;
图6为实施例中数据包收发架构示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
网络资产发现是网络精准治理、网络态势分析和网络安全管理的重要支撑。作为全球公认的下一代互联网解决方案,IPv6全球部署率已超过35%,我国IPv6网络正在由“通路”走向“通车”。现有网络资产发现技术能够在6分钟内对整个32位IPv4地址空间完成扫描,然而由于IPv6地址具有空间巨大、分布稀疏、单点多址、地址易变等特点,当前遍历式地址扫描方式扫描速度慢,难以满足IPv6地址快速探测需求。为此,本发明实施例中,参见图1所示,提供一种基于跨内核异步收发的IPv6地址快速扫描方法,包含:
S101、依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包。
S102、绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包。
S103、解析应答数据包并获取存活的IPv6地址。
通过对现有IPv6预测地址集使用的存活性验证技术进行汇总分析,具体如表1所示。
表1现有预测算法IPv6预测地址存活性验证技术汇总
目前主流使用的存活性验证技术只有Zmapv6,且使用的扫描方法主要是ICMPv6回显请求方式。对现有Masscan、Scan6、Zmapv6和Xmap这4种IPv6地址扫描技术从所支持的扫描方式和数据包收发方式等角度进行分析,如表2所示。
表2现有扫描工具汇总
√:代表支持这种类型,×:代表不支持这种类型
只有Xmap和Zmapv6支持ICMPv6回显请求扫描、TCP_SYN扫描和UDP扫描这3种主流扫描方式,而其他(如Masscan)只支持TCP_SYN扫描和UDP扫描这2种方式,以及Scan6只支持ICMPv6回显请求扫描这1种方式。其中,提供ICMPv6回显请求扫描和TCP_SYN扫描方式所构造的ICMPv6回显请求和TCP_SYN探测包相同;而提供UDP扫描方式的Masscan、Xmap和Zmapv6扫描工具由于发送的UDP消息字段内容不同,从而生成不同大小的UDP探测包。
同步收发是指在数据传输过程中发送方和接收方的时钟同步,以便确保数据传输的准确性和完整性。在同步传输中,发送方发送数据后会一直等待接收方的响应,只有接收方确认接收到数据后,发送方才会继续发送下一条数据。而异步收发则是在数据传输过程中,发送方发送数据后会立即继续发送下一条数据,而不需要等待接收方的响应。接收方会在接收到数据后自动处理,不需要发送任何确认消息。如图2所示,和同步方式相比,异步收发可以实现更高吞吐量的数据传输,且更加灵活。除了Scan6采用同步数据包收发方式外,其他3种技术均采用更为高效的异步收发方式。
为了实现更快速的IPv6地址扫描,通过将目前应对大规模数据包处理需求所提出的高性能网络报文处理框架进行对比分析。数据平面开发套件(Data Plane DevelopmentKit,DPDK)作为高性能网络报文处理框架之一,采用全用户态驱动,放弃了内核中断,并提供了高效的内存管理机制,使用直接内存存取(Direct Memory Access,DMA)来传输报文到用户态进行处理,从而减少拷贝次数、减少上下文切换。此外,市面上常用的高性能网络报文处理框架,如Netmap、Snap和PF_RING,也具有与DPDK相似的技术特点,技术特征比较如表3所示。
表3基于跨内核的高性能网络报文处理框架特征对比
√:代表支持该技术,×:代表不支持该技术
通过对上述4种主流的高性能网络报文处理框架进行对比分析,可以看出DPDK框架能够实现真正意义上的零拷贝全用户态数据处理,因此,本案实施例中,可考虑采用基于DPDK实现跨内核异步收发的IPv6地址快速扫描,利用数据平面开发套件DPDK、用户空间I/O和轮询模式驱动绕过内核空间,通过独立线程在用户态和网卡设备之间直接进行数据包交互。
作为优选实施例,进一步地,依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测包,可设计为包含如下步骤:
首先,根据用户输入确定扫描任务所需生成探测类型、目的IPv6地址和端口,并通过邻居发现协议NDP获取默认网关的MAC地址;
然后,将扫描主机的IPv6地址和MAC地址作为源地址信息,目标IPv6地址和默认网关的MAC地址作为目标地址信息,并根据探测类型生成相应的探测数据包。
其中,根据探测类型生成相应的探测数据包时,若探测类型为ICMPv6,则构造ICMPv6回显请求探测包,若探测类型为TCP,则构造TCP_SYN探测包,若探测类型为UDP,则构造UDP探测包。
参见图3所示,提供目前主流的三种地址扫描方式探测包的构造,包括ICMPv6回显请求、TCP_SYN和UDP扫描方式。探测包构造过程中,根据用户的输入信息确定要生成的探测类型、目的IPv6地址和端口等字段信息的值,另外通过邻居发现NDP协议获取默认网关的MAC地址。将扫描主机的IPv6地址和MAC地址作为源地址信息,目标地址IPv6地址和默认网关的MAC地址作为目标信息,并根据用户指定的探测类型生成相应的探测数据包。
进一步地,通过独立线程在用户态和网卡设备之间直接交互数据包中,针对探测数据包,通过调用DPDK库函数初始化环境抽象层和网卡设备驱动,并设置网卡设备参数,所述网卡设备参数包含MTU、MAC地址和IP地址;创建内存池,为每个应答数据包分配内存;并利用DPDK库的接口函数将应答数据包直接放入发送队列中,等待网卡发送。
利用DPDK技术从用户态直接发送到网卡硬件设备,并将应答数据包直接从网卡传送到用户层的DPDK应用程序作进一步解析。具体实现过程如表4所示。
表4探测包发送和接收函数细节
解析应答数据包并获取存活的IPv6地址时,并依据解析结果验证所述应答数据包是否属于当前扫描任务。参见图4所示,具体为:提取应答数据包下一报头字段信息,依据该字段信息判断应答数据包类型,若应答数据包类型为UDP或TCP,则依次验证应答和探测数据包长度是否相同、源端口和探测目的端口是否一致,若应答数据包类型为ICMPv6回显请求,则验证应答和探测数据包长度是否相同,依据验证结果来判断应答数据包是否属于当前扫描任务引发的响应。
应答包验证主要工作是为了判断从网卡接收到的数据流量包是否属于本次扫描任务范围,防止由于背景流量导致的虚假响应数据包的错误报告,以及由以前的扫描而引发的响应。
进一步地,基于上述的方法,本发明实施例还提供一种基于跨内核异步收发的IPv6地址快速扫描系统,包含:探测包构造模块、探测包收发模块和应答包解析模块,其中,
探测包构造模块,用于依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;
探测包收发模块,用于绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;
应答包解析模块,用于解析应答数据包并获取存活的IPv6地址。
解析用户通过命令行输入的参数信息,获取扫描任务所需的相关配置信息,如目标地址范围或文件,以及扫描类型等信息;接着按照用户指定的地址扫描类型和地址范围这些信息构造相应地址扫描方式的探测数据包;然后利用数据平面开发套件DPDK技术快速收发探测包;最后,从收到的应答数据包中解析到存活IPv6地址。
在方案可行性分析基础上,本案实施例还给出具体实现工具DScan6,参见图5所示,分为探测报文生成策略、跨内核异步发送时序、基于跨内核的响应数据包异步接收与验证3大模块,其中探测报文生成策略模块主要根据输入IPv6地址和端口构造探测数据包,基于跨内核的探测包异步发送模块采用异步发送方式将探测包从用户空间直接拷贝至网卡设备,基于跨内核的响应数据包异步接收与验证模块负责以异步的方式将回应数据包直接从网卡拷贝至用户空间,进而完成对数据包是否为合法回应包的验证。
探测报文生成模块负责构建IPv6用户态协议栈,生成以太网数据帧。在对现有IPv6地址扫描工具所支持的扫描方式分析基础上,本模块使用ICMPv6回显请求扫描、TCP_SYN扫描和UDP扫描3种主流扫描方式。
通过解析输入而获得的探测类型和目的IPv6地址,以及默认网关的MAC地址,使用发送方主机的MAC和IPv6地址以及随机生成的端口信息作为源信息。根据这些信息,生成相应的探测报文,如表5中的算法1所示。
表5地址存活性探测包生成算法
DScan6使用DPDK技术绕过Linux内核,利用用户空间I/O(Userspace I/O,UIO)和轮询模式驱动(Pool Mode Driver,PMD)技术,实现在不中断中央处理单元(CentralProcessing Unit,CPU)的情况下网卡和用户态应用程序直接交互数据包,从而在用户态进行数据包发送和接收处理,进而完成IPv6地址的快速扫描,如图6所示。
DScan6在独立的线程上发送和接收数据包,这些线程在整个扫描过程中独立而连续地工作,并确保接收器在发送探针之前被初始化。数据包发送模块负责初始化DPDK,并通过DPDK的发送数据包接口将算法1产生的探测数据包直接传输到网卡,如表6中的算法2所示。
表6跨内核探测报文异步发送算法
发送器的发送任务完成后,接收器继续运行一段时间(5秒),以处理任何延迟的响应。数据包接收和验证模块需要验证数据包长度、探测类型、源端口和目的端口,以确定收到的数据包是否是对来自目标或其他背景流量探测的有效响应,如表7中的算法3所示。这些低成本的检查可以防止由于背景流量导致的虚假响应数据包的错误报告,以及由以前的扫描而引发的响应。
表7跨内核应答报文异步接收与有效性验证算法
为验证本案方案有效性,下面结合试验数据做进一步解释说明:
从Rapid7、Hitlist等多个公开数据源收集IPv6地址作为目标地址集,并随机选择一个/64前缀作为目标地址段,通过比较DScan6与Masscan、Scan6、XMap和Zmapv6的探测包收发速度。并根据DScan6在测试过程中扫描到的存活IPv6地址,对这些存活地址做进一步的安全相关分析,包括IPv6地址类型、所属的国家和互联网服务商。
1、目标地址收集
表8目标IPv6地址概览
在近一个月的时间内,从多个公开的数据来源中收集了总共2690多万个IPv6地址,这些数据来源是公开的,任何人都可以免费使用。为了力求资源的平衡,包括服务器、路由器和少量的客户端。利用的数据来源如下,在表8表中提供了这些地址来源的概况:
(1)Rapid7:该数据集包含了Rapid7的Sonar项目所知的所有正向DNS名称(FDNS)的DNS请求响应,通过该数据集共收集到1500万个IPv6地址。
(2)Bitnodes:该数据集通过使用Bitnodes应用程序编程接口(ApplicationProgramming Interface,API)来收集通比特币点对点网络中所有可达节点,通过该数据集共收集到33000个客户端IPv6地址。
(3)RIPE Atlas:通过提取RIPE Atlas traceroutes中发现的所有IPv6地址,以及RIPE的ipmap项目中的所有IPv6地址,共收集95000个路由器IPv6地址。
(4)I8:由Alexa国家列表,各种Zonefiles(如.com、.net、.org和其他各种文件)的日常DNS AAAA解析,以及CAIDA(Cooperative Association for Internet DataAnalysis,互联网数据分析合作协会)的DNS名称数据集中收集的IPv6地址组成,通过该数据集共收集到0.2M服务器IPv6地址。
(5)Hitlist:该数据集从多个渠道收集IPv6地址,包括DNS AAAA解析、traceroutes和证书透明度(Certificate Transparency,CT)日志。此外,定期更新其输入并测试地址的响应性。通过该数据集共收集到1160万个IPv6地址。
2、地址扫描行为约束
考虑高速互联网范围内扫描对源和目标网络的影响。在整个研究过程中,按照网络测量研究的行为惯例行事,包括最佳实践和广泛的行为准则,采取了一系列措施,尽可能地减少潜在的影响。在源IPv6地址上搭建一个简易的网页,表明本次网络扫描的良性意图,并在网页上显示扫描发起者的联系方式,如电子邮件地址等,以便目标网段主机在告知自己不愿被扫描的意愿后,即使将此主机从目标地址中移除。其次,随机地对目标地址的顺序进行打乱,以避免顺序扫描使目标网络不堪重负。此外,还使用多个源地址来平均分配扫描流量,减少被入侵检测系统(Intrusion Detection Systems,IDS)误认为是拒绝服务攻击(Denial of Service,DoS)的风险。最后,致力于保护用户隐私,绝不公开或非法利用在实验过程中发现的任何与IPv6网络资产有关的数据信息。
3、对比分析
通过在千兆以太网链路上,配置如表9所示实验环境,进行DScan6和现有的Masscan、Zmapv6、Scan6和Xmap的数据包收发速度对比试验。
表9实验环境信息
由于Masscan和Scan6只支持指定地址段范围作为扫描输入,而Zmapv6和Xmap只支持指定地址集文件作为扫描输入。因此,实验随机选择一个/64前缀的IPv6地址段,将DScan6与Masscan、Scan6进行对比测试。另外,使用收集到的IPv6地址集作为目标地址集文件,将DScan6与Zmapv6、XMap进行比较。
实验中,分别在ICMPv6回显请求扫描、TCP_SYN扫描和UDP扫描这3种主流扫描方式上比较了DScan6与这4种工具的数据包收发速度。通过在12小时内均匀的进行10次重复试验,并统计出最终平均值。实验结果见表10所示。
表10扫描速度对比结果
pps:每秒钟的数据包数量,×:表示不支持该扫描方式
结果显示,DScan6达到了千兆以太网理论最高速度的99.3%。使用ICMPv6回显请求扫描方法,DScan6发送和接收数据包的速度比其他工具快2.6~3.4倍。使用TCP_SYN扫描方法,DScan6比其他工具快2.2~3.1倍。使用UDP扫描方法,DScan6比其他工具快2.1~3.1倍。
此外,DScan6通过对收集到的2690万个IPv6地址和指定/64地址段内的IPv6地址扫描后,共获得37.2k个存活IPv6地址。通过进一步分析DScan6扫描到的存活IPv6地址,了解到IPv6地址的地理位置和接口标识符类型的分布,以及其中隐含的设备厂商信息。
(1)IPv6地址地理位置分析
通过对扫描到的存活IPv6地址所属的国家和互联网服务提供商(Internetservice providers,ISP)进行查询,从而得到了存活IPv6地址分布最多的前5国家和这些国家前3的ISP,如表11所示。
表11IPv6地址的国家和ISP分布
(2)IPv6地址接口标识符类型分析
通过addr6工具,分析了所有发现的IPv6地址中各种接口标识符类型的数量和所占比例,如表12所示。
表12IPv6地址的接口标识符分析
其中,遵循安全建议的随机地址是代表最多的地址(53.6%),这通常是由SLAAC为终端主机设备在实践中产生。这种类型的地址很难预测和扫描,大大降低了终端主机被互联网上的攻击者发现的风险。低字节类型在手动配置接口标识符方式中数量最多,由此可见,目前还有存在很多服务器的IPv6地址采用这种配置方式生成。
(3)EUI-64类型中隐含的设备厂商分析
EUI-64类型的接口标识符通常从48位硬件地址中获得,由向IEEE指定的24位OUI和制造商指定的24位0xfffe嵌入组成。因此,MAC地址的OUI可以从EUI-64格式的地址中提取,以识别网卡设备制造商。依据获取到的8300个EUI-64类型的IPv6地址,分析了获得其中前7个设备制造商,如表13所示。
表1 3设备制造商的分布
通过以上实验对比DScan6和Masscan、Scan6、XMap、Zmapv6这4种现有扫描工具的数据包收发速率能够表明,本案方案中的扫描工具DScan6可以达到千兆以太网链路理论最大速度的99.3%,比现有扫描工具快2.1~3.4倍。另外,对DScan6还获到373.7k个存活的IPv6地址,并进一步分析了这些IPv6地址所属的国家、国家互联网服务提供商,以及接口标识符类型和网卡设备制造商,在网络资产发现的具体应用中具有较好的应用前景。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,包含:
依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;
绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;
解析应答数据包并获取存活的IPv6地址。
2.根据权利要求1所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测包,包含:
首先,根据用户输入确定扫描任务所需探测类型、目的IPv6地址和端口,并通过邻居发现协议NDP获取默认网关的MAC地址;
然后,将扫描主机的IPv6地址和MAC地址作为源地址信息,目标IPv6地址和默认网关的MAC地址作为目标地址信息,并根据探测类型生成相应的探测数据包。
3.根据权利要求2所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,根据探测类型生成相应的探测数据包时,若探测类型为ICMPv6,则构造ICMPv6探测包,若探测类型为TCP,则构造TCP_SYN探测包,若探测类型为UDP,则构造UDP探测包。
4.根据权利要求1所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包,包含:利用数据平面开发套件DPDK、用户空间I/O和轮询模式驱动通过独立线程在用户态和网卡设备之间直接交互数据包。
5.根据权利要求4所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,通过独立线程在用户态和网卡设备之间直接交互数据包,包含:
首先,针对探测数据包,通过调用DPDK库函数初始化环境抽象层和网卡设备驱动,并设置网卡设备参数,所述网卡设备参数包含MTU、MAC地址和IP地址;
然后,创建内存池,为每个应答数据包分配内存;并利用DPDK库的接口函数将应答数据包直接放入发送队列中,等待网卡发送。
6.根据权利要求1所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,解析应答数据包并获取存活的IPv6地址,还包含:依据解析结果验证所述应答数据包是否属于当前扫描任务。
7.根据权利要求6所述的基于跨内核异步收发的IPv6地址快速扫描方法,其特征在于,依据解析结果验证所述应答数据包是否属于当前扫描任务,包含:提取应答数据包下一报头字段信息,依据该字段信息判断应答数据包类型,若应答数据包类型为UDP或TCP,则依次验证应答和探测数据包长度是否相同、源端口和探测目的端口是否一致,若应答数据包类型为ICMPv6回显请求,则验证应答和探测数据包长度是否相同,依据验证结果来判断应答数据包是否属于当前扫描任务引发的响应。
8.一种基于跨内核异步收发的IPv6地址快速扫描系统,其特征在于,包含:探测包构造模块、探测包收发模块和应答包解析模块,其中,
探测包构造模块,用于依据用户输入获取扫描任务所需相关配置信息,并根据相关配置信息构造探测数据包;
探测包收发模块,用于绕过内核空间将探测数据包从用户态直接发送至网卡设备,并接收从网卡设备传送到用户态的应答数据包;
应答包解析模块,用于解析应答数据包并获取存活的IPv6地址。
9.一种电子设备,其特征在于,包括存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1~7任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~7任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310598150.6A CN116684390A (zh) | 2023-05-19 | 2023-05-19 | 基于跨内核异步收发的IPv6地址快速扫描方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310598150.6A CN116684390A (zh) | 2023-05-19 | 2023-05-19 | 基于跨内核异步收发的IPv6地址快速扫描方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116684390A true CN116684390A (zh) | 2023-09-01 |
Family
ID=87782893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310598150.6A Pending CN116684390A (zh) | 2023-05-19 | 2023-05-19 | 基于跨内核异步收发的IPv6地址快速扫描方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116684390A (zh) |
-
2023
- 2023-05-19 CN CN202310598150.6A patent/CN116684390A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7962957B2 (en) | Method and apparatus for detecting port scans with fake source address | |
US9712559B2 (en) | Identifying frames | |
KR101253390B1 (ko) | 라우터 검출 | |
US8189580B2 (en) | Method for blocking host in IPv6 network | |
US11968174B2 (en) | Systems and methods for blocking spoofed traffic | |
US20030200441A1 (en) | Detecting randomness in computer network traffic | |
CN107682470B (zh) | 一种检测nat地址池中公网ip可用性的方法及装置 | |
US20200412686A1 (en) | MAPPING INTERNET ROUTING WITH ANYCAST AND UTILIZING SUCH MAPS FOR DEPLOYING AND OPERATING ANYCAST POINTS OF PRESENCE (PoPs) | |
US20220174072A1 (en) | Data Processing Method and Device | |
Zhang et al. | Onis: Inferring tcp/ip-based trust relationships completely off-path | |
Wicherski et al. | IP agnostic real-time traffic filtering and host identification using TCP timestamps | |
US9497083B1 (en) | Discovering network nodes | |
CN116684390A (zh) | 基于跨内核异步收发的IPv6地址快速扫描方法及系统 | |
Park et al. | Identification of hosts behind a NAT device utilizing multiple fields of IP and TCP | |
Song et al. | Using FDAD to prevent DAD attack in secure neighbor discovery protocol | |
Gad et al. | Hierarchical events for efficient distributed network analysis and surveillance | |
US10015179B2 (en) | Interrogating malware | |
CN110677439B (zh) | Nd攻击的防护方法和装置 | |
Sharma et al. | Detection of ARP Spoofing: A command line execution method | |
Oliveira et al. | Investigation of amplification-based DDoS attacks on IoT devices | |
JP2002344481A (ja) | ルーター探索システム、ルーター探索方法、及びルーター探索プログラム | |
Liu et al. | A survey on methodologies and techniques for IPv6 network alias resolution | |
Hendriks | Improving anycast census at scale | |
Hu et al. | DScan6: Fast IPv6 Address Scanning Technology Based on Cross-Kernel Asynchronously Sending and Receiving | |
CN116319684A (zh) | 基于LLMNR查询的双栈Windows节点IPv6地址快速探测方法及系统 |
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 |