用于检测具有伪造源地址的端口扫描的方法和装置转让专利

申请号 : CN200880013534.0

文献号 : CN101669347B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : S·M·基奥恩G·F·麦克布里尔蒂S·P·玛伦J·C·缪里罗J·M-H·希荷

申请人 : 国际商业机器公司

摘要 :

用于端口扫描保护的计算机实现方法、装置和计算机程序产品。响应于检测到端口扫描,生成具有已修改的传输控制协议报头的应答数据分组,以形成已修改的应答数据分组。已修改的应答数据分组将引发来自已修改的应答数据分组的接收方的响应。将应答数据分组发送到与端口扫描相关联的第一互联网协议地址。从对已修改的应答数据分组的响应的报头中识别第二互联网协议地址。该第二互联网协议地址是端口扫描的源的实际路由地址。可以阻止来自该第二互联网协议地址的所有网络业务,以防止来自端口扫描的源的、对任何开放端口的攻击。

权利要求 :

1.一种用于端口扫描保护的方法,所述方法包括步骤:响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组,其中所述已修改的应答数据分组从所述已修改的应答数据分组的接收方获得响应;

将所述已修改的应答数据分组发送到与所述端口扫描相关联的第一路由地址;以及响应于接收到对所述已修改的应答数据分组的所述响应,识别所述响应的报头中的第二路由地址,其中所述第二路由地址是所述端口扫描的源的实际路由地址。

2.如权利要求1的方法,其中针对所述协议而修改的报头包括:落在序列号的可接受范围之外的序列号。

3.如权利要求1的方法,其中针对所述协议而修改的报头包括:重置标志。

4.如权利要求1的方法,其中针对所述协议而修改的报头包括:结束标志。

5.如权利要求1的方法,其中修改所述报头还包括:改变用于生成所述已修改的应答数据分组的校验和。

6.如权利要求1的方法,进一步包括步骤:

阻止起源自所述第二路由地址的网络业务,以防止对任何开放端口的攻击。

7.如权利要求1的方法,其中所述第一路由地址不是计算设备的正确路由地址。

8.如权利要求1的方法,进一步包括步骤:

响应于接收到端口扫描数据分组,识别所述端口扫描数据分组的报头中的源路由地址以作为所述第一路由地址。

9.如权利要求1的方法,其中针对所述协议而修改的报头是已修改的传输控制协议报头。

10.如权利要求1的方法,其中针对所述协议而修改的报头是已修改的用户数据报协议报头。

11.如权利要求1的方法,其中所述第一路由地址是第一互联网协议地址,而所述第二路由地址是第二互联网协议地址。

12.一种用于端口扫描保护的系统,包括:

用于响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组的装置,其中所述已修改的应答数据分组从所述已修改的应答数据分组的接收方获得响应数据分组;

用于将所述已修改的应答数据分组发送到与所述端口扫描相关联的第一路由地址的装置;以及用于响应于接收到响应数据分组,识别所述响应数据分组的报头中的第二路由地址的装置,其中所述第二路由地址是所述端口扫描的源的实际路由地址。

13.如权利要求12的系统,其中针对所述协议而修改的报头包括序列号,其中所述序列号是落在可接受序列号范围之外的序列号。

14.如权利要求12的系统,其中针对所述协议而修改的报头包括重置标志。

15.如权利要求12的系统,其中针对所述协议而修改的报头包括结束标志。

16.如权利要求12的系统,进一步包括用于阻止起源自所述第二路由地址的网络业务以防止对任何开放端口的攻击的装置。

17.如权利要求12的系统,其中针对所述协议而修改的报头是已修改的传输控制协议报头。

18.如权利要求12的系统,其中所述第一路由地址是第一互联网协议地址,而所述第二路由地址是第二互联网协议地址。

说明书 :

用于检测具有伪造源地址的端口扫描的方法和装置

技术领域

[0001] 本发明总体上涉及数据处理系统,并且具体地涉及用于数据处理系统安全性的方法和装置。更具体地,本发明涉及用于阻止使用伪造源互联网协议地址的端口扫描器的计算机实现方法、装置以及计算机可用程序代码。

背景技术

[0002] 连接到网络的计算机设备(诸如客户端)上的用户,可以执行在不同的计算设备(诸如服务器)上可用的应用或其他服务,其通过连接到与应用或服务相关联的服务器上的端口来实现。端口是通往网络中客户端和服务器之间的逻辑连接的端点。端口通常由端口号来标识。服务器上的每个可用应用与不同的端口号相关联。
[0003] 换言之,端口类似于去往计算机上的特定应用的入口或门口。类似于入口,端口可以是开放的或关闭的。服务器上的开放端口是与当前在服务器上可用的应用相关联的端口,以便由一个或多个客户端计算机使用。关闭的端口是没有与服务器上可用的应用或服务相关联的端口。黑客通常不能通过关闭的端口来访问计算机。
[0004] 计算设备可以通过指定与服务器上的特定应用相关联的端口号,来访问此特定应用。然而,有时候未授权的或恶意的用户可能想访问服务器上的应用或服务,目的在于对服务器发起攻击。这些用户通常称为黑客或计算机窃贼。被黑客攻击的服务器可以称为预期受害者。
[0005] 黑客通常不知道预期受害者上有什么可用的应用或服务。因此,黑客可能执行端口扫描。端口扫描是一种系统地扫描计算机的端口的方法,以便确定哪些端口是与可用的应用或服务相关联的开放端口,而哪些端口是关闭的端口。在端口扫描中,发送请求与每个公知端口的连接的一系列消息。从预期受害者接收到的响应指示公知端口是开放端口还是关闭的端口。黑客使用端口扫描来定位去往计算机的、易受攻击的开放访问点。
[0006] 一旦定位了易受攻击的开放端口,黑客可以发起攻击,其可能导致与受攻击的开放端口相关联的应用的资源对于该应用的预定用户不可用。这种攻击类型有时称为拒绝服务(DOS)攻击。
[0007] 此问题的一种解决方案由端口扫描保护软件提供。目前的端口扫描保护软件识别连接请求中的源互联网协议(IP)地址,此连接请求可以是端口扫描的一部分。端口扫描保护软件继而阻止此源IP地址。换言之,端口扫描软件不允许从该源IP地址接收任何额外的消息。这可以防止黑客使用同一源IP地址的后续攻击。
[0008] 然而,黑客通过在定位开放端口的端口扫描期间使用伪造源IP地址,避开了目前的端口扫描防护软件。当端口扫描软件意识到可能正在进行端口扫描时,端口扫描防护软件阻止在端口扫描消息中标识的伪造IP地址。然而,目前的端口扫描防护软件不能阻止黑客的实际IP地址。因此,黑客仍然可以使用未被端口扫描保护软件阻止的黑客的实际IP地址随意地对任何开放端口发起攻击。这些攻击可能导致拒绝服务(DOS),影响尝试获得对预期受害者提供的应用和/或服务的合法访问的用户。此外,这些攻击可能导致时间、数据和利润的损失,同时使得应用和/或服务不可用。

发明内容

[0009] 示意性的实施方式提供了用于端口扫描保护的计算机实现方法、装置和计算机可用程序代码。在一个实施方式中,响应于检测到端口扫描,该过程生成具有针对用于传输数据分组的协议而已修改报头的应答数据分组,以形成已修改的应答数据分组。在一个实施方式中,针对用于传输数据分组的协议而修改的报头是已修改的传输控制协议报头。
[0010] 已修改的应答数据分组将引发来自所述已修改的数据分组的接收方的响应。该过程将应答数据分组发送到与端口扫描相关联的第一路由地址。
[0011] 响应于接收对所述已修改的应答数据分组的响应,该过程识别响应数据分组的报头中的第二路由地址。第二路由地址是端口扫描的源的实际路由地址。继而可以阻止来自第二路由地址的所有网络业务,以防止对任何开放端口的攻击。在一个实施方式中,第一路由地址是第一互联网协议地址,第二路由地址是第二互联网协议地址。
[0012] 针对用于传输数据分组的协议而修改的报头可以包括错误的序列号。错误的序列号是落在序列号的可接受范围之外的序列号,或者是从应答数据分组的接收方引诱出响应的协议。在另一实施方式中,已修改的报头可以包括重置标志或者结束标志。在另一实施方式中,已修改的报头通过改变用于生成已修改的应答数据分组的校验和来生成。
[0013] 从第一方面看,本发明提供了一种用于端口扫描保护的方法,所述方法包括步骤:响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组,其中所述已修改的应答数据分组从所述已修改的应答数据分组的接收方获得响应;将所述已修改的应答数据分组发送到与所述端口扫描相关联的第一路由地址;以及响应于接收到对所述已修改的应答数据分组的所述响应,识别所述响应的报头中的第二路由地址,其中所述第二路由地址是所述端口扫描的源的实际路由地址。
[0014] 优选地,本发明提供了一种方法,其中针对协议而修改的报头包括落在序列号的可接受范围之外的序列号。
[0015] 优选地,本发明提供了一种方法,其中所述序列号是将获得来自所述接收方的响应的协议违例。
[0016] 优选地,本发明提供了一种方法,其中针对协议而修改的报头包括重置标志。
[0017] 优选地,本发明提供了一种方法,其中针对协议而修改的报头包括结束标志。
[0018] 优选地,本发明提供了一种方法,其中修改所述报头还包括:改变用于生成所述已修改的应答数据分组的校验和。
[0019] 优选地,本发明提供了一种方法,进一步包括步骤:阻止起源自第二路由地址的网络业务,以防止对任何开放端口的攻击。
[0020] 优选地,本发明提供了一种方法,其中第一路由地址不是计算设备的正确路由地址。
[0021] 优选地,本发明提供了一种方法,进一步包括步骤:响应于接收到端口扫描数据分组,识别所述端口扫描数据分组的报头中的源路由地址作为所述第一路由地址。
[0022] 优选地,本发明提供了一种方法,其中针对协议而修改的报头是已修改的传输控制协议报头。
[0023] 优选地,本发明提供了一种方法,其中针对协议而修改的报头是已修改的用户数据报协议报头。
[0024] 优选地,本发明提供了一种方法,其中第一路由地址是第一互联网协议地址,而其中第二路由地址是第二互联网协议地址。
[0025] 从第二方面看,本发明提供了一种装置,包括:总线系统;连接到总线系统的通信系统;连接到总线系统的存储器,其中存储器包括计算机可用程序代码;以及连接到总线系统的处理单元,其中处理单元执行所述计算机可用程序代码以:响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组,其中所述已修改的应答数据分组从所述已修改的应答数据分组的接收方获得响应数据分组;将所述已修改的应答数据分组发送到与所述端口扫描相关联的第一路由地址;以及响应于接收到响应数据分组,识别所述响应数据分组的报头中的第二路由地址,其中所述第二路由地址是所述端口扫描的源的实际路由地址。
[0026] 优选地,本发明提供了一种装置,其中针对协议而修改的报头包括序列号,所述序列号是落在序列号的可接受范围之外的序列号。
[0027] 优选地,本发明提供了一种装置,其中针对协议而修改的报头包括重置标志。
[0028] 优选地,本发明提供了一种装置,其中针对协议而修改的报头包括结束标志。
[0029] 优选地,本发明提供了一种装置,其中处理器单元进一步执行所述计算机可用程序代码以阻止起源自第二路由地址的网络业务,从而防止对任何开放端口的攻击。
[0030] 优选地,本发明提供了一种装置,其中所述序列号是从所述应答数据分组的接收方获得响应的协议违例。
[0031] 优选地,本发明提供了一种装置,其中针对协议而修改的报头是已修改的传输控制协议报头。
[0032] 优选地,本发明提供了一种装置,其中第一路由地址是第一互联网协议地址,而其中第二路由地址是第二互联网协议地址。
[0033] 从第三方面看,本发明提供了一种用于防止遭受端口扫描的系统,该系统包括:主机计算机,其中所述主机计算机包括:增强型端口扫描保护软件,用于检测端口扫描数据分组,以及响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组;以及源互联网协议地址检测器,其中所述互联网协议地址检测器识别对所述已修改的应答数据分组的响应的报头中的源路由地址,其中所述源路由地址是所述端口扫描的源的实际路由地址。
[0034] 优选地,本发明提供了一种系统,其中针对协议而修改的报头包括用于触发来自所述应答数据分组的接收方的响应的协议违例。
[0035] 优选地,本发明提供了一种系统,其中针对协议而修改的报头包括重置标志或结束标志。
[0036] 优选地,本发明提供了一种系统,其中所述主机计算机是第一计算机,并且进一步包括:第二计算机,其中所述第二计算机包括:端口扫描器,其中所述端口扫描器通过向第一计算机发送具有伪造源路由地址的端口扫描数据分组,从而对所述第一计算机执行端口扫描,其中所述伪造源路由地址不是所述第二计算机的正确路由地址;以及传输控制协议/互联网协议层,其中所述传输控制协议/互联网协议层自动地生成对所述已修改的应答数据分组的响应。
[0037] 从第四方面看,本发明提供了一种可加载到数字计算机的内部存储器中的计算机程序产品,其包括软件代码部分,当所述产品在计算机上运行时,所述软件代码部分用于执行上述方法的所有步骤。
[0038] 从第五方面看,计算机程序产品包括:包括用于端口扫描保护的计算机可用程序代码的计算机可用介质,所述计算机程序产品包括:计算机可用程序代码,用于响应于检测到端口扫描,生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组,其中所述已修改的应答数据分组将引发来自所述已修改的应答数据分组的接收方的响应;计算机可用程序代码,用于将所述已修改的应答数据分组发送到与所述端口扫描相关联的第一路由地址;以及计算机程序代码,用于响应于接收到所述响应数据分组,识别所述响应数据分组的报头中的第二路由地址,其中所述第二路由地址是所述端口扫描的源的实际路由地址。
[0039] 优选地,本发明提供了一种计算机程序产品,其中针对协议而修改的报头包括序列号。
[0040] 优选地,本发明提供了一种计算机程序,其中所述序列号是落在序列号的可接受范围之外的序列号。
[0041] 优选地,本发明提供了一种计算机实现方法,其中所述序列号是将从所述应答数据分组的接收方获得响应的协议违例。
[0042] 优选地,本发明提供了一种计算机程序产品,其中针对协议而修改的报头包括重置标志。
[0043] 优选地,本发明提供了一种计算机程序产品,其中针对协议而修改的报头包括结束标志。

附图说明

[0044] 仅作为示例,下文参考附图详细描述本发明的实施方式,其中:
[0045] 图1是可以实现本发明优选实施方式的数据处理系统的网络的图形表示:
[0046] 图2是可以实现本发明优选实施方式的数据处理系统的框图;
[0047] 图3是根据本发明优选实施方式的开放系统互连(OSI)基本参考模型的框图;
[0048] 图4是示出了当前使用的端口扫描保护机制的框图;
[0049] 图5是示出了根据本发明优选实施方式通过端口扫描保护系统、用于检测具有伪造源IP地址的端口扫描的流程的框图;
[0050] 图6是示出了根据本发明优选实施方式的端口扫描保护机制的框图;
[0051] 图7是根据本发明优选实施方式、在端口扫描期间传输的端口扫描分组的示例性示意图;
[0052] 图8是示出了根据本发明优选实施方式、用于检测具有伪造源IP地址的端口扫描的过程的流程图;以及
[0053] 图9是示出了根据本发明优选实施方式、用于修改应答数据分组的过程的流程图。

具体实施方式

[0054] 现在参考附图,尤其参考图1-图2,其提供了可以实现示意性实施方式的数据处理环境的示例图。应当理解,图1-图2仅仅是示例性的,其意图不在于声称或暗示有关可以实现不同实施方式的环境的任何限制。可以对所示环境作出多种修改。
[0055] 现在参考附图,图1示出了可以实现示意性实施方式的数据处理系统的网络的图形表示。网络数据处理系统100是可以实现实施方式的计算机的网络。网络数据处理系统100包含网络102,该网络是用于在网络数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的媒介。网络102可以包括连接,诸如有线、无线通信链路或光纤线缆。
[0056] 在所示示例中,服务器104和服务器106连接到网络102以及存储单元108。此外,客户端110、112和114连接到网络102。这些客户端110、112和114例如可以是个人计算机或网络计算机。
[0057] 在所示示例中,服务器104为客户端110、112和114提供数据,诸如引导文件、操作系统镜像以及应用。在此示例中,客户端110、112和114是服务器104的客户端。网络数据处理系统100可以包括额外的服务器、客户端以及其他未示出的设备。
[0058] 诸如客户端110的计算设备可以执行在网络102上可用的不同计算设备(诸如服务器106)上可用的应用或其他服务,其通过连接到与所期望的应用或服务相关联的服务器106上的端口来实现。应用是计算机软件,其使用计算设备的资源以便为用户执行任务或服务。
[0059] 端口是通往网络102中客户端110与服务器106之间的逻辑连接的端点。端口通常由端口号来标识。端口号的范围从0到65,536。端口号由互联网号码分配机构(IANA)来分配。互联网号码分配机构由互联网名称和号码分配机构(ICANN)管理。
[0060] 服务器104或106上的每个可用的应用与不同的端口号相关联。有些端口号是基于与给定端口相关联的应用或服务的类型而预先分配的。这些预先分配的或标准的端口号成为公知端口。大约有1,024个为特定服务或应用预留或预先分配的公知端口。例如,公知端口号包括但不限于,用于超文本传输协议(HTTP)业务的端口80,用于Telnet的端口23,用于简单邮件传输协议(SMTP)的端口25,用于域名服务器(DNS)的端口53,以及用于互联网中继聊天(IRC)端口194。因此,任何服务器上指定用于超文本传输协议业务的任何端口通常会具有分配的端口号80。
[0061] 客户端110可以通过发送指定了与特定应用相关联的端口号的连接请求,来访问服务器104或106上的特定应用。
[0062] 在所示示例中,网络数据处理系统100是互联网,网络102表示使用传输控制协议/互联网协议(TCP/IP)协议簇进行相互通信的世界范围的网络集合。互联网的中心是主节点或主机计算机之间的高速数据通信线路的骨干,其包括路由数据和消息的成千上万的商业、政府、教育以及其他计算机系统。当然,网络数据处理系统100还可以实现为多个不同类型的网络,诸如内联网、局域网(LAN)或广域网(WAN)。图1旨在于作为示例,而不是用作对不同实施方式的架构性限制。
[0063] 现在参考图2,其示出了可以实现示意性实施方式的数据处理系统的框图。数据处理系统200是诸如图1中的服务器106或客户端110的计算机的示例,其中可以具有用于实现示意性实施方式的过程的计算机可用代码或指令。
[0064] 在所示示例中,数据处理系统200采用集线器(hub)架构,其包括北桥和存储器控制器hub(MCH)202以及南桥和输入/输出(I/O)控制器hub(ICH)204。处理单元206、主存储器208以及图形处理器耦合到北桥和存储器控制器hub 202。处理单元206可以包含一个或多个处理器,其甚至可以使用一个或多个异构处理器系统来实现。图形处理器210可以通过例如加速图形端口(AGP)耦合到MCH。
[0065] 在所示示例中,局域网(LAN)适配器212耦合到南桥和I/O控制器hub 204,并且音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、通用串行总线(USB)端口和其他通信端口232、以及PCI/PCIe设备234通过总线238耦合到南桥和I/O控制器hub 204,并且硬盘驱动(HDD)226和CD-ROM驱动230通过总线240耦合到南桥和I/O控制器hub 204。PCI/PCIe设备例如可以包括用于笔记本计算机的以太网适配器、外接卡以及PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224例如可以是快闪二进制输入/输出系统(BIOS)。硬盘驱动226和CD-ROM驱动230例如可以使用电子集成驱动器(IDE)或串行高级技术附件(SATA)接口。超级I/O(SIO)设备236可以耦合到南桥和I/O控制器hub 204。
[0066] 操作系统在处理单元206上运行,其协调和提供对图2的数据处理系统200内的各种组件的控制。操作系统可以是商业上可用的操作系统,诸如XP(Microsoft和Windows是微软公司在美国、其他国家或世界范围的商标)。面向对象的TM
编程系统,诸如Java 编程系统,可以与操作系统一起运行,其根据在数据处理系统200上执行的Java程序或应用而提供对操作系统的调用。Java和所有基于Java的商标是Sun微系统公司在美国、其他国家或世界范围的商标。
[0067] 用于操作系统、面向对象的编程系统以及应用或程序的指令位于诸如硬盘驱动226的存储设备中,并且其可以加载到主存储器208中以由处理单元206执行。示意性实施方式的过程可以由处理单元206使用计算机实现的指令来执行,这些指令可以位于存储器中,诸如主存储器208、只读存储器224或一个或多个外设中。
[0068] 图1-图2中的硬件可以根据实现而变化。其他内部硬件或外设,诸如闪存、等效的非易失性存储器或光盘驱动等等,可以附加于或替换图1-图2中示出的硬件而使用。同样,示意性实施方式的过程可以应用于多处理器数据处理系统。
[0069] 在有些示意性示例中,数据处理系统200可以是个人数字助理(PDA),其通常配置有闪存以提供非易失性存储器,用于存储操作系统文件和/或用户生成的数据。总线系统可以包括一条或多条总线,诸如系统总线、I/O总线和PCI总线。当然,总线系统可以使用任何类型的通信结构或架构来实现,其提供附接至此结构或架构上的不同组件或设备之间的数据传送。通信单元可以包括用于发射和接收数据的一个或多个设备,诸如调制解调器或网络适配器。存储器例如可以是主存储器208或诸如北桥和存储器控制器hub 202中的高速缓存。处理单元可以包括一个或多个处理器或CPU。图1-图2中所示示例以及上述示例的意图并不在于暗示架构的限制。例如,数据处理系统200也可以是平板型计算机、膝上型计算机、或采用PDA形式之外的电话设备。
[0070] 传输控制协议/互联网协议(TCP/IP)是用于通过网络(诸如图1的网络102)连接计算设备的通信协议簇。传输控制协议和互联网协议是用于通过网络(诸如互联网)传输数据的标准协议。
[0071] 现在转到图3,其示出了根据示意性实施方式的开放系统互连(OSI)基本参考模型的框图。开放系统互连参考模型300是用于定义网络设备之间的互操作性和通信的标准协议层的通用模型。在此示例中,开放系统互连参考模型300包括传输控制协议/互联网协议(TCP/IP)簇。
[0072] 开放系统互连通信架构利用TCP/IP以及类似的协议。在此示例中,架构包括应用层302、呈现层304、会话层306、传输层308、网络层310、数据链路层312以及物理层314。每层负责处理各种功能和/或通信任务。
[0073] 应用层302处理访问和/或执行的特定应用的细节。几乎每种实现都存在大部分的通用TCP/IP应用,包括用于远程登录的Telnet;文件传输协议(FTP);用于电子邮件的简单邮件传送协议(SMTP);以及简单网络管理协议(SNMP)。
[0074] 应用层302所处理的应用软件可以包括任意数目的软件应用,其被设计用于对通过通信端口的数据作出反应,以提供用户请求的期望功能。在该层的应用可以包括处理互联网的用户可以访问的数据、视频、图形、照片和/或文本所需的应用。
[0075] 呈现层304包括呈现协议和呈现服务。呈现服务用于识别将使用的约定的传送语法。呈现协议支持用户与呈现服务通信。
[0076] 会话层306包括会话协议和会话服务。会话服务为用户提供服务,包括但不限于,建立会话服务用户之间的连接、终止用户之间的连接、执行有关会话层令牌使用的协商、以及同步所传输数据中的点以允许在发生错误或中断时恢复会话。会话协议允许用户与会话服务通信。
[0077] 接下来,传输层308提供网络层310和应用层302之间的接口,其协助两个主机计算机之间的数据传送。传输层308涉及如下事务,例如但不限于,将从应用层递送给它的数据划分为用于下面的网络层的适当大小的块、确认接收到的分组、以及设置超时以确保另一端确认所发送的分组。在TCP/IP协议簇中,存在两个明显不同的传输协议,即传输控制协议(TCP)和用户数据报协议(UDP)。
[0078] 传输控制协议提供可靠性服务,以确保数据在两个主机之间正确地传输,其包括遗失检测和重传服务。与之相反,用户数据报协议向应用层302提供简单得多的服务,其仅仅从一个主机向另一主机发送相对简单的数据分组调用数据报。数据报是在不提供任何保证数据报中的数据被正确传送的机制的情况下传输的。当使用用户数据报协议时,应用层302必须执行可靠性功能。传输层数据分组信息的示例包括但不限于,源主机的端口号和/或目的地主机的端口号。
[0079] 网络层310(也可以称为互联网层)处理数据分组在网络间的移动。例如,网络层310处理通过网络传送的各种数据分组的路由。TCP/IP簇中的网络层310包括若干协议,包括互联网协议(IP)、互联网控制消息协议(ICMP)以及互联网组管理协议(IGMP)。互联网协议(IP)可以包括但不限于,互联网协议版本4(IPv4)、互联网协议版本6(IPv6)、或任何其他已知或可用版本的互联网协议。网络层数据分组信息的示例可以包括但不限于,标识源主机IP地址和/或目的地主机IP地址的互联网协议(IP)地址。
[0080] 数据链路层312也可以称为链路层或网络接口层,其通常包括操作系统中的设备驱动以及计算机中对应的网络接口卡。数据链路层312通常处理与物理层314物理对接的所有硬件细节,例如但不限于,以太网接口卡和/或无线互联网适配器。数据链路层数据分组信息的示例可以包括但不限于媒体接入控制(MAC)地址。
[0081] 物理层314表示所使用的网络媒质,诸如光纤线缆或以太网线缆。换言之,物理层314是将计算设备(诸如图1的客户端110)连接到网络(诸如图1的网络102)的物理网络线缆。
[0082] 示意性实施方式的机制可以更具体地实现在诸如传输层308和/或网络层310之类的层中。
[0083] 图4是示出了当前使用的端口扫描保护机制的框图。网络数据处理系统400是包括连接到网络的两个或更多计算设备的数据处理系统,诸如图1中的网络数据处理系统100。在此示例中,网络是互联网。然而,网络也可以包括局域网、广域网、以太网或任何其他类型的网络。网络数据处理系统400包括恶意主机402和受害者404。
[0084] 恶意主机402是计算设备(诸如图1的客户端110)上的黑客或其他未授权用户,其对受害者404执行端口扫描。换言之,恶意主机402试图定位受害者404中的易受攻击的开放访问点,从而恶意主机402可以通过此开放端口获得对受害者404的未授权访问和/或发起对受害者404的攻击。恶意主机402正在执行对受害者404的端口扫描,以定位易受攻击的开放访问点,从而在发起对受害者404的攻击时使用。
[0085] 受害者404是主控一个或多个应用和/或服务的计算设备。恶意主机402连接到诸如图1中的网络102的网络。客户端计算设备通过网络连接来请求连接到与给定应用或服务相关联的端口,从而可以访问受害者404上可用的应用和/或服务。
[0086] 受害者404包括端口扫描保护405。端口扫描保护405是任何当前可用的端口扫描保护软件,用于检测端口扫描以及阻止恶意主机402的源IP地址。端口扫描保护405的一般工作方法是监视受害者404未使用的关闭端口集合,但是由于与这些端口相关联的应用的脆弱性,其有可能被黑客用来进行非法利用。端口扫描保护405假设,合法用户不会尝试访问关闭端口集合中的端口,因为合法用户知道受害者404不提供与此关闭端口集合相关联的应用或服务。只有恶意主机,诸如恶意主机402才会尝试连接到关闭端口集合中的端口,因为它们探听在这些端口上监听的易受攻击的服务。
[0087] 如果端口扫描保护405检测到请求连接至关闭端口集合中的端口的数据分组,诸如来自特定远程主机的同步(SYN)数据分组或这些数据分组的模式,则端口扫描保护405将避开或阻止来自此特定远程主机的所有业务。通过这种方式,即使远程主机检测到易受攻击的开放端口,远程主机也不能发起攻击,因为来自该远程主机的所有将来的网络业务都被阻止了。
[0088] 在此示例中,恶意主机402通过向受害者404发送一系列请求连接至受害者404上的一个或多个公知端口的数据分组,来执行端口扫描。数据分组406是恶意主机402发送的一系列数据分组之一。
[0089] 数据分组406是传输控制协议/互联网协议(TCP/IP)数据分组,其包含连接到在受害者404上标识为“n”的端口的请求。在此示例中,数据分组406是请求连接到端口“n”的传输控制协议同步(TCP SYN)消息。端口“n”可以是任何端口号,诸如与超文本传输协议业务相关联的端口80。
[0090] 在此示例中,数据分组406包括伪造的或虚假的源IP地址。源IP地址是标识数据分组的发送者的IP地址。伪造源IP地址是标识附带(incidental)受害者408而不是数据分组406的实际发送者的IP地址。附带受害者408可以是实际的计算设备,或者附带受害者408可能实际上并不存在。换言之,恶意主机402所使用的伪造IP地址不必标识实际的计算设备。在此示例中,数据分组406包括与附带受害者408相关联的源IP地址“A”,而不是作为恶意主机402的实际IP地址的IP地址“B”。
[0091] 响应于接收到数据分组406,受害者404发送数据分组410至附带受害者408。数据分组410是指示端口“x”是开放端口还是关闭端口的传输控制协议/互联网协议数据分组。在此示例中,数据分组410是同步确认(SYN/ACK)消息。数据分组410被发送到与附带受害者408相关联的目的地IP地址“A”。因此,恶意主机402不会在从受害者404到附带受害者408的常规消息传输过程中接收到数据分组410。
[0092] 由于恶意主机402不是数据分组410的预定接收方,所以恶意主机402从网络探听412数据分组410。探听表示捕获或查看预期发送给不同目的地计算设备的数据分组。在此示例中,恶意主机402使用分组嗅探器(sniffer)来探听预期由附带受害者408接收的数据分组410。分组嗅探器是一种捕获通过网络传输的数据分组的应用,尽管事实上恶意主机不是此数据分组的预期接收方。
[0093] 因此,恶意主机402获悉端口“x”是否是可能易受攻击的开放端口。如果端口“x”是开放端口,那么恶意主机402发起对受害者404的攻击414。
[0094] 受害者404具有目前的端口扫描保护软件。目前的端口扫描保护允许受害者404将数据分组406视为可能来自黑客(诸如恶意主机402)的端口扫描。目前的端口扫描保护软件支持受害者404能够阻止来自在所怀疑的端口扫描(诸如数据分组406)中标识的源IP地址的后续消息。然而,由于数据分组406中的源IP地址是伪造IP地址,因此受害者404不会阻止来自恶意主机402的消息,例如来自与攻击414相关联的恶意主机402的消息。按照这种方式,恶意主机402就可以绕过目前的端口扫描保护软件,来攻击受害者404并且可能损害或危害受害者404。
[0095] 因此,在此示例中,恶意主机402是通过向受害者404上的给定端口发送TCP SYN分组(诸如数据分组406),以试图连接到易受攻击端口的端口扫描器。恶意主机402所生成的数据分组406包括附带受害者的伪造源IP地址,该附带受害者可能存在也可能不存在。如果有程序或应用正在此给定端口上监听,那么受害者404通过向附带受害者发送TCP SYN/ACK分组(诸如数据分组410)来进行响应。
[0096] 恶意主机402监视网络并且查看通过的数据分组410。恶意主机402确定给定端口可能连接上的开放端口,以便利用与该给定端口相关联的应用中的任何已有弱点。恶意主机402可以基于分配给每个端口的公知端口号来确定哪个应用与此给定端口相关联。
[0097] 受害者404上的端口扫描保护405通过阻止附带受害者408的伪造源IP地址“A”,来对伪造分组进行响应。恶意主机402使用适当的黑客工具、针对此特定端口以及与此特定端口相关联的易受攻击的应用程序,随意地向受害者404上的给定端口发起攻击414。
[0098] 示意性实施方式认识到,当目前的端口扫描保护软件使用在端口扫描期间从黑客接收的伪造源IP地址来对伪造数据分组进行响应时,端口扫描保护软件通过阻止附带受害者的伪造源IP地址来进行响应,而不是阻止真正恶意主机的实际IP地址。目前的端口扫描保护软件不能在恶意主机提供伪造源IP地址时,识别和阻止真正的源IP地址。因此,示意性实施方式认识到需要增强端口扫描保护软件,其将在检测到端口扫描之后尽可能快地避开实际发起攻击的主机IP地址。
[0099] 因此,示意性实施方式提供了一种用于端口扫描保护的计算机实现方法、装置和计算机可用程序代码。在一个实施方式中,响应于检测到端口扫描,该过程生成具有针对用于传输数据分组的协议而修改的报头的应答数据分组,以形成已修改的应答数据分组。
[0100] 在下文所描述的示意性实施方式中,针对用于传输数据分组的协议而修改的报头是已修改的传输控制协议报头。然而,示意性实施方式不限于修改传输控制协议中的报头。示意性实施方式可以修改用于通过网络连接来传输数据分组的任何已知或可用的协议类型中的报头,以形成已修改的应答数据分组,这些协议包括但不限于传输控制协议或用户数据报协议(UDP)。
[0101] 已修改的应答数据分组将引发来自已修改的数据分组的接收方的响应。该过程将此应答数据分组发送到与端口扫描相关联的第一路由地址。响应于接收到对此已修改的应答数据分组的响应,该过程识别该响应数据分组的报头中的第二路由地址。在下文所描述的示例中,第一路由地址是第一互联网协议地址,并且第二路由地址是第二互联网协议地址。互联网协议可以是任何版本的互联网协议,包括但不限于互联网协议版本4(IPv4)、互联网协议版本6(IPv6)或任何其他互联网协议版本。此外,示意性实施方式不限于互联网协议。根据示意性实施方式,可以使用任何类型的已知或可用协议以用于为一个或多个端口提供路由地址。
[0102] 第二路由地址是端口扫描的源的实际路由地址。继而可以阻止来自第二路由地址的所有网络业务,以防止对任何开放端口的攻击。
[0103] 现在转到图5,其示出了根据示意性实施方式通过端口扫描保护系统、用于检测具有伪造源IP地址的端口扫描的流程的框图。计算机500可以使用任何类型的计算设备来实现,包括但不限于图1中的服务器106或客户端110。
[0104] 计算机500包括应用集合502。应用集合502是计算机500上可用的一个或多个应用和/或服务的集合。应用是使用计算设备的资源以便为用户执行任务或服务的计算机软件。
[0105] 应用集合502可以存储在数据存储设备上,诸如数据存储设备504。数据存储设备504是用于存储数据的任何类型的已知或可用设备,包括但不限于,主存储器、数据库、只读存储器(ROM)、随机访问存储器(RAM)、非易失性随机访问存储器(NV-RAM)、硬盘、闪存、软盘、可重写压缩盘(CD-RW)、或任何其他类型的数据存储设备。在此示例中,数据存储设备
504位于计算机500上或位于计算机500的本地。然而,数据存储设备504也可以位于计算机500的远程。
[0106] 计算机500使用传输控制协议/互联网协议(TCP/IP)506来从连接到网络(诸如图1的网络102)的其他计算设备发射和接收消息。TCP/IP 506是用于在发送方和接收方之间提供连接的标准协议簇。TCP/IP可以提供有保证的递送,并且确保按正确的顺序接收分组。换言之,当从另一计算设备向计算机500发送消息时,这些消息可能不是按顺序接收的。因此,TCP/IP 506使用传输控制协议(TCP)序列号,来确保这些消息按正确顺序递送到应用层。
[0107] TCP/IP 506为TCP/IP 506所发送的每个消息给予序列号,从而消息的接收方可以确定消息的正确顺序。当建立了计算机500与第二计算设备之间的连接时,在计算机500与第二计算设备之间交换初始序列号(ISN)。如果序列外的号在特定范围或限制内,则TCP/IP506允许接收具有所述序列外的序列号的消息。然而,如果序列号超出期望的序列号范围太远,则将忽略该消息或将其标识为错误消息。在这种情况下,计算机500可以请求第二计算机对具有错误序列号的消息进行重新发送。
[0108] TCP/IP 506包括端口508和端口510。在此示例中,计算机500示出为具有两个端口。然而,计算机500可以具有任意数目的端口。
[0109] 端口508具有分配的端口号,其与应用集合502中的应用相关联。例如,如果端口508与用于处理超文本传输协议业务的应用相关联,那么端口508将被分配端口号80。在此示例中,端口508是开放端口。
[0110] 端口510也分配了端口号。在此示例中,端口510分配了用于文件传输协议(FTP)的端口号20。然而,在此示例中,文件传输协议在计算机500上不可用。因此,端口510是关闭端口。
[0111] 计算机500还包括增强型端口扫描保护512。增强型端口扫描保护512是端口扫描保护软件,用于检测端口扫描以及阻止与执行端口扫描的恶意主机或其他计算设备(诸如恶意主机516)相关联的IP地址。
[0112] 恶意主机516是对计算机500相关联的一个或多个端口(诸如端口508和510)执行端口扫描的黑客、计算机窃贼、未授权用户或非法用户。恶意主机516包括用于通过网络发送和接收数据分组的TCP/IP协议簇518。恶意主机516通过此网络连接而连接到计算机500。
[0113] 恶意主机516包括端口扫描器520。端口扫描器520可以是用于对计算机500上的一个或多个端口的集合执行端口扫描的任何类型的已知或可用设备。端口扫描器520可以完全实现为软件,或者实现为软件和硬件的组合。在此示例中,端口扫描器520生成端口扫描数据分组522。端口扫描数据分组522包括伪造源IP地址524。伪造源IP地址524不是与恶意主机516相关联的IP地址。伪造源IP地址524可以是恶意主机516之外的实际计算设备的IP地址,或者伪造源IP地址524可以是实际不存在的计算设备的IP地址。
[0114] 增强型端口扫描保护512包括源IP地址检测514。源IP地址检测514是用于生成应答数据分组526的软件组件。应答数据分组526是被修改以迫使恶意主机516上的TCP/IP 518生成响应528的数据分组。换言之,如果增强型端口扫描保护512检测到端口扫描,则增强型端口扫描保护512通过向恶意主机516发送应答数据分组526来进行响应,该应答数据分组将促使恶意主机516发送响应528。响应528可以在响应528的传输控制协议报头中包括重置(RST)标志或结束确认(FIN/ACK)标志。在此示例中,响应528还包括在响应528的传输控制协议报头的网络层中的恶意主机的真实IP地址530。
[0115] 计算机500可以从响应528中识别恶意主机的真实IP地址530。增强型端口扫描保护512继而避开或阻止恶意主机516的真实IP地址530,以防止来自恶意主机516的任何将来的攻击。
[0116] 接着,图6是示出了根据示意性实施方式的端口扫描保护机制的框图。网络数据处理系统600是包括多个通过网络连接的计算设备的数据处理系统,诸如图1中的网络数据处理系统100。在此示例中,网络是互联网。然而,网络也可以是局域网、广域网、以太网或任何其他类型的网络。网络数据处理系统600包括恶意主机602和受害者604。
[0117] 恶意主机602是计算设备(诸如图1中的客户端110,或图5中的恶意主机516)上的黑客或其他未授权用户。恶意主机602正在对受害者604执行未授权的端口扫描以试图定位易受攻击的开放访问点,从而恶意主机602可以通过此开放端口获得对受害者604的未授权访问和/或发起对受害者604的攻击。
[0118] 受害者604是主控一个或多个应用和/或服务的计算设备,诸如图1的服务器106或图5的计算机500。客户端计算设备可以通过网络连接请求连接至与给定应用或服务相关联的端口,来访问受害者604上可用的应用和/或服务。
[0119] 受害者604具有包括源IP地址检测软件的增强型端口扫描保护605,诸如图5的增强型端口扫描保护512。增强型端口扫描保护605是这样的软件,当恶意主机602通过使用伪造源IP地址发送数据分组606以发起端口扫描时,该软件用于识别恶意主机602的IP地址,并且阻止恶意主机602的IP地址而不是阻止恶意主机602所使用的伪造源IP地址。
[0120] 恶意主机602通过向受害者604发送一系列请求连接至受害者604上的一个或多个公知端口的数据分组,来执行端口扫描。数据分组606是恶意主机602发送给受害者604上的端口的一系列数据分组之一,诸如图5的端口扫描数据分组522。
[0121] 数据分组606是请求连接至受害者604上标识为端口“n”的端口的传输控制协议/互联网协议数据分组。在此示例中,数据分组606是传输控制协议同步(TCP SYN)数据分组。端口“n”可以是任何端口号,诸如与超文本传输协议业务相关联的端口80。
[0122] 数据分组606包括附带受害者的伪造或虚假源IP地址。附带受害者可以实际存在或实际不存在。在此示例中,数据分组606包括与附带受害者相关联的源IP地址“A”,而不是作为恶意主机602的实际IP地址的IP地址“B”。
[0123] 响应于接收到数据分组606,增强型端口扫描保护605生成数据分组608。数据分组608是应答数据分组,诸如图5中的应答数据分组526。数据分组608被制造以使得当恶意主机602从网络探听数据分组608时,此数据分组将引发来自恶意主机602的响应。按如下方式改变数据分组608的传输控制协议(TCP)报头的报头,即如果恶意主机602从网络探听数据分组608,则其将引诱恶意主机的TCP/IP层对数据分组608进行响应。
[0124] 例如,如果增强型端口扫描保护605将错误序列号给予数据分组608,则恶意主机602的TCP/IP层将通过发送同步(SYN)标志以尝试重新连接到受害者604,来进行响应。错误序列号是在可能的序列号的预期或可接受范围之外的序列号。
[0125] 结束(FIN)标志指示会话的结束。当接收到包括结束标志的数据分组时,TCP/IP在响应中自动发送结束确认。因此,如果端口扫描保护605给予数据分组608结束标志,则恶意主机602的TCP/IP层在响应消息中将结束确认(FIN/ACK)自动发送给受害者604。
[0126] 因此,在此示例中,增强型端口扫描保护605将数据分组608发送给与伪造源IP地址相关联的附带受害者。数据分组608是指示端口“n”是开放端口还是关闭端口的传输控制协议/互联网协议数据分组。在此示例中,数据分组608包含同步确认(SYN/ACK)标志以及错误序列号。受害者604将数据分组608发送给与附带受害者相关联的伪造IP地址“A”。
[0127] 数据分组608的报头中的数据链路层指示数据分组608的目的地的媒体接入控制(MAC)地址。媒体接入控制地址指明目的地计算设备的特定网络适配器。在此情况下,媒体接入控制地址指明附带受害者的网络适配器。
[0128] 通常,如果恶意主机602没有运行在探听模式中,则恶意主机602不会接收到数据分组608,因为数据链路层媒体接入控制地址与恶意主机602关联的网络适配器不匹配。然而,在此示例中,恶意主机602处于探听模式。因此,与恶意主机602关联的以太网驱动将忽略数据分组608的报头中的媒体接入控制地址,并且将数据分组608向上递送到恶意主机602关联的TCP/IP层。
[0129] 恶意主机602从网络探听数据分组608。在此示例中,恶意主机602使用分组嗅探器来从网络探听数据分组608。响应于检测到数据分组608中的错误序列号,恶意主机602的TCP/IP层自动地生产对数据分组的响应610,并将其传输给受害者604以试图重新连接到受害者604。数据分组610是响应数据分组,诸如图5中的响应528。
[0130] 数据分组610包含恶意主机602的实际源IP地址“B”,而不是伪造IP地址“A”。增强型端口扫描保护605阻止此实际源IP地址“B”,以防止通过网络向受害者604发送进一步的消息。按此方式,阻止了恶意主机602对受害者604上的任何易受攻击端口发起任何攻击。
[0131] 图7是根据示意性实施方式、在端口扫描期间传输的端口扫描分组的示例性示意图。端口扫描数据分组702是具有由恶意主机生成的虚假源IP地址的数据分组,诸如图5中的端口扫描数据分组522和/或图6中的数据分组606。在此示例中,端口扫描数据分组是同步(SYN)数据分组。
[0132] 应答数据分组703是端口扫描数据分组702的接收方生成的数据分组,诸如图5中的应答数据分组526和/或图6中的数据分组608。接收方是恶意主机的预期受害者。应答数据分组703由受害者生成并发送给虚假的IP地址。在此示例中,应答数据分组是由恶意主机的预期受害者(诸如图6中的受害者604)生成的同步确认(SYN/ACK)数据分组。
[0133] 端口扫描数据分组702在片段704中包括用于数据链路层的信息。从恶意主机到预期受害者的端口扫描数据分组的传输路由将基于路由表来分配以太网(ETH)媒体接入控制(MAC)地址。
[0134] 端口扫描数据分组702还包括网络层中信息。网络层信息包括行705中的伪造源IP地址“A”。伪造源IP地址“A”是存在或不存在的附带受害者的IP地址,而不是生成端口扫描数据分组702的恶意主机的实际IP地址。数据分组中的网络层信息还包括标识受害者计算设备的目的地IP地址706。
[0135] 端口扫描数据分组702中的传输层信息标识恶意黑客的源端口号以及受害主机计算设备的目的地端口号,如行708所示。行710是用于端口扫描分组的序列号。行712标识此数据分组为请求与受害者计算设备的连接的同步(SYN)数据分组。
[0136] 应答数据分组703包括受害者的源IP地址714以及目的地IP地址716。目的地IP地址716是恶意黑客所使用的伪造IP地址。
[0137] 如行714所示,传输层信息包括生成应答数据分组的受害者计算设备的源端口号。行716包括目的地IP地址。在此示例中的目的地IP地址是附带受害者的伪造IP地址。附带受害者实际上可以存在或实际上不存在。
[0138] 行722可以提供错误序列号。错误序列号是在可能的序列号的预期或可接受范围之外的序列号。
[0139] 行722指示应答数据分组703是同步/确认(SYN/ACK)数据分组。在另一示例中,行722可以指示应答数据分组703是重置(RST)或结束(FIN)数据分组。
[0140] 换言之,使用当前可用的端口扫描保护软件,如果受害者在端口23上具有活跃服务,其可以在行708标识,则受害者将通过生成SYN/ACK应答数据分组来作出响应。这将是受害者上的端口23与恶意主机上的端口1494之间的会话的结束。那么恶意主机就会知道受害者在端口23上运行telnet服务。恶意主机继而可以对端口23发起telnet攻击。目前的端口扫描保护软件将会阻止在端口扫描分组的705行中标识的伪造IP地址,而不能阻止恶意主机的实际IP地址。因此,恶意主机可以随意攻击端口23。
[0141] 根据示意性实施方式,当受害者接收到端口扫描数据分组702时,受害者上的增强型端口扫描保护软件按照迫使实际的恶意主机进行响应的方式来作出响应。例如,增强型端口扫描保护软件生成包括错误序列号、重置(RST)消息或结束(FIN)消息的应答数据分组703。由于附带主机从来没有发送端口扫描数据分组702,因此附带主机不会对应答数据分组703作出响应。反而,如果实际上存在附带主机,则附带主机将仅仅是忽略应答数据分组703。如果附带主机不存在,那么附带主机不可能对应答数据分组703作出响应。因此,预期只有恶意主机对应答数据分组703进行响应。按此方式,受害者可以识别和阻止恶意主机的实际IP地址,这些恶意主机使用端口扫描来识别易受恶意主机的攻击的开放端口。
[0142] 现在参考图8,其示出了根据示意性实施方式、用于检测具有伪造源IP地址的端口扫描的过程的流程图。在图8所示的示意性示例中,过程由用于端口扫描保护的软件组件来执行,诸如图5中的增强型端口扫描保护512。
[0143] 通过确定是否检测到端口扫描(步骤802)来开始此过程。如果未检测到端口扫描,则过程返回步骤802,直到检测到端口扫描。当从恶意主机接收到端口扫描数据分组或一系列数据分组时,可以检测到端口扫描。
[0144] 如果在步骤802中检测到端口扫描,则该过程生成已修改的应答数据分组(步骤804)。该过程将已修改的应答数据分组发送到在端口扫描数据分组中标识的源IP地址(步骤806)。在此示例中,源IP地址是伪造源IP地址,其不是执行端口扫描的主机的正确IP地址。
[0145] 该过程继而确定是否接收到对此应答的响应(步骤808)。如果未接收到响应,则该过程返回步骤808,直到接收到响应。当在步骤808中接收到响应时,该过程阻止来自在响应的传输控制协议报头中标识的第二IP地址的所有网络业务(步骤810),以防止从端口扫描的源可能发起的任何攻击,之后该过程终止。
[0146] 图9是示出了根据示意性实施方式、用于修改应答数据分组的过程的流程图。在图9的示例中,该过程可以由用于端口扫描保护的软件组件来实现,诸如图5中的增强型端口扫描保护512。
[0147] 通过生成应答数据分组(步骤902)来开始此过程。此过程确定是否通过向应答数据分组的传输控制协议报头添加错误序列号,来修改应答数据分组(步骤904)。如果确定通过添加错误序列号来修改应答数据分组,则该过程将错误序列号添加到应答数据分组的报头中(步骤906),并且将此已修改的应答数据分组传输给附带受害者(步骤908),之后该过程终止。
[0148] 返回步骤904,如果确定不添加错误序列号,则该过程确定是否将重置标志或结束标志添加到应答数据分组上(步骤910)。如果该过程确定不添加标志,则此后该过程终止。
[0149] 返回步骤910,如果该过程确定通过添加重置标志或结束标志来修改应答数据分组,则该过程将重置标志或结束标志添加到应答数据分组上(步骤912)。继而该过程将已修改的应答数据分组发送给附带受害者(步骤908),之后该过程终止。
[0150] 因此,示意性实施方式提供了用于端口扫描保护的计算机实现方法、装置和计算机可用介质。在一个实施方式中,响应于检测到端口扫描,该过程生成具有已修改的传输控制协议报头的应答数据分组,以形成已修改的应答数据分组。已修改的应答数据分组将引发来自此已修改的数据分组的接收方的响应。该过程将应答数据分组发送到与端口扫描相关联的第一互联网协议地址。
[0151] 响应于接收对已修改的应答数据分组的响应,该过程识别响应数据分组的报头中的第二互联网协议地址。第二互联网协议地址是端口扫描的源的实际互联网协议地址。继而可以阻止来自第二互联网协议地址的所有网络业务,以防止对任何开放端口的攻击。
[0152] 已修改的传输控制协议报头可以包括错误的序列号。错误的序列号是落在序列号的可接受范围之外的序列号。在另一实施方式中,已修改的传输控制协议可以包括重置标志或结束标志。在另一实施方式中,已修改的传输控制协议报头通过改变用于生成已修改的应答数据分组的校验和来生成。
[0153] 按此方式,可以防止使用伪造IP地址的黑客对开放的潜在易受攻击的端口的攻击。
[0154] 附图中的流程图和框图示出了根据各种实施方式的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个步骤可以代表模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包括一个或多个用于实现指定的逻辑功能的可执行指令。还应当注意,在有些备选实现中,步骤中标注的功能也可以以不同于附图中所标注的顺序发生。例如,连续示出的两个步骤实际上可以基本并行地执行,或者这些步骤有时也可以按相反的顺序执行,这依所涉及的功能而定。
[0155] 本发明可以采取完全硬件实施方式、完全软件实施方式或既包含硬件组件又包含软件组件的实施方式的形式。在优选实施方式中,本发明实现为软件,其包括但不限于固件、驻留软件、微代码等。
[0156] 而且,本发明还可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,这些介质提供程序代码以供计算机或任何指令执行系统使用或与其结合使用。出于描述目的,计算机可用或计算机可读机制可以是任何有形的装置,其可以包含、存储、通信、传播或传输程序以由指令执行系统、装置或设备使用或与其结合使用。
[0157] 介质可以是电的、磁的、光的、电磁的、红外线的、或半导体的系统(或装置或器件)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。目前光盘的例子包括紧凑盘-只读存储器(CD-ROM)、压缩盘-读/写(CD-R/W)和DVD。
[0158] 适合与存储/或执行程序代码的数据处理系统将包括至少一个处理器,其直接地或通过系统总线间接地耦合到存储器元件。存储器元件可以包括在程序代码的实际执行期间所利用的本地存储器、大容量存储器、以及提供至少一部分程序代码的临时存储以便减少执行期间从大容量存储器必须取回代码的次数的高速缓冲存储器。
[0159] 输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等等)可以直接地或通过中间I/O控制器耦合到系统。
[0160] 网络适配器也可以耦合到系统,以使得数据处理系统能够通过中间的私有或公共网络而耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器以及以太网卡仅仅是当前可用的网络适配器类型的几个例子。
[0161] 出于示意性和描述的目的已经提供了本发明的描述,但其意图不在于穷尽本发明或将本发明限制于所公开的形式。多种修改和变形对于本领域普通技术人员将是很明显的。实施方式是这样选择和描述的,以便最好地解释本发明的原理、实际应用,并且使得本领域其他普通技术人员能够理解具有各种修改的本发明的各种实施方式同样适合于所构想的特定使用。