CN118282717A - 一种基于动态预估模型的端口状态隐蔽扫描方法及装置 - Google Patents
一种基于动态预估模型的端口状态隐蔽扫描方法及装置 Download PDFInfo
- Publication number
- CN118282717A CN118282717A CN202410324426.6A CN202410324426A CN118282717A CN 118282717 A CN118282717 A CN 118282717A CN 202410324426 A CN202410324426 A CN 202410324426A CN 118282717 A CN118282717 A CN 118282717A
- Authority
- CN
- China
- Prior art keywords
- port
- value
- target terminal
- serial number
- scanning
- 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
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000001514 detection method Methods 0.000 claims abstract description 103
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims description 31
- 239000005058 Isophorone diisocyanate Substances 0.000 claims description 18
- NIMLQBUJDJZYEJ-UHFFFAOYSA-N isophorone diisocyanate Chemical compound CC1(C)CC(N=C=O)CC(C)(CN=C=O)C1 NIMLQBUJDJZYEJ-UHFFFAOYSA-N 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000012549 training Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000009826 distribution Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 239000012634 fragment Substances 0.000 description 8
- 238000011423 initialization method Methods 0.000 description 7
- 239000000523 sample Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000002790 cross-validation Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013467 fragmentation Methods 0.000 description 4
- 238000006062 fragmentation reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000004140 cleaning Methods 0.000 description 3
- 230000008713 feedback mechanism Effects 0.000 description 3
- 238000005242 forging Methods 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 238000009827 uniform distribution Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于动态预估模型的端口状态隐蔽扫描方法及装置,该方法包括:利用主动扫描主机,对第三方远程系统中的协作中间机进行第一次IPID探测,得到协作中间机回复的IP数据包的序列号IPID1值;利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到协作中间机回复的IP数据包的序列号IPID2值;对序列号IPID1值和序列号IPID2值进行处理,得到端口状态隐蔽扫描信息;根据端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息。本发明采用无状态扫描方式对目标IP地址开展高效率端口扫描,提升扫描效率。
Description
技术领域
本发明涉及端口状态扫描技术领域,尤其涉及一种基于动态预估模型的端口状态隐蔽扫描方法及装置。
背景技术
端口扫描主要用于探测识别目标终端设备的端口当前状态,进而识别目标终端可能采用的交互协议类型、提供的服务种类等。当前最常见的端口扫描方式是定向扫描,常见的扫描方式包括:
TCP全连接扫描:这是一种最常见的端口扫描方式。扫描程序尝试与目标主机的每个端口建立完整的TCP连接,并等待目标主机的响应。如果成功建立连接,说明该端口是开放的。
SYN扫描:这种扫描方式利用了TCP的三次握手过程。扫描程序发送一个SYN包到目标主机的每个端口,如果收到一个SYN/ACK包作为响应,说明该端口是开放的。这种扫描方式比TCP全连接扫描更快速,因为它不必完成完整的TCP连接过程。
UDP扫描:与TCP扫描方式不同,UDP是一种无连接的协议。在UDP扫描中,扫描程序发送一个UDP包到目标主机的指定端口,如果收到一个ICMP端口不可达消息,表示该端口是关闭的。然而,由于UDP协议的特性,如果没有响应,我们无法确定端口是开放还是过滤掉。
NULL、FIN和XMAS扫描:这些扫描方式利用了TCP协议的标志位字段中的几个比特位的特殊组合。NULL扫描发送一个不带任何标记的TCP包,FIN扫描发送一个带有FIN标记的TCP包,而XMAS扫描发送一个带有FIN、URG和PSH标记的TCP包。如果收到RST响应,表示端口是关闭的;如果没有响应,表示端口是开放的。
现有的端口扫描技术都存在一定的局限性。
TCP全连接扫描:
优点:可以确定端口是否开放和响应时间,结果较准确。
缺点:需要建立完整的TCP连接,速度较慢,容易在目标主机上留下未完成的连接,被防火墙和入侵检测系统易于检测。
SYN扫描:
优点:发送SYN包而不需要完成完整的TCP连接,速度较快。
缺点:只能确定端口是否开放,不能确定响应时间;可能在目标主机上留下未完成的连接。
UDP扫描:
优点:适用于扫描UDP协议的服务和应用程序端口;可以确定端口是否关闭。
缺点:由于UDP协议的特性,扫描速度较慢,并且对于未响应的端口无法确定是开放还是过滤掉。
NULL、FIN和XMAS扫描:
优点:利用发送特殊的TCP包来绕过防火墙或入侵检测系统的检测。
缺点:在一些操作系统或防火墙上可能被忽略或过滤掉;只能确定端口是否开放,不能确定响应时间。
总之,随着网络技术日益发展,传统网络安全技术得到深入发展,涌现了非常多且有效的探测扫描行为的检测方法及检测工具,传统网络探测技术在执行大规模扫描任务时,执行效率低且容易被发现,导致不能得到有用的探测信息,极大影响扫描结果的准确率。如何解决网络探测的隐匿性、提高端口探测扫描效率,是当前网络探测面临的重点问题之一。
发明内容
本发明所要解决的技术问题在于,从网络探测中存在的隐匿性和高效性问题出发,对现有的端口扫描技术进行研究,探索一种高效的无源端口存活扫描技术,解决现有网络探测技术在执行大规模扫描任务时执行效率低且容易被发现的问题,并提出一种基于动态预估模型的端口状态隐蔽扫描方法及装置。
为了解决上述技术问题,本发明实施例第一方面公开了一种基于动态预估模型的端口状态隐蔽扫描方法,所述方法包括:
S1,对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
S2,根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
S3,利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
作为一种可选的实施方式,本发明实施例第一方面中,所述利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息,包括:
S31,利用主动扫描主机,对第三方远程系统中的协作中间机进行第一次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID1值;
S32,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值;
S33,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息;
S34,根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息。
作为一种可选的实施方式,本发明实施例第一方面中,所述利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值,包括:
S321,利用主动扫描主机,依次向所述被扫描目标终端的每个端口段发送端口状态探测包,当所述被扫描目标终端的某端口已打开,所述被扫描目标终端回复第一应答数据包,否则回复第二应答数据包;
S322,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2。
作为一种可选的实施方式,本发明实施例第一方面中,所述对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S331,对所述序列号IPID1值和所述序列号IPID2值进行分析,如果在所有探测任务中,所述序列号IPID1值和所述序列号IPID2值的值均增加了1,则说明本次任务探测的所有端口均关闭;如果探测端口数为1,且所述序列号IPID1值和所述序列号IPID2值的差值为2,则表明该端口开放;
S332,当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息。
作为一种可选的实施方式,本发明实施例第一方面中,所述当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S3321,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态IPDI信息值;
S3322,将所述端口状态IPDI信息值与预设阈值进行比较,当所述端口状态IPDI信息值小于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口少;当所述端口状态IPDI信息值大于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口多。
作为一种可选的实施方式,本发明实施例第一方面中,所述根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息,包括:
S341,当前被扫描目标终端开放的端口少时,对本次探测端口范围进行划分,得到第一端口范围和第二端口范围;
S342,利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息;
S343,利用所述主动扫描主机,对所述第二端口范围进行探测,得到第二端口状态信息;
S344,当前被扫描目标终端开放的端口多时,利用第一IPID检测模型,对相应目标端口进行探测,得到IPID值;
S345,当所述IPID值增加量为2时,端口状态信息为开放状态,否则端口状态信息为关闭状态。
作为一种可选的实施方式,本发明实施例第一方面中,所述利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息,包括:
S3421,对所述第一端口范围进行分块,得到N个端口块,N为正整数;
S3422,对所述N个端口块进行处理,得到中间端口块mid;
所述中间端口块mid表达式为:
mid=(left+right)/2
式中,left为第一端口范围的左边界,right为第一端口范围的右边界;
S3423,将所述中间端口块与所处段最小值的端口号进行开闭状态比较,若一致,则对所述中间端口块与所述N个端口块的开闭状态进行判断,得到开闭状态信息;
S3424,当所述开闭状态信息超过预设阈值时,所述中间端口块为分界点;否则在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内确定分界点;
S3425,在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内,利用第一IPID检测模型进行探测,得到第一端口状态信息。
作为一种可选的实施方式,本发明实施例第一方面中,所述第一IPID检测模型的检测步骤包括:
利用主动扫描主机向所述第三方远程系统中的协作中间机发送第一个SYN+ACK封包,并记录初始IPID值;
将所述SYN+ACK封包的IP源地址伪造成第三方远程系统中的协作中间机的IP地址,并将其发送至被扫描目标终端;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回SYN+ACK封包时,被扫描目标终端端口开放,初始IPID值增加1;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回RST响应时,被扫描目标终端端口关闭;
利用主动扫描主机,向所述第三方远程系统中的协作中间机发送第二个SYN+ACK封包,并求出所返回的RST响应中的第二IPID值;
根据所述第二IPID值,判断被扫描目标终端上端口的开闭状态。
本发明实施例第二方面公开了一种基于动态预估模型的端口状态隐蔽扫描装置,所述装置包括:
端口分析模块,用于对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
端口分段模块,用于根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
端口动态预估模块,用于利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
作为一种可选的实施方式,本发明实施例第二方面中,所述利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息,包括:
S31,利用主动扫描主机,对第三方远程系统中的协作中间机进行第一次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID1值;
S32,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值;
S33,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息;
S34,根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息。
作为一种可选的实施方式,本发明实施例第二方面中,所述利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值,包括:
S321,利用主动扫描主机,依次向所述被扫描目标终端的每个端口段发送端口状态探测包,当所述被扫描目标终端的某端口已打开,所述被扫描目标终端回复第一应答数据包,否则回复第二应答数据包;
S322,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2。
作为一种可选的实施方式,本发明实施例第二方面中,所述对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S331,对所述序列号IPID1值和所述序列号IPID2值进行分析,如果在所有探测任务中,所述序列号IPID1值和所述序列号IPID2值的值均增加了1,则说明本次任务探测的所有端口均关闭;如果探测端口数为1,且所述序列号IPID1值和所述序列号IPID2值的差值为2,则表明该端口开放;
S332,当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息。
作为一种可选的实施方式,本发明实施例第二方面中,所述当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S3321,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态IPDI信息值;
S3322,将所述端口状态IPDI信息值与预设阈值进行比较,当所述端口状态IPDI信息值小于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口少;当所述端口状态IPDI信息值大于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口多。
作为一种可选的实施方式,本发明实施例第二方面中,所述根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息,包括:
S341,当前被扫描目标终端开放的端口少时,对本次探测端口范围进行划分,得到第一端口范围和第二端口范围;
S342,利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息;
S343,利用所述主动扫描主机,对所述第二端口范围进行探测,得到第二端口状态信息;
S344,当前被扫描目标终端开放的端口多时,利用第一IPID检测模型,对相应目标端口进行探测,得到IPID值;
S345,当所述IPID值增加量为2时,端口状态信息为开放状态,否则端口状态信息为关闭状态。
作为一种可选的实施方式,本发明实施例第二方面中,所述利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息,包括:
S3421,对所述第一端口范围进行分块,得到N个端口块,N为正整数;
S3422,对所述N个端口块进行处理,得到中间端口块mid;
所述中间端口块mid表达式为:
mid=(left+right)/2
式中,left为第一端口范围的左边界,right为第一端口范围的右边界;
S3423,将所述中间端口块与所处段最小值的端口号进行开闭状态比较,若一致,则对所述中间端口块与所述N个端口块的开闭状态进行判断,得到开闭状态信息;
S3424,当所述开闭状态信息超过预设阈值时,所述中间端口块为分界点;否则在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内确定分界点;
S3425,在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内,利用第一IPID检测模型进行探测,得到第一端口状态信息。
作为一种可选的实施方式,本发明实施例第二方面中,所述第一IPID检测模型的检测步骤包括:
利用主动扫描主机向所述第三方远程系统中的协作中间机发送第一个SYN+ACK封包,并记录初始IPID值;
将所述SYN+ACK封包的IP源地址伪造成第三方远程系统中的协作中间机的IP地址,并将其发送至被扫描目标终端;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回SYN+ACK封包时,被扫描目标终端端口开放,初始IPID值增加1;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回RST响应时,被扫描目标终端端口关闭;
利用主动扫描主机,向所述第三方远程系统中的协作中间机发送第二个SYN+ACK封包,并求出所返回的RST响应中的第二IPID值;
根据所述第二IPID值,判断被扫描目标终端上端口的开闭状态。
本发明第三方面公开了另一种基于动态预估模型的端口状态隐蔽扫描装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例第一方面公开的基于动态预估模型的端口状态隐蔽扫描方法中的部分或全部步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明从未知目标终端端口状态的高效、隐蔽扫描识别需求出发,提出一种基于动态预估模型的端口状态隐蔽扫描方法。一方面,构建探测节点IP地址为第三方协作中间机IP地址的探测数据包,采用无状态扫描方式对目标IP地址开展高效率端口扫描,在发送数据包后可以不等待接收响应包,提升扫描效率。同时由于使用虚假源IP地址,实现基于身份伪造的无源、隐蔽扫描。另一方面,构建基于动态预估模型,基于滑动窗口自回归的时间序列多步预测策略,动态批量确认目标某个范围内的端口开放情况。设置合理阈值,若某段内关闭端口多,则对IPID进行划分确定端口关闭情况,执行时间少;若某段内开放端口多,则采用第一IPID检测模型确定端口开放情况,进而进一步提升扫描效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种基于动态预估模型的端口状态隐蔽扫描方法的流程示意图;
图2是本发明实施例公开的另一种基于动态预估模型的端口状态隐蔽扫描方法的流程示意图;
图3是本发明实施例公开的一种基于动态预估模型的端口状态隐蔽扫描装置的结构示意图;
图4是本发明实施例公开的另一种基于动态预估模型的端口状态隐蔽扫描装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种基于动态预估模型的端口状态隐蔽扫描方法及装置,该方法包括:从未知目标终端端口状态的高效、隐蔽扫描识别需求出发,提出一种基于动态预估模型的端口状态隐蔽扫描方法。一方面,构建探测节点IP地址为第三方协作中间机IP地址的探测数据包,采用SYN/ACK和FIN无状态扫描方式对目标IP地址开展高效率端口扫描,在发送数据包后可以不等待接收响应包,提升扫描效率。同时由于使用虚假源IP地址,实现基于身份伪造的无源、隐蔽扫描。另一方面,构建基于动态预估模型,基于滑动窗口自回归的时间序列多步预测策略,动态批量确认目标某个范围内的端口开放情况。设置合理阈值,若某段内关闭端口多,则使用直接二分IPID确定端口关闭情况,执行时间少;若某段内开放端口多,则采用原始IPID方式确定端口开放情况,进而进一步提升扫描效率。以下分别进行详细说明。
实施例一
请参阅图1,图1是本发明实施例公开的一种基于动态预估模型的端口状态隐蔽扫描方法的流程示意图。其中,图1所描述的基于动态预估模型的端口状态隐蔽扫描方法应用于网络安全技术领域,实现网络探测中的隐匿性和高效性,本发明实施例不做限定。如图1所示,该基于动态预估模型的端口状态隐蔽扫描方法可以包括以下操作:
S1,对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
对被扫描目标终端的端口范围进行分析,端口范围通常在0-65535之间,根据实际被扫描的目标终端的不同,其值会有不同,根据实际情况确定;
S2,根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
为了提高扫描的速度,采用对被扫描目标终端的端口进行分段的方法来进行端口探测,分段的段数根据实际情况而定;
根据M个端口段的端口信息,设定并发任务数;
S3,利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
可选的,所述利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息,包括:
S31,利用主动扫描主机,对第三方远程系统中的协作中间机进行第一次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID1值;
S32,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值;
S33,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息;
S34,根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息。
可选的,所述利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值,包括:
S321,利用主动扫描主机,依次向所述被扫描目标终端的每个端口段发送端口状态探测包,当所述被扫描目标终端的某端口已打开,所述被扫描目标终端回复第一应答数据包,否则回复第二应答数据包;
可选的,第一应答数据包为SYN/ACK包,第二应答数据包为RST包。
S322,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2。
可选的,所述对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S331,对所述序列号IPID1值和所述序列号IPID2值进行分析,如果在所有探测任务中,所述序列号IPID1值和所述序列号IPID2值的值均增加了1,则说明本次任务探测的所有端口均关闭;如果探测端口数为1,且所述序列号IPID1值和所述序列号IPID2值的差值为2,则表明该端口开放;
S332,当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息。
可选的,所述当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S3321,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态IPDI信息值;
端口状态IPDI信息值的计算方法为:
计算序列号IPID1值和序列号IPID2值的差值;
计算本次任务的任务并发量;
将序列号IPID1值和序列号IPID2值的差值与本次任务的任务并发量相乘,再乘以第一次探测和第二次探测的时间间隔,再乘以主动扫描主机与第三方远程系统中的协作中间机第一次数据包通信的时间,得到端口状态IPDI信息值。
S3322,将所述端口状态IPDI信息值与预设阈值进行比较,当所述端口状态IPDI信息值小于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口少;当所述端口状态IPDI信息值大于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口多。
预设阈值的计算方法为:
获取被扫描目标终端的历史调度记录;
对历史调度记录进行分析,得到协作中间机回复的IP数据包的序列号IPID1值的历史记录值,对得到的序列号IPID1值的历史记录值进行取平均值计算,将得到的平均值作为阈值。
可选的,所述根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息,包括:
S341,当前被扫描目标终端开放的端口少时,对本次探测端口范围进行划分,得到第一端口范围和第二端口范围;
S342,利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息;
S343,利用所述主动扫描主机,对所述第二端口范围进行探测,得到第二端口状态信息;
对第二端口范围进行探测的方法和对第一端口范围进行探测的方法相同。
S344,当前被扫描目标终端开放的端口多时,利用第一IPID检测模型,对相应目标端口进行探测,得到IPID值;
S345,当所述IPID值增加量为2时,端口状态信息为开放状态,否则端口状态信息为关闭状态。
可选的,所述利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息,包括:
S3421,对所述第一端口范围进行分块,得到N个端口块,N为正整数;
S3422,对所述N个端口块进行处理,得到中间端口块mid;
所述中间端口块mid表达式为:
mid=(left+right)/2
式中,left为第一端口范围的左边界,right为第一端口范围的右边界;
S3423,将所述中间端口块与所处段最小值的端口号进行开闭状态比较,若一致,则对所述中间端口块与所述N个端口块的开闭状态进行判断,得到开闭状态信息;
S3424,当所述开闭状态信息超过预设阈值时,所述中间端口块为分界点;否则在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内确定分界点;
所述阈值由实际实验计算得到,本实施例不做限制。
S3425,在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内,利用第一IPID检测模型进行探测,得到第一端口状态信息。
可选的,所述利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息的方法为:
对所述第一端口范围进行排序,得到端口的排序信息,其左边界为left1,右边界为right1,并计算得到该第一端口范围的中间端口mid1;
在左边界left1和右边界right1之间随机找到一个端口;
将左边界与随机找到的端口进行端口开闭状态比较,若一致,判断该随机端口位于第一端口范围中间端口的左边还是右边,如果是左边,则在[left1,mid1]之间利用第一IPID检测模型进行探测,得到第一端口状态信息;如果在右边,则在[mid1,right1]之间利用第一IPID检测模型进行探测,得到第一端口状态信息.
可选的,所述第一IPID检测模型的检测步骤包括:
利用主动扫描主机向所述第三方远程系统中的协作中间机发送第一个SYN+ACK封包,并记录初始IPID值;
将所述SYN+ACK封包的IP源地址伪造成第三方远程系统中的协作中间机的IP地址,并将其发送至被扫描目标终端;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回SYN+ACK封包时,被扫描目标终端端口开放,初始IPID值增加1;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回RST响应时,被扫描目标终端端口关闭;
利用主动扫描主机,向所述第三方远程系统中的协作中间机发送第二个SYN+ACK封包,并求出所返回的RST响应中的第二IPID值;
根据所述第二IPID值,判断被扫描目标终端上端口的开闭状态。
可见,本发明从未知目标终端端口状态的高效、隐蔽扫描识别需求出发,提出一种基于动态预估模型的端口状态隐蔽扫描方法。一方面,构建探测节点IP地址为第三方协作中间机IP地址的探测数据包,采用无状态扫描方式对目标IP地址开展高效率端口扫描,在发送数据包后可以不等待接收响应包,提升扫描效率。同时由于使用虚假源IP地址,实现基于身份伪造的无源、隐蔽扫描。另一方面,构建基于动态预估模型,基于滑动窗口自回归的时间序列多步预测策略,动态批量确认目标某个范围内的端口开放情况。设置合理阈值,若某段内关闭端口多,则对IPID进行划分确定端口关闭情况,执行时间少;若某段内开放端口多,则采用第一IPID检测模型确定端口开放情况,进而进一步提升扫描效率。
实施例二
请参阅图2,图2是本发明实施例公开的另一种基于动态预估模型的端口状态隐蔽扫描方法的流程示意图。其中,图2所描述的基于动态预估模型的端口状态隐蔽扫描方法应用于网络安全技术领域,实现网络探测中的隐匿性和高效性,本发明实施例不做限定。如图2所示,该基于动态预估模型的端口状态隐蔽扫描方法可以包括以下操作:
1)主动扫描主机对第三方远程系统中的协作中间机进行第一次IPID探测,获取第三方远程系统中的协作中间机回复IP数据包的序列号IPID并记录。
2)分析被扫描目标终端的端口范围,将范围在0-1023之间的端口划分为常见端口,1024到65535之间的端口划分为随机端口。由于常见端口的开放端口相对较多,所以对在0-1023之间的端口每次设置较少探测任务并发量(如15),由于随机端口的开放端口相对较少,所以对1024到65535之间的端口每次设置较多的探测任务并发量(如80,小于多数检测软件的扫描阈值)。
3)按照预设分段数量,设定并发任务数。针对当前被扫描目标终端的预定分段数量的多个端口,主动扫描主机伪装成第三方远程系统中的协作中间机发送端口状态探测包至被扫描目标终端的相应端口,如果被扫描目标终端的某端口已打开,则被扫描目标终端回复应答SYN/ACK包,否则回复应答RST包。
4)主动扫描主机对第三方远程系统中的协作中间机进行第二次IPID探测,获知第三方远程系统中的协作中间机回复IP数据包的序列号IPID并记录。
5)比较两次探测到的IP数据包的序列号IPID,如果所有探测任务中的前后IPID值均增加了1则说明本次任务探测的所有端口均关闭。
6)比较两次探测到的IP数据包的序列号IPID,如果探测端口数为1,且两次探测到的IP包的序列号IPID差值为2,则表明该端口开放。
7)基于动态预估模型,比较两次探测到的IP数据包的序列号IPID,如果探测端口数大于1,计算两次IPID值的增量与本次任务并发量的比值a,并设定一个阈值A;
8)基于动态预估模型,判定比值a是否大于阈值A,如果a小于阈值A,说明当前被扫描目标终端的预定分段数量的多个端口范围中开放的端口较少,则采用直接二分IPID方法,将本次探测端口范围划分为两部分,返回到步骤1),分别采取同样的方法再次探测。
9)基于动态预估模型,判定比值a是否大于阈值A,如果a大于等于阈值A,说明当前被扫描目标终端的预定分段数量的多个端口范围中开放的端口较多,则采用原始IPID方法,对相应目标端口进行后续探测,获知IPID值。如果IPID值增加量为2,则表明端口是开放状态,否则为关闭状态。
其中,端口类型划分方法:分为常见端口和随机端口两类
在计算机网络中,端口(Port)是一个逻辑概念,用于区分不同的服务或进程。按照端口号的使用习惯和规定,端口可以划分为以下两类:
常见端口(Well-known Ports),范围:0到1023
描述:这些端口号通常由互联网号码分配机构(IANA)分配给特定的服务。例如,HTTP服务通常使用端口80,HTTPS使用443,FTP使用21等等。这些端口通常与一些最常用的网络服务和协议关联。
随机端口(Dynamic Ports或Private Ports),范围:1024到65535
描述:这些端口不由IANA正式分配给任何特定服务,通常用于客户端软件的短暂通信,如临时建立的网络会话和操作系统的内部进程之间的通信。它们也被称为“临时端口”或“私有端口”。
除了上述两类,还有一类称为注册端口(Registered Ports),范围:1024到49151,
描述:虽然这些端口不是由IANA分配给特定的服务,但它们用于某些公认的服务,并且在不同的应用中有广泛的用途。注册端口的使用需要向IANA申请,以避免冲突。
在网络编程中,服务端通常在常见端口上监听来自客户端的连接请求,而客户端则使用随机端口发起连接。端口的这种分类方法有助于维持网络通信的秩序,并确保特定的服务可以通过标准端口被访问。
IP数据包的序列号IPID:IPID是指InternetProtocolIdentification(互联网协议标识符),也称作IP标识符,是在IP报文头部的标识字段中表示的一个16位二进制数字。
在Internet Protocol(IP)中,IP数据包的序列号,也被称为IP标识符(IPID),是一个重要的字段,用于在IP数据报的分片和重组过程中识别属于同一原始数据报的不同分片。IP数据包的序列号是IP首部的一部分,具有以下特征:
1.大小:IPID字段是一个16位的数值,这意味着它的取值范围是0到65535。
2.位置:在IPv4首部中,IPID字段紧跟在总长度字段之后,位于IP首部的第4和第5个字节。
3.作用:当一个原始的IP数据报太大,无法通过网络上的某个链路时,它会被分片(fragmentation)。每个分片都会成为一个新的IP数据报,包含原始数据报的一部分数据,而IPID字段则用于确保在目的地能够正确地将这些分片重新组合成原始的数据报。目的地主机会使用IPID来匹配和重组属于同一个原始数据报的所有分片。
4.分片重组:收到分片的主机将检查IPID值,将具有相同IPID的分片组合起来。一旦所有必要的分片都到达,数据报就可以被重新组装并交付给上层协议。
5.IPID生成:IPID可以是递增的,也可以是随机生成的,这取决于操作系统或网络设备的实现。递增的IPID可以帮助接收方顺序地重新组装分片,但在一些情况下可能会带来安全隐患,因为它们可以被用于推断网络流量模式或执行特定类型的网络攻击。
6.IPv6的变化:在IPv6中,由于改进了首部格式,通常不需要分片处理。IPv6基本首部中没有IPID字段,分片信息(如果需要)是通过一个专门的分片扩展首部来处理的。
IPID是网络通信中确保数据完整性的关键机制之一,它使得在复杂网络环境中,即使数据传输被分片,最终也能够正确地组装并处理数据。
动态预估方法:基于历史调度记录,动态批量确认目标某个范围内的端口开放情况。
若某段内关闭端口多,则使用直接二分IPID确定端口关闭情况,执行时间少;若某段内开放端口多,则采用原始IPID方式确定端口开放情况。
动态预估方法(Dynamic Estimation)实施模型:
1.数据收集:收集与预估目标相关的历史数据和实时数据。确保数据的质量和准确性,包括数据的清洗和预处理。
2.数据的清洗和预处理
缺失值处理:删除:如果数据集很大,而且缺失值不多,可以直接删除含有缺失值的行或列。
填充:可以用统计值(如均值、中位数、众数)或使用其他算法(如K近邻)来估计并填补缺失值。
异常值处理:
识别:通过可视化(如箱形图)或统计方法(如IQR,Z-score)来识别异常值。
处理:可以决定删除异常值、替换它们、或者保留它们但进行标记和特别处理。
统一数据格式:确保所有数据字段遵循统一的格式,例如日期时间格式、货币单位、度量单位等。
标准化/归一化:使数据符合特定的范围或分布,如将数据缩放到0,10,1区间(归一化)或使其具有零均值和单位方差(标准化)。
对数转换:用于处理右偏分布的数据,可以使数据分布更加接近正态分布。
特征编码:将类别数据转换为数值数据,如使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)。
合并数据:将不同来源或不同格式的数据集合并到一起,需要注意键值匹配和数据对齐问题。
去重:删除重复的记录,确保数据的唯一性。
特征提取:从现有数据中提取新特征,增加数据的维度。
特征选择:选择最有意义的特征用于模型训练,去除噪声和无关特征。
文本预处理(如果数据集含有文本):
分词:将连续的文本分割成单词或短语。清洗文本:去除标点符号、数字、特殊字符等。停用词去除:删除常见的无实际意义的词语,如"and"、"the"等。词干提取/词形还原:将词语转换为基本形式。词频统计:统计词语出现的频率,为后续的文本分析做准备。
时间序列数据特有的预处理:
时间戳转换:确保所有时间数据格式一致且精确。
缺失时间数据的插值:对于时间序列数据,缺失的时间点可能需要通过插值来填补。
时间序列分解:将时间序列分解为趋势、季节性和残差成分。
通过这些步骤,数据可以被清洗和转换成更适合分析和建模的形式。
3.模型选择:
根据预估目标选择合适的统计模型或机器学习模型。本发明采用深度信念网络(Deep Belief Network,DBN)学习模型。
1)参数调整:通过分析历史数据对模型的参数进行初始化。根据实时反馈调整模型参数以适应环境变化。
2)模型参数初始化:采用Xavier初始化方法。
Xavier初始化方法根据网络层的输入和输出的维度来合理地选择权重的初始值。在Xavier初始化方法中,权重被随机初始化为均匀分布或高斯分布中的某个固定范围内的值,使得输入和输出的方差能够保持一致。然后,权重可以根据高斯分布或均匀分布进行采样,均值为0,标准差为σ。根据网络的具体结构,可以使用不同的激活函数和层的结构来选择合适的Xavier初始化方法变种。Xavier初始化方法的优点在于可以更好地保持梯度在前向和反向传播过程中的稳定性,有助于更快、更稳定地训练神经网络,并减少梯度消失或梯度爆炸的问题。
Xavier初始化方法适用于使用双线性激活函数(如tanh、sigmoid)的传统神经网络。对于使用ReLU等激活函数的网络,可能需要使用其他适应性初始化方法来更好地初始化权重。
设前一层神经元的数量为n,后一层神经元的数量m,则:
对于均匀分布的Xavier初始化(均匀版):
从均匀分布中随机初始化权重矩阵W,范围为[-a,a],其中a=sqrt(6/(n+m))。
对于高斯分布的Xavier初始化(高斯版):
从高斯分布中随机初始化权重矩阵W,均值为0,方差为variance,其中variance=2/(n+m)。
模型参数调优:采用超参数调优的工具Scikit-learn进行模型训练过程中的参数调优及后续反馈机制过程中的参数调优。
Scikit-learn有网格搜索和随机搜索的实现,对于此两种方法,scikit-learn在不同的参数选择上,以K-fold交叉验证的方式训练和评估模型,并返回最佳模型。
1)搜索实现方式
随机搜索:用gridsearchcv在一些随机的参数组合上运行搜索。
网格搜索:用gridsearchcv在网格中的所有参数集上运行搜索。
2)基于K-fold交叉验证的训练反馈调优
K-折交叉验证(K-fold cross-validation)具体的算法细节如下:
(1)数据划分:将全部训练数据集随机分为K个大小大致相等的子集。
(2)模型训练和验证:对于k=1到K,执行以下步骤:
从K个子集中保留第k个子集作为验证数据集,其余K-1个子集作为训练数据集。
在K-1个训练数据集上训练模型。
在保留的验证数据集上评估模型。记录评估指标,如准确率、F1分数、均方误差等。
(3)结果汇总:将K次的评估指标结果汇总,通常计算其平均值和标准差。这样可以得到关于模型性能的无偏估计。
K-折交叉验证的主要优点是它允许重复使用随机分成的K个子集来进行训练和验证,每个子集都被验证一次,而且每次验证都是在不同的训练集上进行的,这增加了评估的准确性。
在选择K值时,一个常见的选择是10,因为它在偏差和方差之间提供了一个良好的折中。一个较小的K(比如2或3)通常会导致模型评估的方差增加,而一个较大的K(接近于留一法,即K等于样本数目)会导致评估的偏差减小,但计算成本会显著增加。
4.滚动预估:
实施滚动预估,即定期更新预估结果,以包含最新的数据点。评估预估窗口的大小,决定多长时间跨度的数据用于一次预估。滚动预估(Rolling Forecast)是一种用于时间序列数据预测的方法,在神经网络中应用滚动预估时,会连续使用网络进行一系列预测,每做一次预测后,会将预测结果和/或新的真实数据点纳入训练数据集中,以更新模型并进行下一步的预测。以下是神经网络滚动预估的一些具体细节:
数据窗口:在滚动预估中,通常使用一个固定大小的窗口来选取最近的数据点作为输入特征。当新的数据点可用时,窗口会向前滚动(即去掉最旧的数据点,加入最新的数据点)。
模型更新:在每个预测步骤之后,神经网络模型可以用新的数据重新训练(全量或增量训练)以调整其权重,或者保持不变直接用于下一个预测步骤。更新策略取决于具体场景和模型性能。
预测策略:神经网络可以进行单步预测(预测下一个时间点的值),也可以进行多步预测(预测未来多个时间点的序列)。在多步预测中,神经网络预测的结果可以反馈作为下一次预测的一部分输入。
5.基于滑动窗口自回归的时间序列多步预测
时间序列多步预测(forecasting)主要采用基于滑动窗口自回归的方法。
1)转化为带标注数据
时间序列数据没有带标注,而带监督的机器学习学习模型的训练需要定义输入与输出,把时间序列数据转化为带标注的形式方法为:
首先把原始序列(预处理后)化成带标注形式,从自会回出发,时序之间存在自回归关系。那么,我们可以把它转化为带标注形式的数据:
样本Xt是模型的输入,有时间戳t及其之前s大小窗口内的元素决定,
Xt=[yt,yt-1,…,yt-s+1]
模型输入Xt对应输出yt+1,即
yt+1=f(Xt)=f([yt,yt-1,…,yt-s+1])
这种方法在seq2seq任务中,训练RNN神经网络称为forcing teaching。称它为自监督标注。时间窗口的大小以超参数的形式存在,也可以考虑自动化地确定时间窗口的大小。
2)模型训练
对于窗口大小为s的样本,模型f学习窗口内数据到下一个时间步的映射,yt+1←f(yt,yt-1,…,yt-s+1)
3)递归多步预测
预测时,通过滑动一个固定的窗口完成多步预测,如果使用的预测模型是神经网络,则没有显式的特征计算过程。
重训练频率:
根据模型性能和数据变化的速度,可以选择适当的重训练频率。在某些情况下,可能需要频繁更新模型(如每次获取新数据时),而在其他情况下,可以减少更新频率。
评估指标:可以利用均方误差(MSE)、均方根误差(RMSE)或平均绝对误差(MAE)等评估指标进行性能预测,进而根据需要调整模型参数。
超参数调整:学习率、层数、神经元数、批大小等神经网络的超参数,可以根据预测表现进行调整。在实践中,可能会通过交叉验证或其他参数搜索技术来找到最优的超参数组合。
预测结果的处理:在某些情况下,预测结果可能需要进一步处理,比如进行反标准化操作,或者通过业务逻辑来调整,以确保预测结果在实际应用中的可行性和合理性。神经网络滚动预估方法的关键在于处理时间序列数据的自相关性和非平稳性,并能够适应数据在时间上的变化。该方法的有效性高度依赖于模型设计、超参数选择和数据预处理的质量。
性能监控:监控预估模型的性能,使用诸如均方误差(MSE)、均方根误差(RMSE)或其他适合的评估指标。定期进行模型评估和验证,检查预估结果的准确性。
反馈机制:建立反馈机制,利用预估结果的偏差调整模型或策略。根据预估准确性进行动态调整,如调整预估频率、模型复杂度等。
直接二分IPID方法:若某段内关闭端口多,则使用直接二分IPID方法确定端口关闭情况,执行时间少。
基于直接二分IPID方法的端口探测扫描步骤:
1.预处理阶段(分块):
对于给定的被扫描目标端口有序数组(或列表),先将它们分割成连续的、较小的端口块(block)或端口子数组。
每个端口块的大小可以是固定的,也可以根据端口号数据集合的特征进行动态确定。分块后,通常需要对每个端口块内的端口号数据进行排序,以便后续使用二分算法。
在每个端口块的开头记录下一个块的最小元素,这样可以快速地在端口块之间进行跳转。
在每个端口块内部,记录下一个或多个关键指标(如最小值、最大值或者端口块内元素的索引)。
2.一次执行阶段
1)采用并行探测的方式,针对被扫描目标终端的某个端口块内的多个端口(一定范围的端口号码段),同时采用基于原始IPID方法的单一端口扫描,并记录每个响应数据包的IPID值;
2)计算端口块内每个端口探测扫描获取的两次标记号(IPID)之间的差值,若差值结果都为l,则表明被扫描目标终端的某个端口块内的所有端口均为关闭状态;
3)否则被扫描目标终端的某个端口块内的端口同时存在关闭、打开两种状态
3.再分块阶段:
根据端口块内的端口关闭、打开状态,在该端口块内使用二分查找算法确定二次分块区间的边界。
具体做法是:先取该端口块中间位置(mid=(left+right)/2)的端口号数据元素,将该端口号对应的端口状态与所处段最小值的端口号状态比较,若一致,则统计上述2各端口号之间的状态一致性,若达到某概率(如70%或其他预定义值),则确定该端口号为分界点;若未达到既定概率,则在前半部分[left,mid-1](或后半部分[mid+1,right])范围内,采用同样的方法确定合理的边界。
然后在确定的二次分块内部,按照一次执行阶段的步骤,依次执行并行探测
3.循环执行阶段:
循环执行第2步骤和第3步骤,直至划分的端口块内端口号数量达到某个数值(如1或者基于执行效率或执行时间确定的用户自定义值)
原始IPID方法:若某段内开放端口多,则采用原始IPID方法确定端口开放情况
基于原始IPID方法的端口扫描探测过程步骤:
1.基于协作等方式获取某个第三方远程系统的执行权限。系统特征包括:
系统受限,和网络上其它系统没有通信。系统使用递增的IPID序列。
2.主动扫描主机给第三方远程系统中的协作中间机发送SYN+ACK封包并记录初始IPID值。
3.将封包的IP源地址伪造成第三方远程系统中的协作中间机的IP地址,并将其发送给被扫描目标终端。
4.根据被扫描目标终端的端口状态,会有如下情况:
如果端口开放,被扫描目标终端会默认第三方远程系统中的协作中间机发送了之前的SYN请求,则会向第三方远程系统中的协作中间机返回SYN+ACK封包。这里,第三方远程系统中的协作中间机会以RST封包回复这个带路不明的SYN+ACK封包,并且将IPID值增加1。
如果端口关闭,被扫描目标终端会默认第三方远程系统中的协作中间机发送了之前的SYN请求,则会将RST响应返回给第三方远程系统中的协作中间机。如果IPID值增加了1,那么之后被扫描目标终端上的端口关闭。如果IPID增加了2,那么被扫描目标终端的端口开放。
5.主动扫描主机向第三方远程系统中的协作中间机发送另一个SYN+ACK封包,并求出所返回的RST响应中的最后的IPID值。如果IPID值增加了1,那么被扫描目标终端上的端口关闭。如果IPID值增加了2,那么被扫描目标终端上的端口开放。
可以对每个想要探测的被扫描目标终端端口执行上述探测,由于未完全建立连接,则能够增加主动扫描主机隐蔽性,而不会留下过多的扫描痕迹。
实施例三
请参阅图3,图3是本发明实施例公开的一种基于动态预估模型的端口状态隐蔽扫描装置的结构示意图。其中,图3所描述的基于动态预估模型的端口状态隐蔽扫描装置应用于网络安全技术领域,实现网络探测中的隐匿性和高效性,本发明实施例不做限定。如图3所示,该基于动态预估模型的端口状态隐蔽扫描装置可以包括以下操作:
S301,端口分析模块,用于对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
S302,端口分段模块,用于根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
S303,端口动态预估模块,用于利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
实施例四
请参阅图4,图4是本发明实施例公开的另一种基于动态预估模型的端口状态隐蔽扫描装置的结构示意图。其中,图4所描述的基于动态预估模型的端口状态隐蔽扫描装置应用于网络安全技术领域,实现网络探测中的隐匿性和高效性,本发明实施例不做限定。如图4所示,该基于动态预估模型的端口状态隐蔽扫描装置可以包括以下操作:
存储有可执行程序代码的存储器401;
与存储器401耦合的处理器402;
处理器402调用存储器401中存储的可执行程序代码,用于执行实施例一、实施例二所描述的基于动态预估模型的端口状态隐蔽扫描方法中的步骤。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种基于动态预估模型的端口状态隐蔽扫描方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。
Claims (10)
1.一种基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述方法包括:
S1,对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
S2,根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
S3,利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
2.根据权利要求1所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息,包括:
S31,利用主动扫描主机,对第三方远程系统中的协作中间机进行第一次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID1值;
S32,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值;
S33,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息;
S34,根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息。
3.根据权利要求2所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2值,包括:
S321,利用主动扫描主机,依次向所述被扫描目标终端的每个端口段发送端口状态探测包,当所述被扫描目标终端的某端口已打开,所述被扫描目标终端回复第一应答数据包,否则回复第二应答数据包;
S322,利用主动扫描主机,对第三方远程系统中的协作中间机进行第二次IPID探测,得到所述协作中间机回复的IP数据包的序列号IPID2。
4.根据权利要求2所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S331,对所述序列号IPID1值和所述序列号IPID2值进行分析,如果在所有探测任务中,所述序列号IPID1值和所述序列号IPID2值的值均增加了1,则说明本次任务探测的所有端口均关闭;如果探测端口数为1,且所述序列号IPID1值和所述序列号IPID2值的差值为2,则表明该端口开放;
S332,当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息。
5.根据权利要求4所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述当探测端口数大于1时,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态隐蔽扫描信息,包括:
S3321,对所述序列号IPID1值和所述序列号IPID2值进行处理,得到端口状态IPDI信息值;
S3322,将所述端口状态IPDI信息值与预设阈值进行比较,当所述端口状态IPDI信息值小于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口少;当所述端口状态IPDI信息值大于所述预设阈值时,端口状态隐蔽扫描信息为当前被扫描目标终端开放的端口多。
6.根据权利要求2所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述根据所述端口状态隐蔽扫描信息,对被扫描目标终端的端口进行探测,得到端口状态信息,包括:
S341,当前被扫描目标终端开放的端口少时,对本次探测端口范围进行划分,得到第一端口范围和第二端口范围;
S342,利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息;
S343,利用所述主动扫描主机,对所述第二端口范围进行探测,得到第二端口状态信息;
S344,当前被扫描目标终端开放的端口多时,利用第一IPID检测模型,对相应目标端口进行探测,得到IPID值;
S345,当所述IPID值增加量为2时,端口状态信息为开放状态,否则端口状态信息为关闭状态。
7.根据权利要求6所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述利用所述主动扫描主机,对所述第一端口范围进行探测,得到第一端口状态信息,包括:
S3421,对所述第一端口范围内的端口进行分块,得到N个端口块,N为正整数;
S3422,对所述N个端口块分别进行处理,得到中间端口块mid;
所述中间端口块mid表达式为:
mid=(left+right)/2
式中,left为第一端口范围的左边界,right为第一端口范围的右边界;
S3423,将所述中间端口块与所处段最小值的端口号进行开闭状态比较,若一致,则对所述中间端口块与所述N个端口块的开闭状态进行判断,得到开闭状态信息;
S3424,当所述开闭状态信息超过预设阈值时,所述中间端口块为分界点;否则在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内确定分界点;
S3425,在所述中间端口块的前半部分[left,mid]和后半部分[mid,right]范围内,利用第一IPID检测模型进行探测,得到第一端口状态信息。
8.根据权利要求6所述的基于动态预估模型的端口状态隐蔽扫描方法,其特征在于,所述第一IPID检测模型的检测步骤包括:
利用主动扫描主机向所述第三方远程系统中的协作中间机发送第一个SYN+ACK封包,并记录初始IPID值;
将所述SYN+ACK封包的IP源地址伪造成第三方远程系统中的协作中间机的IP地址,并将其发送至被扫描目标终端;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回SYN+ACK封包时,被扫描目标终端端口开放,初始IPID值增加1;
当所述被扫描目标终端向所述第三方远程系统中的协作中间机返回RST响应时,被扫描目标终端端口关闭;
利用主动扫描主机,向所述第三方远程系统中的协作中间机发送第二个SYN+ACK封包,并求出所返回的RST响应中的第二IPID值;
根据所述第二IPID值,判断被扫描目标终端上端口的开闭状态。
9.一种基于动态预估模型的端口状态隐蔽扫描装置,其特征在于,所述装置包括:
端口分析模块,用于对被扫描目标终端的端口范围进行分析,得到被扫描目标终端的端口范围信息;
端口分段模块,用于根据所述端口范围信息,对所述被扫描目标终端的端口进行分段,得到M个端口段,M为正整数;
端口动态预估模块,用于利用预设的动态预估模型,对被扫描目标终端的M个端口段依次进行端口探测,得到端口状态信息。
10.一种基于动态预估模型的端口状态隐蔽扫描装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-8任一项所述的基于动态预估模型的端口状态隐蔽扫描方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410324426.6A CN118282717B (zh) | 2024-03-21 | 2024-03-21 | 一种基于动态预估模型的端口状态隐蔽扫描方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410324426.6A CN118282717B (zh) | 2024-03-21 | 2024-03-21 | 一种基于动态预估模型的端口状态隐蔽扫描方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118282717A true CN118282717A (zh) | 2024-07-02 |
CN118282717B CN118282717B (zh) | 2024-10-01 |
Family
ID=91645393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410324426.6A Active CN118282717B (zh) | 2024-03-21 | 2024-03-21 | 一种基于动态预估模型的端口状态隐蔽扫描方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118282717B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263666A1 (en) * | 2007-04-23 | 2008-10-23 | Susann Marie Keohane | Method and apparatus for detecting port scans with fake source address |
US20130294354A1 (en) * | 2012-05-03 | 2013-11-07 | Interdigital Patent Holdings, Inc. | Enhanced active scanning in wireless local area networks |
CN109104395A (zh) * | 2017-06-21 | 2018-12-28 | 亿阳安全技术有限公司 | 互联网资产扫描发现与服务识别的方法和装置 |
CN113420303A (zh) * | 2021-07-14 | 2021-09-21 | 广东电网有限责任公司广州供电局 | 基于端口扫描的变电站主机安全漏洞检测方法和系统 |
CN117254931A (zh) * | 2023-07-29 | 2023-12-19 | 上海螣龙科技有限公司 | 一种端口扫描方法、装置及扫描引擎 |
-
2024
- 2024-03-21 CN CN202410324426.6A patent/CN118282717B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080263666A1 (en) * | 2007-04-23 | 2008-10-23 | Susann Marie Keohane | Method and apparatus for detecting port scans with fake source address |
US20130294354A1 (en) * | 2012-05-03 | 2013-11-07 | Interdigital Patent Holdings, Inc. | Enhanced active scanning in wireless local area networks |
CN109104395A (zh) * | 2017-06-21 | 2018-12-28 | 亿阳安全技术有限公司 | 互联网资产扫描发现与服务识别的方法和装置 |
CN113420303A (zh) * | 2021-07-14 | 2021-09-21 | 广东电网有限责任公司广州供电局 | 基于端口扫描的变电站主机安全漏洞检测方法和系统 |
CN117254931A (zh) * | 2023-07-29 | 2023-12-19 | 上海螣龙科技有限公司 | 一种端口扫描方法、装置及扫描引擎 |
Also Published As
Publication number | Publication date |
---|---|
CN118282717B (zh) | 2024-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9367683B2 (en) | Cyber security | |
Ramaki et al. | RTECA: Real time episode correlation algorithm for multi-step attack scenarios detection | |
US8762298B1 (en) | Machine learning based botnet detection using real-time connectivity graph based traffic features | |
CN111506599B (zh) | 基于规则匹配和深度学习的工控设备识别方法及系统 | |
CN111464485A (zh) | 一种加密代理流量检测方法和装置 | |
CN111935185B (zh) | 基于云计算构建大规模诱捕场景的方法及系统 | |
CN112115965A (zh) | 一种基于svm的被动操作系统识别方法、存储介质及设备 | |
CN116846690A (zh) | 基于行业分类和概率模型的IPv6网络空间测绘方法 | |
CN114124734B (zh) | 一种基于GCN-Transformer集成模型的网络流量预测方法 | |
US12107749B2 (en) | Adaptive network probing using machine learning | |
CN118282717B (zh) | 一种基于动态预估模型的端口状态隐蔽扫描方法及装置 | |
Sun et al. | Deep learning-based anomaly detection in LAN from raw network traffic measurement | |
CN116405261A (zh) | 基于深度学习的恶意流量检测方法、系统及存储介质 | |
Whalen et al. | Hidden markov models for automated protocol learning | |
CN115804066A (zh) | 通信监视方法和通信监视系统 | |
Wang et al. | Reverse engineering of industrial control protocol by XGBoost with V-gram | |
Effah et al. | Hybrid Approach to Classification of DDoS Attacks on a Computer Network Infrastructure | |
CN114095265A (zh) | Icmp隐蔽隧道检测方法、装置及计算机设备 | |
CN115102746B (zh) | 一种基于行为体积的主机行为在线异常检测方法 | |
CN115714717B (zh) | 一种基于流量特征的物联网终端通信链路故障定位方法 | |
CN118101286B (zh) | 一种基于卷积神经网络的网络被动流量分析方法及系统 | |
CN117633665B (zh) | 一种网络数据监控方法及系统 | |
CN117041121B (zh) | 基于数据挖掘的物联网异常监测方法及系统 | |
CN118827217A (zh) | 基于深度学习的自适应入侵检测系统及方法 | |
CN118018422A (zh) | 基于霍克斯过程的无线网络拓扑推断方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |