首页> 中国专利> 端口扫描方法与设备及其检测方法与设备、端口扫描系统

端口扫描方法与设备及其检测方法与设备、端口扫描系统

摘要

为了端口扫描,创建认证比特序列作为至少具有给定目标地址和给定秘密密钥作为输入的认证变换的输出;将认证比特序列嵌入在包括给定目标地址的至少一个认证端口扫描事件数据包中;广播该数据包;用给定端口识别符和给定目标地址广播进一步的端口扫描事件数据包。为了端口扫描检测,从具有相同源和目标地址的至少一个认证端口扫描事件数据包中导出所接收的认证比特序列;依据秘密密钥以及所接收认证比特序列和被包括在至少一个认证端口扫描事件数据包中的目标地址,确定是否给出认证;如果给出认证,则用给定端口识别符和给定目标地址接受进一步的端口扫描事件数据包,如果没有,则拒绝该进一步的数据包或者启动报警。

著录项

  • 公开/公告号CN1917426A

    专利类型发明专利

  • 公开/公告日2007-02-21

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200610108216.5

  • 申请日2006-08-01

  • 分类号H04L9/32;H04L29/06;

  • 代理机构北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 18:16:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-11

    未缴年费专利权终止 IPC(主分类):H04L 9/32 专利号:ZL2006101082165 申请日:20060801 授权公告日:20101208

    专利权的终止

  • 2010-12-08

    授权

    授权

  • 2007-04-18

    实质审查的生效

    实质审查的生效

  • 2007-02-21

    公开

    公开

说明书

技术领域

本发明涉及一种端口扫描方法以及一种端口扫描设备。本发明还涉及一种端口扫描检测方法和一种端口扫描检测设备。本发明还涉及一种端口扫描系统。本发明还涉及一种计算机程序以及一种计算机程序产品。

发明背景

网络管理员普遍使用端口扫描器,但端口扫描器也会为黑客恶意地使用。端口扫描器的设计旨在搜索网络主机的开放端口。

在因特网(Internet)协议堆栈TCP/IP中,主机通过唯一的IP地址识别,使用两个分量即IP地址和端口号码来引用运行在一个给定主机上的服务及应用。服务及应用为运行在主机上的过程。在TCP和UDP协议中,存在着16比特数值范围的不同的和可用的端口号码。因特网上的大多数服务使用人们十分熟悉的端口号码(在1024以下),这些端口号码是由因特网赋值授权机构(IANA)赋值的,而其它过程可以把暂时的端口号码(在1024和65535之间)用于它们的通信。

通过端口扫描所收集的信息具有许多合法的用途,包括验证网络中一个主机安全状态的能力。然而,端口扫描也被恶意地加以使用。许多恶意的使用依赖于端口扫描以发现在其上潜在的易受攻击的过程正在收听(islistening)的开放端口并企图发送大量特定的数据以触发一个公知为缓冲器溢出的条件。这样的行为可能危及主机和网络的整体安全,从而导致敏感信息和利用主机的处理效率的能力的丢失或暴露。已知的端口扫描器的一个例子是“nmap”。

网络或单个网络设备的安全辅助设施包括防火墙和访问控制。除此之外,入侵检测系统也是已知的,其监视识别恶意或可疑事件的动作。入侵检测系统起着传感器的作用,类似烟尘探测器,如果观察到特定可疑情况,其发出警报。入侵检测系统的设计旨在监视用户、系统以及网络活动;针对薄弱点和错误配置,审核系统配置;识别系统和网络活动中已知的攻击模式;通过统计分析,识别异常活动;管理审核跟踪和标示用户违反规则或者正常活动的情况;以及安装和操作捕集器(trap),以记录有关入侵者的信息。已知的入侵检测系统,也叫做入侵检测助手,其设计旨在通过连续地和短时间间隔地发送到主机上的多个不同端口的一系列TCP SYN数据包来检测攻击,例如端口扫描就是这样的一个例子。当检测到这样的一个攻击时,入侵系统启动某一抵抗行动。这些行动可以包括:增加所收集的数据的量,以保护暴露部分,并采取减少暴露的行动;或者还包括向人发出通知。在Internet的http://www.informIT.com/articles/article.asp?p=31339&seqNum=5网址上由Shari Lawrence Pfleeger、Charles Pfleeger发表的名为“网络中的安全(SecurityIn Networks)”一文公开了这样的入侵检测助手。

从US 6,324,656 B1可以看出,规则驱动的多阶段网络薄弱点估计的计算机实现的方法公知包括发现与网络相连的设备的网络上的查验设备(pinging device)。在一个所发现的设备上进行端口扫描,并且收集幅标(banner)。来自所收集幅标的信息作为入口条目被存储在第一数据库中。通过把这些条目与设置旨在确定潜在薄弱点的规则进行比较,来对这些条目进行分析。

发表于SYS Admin杂志2003年第12期上的、作者为Krzywinsky,M、名为“跨越封闭端口的网络认证(Network Authentication Across Closed Ports)”的文章中,公开了端口获取(port knocking),该文章也可得于http://www./linuxjournal.com/article/6811。该文章公开的是这样一种技术:防火墙应能提供防止非法行为的能力,同时允许可信用户进行连接。过滤出恶意通信量(traffic)不总是可行的,因为根据IP地址和端口进行过滤不能对正在连接的用户进行区分。攻击者可能从可信的IP地址发送通信量。然而,开放端口还有一个潜在的薄弱点:它们允许连接在主机上进行处理,从而可以转换成攻击的开放门户。端口获取技术是这样的一种方法:允许可信用户通过跨越关闭的端口传输信息来操纵防火墙规则。在这一方面,用户向关闭的端口序列进行连接尝试。失败的连接由服务方的过滤数据包的防火墙进行登录并且由监视防火墙登录文件的后台程序(daemon)检测。当接收到一个在认证过程中用于发挥秘密作用的适当格式化的获取序列时,根据该序列的信息内容操纵防火墙规则。在通常部署的防火墙中,过滤由连接主机的IP地址或者由主机正连接其上的端口来完成。在任何用户认证发生之前,防火墙检查数据包并且与数据包进行交互。因此,它们不对试图打开一个连接的用户加以区分。人们希望,一旦防火墙已查验了该数据包,并且允许其进入网络,则下游应用将处理用户认证。端口获取提供了一个认证系统,该认证系统跨越关闭的端口运作,从而消除了与公共开放端口相关的风险。在端口获取过程期间,对一个共同商定的端口序列进行寻址,这一端口序列用作端口获取的报头。此后,进行与更多端口的连接,根据其序列,正在进行接收的主机可以导出实际想要打开的端口。然后,主机可以打开相应的端口,接下来,这一端口可以用于通信。为了最小化由拦截方所构造的一个功能序列的风险,从以上所提到的文章可知,应对包含这一序列的远程IP的信息内容进行加密。为此,把一次性口令或一次性填充(pads)用于加密。还可知,应对远程IP、端口、时间以及校验总和进行加密。

提供一种是通用的同时是高效的端口扫描方法和相应的端口扫描设备将是一种挑战。提供一种是通用的同时是高效的端口扫描检测方法和设备也将是一种挑战。提供一种是通用的同时是高效的端口扫描系统也将是一种挑战。

发明概述

根据本发明的第一方面,提供了一种端口扫描方法,该端口扫描方法包括创建作为一个认证变换的输出的一个认证比特序列。这一认证变换具有作为输入的至少一个给定目标地址和一个给定秘密密钥。其还包括把认证比特序列嵌入包括给定目标地址的至少一个认证端口扫描事件数据包。其还包括广播该至少一个认证端口扫描事件数据包,该认证端口扫描事件数据包可以作为一个例子是但不局限于此是TCP SYN数据包或为0比特长度的UDP数据包;通过给定端口标识符和一个给定目标地址广播进一步的端口扫描事件数据包。这可使安全认证得以进行,该安全认证的特点为:良性的端口扫描,然后高效的创建以及用于接收有关由端口识别符所代表的给定端口的进一步信息的进一步端口扫描事件数据包的广播。通过依据给定目标地址创建认证比特序列,可以得到一个通用的实现工具,因为接下来,也可以在与具有给定目标地址的网络设备相分离的网络设备上,例如在一个路由器上,进行相应的端口扫描检测。

根据本发明的第一方面的优选实施例,除给定目标地址外,认证变换还具有至少一个认证端口扫描事件数据包的至少一部分作为进一步的输入。这能够进一步增强认证的可靠性以及对抗恶意操纵的鲁棒性。

在这一方面,如果进一步的输入为一个源地址则更为有利。这样,通过拦截认证比特序列以及如此的恶意操纵,增强了抗击对认证比特序列的源地址的恶意操纵的鲁棒性。

在这一方面,如果进一步的输入包括从当前时间导出的目前时刻,则是更为有利。目前时刻是出于安全目的而生成的一个任意的数值,并且仅使用一次。优选地,但不局限于此,根据当前时间创建目前时刻。优选地但不局限于使用网络时间协议(NTP)。这明显地减少了再次攻击的风险。

在这一方面,如果进一步的输入包括一个时标(time stamp),则更为有利。这也明显地减少了再次攻击的风险。

在这一方面,如果进一步的输入还包括识别给定秘密密钥的密钥号码,则更为有利。这样做,可以使用各种密钥。

在根据本发明的第一方面的又一个优选实施例中,该方法包括依据给定错误代码变换把错误纠正比特加于认证比特序列,其中给定错误代码变换具有作为输入的认证比特序列。这样做,可以明显减小广播期间丢失数据包的影响。

在这一情况下,如果所述错误代码变换为里德-所罗门代码(Reed-Solomon-Code)变换,则是特别有利的。就这一目的而言,里德-所罗门代码变换是特别有效的。

在第一方面的又一个优选实施例中,该方法包括用数据包间时间期间来广播至少一个认证端口扫描事件数据包与/或进一步端口扫描事件数据包,数据包间时间期间表征连续端口扫描事件数据包的两个连续广播之间的时间,该数据包间时间期间大于给定最小数据包间时间期间。这使得执行该端口扫描方法不会被解释为拒绝服务攻击。在这一情况下,如果选择最小数据包间时间期间,以使目标的CPU负载不超过由处理这一目标中的端口扫描事件数据包的最大CPU负载的大约10%,则其是有利的。

在这种情况下,如果选择最小数据包间时间期间以不超过大约1秒的量级,优选地局限于1~5秒,则也是有利的。

在本发明的第一方面的又一个优选实施例中,该方法包括把认证比特序列嵌入认证端口扫描事件数据包的目标端口字段中、和/或源端口字段中、和/或IP-选项字段中。这能够更有效地广播信息,并且可以提高信息传送率。还可用于提高认证的安全性。

在本发明的第一方面的又一个优选实施例中,该方法包括作为一个TCPSYN数据包的认证端口扫描事件数据包。这能够使相应数据包的一个更简单识别作为认证端口扫描事件数据包。

在本发明的第一方面的又一个优选实施例中,认证端口扫描事件数据包为UDP零比特数据包。这能够使相应数据包的一个更简单识别作为认证端口扫描事件数据包。

在本发明的第一方面的又一个优选实施例中,该方法包括:使用给定对称秘密密钥创建第一认证比特序列;把第一认证比特序列嵌入包括给定目标地址的至少一个认证端口扫描事件数据包中;广播该至少一个认证端口扫描事件数据包;使用给定非对称公共秘密密钥创建第二认证比特序列;把第二认证比特序列嵌入包括给定目标地址的至少另一个认证端口扫描事件数据包中;广播该至少另一个认证端口扫描事件数据包以及通过给定端口识别符和给定目标地址广播进一步的端口扫描事件数据包。这通过两个步骤的方案进一步提高了安全性,而且还限制了由公共/私有密钥操作所导致的高计算花费。因此,结果是,CPU需要更多的验证工作和排除了恶意第三方的认证。

根据第二方面,提供了一种用于实现本发明第一方面端口扫描方法的设备。该用于实现端口扫描方法的设备对应于用于端口扫描的方法,该设备的优点和优选实施例也分别与所述方法的对应。。

根据本发明的第三方面,提供了一种端口扫描检测方法,该端口扫描检测方法包括:从具有相同源地址的至少一个认证端口扫描事件数据包中导出所接收的认证比特序列。其还包括:依据所接收的认证比特序列、包含在至少一个认证端口扫描事件数据包中的目标地址以及秘密密钥来确定是否给出认证。其还包括:如果给出了认证,则通过给定端口标识符和给定目标地址接收进一步的端口扫描事件数据包,如果没有给出认证,则通过给定端口标识符和给定目标地址来拒绝进一步的端口扫描事件数据包或者启动报警动作。

该进一步的端口扫描事件数据包的给定目标地址等于认证端口扫描事件数据包的目标地址。该进一步的端口扫描事件数据包的给定端口识别符仅仅由进一步的端口扫描事件数据包给出但可以在不同的进一步端口扫描事件数据包之间变化。这能够实现安全认证,其特征为:有益的端口扫描,然后有效处理进一步的端口扫描事件数据包,从而允许检测潜在的薄弱点。使用依赖于给定目标地址的认证比特序列,能够实现更通用的工具。因为还能够在脱离具有给定目标地址的网络设备的网络设备上进行端口扫描检测,例如在一个路由器上进行端口扫描检测。这一方面还能够使加密/解密方法或者散列函数(hash functions)等更有效地得以使用。

根据本发明第三方面的优选实施例,该方法包括:创建基准认证比特序列作为认证变换的输出;该认证变换至少具有给定目标地址和秘密密钥作为输入。其还包括:依据所接收的认证比特序列和基准认证比特序列来确定是否给出了认证。这能够更有效地确定是否给出了认证。

在本发明第三方面的又一个优选实施例中,该方法包括:进一步依据为除给定目标地址之外的至少一个认证端口扫描事件数据包的至少一部分的进一步的输入,确定是否给出了认证。在这一情况下,如果所述进一步的输入为源地址、从当前时间所导出的目前时刻、以及/或者时标或者识别秘密密钥的密钥号码,则其是有利的。

在本发明第三方面的又一个优选实施例中,该方法包括:依据具有认证比特序列作为输入的的给定错误代码变换,把错误纠正比特加于认证比特序列。在这个情况下,如果错误代码变换为里德-所罗门代码变换,则其是有利的。

根据本发明第三方面的又一个优选实施例,该方法包括:如果根据具有下列特征的数据包间时间期间接收至少一个认证端口扫描事件和/或进一步的端口扫描事件数据包,则拒绝认证或启动报警动作,所述数据包间时间期间的特征为:时间为连续端口扫描事件数据包的两个连续广播的时间,数据包间时间期间小于或等于所给定的最小数据包间时间期间。在这一情况下,如果为了使目标的CPU负载不超过处理端口扫描事件数据包所产生的最大CPU负载的10%而选择最小数据包间时间期间,则其是优选的。在这一情况下,如果选择最小数据包间时间期间使得不超过大约1秒的量级,则其也是有利的。

根据本发明第三方面的又一个优选实施例,该方法包括:从认证端口扫描事件数据包的源端口字段和/或IP-选项字段中抽取认证比特序列。

根据本发明第三方面的又一个优选实施例,认证端口扫描事件数据包为TCP SYN数据包和/或UDP零比特数据包。

在本发明第三方面的又一个优选实施例中,该方法包括:从具有相同源地址的至少一个认证端口扫描事件数据包中导出第一所接收的认证比特序列;依据第一所接收的认证比特序列、包括在至少一个认证端口扫描事件数据包中的目标地址以及给定对称密钥,确定第一认证是否给出。该方法还包括:从具有相同源地址的至少一个认证端口扫描事件数据包中导出第二所接收的认证比特序列,并且依据第二所接收的认证比特序列、包括在至少另一个认证端口扫描事件数据包中的目标地址以及给定非对称私有秘密密钥来确定是否给出第二认证。该方法还包括:如果给出了第一和第二认证,则通过给定端口识别符和给定目标地址接受进一步的端口扫描事件数据包,否则通过给定端口识别符和给定目标地址拒绝进一步的端口扫描事件数据包,或者启动报警动作。该第三个方面及其优选实施例对应于第一方面,因此,各自的优点也一一对应。

根据本发明的第四方面,提供了一种用于实现端口扫描检测方法的设备。该设备及其优选实施例相应于本发明的第三方面,从而也相应于其优点。

根据本发明的第五方面,提供了一种用于端口扫描的系统,其包括根据本发明第二和第四方面的设备。因此,它们的优选实施例和优点也分别相对应。

根据本发明的第六方面,提供了一种计算机程序产品,其包括:计算机可读媒体,该计算机可读媒体包含有计算机可执行的程序指令,以创建认证比特序列作为认证变换的输出,该认证变换至少具有给定目标地址和给定秘密密钥作为输入,以把认证比特序列嵌入至少一个包括给定目标地址的认证端口扫描事件数据包,以广播所述至少一个认证端口扫描事件数据包,以及以通过给定端口识别符和给定目标地址广播进一步的端口扫描事件数据包。该第六个方面及其优选实施例相应于本发明的第一方面,因此,也相应于其优点。

根据本发明的第七方面,提供一种计算机程序,当在计算机上运行时,其包括适合于执行第一方面或第三方面之一的所有步骤的程序指令。。第七方面及其优选实施例相应于本发明的第一方面,并且相应于其优点,或者分别相应于本发明的第三方面及其优点。

根据本发明的第八方面,提供了一种计算机程序产品,其包括计算机可读媒体,该计算机可读媒体包含有计算机可执行的程序指令,以从具有相同源地址的至少一个认证端口扫描事件数据包中导出所接收的认证比特序列,并且依据所接收的认证比特序列、包括在至少一个认证端口扫描事件数据包中的目标地址以及秘密密钥来确定是否给出了认证,如果给出了认证,则通过给定端口识别符和给定目标地址接受进一步的端口扫描事件数据包,如果没有给出认证,则通过给定端口识别符和给定目标地址拒绝进一步的端口扫描事件数据包,或者启动报警动作。该第八方面及其优选实施例相应于本发明的第三方面,也相应于其优点。

附图简述

参照以下并结合附图对根据本发明的优选实施例的详细描述,将可更全面地理解本发明及其实施例,但这些实施例仅为说明性的。其中:

图1说明一个网络;

图2说明端口扫描程序的流程图;

图3说明端口扫描检测程序的第一流程图,以及

图4说明端口扫描检测程序的第二流程图。

附图标记说明

PSA   端口扫描授权机构;

R1    第一路由器;

R2    第二路由器;

R3    第三路由器;

A     攻击者;

CL1   第一客户机;

CL2   第二客户机;

      端口扫描分析器;

ABS   认证比特序列;

AT    认证变换;

D_ADD  给定目标地址;

KEY    给定秘密密钥;

APSEP  认证端口扫描事件数据包;

FPSEP  进一步的端口扫描事件数据包;

PI     给定端口识别符;

       至少一个认证端口扫描事件数据包的一部分;

S_ADD  源地址;

N      目前时刻;

CT     当前时间;

TS     时标;

KEY_NO  密钥号码;

ECB     错误纠正比特;

ECT     错误代码变换;

        里德-所罗门代码变换;

IPTD    数据包间时间期间;

IPTD_MIN  给定最小数据包间时间期间;

DPF       目标端口字段;

SPF       源端口字段;

IPOP      IP-选项字段;

SYN       TCP SYN数据包;

ZBP       UDP零比特数据包;

ABS1      第一认证比特序列;

ABS2      第二认证比特序列;

KEY_SYM   给定对称秘密密钥;

KEY_PUB   给定非对称公共秘密密钥;

ABSREC    所接收的认证比特序列;

AA        报警动作;

ABSREF    基准认证比特序列;

CPU_L     CPU负载;

ABSREC1   第一所接收的认证比特序列;

ABSREC2   第二所接收的认证比特序列;

TAB       表;

TR        树。

具体实施方式

图1是包括各种网络设备的网络的一个实施例的方框图,该网络设备为主机、客户机、路由器或其它网络装置。具体地,其包括端口扫描授权机构(PSA)、第一到第三路由器R1、R2、R3以及第一和第二客户机CL1、CL2。除此之外,还示出了攻击者A。作为网络一部分的不同设备能够建立与网络的其它设备的连接。端口扫描授权机构的设计旨在运行用于端口扫描的程序,具体地是计算机程序。为此目的,端口扫描授权机构可以由一个主机加以体现,但并不局限于此。例如,该程序也可以运行在不同的主机上和被相应地分割。对于端口扫描检测,一个或多个路由器R1~R3或者一个或多个客户机CL1、CL2的设计,旨在存储和/或运行相应的程序,具体为计算机程序。在一个示范性实施例中,用于端口扫描检测的程序被运行并可能存储在第一路由器R1中。作为选择或除此之外,端口扫描检测程序可以被存储和/或运行在第一客户机上。显然,端口扫描检测程序的执行可以分布在各种网络设备上。

可以提供一种计算机可读媒体,其包含可由一个网络设备或多个网络设备的组合执行的程序指令。例如,该计算机可读媒体可为CD-ROM、闪存卡、硬盘或任何其它适合的计算机可读媒体。

以下,借助图2,更详细地描述用于端口扫描的程序,并且借助图3和4,更详细地描述用于相应端口扫描检测的程序。

用于端口扫描的程序开始于步骤S1(图2)。开始可以发生在任何时刻,即想要运行端口扫描的任何时候。在步骤S1中,可以对变量进行初始化。

在步骤S2中,通过进行认证变换来创建认证比特序列ABS。认证变换AT具有代表将被扫描的网络设备的给定目标地址D_ADD和给定秘密密钥KEY作为输入。作为附加输入,其可以具有代表将在其上运行端口扫描程序的网络设备或者将在其上运行端口扫描程序的一个设备的源地址S_ADD、目前时刻N、时标TS、以及/或者密钥号码KEY_NO。其还可以包括进一步的输入,例如为至少一个认证端口扫描事件数据包APSEP的另外部分。优选地,认证端口扫描事件数据包APSEP是一个包括由Internet协议所确定的人们熟知字段的Internet协议数据报数据包。它们包括Internet数据包报头,Internet数据包报头包括目标地址字段、源地址字段、目标端口字段DPF、源端口字段SPF、IP-选项字段IPOP,除此之外,例如还包括标志字段、服务类型字段、表示将传送数据包的传送类型的协议字段(例如TCP或UDP)等。

认证变换AT是密码变换。例如,其可以为一种散列函数等,也可以为一种加密/解密。密钥KEY可以为一种给定的对称密钥KEY_SYM,希望进行合作的各方可以就这一密钥达成一致,密钥KEY也可以为一种给定非对称私有秘密密钥KEY_PRIV,其具有一个相关的公共密钥KEY_PUB,该公共密钥KEY_PUB可做成使希望借此进行相互合作的各方能够公共获得的密钥。在这一方式下,例如,认证变换AT可以不是使用对称加密或公共/私有密钥加密的认证变换,例如不是散列函数。优选地,密钥KEY具有大约为认证比特序列ABS的比特长度的比特长度,例如可以将其选择为具有128个比特或256个比特的比特长度。在这一方面,应该适当地选择认证比特序列ABS,优选地,其也处于128到256个比特的范围内,并且不大于AT变量的大小的总和。目前时刻N是从当前时间值所生成的任意数值。目前时刻N的时间分辨率应至少处于在网络上广播、接收以及处理相应认证比特序列ABS所需的最大时间的范围内,例如可以在数分钟的范围内。使用网络时间协议(NTP)可以实现网络中的时间同步,而且,还考虑到相应粗糙的时间关联,例如,以小时或天为量级,也就足够了。目前时刻确保了可以仅使用认证比特序列ABS一次。时标也可以代表当前时间。例如,如果出现一个以上的密钥,则密钥号码KEY_NO可以代表所选择的密钥。

在步骤S4中,可以由一个给定错误代码变换ECT创建错误纠正比特ECB,然而也可以省略错误纠正比特ECB,其中,给定错误代码变换ECT具有作为输入的认证比特序列ABS。这样的错误代码变换ECT是人们所熟悉的,例如可以将其作为一个简单的校验总和或者更优选的将其作为里德-所罗门代码加以并入,里德-所罗门代码是一种编码方案,其是这样运作的:首先通过从认证比特序列ABS构造一个多项式,然后作为输出将其变换为该多项式的一个过取样曲线。

在步骤S6中,创建认证端口扫描事件数据包APSEP,然后在网络上将其加以广播。可以将给定目标地址D_ADD和/或部分或全部认证比特序列ABS和/或错误纠正比特ECB和/或源地址S_ADD和/或时标TS和/或密钥号码KEY_NO强加于认证端口扫描事件数据包APSEP,其取决于步骤S2中使用了这些信息中的哪些信息,或者是否已执行了步骤S4。也可以把目前时刻N强加于认证端口扫描事件数据包APSEP。

优选地,认证端口扫描事件数据包APSEP是TCP SYN数据包或UDP零比特数据包ZBP。然而,其也可以为某种其它类型的数据包。在目标端口字段DPF、源端口字段SPF、IP-选项字段IP_OP或者用于存储认证端口扫描事件数据包APSEP的可用字段信息的另一个字段之一或它们的组合中,可以存储认证比特序列ABS或其一部分和/或错误纠正比特ECB和/或时标TS和/或密钥号码KEY_NO。通过使用各种这样的字段,可以明显增加用于认证目的的能够由单一认证端口扫描事件数据包APSEP传送的信息的信息量。在一个例子中,可以把认证比特序列ABS的16个比特强加于每一个认证端口扫描事件数据包APSEP。在认证比特序列ABS的比特长度为256个比特的情况下,可以需要全部16个或更多认证端口扫描事件数据包APSEP以广播整个认证比特序列ABS。然后选择阈值X,以确保可以传输整个认证比特序列ABS以及其它相关的信息,例如为错误纠正比特ECB、时标TS或密钥号码KEY_NO。

在创建了认证端口扫描事件数据包APSEP之后,在网络上对其加以广播。

在步骤S8中,检查第一计数器XCTR是否超过上述所选择的第一极限X,以确保要广播的信息的广播。每次运行步骤S6时,增加第一计数器XCTR,而当运行步骤S14时,对其进行复位。如果没有满足步骤S8的条件,则在步骤10中,在暂停进一步执行的地方继续执行,以确保数据包间时间期间IPTD不小于给定最小数据包间时间期间IPTD_MIN,选择给定最小数据包间时间期间IPTD_MIN是为了保持目标设备的CPU负载低于一个给定的阈值,例如低于其最大CPU负载的10%,以及/或者为了确保正在接收的网络设备不错误地把认证端口扫描事件数据包APSET的广播解释为服务攻击的拒绝。因此,可以按大约1秒的量级,优选地是大约1~5秒的量级给出给定最小数据包间时间期间IPTD_MIN。在执行了步骤S10之后,再次继续步骤S6中的执行。

如果满足步骤S8的条件,则在步骤S14中,创建进一步的端口扫描事件数据包FPSEP,并分配代表要加以扫描的端口的给定端口识别符、已针对其进行了认证的给定目标地址D_ADD以及在其中运行该程序的设备的源地址S_ADD。在步骤S16中,检查第二计数器YCRT是否超过第二阈值Y,第二阈值Y代表要加以扫描的端口的数量。每次运行步骤S14时,增加第二计数器YCRT。借助步骤S14的每次运行,可以向端口识别符PI分配不同的值。优选地,在步骤S16之后和步骤S14之前,可以插入相应于步骤S10的步骤。

如果满足了步骤S16的条件,则在步骤S18中停止执行。与以上所提到的步骤相并行,执行步骤S20,在这一步骤中,监听来自所扫描的网络设备的答复,然后对答复进行估计,例如,这些答复代表了被存储和/或进一步被估计的所扫描端口的状态。因此,可以在步骤S6之后和/或步骤S14之后执行S20。这可以用于估计薄弱点问题或其它问题。根据图12的程序可以被并入到网络管理员工具中以得到有关被管理网络的信息。

作为对此的一种选择,也可以采取一种所谓的两步骤方案,其中,在第一阶段步骤中,由步骤S22取代S2,由步骤S26取代步骤S6,然后运行相应的步骤,直至满足步骤S8的条件。接下来,由步骤S24取代步骤S2,然后再次运行步骤S24、S4、S6、S8以及S10,直至满足S8的条件。步骤S22包括使用对称密钥KEY_SYM。然后,在步骤S24中,使用用于非对称加密的私有密钥KEY_PRIV。接下来,在步骤S26中,连接地广播相应的第一或相应的第二认证比特序列ABS1或ABS2。

图3是表示一个流程图,代表了端口扫描检测程序的第一部分。端口扫描检测程序开始于步骤S28,在这一步骤中,可以对变量进行初始化。

在步骤S30中,估计是否已接收到认证端口扫描事件数据包APSEP。可以把正在到达的数据包检测为认证端口扫描事件数据包APSEP,即根据数据包的特殊形式,例如根据TCP SYN数据包SYN或UDP零比特数据包ZPB进行这一检测。如果不满足步骤S30的条件,则在步骤S32中继续执行,在步骤S32中,优选地,程序暂停给定的时间,直至下一个数据包到达,这段时间可能非常短。在步骤S32之后,在步骤S30中继续执行。

如果满足了步骤S30的条件,则进行步骤S33,在步骤S33中,从相应接收的认证端口扫描事件数据包APSEP中抽取给定目标地址D_ADD和源地址S_ADD,并且检查是否已接收到具有相同目标和源地址S_ADD,S_ADD的其他对应的认证端口扫描事件数据包APSEP。如果是这样一种情况,则把从认证端口扫描事件数据包APSEP的相应字段中所抽取的相应信息存储在树TR或表TAB的各相应位置中,以用于在步骤S34中进行进一步的在后处理。取决于已就哪些字段达成一致,这些字段可以包含所传输的认证比特序列ABS以及相关的信息,它们被存储在目标端口字段DPF、源端口字段SPF、IP-选项字段IPOP或其它相应字段的各部分中。然后,在步骤S36中继续执行。否则,在步骤S35中,在树TR或表TAB中产生相应于目标地址和源地址D_ADD、S_ADD的新的入口条目,并且从认证端口扫描事件数据包APSEP的相应字段中抽取相应的信息,然后将它们存储起来。在这一情况下,也在步骤S36中继续执行。

在步骤S36中,检查第一计数器XCTR是否超过第一阈值X。第一计数器与目标地址和源地址D_ADD、S_ADD的相应对关联,并且可以在给定时间期间之后再次对它们进行初始化。第一阈值X也可以大于传输相关信息所必需的认证端口扫描事件数据包APSEP的数量,例如所述相关信息可以为认证比特序列ABS,为了能够考虑到即使在还发送进一步的端口扫描事件数据包FESEP之前可以把认证端口扫描事件数据包APSEP按给定的时间次序加以发送,但它们也可以按另外的次序到达。如果没有满足步骤S36的条件,则在步骤S32中继续执行。否则,在步骤S38中继续执行,这一执行触发了借助图4进一步加以描述的程序的开始。

在步骤S40中,程序开始,并可能对变量进行初始化。在步骤S42中,根据已经从认证端口扫描事件数据包APSEP的相应的字段或者从认证端口扫描事件数据包APSEP中抽取的相应信息,导出所接收的认证比特序列ABSREC,并且以源和目标地址S_ADD、D_ADD的相同对形式将其存储在以上所描述的树或表中。除此之外,也可以从树中的相应信息中抽取其它信息,例如时标TS和相应的密钥号码KEY_NO以及/或者错误纠正比特ECB。可以在步骤S42首次运行时,根据把来自认证端口扫描事件数据包APSEP的相应信息存储在树或相应表中的次序来确定连结这一信息的方式,特别是认证比特序列ABS。然而,其也可以按另外的次序。

在步骤S44中,作为认证变换的输出,创建基准认证比特序列ABSREF。该认证变换AT与步骤S2中认证变换AT相同,或者也可以相反。认证变换AT的输入至少包括给定目标地址D_ADD和秘密密钥KEY,依赖于认证变换AT,其可以是相应的对称密钥KEY_SYM或公共密钥KEY_PUB。该输入优选地还至少包括先前从除目标地址D_ADD之外的至少一个相应认证端口扫描事件数据包APSEP中所抽取的信息的一部分,例如,这一方式下,其可以包括源地址S_ADD、时标TS或密钥号码等。除此之外,其还可以包括由步骤S44中的程序所创建的或者当接收相应的认证端口扫描事件数据包APSEP时所创建的目前时刻N。所接收的认证比特序列可以由还包括散列函数等的任何相应的认证变换AT加以创建。

在步骤S46中,检查所接收的认证比特序列ABSREC是否等于基准认证比特序列ABSREF。如果等于,则在步骤S52中假设认证将产生这样一个结果:例如对于一个可能处于数分钟或数小时或最多不到一天等范围内的一个给定时间期间而言,优选地允许从相同的源地址接收进一步的端口扫描事件数据包FPSEP,并且不触发报警动作A_A。如果不满足步骤S46的条件,则在步骤S48中,检查是否已确定了全部或给定量的与步骤S42相关的所接收的认证端口扫描事件数据包APSEP的重新排序的可能性。如果检查结果为否定的,则触发进一步的重新排序,并且再次在步骤S42中继续执行。在这一方式下,与广播认证端口扫描事件数据包APSEP的次序相比,对所接收的认证端口扫描事件数据包APSEP的排序,可以考虑可能的不同的方式。

如果不满足步骤S48的条件,则在步骤S50中可以使用错误纠正比特ECB来应用相应于步骤S4的错误代码变换的错误代码变换,目的是补偿和重构比特序列或数据包的可能丢失的部分。如果尚未进行的错误代码变换仍是可能的,则在步骤S50之后,在步骤S42中再次继续执行。然而,如果没有满足步骤S50的条件,则假设没有授权对认证端口扫描事件数据包APSEP的广播或至少接收,并且可能为恶意攻击的一部分。在这一方式下,在步骤S63中,可以采取某些报警动作A_A,其可以包括拒绝对给定端口或进一步文件的进一步存取,或者还向人报警或采取其它报警动作。此后,在步骤S62中停止执行,并且能够删除存储在树或表中的给定源和目标地址对的信息。并行地,在步骤S64中,按不小于X*IPTD_MIN的时间间隔,周期性地清除树或表中过期的入口条目。在步骤S8中可以仅部分地对重新排序进行测试,也可以完全省略。这同样适用于步骤S50。

如果采用根据图2程序的两个步骤的方案,则图4的程序也采用了一个相应的两个步骤的方案,这导致了用相应的步骤S56取代步骤S42,唯一不同的是,如在步骤S42中,导出第一所接收的认证比特序列ABSREC1,然后相应地导出第二所接收的认证比特序列ABSREC2的时机。除此之外,为了分别创建第一基准认证比特序列ABSREF1和第二基准认证比特序列ABSREF2,针对该程序步骤序列的不同的运行,取代步骤S44,提供了相应的步骤S58和S60。在步骤S58中,秘密密钥KEY为对称密钥KEY_SYM。在步骤S60中,秘密密钥KEY为公共密钥KEY_PUB。特别是,当采用公共密钥/私有密钥加密时,也可以使用公共密钥KEY_PUB对第二接收的认证比特序列ABSREC2进行译码,然后,可以把所得到的译码后的信息,例如目标地址、源地址、时标、密钥号码等,与直接从相应认证端口扫描事件数据包所导出的这些内容进行比较,以检查是否给出了认证。在这两个步骤的方案中,如果已对两个所接收的认证比特序列有效地进行了认证,则仅满足了步骤S46的条件。

应当理解,以上只是本发明的示例性实施例,而不是限制性的。对于本领域技术人员,可以进行各种修改、组合以及变更,而不超过本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号