用于检测和减轻分布式拒绝服务攻击的系统和方法

文档序号:7959539阅读:195来源:国知局
专利名称:用于检测和减轻分布式拒绝服务攻击的系统和方法
技术领域
本发明涉及Internet技术,尤其涉及针对家用或小型商用计算机用户的拒绝服务(DoS)和分布式拒绝服务(DDoS)攻击的检测和减轻。
背景技术
家用或小型商用计算机用户可能成为知道这个家用或小型商用计算机IP地址的任何其他Internet用户进行分布式拒绝服务(DDoS)攻击的对象。
与病毒和垃圾邮件等其它Internet漏洞不同,迄今为止还没有任何补丁、个人防火墙或者其它技术手段可以供使用DSL或基于电缆模式的Internet连接的商业或者个人采用来保证或者更加安全地保护其免于受到这种攻击。
已知,针对家用或小型商用计算机或网络IP地址的DDoS攻击可以有效地在那个地址断开所有用户的连接。针对任何低带宽IP地址(DSL或电缆上的“宽带连接”)发起这种攻击的工具已经可以在Internet上找到。所需带宽低于Internet服务提供商(ISP)所感兴趣的带宽,而且所造成的经济损失通常低于保护当地或联邦权威机构的利益和协助所需。
针对低带宽的攻击对于远程工作者来说可能是非常大的风险。由于拥塞在用户端非常严重,很多分组被丢弃,以继续正常的TCP会话。家用防火墙并非解决方案。家用防火墙可能将恶意分组或者不想要的分组拦截在终端用户之外。问题是,在DDoS攻击中,有太多的流量到达终端用户。从而,太多的流量使得终端用户无法处理最终由家用防火墙拦截的入站流量。所以,虽然防火墙试图起作用,但是其不能处理所有流量。这使得合法连接被切断或者根本未发起。

发明内容
一种系统、方法和计算机程序产品,用于响应于用户通过路由器在通信网络上发起小型计算机通信会话,检测和减轻拒绝服务攻击,在路由器中执行一组允许规则,用于允许用户所发起会话的通信分组流通过路由器,允许规则包括默认规则,用于丢弃对于小型计算机的流量中不属于用户所发起会话的所有分组。
结合附图阅读下面对本发明具体实施方式
的详细描述,本发明的其它特征和优势将变得更加明显。


图1是高层系统框图,说明用于描述本发明各方面的系统组件的简单配置。
图2是分层结构的图形表示。
图3是图1中下一跳路由器选定组件的图形表示。
图4是传输控制协议(TCP)头部的图形表示。
图5是用户所发起会话的流程图表示。
图6是小规模攻击的流程图表示。
图7是中等规模攻击的流程图表示。
图8是攻击过程的流程图表示。
图9是在图1的下一跳路由器中所执行过程的流程图表示。
图10是处理同步(SYN)分组的流程图表示。
图11是处理结束(FIN)分组的流程图表示。
图12是用于执行本发明方法的计算机可读的程序存储设备的图形表示。
具体实施例方式
依照本发明,提供下一跳路由器以及增强型ISP边界路由器中的增强型滤波用于减轻针对低带宽连接的家用或小型商用计算机的DDoS攻击。由于不需要ISP或用户发起或者进行管理,这个解决方案在很大程度上是自动的。
参考图1,宽带家庭或小型企业可能布局在一个典型的配置中,家庭或小型商业客户或用户计算机30-34分别通过中等带宽链路40-44与下一跳路由器50相连。所示防火墙35安装在客户30上。所示下一跳路由器50通过高带宽链路80与通信云70上的ISP边界路由器60相连,在通信云70上,还连接有61和62。(通信云表示Internet、intranet或者一些使多个设备互连的有线或无线通信网络。)这些其它的ISP边界路由器通过其它高带宽连接81、82与其它ISP通信云相连,例如通过ISP边界路由器63与通信云71相连,或者与路由器52等下一跳路由器相连进而通过中等带宽连接46与客户36相连。通信云71还经由ISP边界路由器64、65通过高带宽链路83、84与其它下一跳路由器51相连进而通过中等带宽链路59与另外的家庭或小型商业客户计算机,例如攻击系统53相连。依照这个示例的实施方式,可能有多个不同等级的带宽,每个等级例如用链路40、80、70、82、71、84、59等等表示。
依照本发明的优选实施方式,大多数涉及家用或小型商用计算机30的会话是由用户发起的或者变为由用户发起。如果这样,则在下一跳路由器50中建立一组访问控制规则。如果是由(计算机30的)用户发起,则这些规则是允许分组流在关于家用或小型商用计算机30的两个方向上通过下一跳路由器50的具体规则。例如,大多数或者所有TCP会话将通过来自用户30的SYN分组发起(在下文中参考图4描述)。作为另一个实例,UDP音频会话将主要在发往用户30的方向上,并且将由用户30发起。默认的入站(从下一跳路由器50发往用户30)规则是丢弃所有的其它分组(那些不是来自用户30所发起会话的分组)。同样地,只有用户30所发起会话中的出站(来自用户30)流量将是被允许的。允许规则在事务结束后的一个确定时间段之后超时。时间的长度还可以取决于会话长度或者其它因素。
在上述的实施方式中,只允许用户30发起的会话。这是强制允许或拒绝机制。为了提供增强的灵活性,以适应一些网络服务以及远程管理,依照本发明另一个示例的实施方式的机制,提供一种允许可信任计算机访问用户计算机30的机制。这个进一步的机制是基于在下文中将要描述的端口碰撞算法实现的。在这种情况下,第二计算机36试图使用发往计算机30和36以及路由器50已知的外部端口号密钥序列(例如,具有小于2047的十个端口号)的来分组联系用户计算机30。因为来自计算机36的这种尝试不是计算机30发起的,所以路由器50拒绝连接,直至路由器50认为其后的密钥序列证实计算机36是一个可信任计算机时,检测到该端口序列号。因此,路由器50可能允许用户计算机30打开外部端口,并且允许通过那个端口进行与计算机36的通信,直至双方均同意终止会话。
除了管理信令之外,用户30可使用端口碰撞中的正确序列,以基于可信任计算机的当前源地址和源端口,对与可信任计算机36之间的FTP或Telnet事务进行鉴权。从而,端口碰撞可用于允许特定用户36连接用户30,其中通常只允许用户30发起的网络流量。
从下一跳路由器50到ISP边界路由器60的带宽需要足够高,通常其是足够高的,使得,在针对用户30的小规模DDoS攻击中,所有或者几乎所有分组(正常的和恶意的)到达下一跳路由器50。同样,下一跳路由器50需要具有足够的处理能力,以允许与允许列表相关联的正常分组留在用户30发起的会话中,同时丢弃所有其它分组。
理想地,恶意流量在接近源,例如计算机36处进行丢弃。但是,例如在来自攻击系统36的小规模DDoS攻击中,链路81的带宽可能太小,以致ISP 70感觉不到。从而,小规模攻击中的DDoS流量将完全从计算机36通过ISP 70传送至下一跳路由器50。这保证正在进行会话中的分组当其通过ISP通信云70时不会被丢弃。在下一跳路由器50中,基于用户30所发起会话的入站(发往用户30)流量的允许规则与默认丢弃动作一起被执行。
对于较高带宽DDoS攻击来说,ISP 70将可以感觉到带宽强度,并可能影响到同一个下一跳路由器50的其他用户31-34。在这种情况下,可用随之发生的丢弃动作实现对进入ISP 70的DDoS的识别。基本上,对于31-34的下一跳路由器50成为终端用户,也就是,相对来说,是一个小型计算机。边界路由器60(或者对于原始下一跳路由器的下一跳路由器)则成为下一跳路由器。这应用了只允许用户所发起会话发生的相同概念,而且由于边界路由器将有更高的带宽,其更适于处理DDoS攻击。随着DDoS攻击规模的增长,ISP对DDoS攻击的现有防御变得越来越有效,所以本发明连同那些现有技术成为一种卓越的安全过程。这说明本发明将如何用于更高等级上。
为了增强安全性,注意记录流量的发起位置(通常是物理端口或者执行模块)。这有效地阻止了从并非下一跳路由器50上客户的机器36到下一跳路由器50上客户30的流量源的任何欺骗机会。这还防止下一跳路由器50上客户31-34中任何一个受到客户30的欺骗。这些客户31-34、36必须使用其各自的ISP为它们指定的地址。由于会话是由终端用户发起的,所以唯一被允许的外部连接是那些由终端用户建立或允许的连接。这表示,如果试图进行欺骗,则那个特定的连接将不会被(下一跳路由器50)允许。同样,如果终端用户30试图欺骗流量,那也将被拦截,这是因为,在这种情况下,路由器50知道分配给系统31-34的地址,而且也知道流量是在哪个物理端口进入路由器模块50的。
参考图2,OSI模型或架构在节点168上提供(1)物理层161、(2)数据链路层162、(3)网络层163、(4)传输层164、(5)会话层165、(6)表示层166以及(7)应用层167。其它相似的分层架构可用于构成设备之间的通信。这些建立了一个框架,用于协调用于计算机系统互连的现有和未来标准。在OSI模型的情况下,将网络功能分为七层,每层代表一组相关的数据处理和通信功能,可以用一种标准的方式实现,以支持不同的应用。这种架构的一个特征就是在同一层上进行设备之间的通信。从而,一个设备中的数据链路层与另一个设备中的数据链路层进行通信,一个设备中的会话层与另一个设备中的会话层进行通信,等等。
参考图3,本发明所关心的下一跳路由器50的选定组件包括变量、寄存器或者包括源地址分配列表66、分别与通信链路40和80相连的连接器端口55和57、允许规则56、丢弃规则54、重要列表58以及5-元组(tuple)68的组件,5元组68包括源IP地址47、目的IP地址49、源端口、目的端口和协议。
参考图4,TCP头部包括源端口200、目的端口204、序列号206、确认号208、数据偏移字段210、保留字段212和六个状态比特,六个状态比特包括紧急(URG)214、确认(ACK)216、PSH 218、PST220、同步(SYN)222和结束(FIN)224;窗口226、校验和228、紧急指针230、选项字段232、填充字段234以及最后的数据236。
依照本发明的优选的实施方式,参考图5,宽带家庭或小型商业网络连接的建立如下。
在步骤100中,用户30发起会话。在步骤102中,下一跳路由器50抽取会话头部信息。
对于网络浏览的正常会话进行如下终端用户30将SYN(即,设定的SYN比特222分组)发送到用于特定URL的特定DNS查询。这个SYN在下一跳路由器50中建立一个允许规则,在端口40上允许到DNS查询机器以及来自源30的双向流量。在对IP进行解析并发送至终端用户之后,向所期望的网站发送一个新SYN。路由器50将看到这个SYN,并在端口80上使能另一个用于发往网站IP以及来自终端用户的流量的允许规则。允许规则可以由超时或FIN分组(具有FIN比特224集的分组)进行破坏。
对于UDP事务来说,可能没有SYN分组,也没有FIN分组。这些事务将由外出流量进行发起,并且在一段时间之后被破坏。对于外出ICMP或其它协议同样如此。UDP/TCP和ICMP之间的区别是,ICMP不具有源端口和目的端口。在ICMP的情况下,将可能允许或者拦截整个协议。
在步骤104中,下一跳路由器50使用来自步骤102的头部信息建立允许规则。
允许规则是在终端用户发起出站会话时建立的规则。当终端用户在进行网络浏览时,连接将使用80的随机选择的源端口(SP)、目的端口(DP)和TCP协议(6)获得终端用户的源地址(SA)和网站目的地址(DA)。然后规则可能是(如果期望具体说明)允许所有流量去往和来自SA和DA,该DA包括DA(并非终端用户)上的端口80。这是因为任何返回的流量将具有与DA相交换的SA以及与DP相交换的SP。
另一方面,丢弃规则是并未在允许规则表中明确识别的任何规则。默认对所有流量进行拦截。
在步骤106中,使用这些规则允许在步骤100中发起会话流量,这些规则基于IP地址、物理端口以及服务的特定使用。这个信息可以在OSI模型的第四层上找到。
在步骤108中,用户30结束这个会话,在步骤110中,从下一跳路由器50中删除对于这个会话的允许规则56。在这个实例中,这个动作在路由器50的传输层164中自动执行。但是,可以包括手动执行的管理任务。这些可能包括所有规则的重置(也就是,“拦截除了路由器通信之外的所有流量”规则)。
参考图6,通过举例的方式,小规模攻击的处理可能如下所述。在步骤120中,攻击者,例如用户36获知受害者用户30的IP地址。在步骤122中,攻击者36使用脚本获得两个到十个僵尸(zombie)机器。
僵尸(zombie)机器是指任何具有可利用的漏洞或者允许对用户进行合法所有者所不允许的未授权访问的机器。这个僵尸机器则可以用于向其它机器发送垃圾邮件或者发起DoS攻击。在线可找到很多可以利用易受攻击的应用或操作系统的脚本。具有这些基本知识,恶意用户可以针对特定或任意机器,并建立可用于实现攻击的机器群。
最近的蠕虫或病毒中的任何一种将是生成僵尸机器的脚本。这些攻击,例如Netsky,Bagle,或者Mydoom通常打开一个端口,允许主控制器在合法所有者不知道的情况下向僵尸机器发送秘密命令。
可使用多种方式获知有意向的受害者的IP地址。例如,恶意管理员能够访问IP地址。其它可能性包括网络窃听和网络扫描。另一个可能性是其它恶意用户过去所获得的IP地址列表。有时可以将这些卖给试图建立他们自己僵尸机器群的新恶意用户。
在步骤124中,攻击者36使用来自步骤122的脚本发起对受害者30的攻击。在随后步骤中所引用的脚本表示不同的脚本。有用于获得僵尸机器的脚本,也有使用僵尸机器群对目标发起DDoS的脚本。这个第二种类型脚本(DDoSing)还可以在Internet中找到,并且可以使用最小的技巧对其进行修改。
在步骤126中,只有用户所发起会话中的流量离开用户30,使得,攻击者36不能获知攻击的效果。在步骤128中,攻击流量从攻击者36通过链路81、62、70、60和80一路传送至下一跳路由器50。在步骤128中,下一跳路由器50始终不允许非节点30发起的流量通过其发往节点30。这表示,节点30看不到攻击流量,因此,不能对其有所响应。
为了区分攻击分组和合法分组,下一跳路由器的网络层163参考来自5-元组列表68的源地址47和目的地址49,连同来自传输层164中TCP头部198的目的端口204,TCP头部198包括目的端口(DP)204和分组设置,例如SYN 222、FIN 224和ACK 216。5-元组包括或者参考源地址(SA)、目的地址(DA)、协议、源端口(SP)和目的端口(DP)。如果协议是ICMP,则没有SP或者DP,所以其可以是“0”,或者是代替SP的类型,对于DP是“0”。
OSI模型的网络层163和传输层164用于下列方式协议和地址在第三层指定,端口号在第四层指定。因此,为了获得5-元组,对OSI模型的第三层和第四层进行检查。
用户30发起的会话将具有来自列表66的已知分配IP作为源地址,攻击者将具有某些其它地址作为源地址。
在步骤130中,下一跳路由器50中的允许规则丢弃攻击流量,允许正常流量。从而,除了用户发起的流量或者端口碰撞所鉴权的流量之外,所有的流量都被下一跳路由器拦截。
端口碰撞使用共享密钥的概念,以允许外部用户连接只允许用户所发起连接(默认)的系统。为了端口碰撞能够工作在本发明的上下文中,将在路由器中进行跟踪,这是因为,除非建立了规则,否则路由器不允许流量通过。
参考图7,中等规模攻击的处理如下所述。
在步骤140中,攻击者36获知受害者用户30的IP地址。
在步骤142中,攻击者36使用脚本获得十至一百个僵尸机器。
在步骤144中,攻击者36使用脚本发起对受害者30的攻击。
在步骤146中,只有用户30所发起会话的流量离开用户30,使得,攻击者36不能获知其对受害者30攻击的效果。
在步骤148中,攻击流量通常使ISP 70流量中断,影响多个客户,包括用户30-34。
在步骤150中,ISP 70向边界路由器60、61、62添加丢弃规则,以丢弃攻击流量并允许正常操作。
在步骤152中,ISP 70对攻击进行监控,并在步骤144中的攻击减退时从边界路由器60、61、62中删除步骤150中的规则。
从正常标准来看,与大规模攻击相比,中等规模攻击(图7)更接近于小规模攻击(图6)。大规模攻击将使用成百上千的僵尸机器,而这超出本发明的范围。
当说到较高等级的拦截措施时,假设没有方法自动抵抗大规模DDoS。因此,虽然DDoS将十分显而易见,但是人们将不得不制定某些减缓措施。本发明将不适用于这种大规模情况,这是因为将生成太多的允许规则56,并可在任何时候进行破坏。
在另一个可仿效实施方式中,ISP 70并不在边界路由器中采取直接的动作(步骤150),而是可能实现客户对特定客户的客户允许列表56或者攻击客户的拦截列表54。这样做的好处是可进行自动响应,毋需人工干预。
参考图8,响应于正在进行中的攻击,在路由器50中所执行的可仿效过程如下所述。在步骤170中,攻击者开始使用在攻击系统36中运行的僵尸机器以及来自下一跳路由器51外部系统(未示出)的僵尸机器,发起对用户30的攻击。
在步骤172中,因为节点36和53并不在允许列表56中,所以从36和53的僵尸机器群通过链路80到达下一跳路由器50的流量被拦截。
在步骤174中,攻击者等待来自用户30的响应,如果没有接收到响应,其可能在步骤176中选择增强攻击的等级。如果攻击等级没有增强,则在步骤180中,攻击继续被拦截,而没有进一步的响应。但是,如果在步骤178中下一跳路由器50检测到增强的攻击等级,则在步骤182中,实现重要列表58规则,同时在步骤184中,丢弃所有现有的允许规则56,只允许重要规则58。重要列表是总是允许特定协议、服务或地址(范围)的规则的“白名单”。
如上所述,在本发明一个优选实施方式中,本发明各步骤的执行发生在下一跳路由器50中。在路由器50的等级上,对来到的分组进行检查。参考图9,说明在下一跳路由器50中执行的基本过程。
算法的执行开始于开始步骤240,在步骤242中,确定到来分组198的物理端口200是否与所分配的源地址66相匹配。如果不匹配,则在步骤254中,拦截所接收的分组。如果匹配,则在步骤244中,访问允许规则列表56,以确定是否存在对于这个流量(也就是所接收分组198)的规则。如果存在,则执行图10的SYN算法。如果不存在,则在步骤248中,路由器50确定所接收分组198是否是FIN分组(设定的FIN 224分组,或者等效分组),指示将不再有数据来自这个分组198的发起端。如果这个分组198是FIN分组,则在步骤250中,执行图11的FIN算法。
参考图10,通过在步骤262中确定正在进入的分组244是否是SYN分组(设定的FIN 222分组198),在下一跳路由器50中执行步骤246中的SYN算法。除非SYN 222被设定,否则序列号206是这个分段(TCP分段作为Internet数据报198发送)中第一个数据八位组的序列号,在设定SYN 222的情况下,序列号206是初始序列号(ISN),或者这个会话第一个数据报198的序列号,并且第一个数据字节236是ISN+1。
如果这个分组198是SYN分组,则在步骤264中,获得5-元组68,在步骤266中,基于5-元组68中用户30的源地址、目的地址和目的端口204,向列表56中添加一个允许规则,在步骤252中,这个流量是被允许的。如果在步骤262中确定这个分组198不是SYN分组,则在步骤268中将其丢弃。
参考图11,其描述破坏过程,如果在图9的步骤248中,确定这个分组198是FIN分组,则在步骤250中,执行FIN算法,包括在步骤272中从5-元组列表62中获得这个用户的5-元组,在步骤274中从允许规则列表56中删除对于这个用户30的允许规则,以及在步骤252中允许这个分组通过。
再次参考图9,在步骤252中,允许这个分组198通过,以结束会话。
依照本发明另一个实施方式,可将过程或算法扩展为自动或手动过程,其中较大规模、较明显的攻击可能在较高带宽节点(例如ISP的边界路由器)上具有丢弃规则。
如上所述,本发明涉及对在ISP 70端具有高带宽链路80以及在另一端具有多个DSL或其它相对较低带宽链路40-44的下一跳路由器50进行增强。
依照本发明另一个实施方式,一个关键要求就是,在具有从ISP 70到小型办公室或家庭30的流量的小规模DDoS攻击中,基本上只有拥塞点50消耗掉低带宽链路40的带宽。这就是,高带宽链路80具有足够的容量,以向路由器50传输所有分组,包括正常和恶意流量,而且路由器50的处理能力足够传输发往低带宽链路40的所有正常分组,并且充分快速地丢弃恶意流量。换句话说,拥塞点应当具有低带宽链路40的传输速率。
拥塞点就是攻击流量将与正常流量共同通过的点,可能影响一个或多个终端用户。下一跳路由器50需要能够处理正常流量以及针对用户的(恶意)流量洪流。高带宽链路80应当近似是中等带宽链路40-44的总和。
在另一个可供选择的实施方式中,本发明应用于其它具有两端的设备(与具有两端80和40的路由器50相似)。各端的存在是由通过设备的大部分或者所有流量从一端到达另一端来定义的。一端只有一条或几条相对的高带宽链路80。另一端具有多个相对的低带宽链路40-44。例如,低带宽链路40-44可能是电话调制解调器连接。有必要使选定的低带宽链路40成为从高带宽链路80通过设备50然后进入低带宽链路40的流量的唯一拥塞点。例如,电话公司可在某些架构点上使用这种过程或设备50。这个设备还将执行一个过程,以阻止并非由终端用户发起的流量。这种设备的实例包括用于DSL连接的DSLAM(DSL汇聚模块)或者用于电缆调制解调器连接的电缆头端。这些可供选择的设备的工作方式与受害者30所连接的下一跳路由器50相同。
依照另一个实施方式,注意不要向攻击者36透露,来自家庭或办公室30的一个或多个重要(也就是,至关重要的、关键的、实质性的、高价值的,等等)会话正在继续进行中。从而,当在下一跳路由器50中检测到攻击(例如,通过流量模式的统计分析)时,路由器50可通知家庭或办公室30。家庭或办公室30则可能自动地挂起除了高价值流量(例如,来自远程工作者的工作流量)之外的所有流量。路由器50跟踪特定的流量统计,例如出入分组198的数量、出入字节的数量以及物理端口所中止的这些统计。使用当前集中在路由器50中的流量分析统计,可以检测到发往家庭用户30的异常流量值或类型。
或者,通过来自家庭或办公室30的预先批准,下一跳路由器50中的自动机制可能在攻击期间丢弃除了简短的重要列表中的流量之外的所有双向流量。重要列表58识别总是被允许的流量,例如通过VPN到工作位置的流量或者终端用户认为关键的某些其它流量。在任何情况下,其目的在于拒绝攻击者获知家庭或办公室30正在进行重要通信,以免攻击者36轻易地获得更多的僵尸机器,并且最终实现对家庭或办公室30的拒绝服务。
可供选择的实施方式将了解到,虽然在这里以说明为目的描述了本发明的具体实施方式
,但是在不偏离本发明原则和范围的前提下,可进行各种修改。特别是,参考图12,提供一种计算机程序产品或程序组件、或者一种程序存储器或内存设备,例如固态或液态传输媒介282、磁线或光线、磁带或磁盘280等等,用于存储机器可读的信号,用于依照本发明的方法控制计算机284的操作和/或依照本发明的系统构造其组件。
此外,本方法的每个步骤可依照用C++、Java、Pl/1、Fortran等任何程序语言生成的一个或多个程序组件、模块或对象及其一部分,在任何通用计算机上执行,例如IBM系统zSeries、iSeries、xSeries和pSeries等等。此外,每个所述步骤,或者实现每个所述步骤的文件或对象及其类似可由专用硬件或者为此目的设计的电路模块执行。
因此,本发明的保护范围仅由下面的权利要求书及其等效权利要求进行限制。
权利要求
1.一种方法,用于检测和减轻拒绝服务攻击,包括在通信网络上发起小型计算机通信会话;在路由器中执行一组允许规则,用于允许用户所发起会话的通信分组流通过所述路由器,所述允许规则包括默认规则,用于丢弃对于所述小型计算机的流量中不属于所述用户所发起会话的所有分组。
2.根据权利要求1所述的方法,进一步包括使路由器作为通过边界路由器与Internet服务提供商网络相连的下一跳路由器工作。
3.根据权利要求2所述的方法,包括在所述小型计算机和所述下一跳路由器之间建立相对低带宽的连接,以及在所述下一跳路由器和所述边界路由器之间建立相对高带宽的连接。
4.根据权利要求3所述的方法,包括在事务会话终止之后使得允许与所述小型计算机进行通信的允许规则超时。
5.根据权利要求4所述的方法,进一步包括建立外部端口号序列,用于识别至少一个可信任计算机,用于不考虑所述默认规则,进行与所述小型计算机的通信。
6.根据权利要求3所述的方法,进一步包括在与所述下一跳路由器相连的相对低带宽连接上运行多个小型计算机;以及在所述下一跳路由器中记录每个会话的发起端,用于阻止其它计算机进行发往所述小型计算机的流量源的欺骗。
7.根据权利要求1所述的方法,进一步包括响应于所述小型计算机发起出站会话,运行所述下一跳路由器,以抽取包括所述小型计算机提供的源地址和目的地址的会话头部信息;响应于所述会话头部信息,所述下一跳路由器建立至少一个允许规则;以及响应于所述会话终止,删除所述允许规则。
8.根据权利要求7所述的方法,进一步包括维持对于选定用户计算机关键的目的设备的重要列表;监控所述下一跳路由器所经历的关于所述选定用户计算机的攻击等级;响应于检测到针对所述选定用户计算机的增强的攻击等级,执行所述重要列表,以丢弃关于所述选定用户计算机的所有现有允许规则,并且只允许为所述选定用户计算机预先建立的重要规则。
9.根据权利要求7所述的方法,进一步包括确定到来分组上的物理端口是否与所分配的源地址相匹配,如果不匹配,则拦截所述到来分组;如果所述到来分组未被拦截,则确定是否存在对于所述到来分组的允许规则,如果不存在,则执行同步算法,以基于所述用户计算机的源地址、目的地址和目的端口建立允许规则;以及如果对于为结束分组的到来分组的存在允许规则,则执行结束算法,以删除所述允许规则,并允许所述分组通过所述下一跳路由器。
10.一种路由器,用于检测和减轻针对小型计算机的拒绝服务攻击,包括与所述小型计算机之间的相对低带宽的通信连接;与通信网络之间的相对高带宽的通信连接;处理单元,用于在所述路由器中执行一组允许规则,用于允许对于用户所发起会话的所述连接的通信分组流,所述允许规则包括默认规则,用于丢弃对于所述小型计算机的流量中不属于所述用户所发起会话的所有分组。
11.根据权利要求10所述的路由器,进一步包括外部端口号存储器,该外部端口号建立一个序列,用于识别至少一个可信任计算机,以不考虑所述默认规则,进行与所述小型计算机的通信。
12.根据权利要求10所述的路由器,进一步包括与多个小型计算机相连的相对低带宽连接;以及寄存器,用于在所述路由器中记录每个会话的发起端,用于阻止其它计算机进行发往所述小型计算机的流量源的欺骗。
13.根据权利要求10所述的路由器,所述处理单元进一步用于响应于所述小型计算机发起出站会话,抽取包括所述小型计算机提供的源地址和目的地址的会话头部信息;响应于所述会话头部信息,建立至少一个允许规则;以及响应于所述会话终止,删除所述允许规则。
14.根据权利要求13所述的路由器,进一步包括对于选定用户计算机关键的目的设备的重要列表存储器;所述处理单元进一步用于监控所述下一跳路由器所经历的关于所述选定用户计算机的攻击等级,以及,响应于检测到针对所述选定用户计算机的增强的攻击等级,执行所述重要列表,以丢弃关于所述选定用户计算机的所有现有允许规则,并且只允许为所述选定用户计算机预先建立的重要规则。
15.根据权利要求13所述的路由器,所述处理单元进一步用于确定到来分组上的物理端口是否与所分配的源地址相匹配,如果不匹配,则拦截所述到来分组;如果所述到来分组未被拦截,则确定是否存在对于所述到来分组的允许规则,如果不存在,则执行同步算法,以基于所述用户计算机的源地址、目的地址和目的端口建立允许规则;以及如果对于为结束分组的到来分组存在允许规则,则执行结束算法,以删除所述允许规则,并允许所述分组通过所述下一跳路由器。
16.一种计算机程序产品,用于检测和减轻拒绝服务攻击,所述计算机程序产品包括一种计算机可读媒体,包含用于执行权利要求1至9中任何一个权利要求中的步骤的计算机可执行指令。
全文摘要
一种路由器,包括与小型计算机相连的相对低带宽通信连接、与通信网络相连的相对高带宽通信连接,以及处理单元,该处理单元用于在路由器中执行一组允许规则,用于允许对于用户所发起会话的连接的通信分组流,允许规则包括默认规则,用于丢弃对于小型计算机的流量中不属于小型计算机所发起会话的所有分组。
文档编号H04L29/06GK1893375SQ20061007264
公开日2007年1月10日 申请日期2006年4月5日 优先权日2005年7月7日
发明者克拉克·德布斯·杰弗里斯, 莫哈马德·佩拉维安, 凯文·戴维·希姆伯杰, 约翰·弗雷德·戴维斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1