著录项信息
| 专利名称 | 用于检测网络上未经授权的扫描的方法、系统和计算机程序 |
| 申请号 | CN200580022880.1 | 申请日期 | 2005-07-20 |
| 法律状态 | 权利终止 | 申报国家 | 中国 |
| 公开/公告日 | 2007-10-10 | 公开/公告号 | CN101052934 |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | G06F1/00 | IPC分类号 | G;0;6;F;1;/;0;0;;;H;0;4;L;2;9;/;0;6查看分类表>
|
| 申请人 | 国际商业机器公司 | 申请人地址 | 美国纽约
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 国际商业机器公司 | 当前权利人 | 国际商业机器公司 |
| 发明人 | 艾伦·戴维·布朗热;罗伯特·威廉·丹福德;凯文·戴维·希伯格;克拉克·德布斯·杰佛里斯 |
| 代理机构 | 中国国际贸易促进委员会专利商标事务所 | 代理人 | 付建军 |
摘要
一种检测和响应系统,包括一组算法,用于检测普通计算机通信流内的TCP或UDP分组的子集(应该聚焦于引出响应的网络流量),所述TCP或UDP分组的子集具有一个IP源地址(SA)值、一个或几个目的地址(DA)值,以及超过了不同的目的端口(DP)值的阈值的数量。诸如直接表和Patricia搜索树之类的查询机制记录和跟踪具有一个SA和一个DA以及对于给定SA、DA组合观察到的DP值集合的分组集。检测和响应系统报告存在这样的分组子集,以及该分组子集的标头值,包括SA、DA和多个DP。检测和响应系统还包括对报告的各种管理响应。
1.一种检测网络上的未经授权的扫描的方法,包括下列步骤:
(a)监视在网络设备中接收到的通信;
(b)检测所述通信内的预先定义的分组子集;
(c)对预先定义的分组子集进行分析,以检测具有预先定义的统计特征的可疑的分组;
(d)发出告警,表示检测到具有预先定义的统计特征的分组;以及
(e)通过管理机构将与可疑的分组具有相同源地址的所有随后的分组的传输/接收速率限制到不大可能对网络产生伤害的程度。
2.根据权利要求1所述的方法,其中,分组子集包括在来自TCP/IP集的TCP分组中TCP标头的三个比特中的至少两个比特被设置的分组。
3.一种用于检测网络上的扫描的方法,包括下列步骤:
在耦接到所述网络的设备中提供查询结构,所述查询结构在逻辑上等效于搜索树,该搜索树具有第一部分,该部分被分区为多个槽,至少一个槽可操作地耦接到所述查询结构;
接收设备中的网络通信;
利用编程的CPU对网络通信进行分析,以检测具有预先定义的统计特征的TCP/IP分组;
对于如此检测到的每一个TCP/IP分组,使用所述编程CPU来从源地址和目的地址生成散列值;
使用散列值索引到一个槽中;
检查所述槽以查找指针;
如果没有发现指针,则插入新叶,源地址和目的地址作为所述叶的标识符;
将所述每一个TCP/IP分组中包含的目的端口的地址存储在所述叶中;
在所述槽中创建指向所述叶的指针;
如果指针位于槽中,则使用所述指针来访问叶;
检查所述叶的内容,以检测记录在其中的目的端口的地址;
将如此检测到的地址的数量与阈值进行比较;
如果地址的数量等于或超过阈值,则执行第二层查询;如果所述叶中的地址数量小于阈值,则将目的地址添加到所述叶中;
发出告警,表示检测到大于阈值数量的具有表示可疑分组的预先定义的统计特征的分组;以及
通过管理机构将与可疑的分组具有相同源地址的所有随后的分组的传输/接收速率限制到不大可能对网络产生伤害的程度。
4.一种检测网络上的未经授权的扫描的系统,包括:
(a)用于监视在网络设备中接收到的通信的装置;
(b)用于检测所述通信内的预先定义的分组子集的装置;
(c)用于对预先定义的分组子集进行分析,以检测具有预先定义的统计特征的可疑的分组的装置;
(d)用于发出告警的装置,告警表示检测到具有预先定义的统计特征的分组;以及(e)用于通过管理机构将与可疑的分组具有相同源地址的所有随后的分组的传输/接收速率限制到不大可能对网络产生伤害的程度的装置。
5.根据权利要求4所述的系统,其中,分组子集包括在来自TCP/IP集的TCP分组中TCP标头的三个比特中的至少两个比特被设置的分组。
6.一种检测网络上的未经授权的扫描的系统,包括:
用于在耦接到所述网络的设备中提供查询结构的装置,所述查询结构在逻辑上等效于搜索树,该搜索树具有第一部分,该部分被分区为多个槽,至少一个槽可操作地耦接到所述查询结构;
用于接收设备中的网络通信的装置;
用于利用编程的CPU对网络通信进行分析以检测具有预先定义的统计特征的TCP/IP分组的装置;
用于对于如此检测到的每一个TCP/IP分组,使用所述编程CPU来从源地址和目的地址生成散列值的装置;
用于使用散列值索引到一个槽中的装置;
用于检查所述槽以查找指针的装置;
用于如果没有发现指针,则插入新叶的装置,源地址和目的地址作为所述叶的标识符;
用于将所述每一个TCP/IP分组中包含的目的端口的地址存储在所述叶中的装置;
用于在所述槽中创建指向所述叶的指针的装置;用于如果指针位于槽中,则使用所述指针来访问叶的装置;
用于检查所述叶的内容以检测记录在其中的目的端口的地址的装置;
用于将如此检测到的地址的数量与阈值进行比较的装置;
用于如果地址的数量等于或超过阈值,则执行第二层查询的装置;
用于如果所述叶中的地址数量小于阈值,则将目的地址添加到所述叶中的装置;
用于发出告警的装置,该告警表示检测到大于阈值数量的具有表示可疑分组的预先定义的统计特征的分组;以及
用于将与可疑的分组具有相同源地址的所有随后的分组的传输/接收速率限制到不大可能对网络产生伤害的程度的装置。
7.一种用于检测计算机网络上的有害的分组的方法,包括:
(1)提供对接收到的分组进行扫描的至少一个算法;和
(2)识别具有预先定义的格式的包括单一源地址、N个目的地址和M个目的端口的分组,其中N大于M,其中,源地址、目的端口以及多个目的地址存储在Patricia树布局的叶中,并且其中,所述Patricia树布局包括直接表,
其中所述提供对接收到的分组进行扫描的至少一个算法的步骤包括:
(A)利用预先定义的分组的源地址和目的端口的散列值,索引到所述直接表的槽中;
(B)如果槽没有输入,则在所述槽中插入指针;
(C)如果槽包含指向单一叶的信息,则将叶源地址、目的端口与预先定义的分组中的源地址、目的端口进行比较,如果在源地址、目的端口中发生匹配,那么,将叶中的目的地址与分组中的目的地址进行比较;以及如果没有发生匹配,则将预先定义的分组的目的地址添加到叶中的目的地址的列表中;
(D)将所述分组报告给中心管理机构,该中心管理机构用于采取决定性行动,以限制所述分组的不良影响,其中所述决定性行动包括:
(a)将所述分组的目的端口添加到许可的目的端口的列表中;
(b)丢弃与标识的分组具有相同源地址、目的地址和目的端口的所有随后的分组;以及
(c)对具有相同源地址的所有随后的分组集的速率进行限制;
(E)提供允许的目的端口的列表;
(F)将识别的分组中的目的端口与允许的目的端口的列表进行比较;以及(G)丢弃具有匹配的目的端口的识别的分组。
8.一种用于检测计算机网络上的有害的分组的系统,包括:
用于提供对接收到的分组进行扫描的至少一个算法的装置;和
用于识别具有预先定义的格式的包括单一源地址、N个目的地址和M个目的端口的分组的装置,其中N大于M,其中,源地址、目的端口以及多个目的地址存储在Patricia树布局的叶中,并且其中,所述Patricia树布局包括直接表,其中
所述用于提供对接收到的分组进行扫描的至少一个算法的装置包括:
用于利用预先定义的分组的源地址和目的端口的散列值,索引到所述直接表的槽中的装置;
用于如果槽没有输入,则在所述槽中插入指针的装置;
用于如果槽包含指向单一叶的信息,则将叶源地址、目的端口与预先定义的分组中的源地址、目的端口进行比较,如果在源地址、目的端口中发生匹配,那么,将叶中的目的地址与分组中的目的地址进行比较,并且如果没有发生匹配,则将预先定义的分组的目的地址添加到叶中的目的地址的列表中的装置;
用于将所述分组报告给中心管理机构的装置,该中心管理机构用于采取决定性行动,以限制所述分组的不良影响,其中所述决定性行动包括:
将所述分组的目的端口添加到许可的目的端口的列表中;
丢弃与标识的分组具有相同源地址、目的地址和目的端口的所有随后的分组;以及对具有相同源地址的所有随后的分组集的速率进行限制;
用于提供允许的目的端口的列表的装置;
用于将识别的分组中的目的端口与允许的目的端口的列表进行比较的装置;以及用于丢弃具有匹配的目的端口的识别的分组的装置。
用于检测网络上未经授权的扫描的方法、 系统和计算机程\n序\n技术领域\n[0001] 一般而言,本发明涉及计算机网络,具体来说,涉及检测和管理所述计算机网络中的恶意通信,并保护所述网络免受恶意通信的侵害。\n背景技术\n[0002] 万维网(WWW)作为因特网是人所共知的,正在快速地变为用于传递私有和公共信息的首要计算机网络。因特网是可以由任何人主要通过使用叫做“TCP/IP(传输控制协议/因特网协议)”的协议或其他协议进行访问的开放式网络。由于其开放性,私用网络(内部网)上的计算机容易受到黑客的恶意攻击。计算机已经变成商业和政府机构进行通信的主要手段。例如,许多商业和政府机构使用计算机和计算机网络来将远程办事处链接起来,在一个办事处或场所内的雇员之间共享数据及其他资源,通过电子邮件与客户进行通信,通过电子邮件联络新的客户,通过网站提供信息等等。\n[0003] 对诸如因特网之类的公共网络的开放式访问使得黑客们更加容易启动或传播被称为蠕虫、病毒等等的有害代码。由于大多数私用网络都耦接到因特网,因此,从公共网络投放的病毒不仅可以影响连接到公用网络的设备,而且还影响连接到私用网络的设备。随着电子商务的出现和股票市场活动,已知有大量的商业交易是通过计算机网络完成的。结果,希望造成经济混乱的怀恶意的人可以从公共站点投放病毒,以干扰这些交易。\n[0004] 由于企业、政府和个人过分地依赖计算机和因特网,因此,恶意攻击可能会导致灾难性的经济损失或困窘。结果,计算机安全性已经变成使用计算机作为主要通信工具的企业、政府和个人的主要顾虑。\n[0005] 黑客可以选择多种方式来对计算机发动恶意攻击。一种方式是通过传播能够对计算机的操作系统进行未经授权的控制的程序,来破坏计算机的操作。另一种方式是发现有关网络中的计算机或子网中的资产的保密信息,以便删除数据、修改日期和/或复制数据。\n这些行动中的任何一种都可能对家庭、企业或政府机构的网络产生不利的影响。\n[0006] 有多种技术可被黑客或攻击者用来收集有关网络设备的信息。端口扫描是由黑客或攻击者用来收集有关一台主机或多台主机的信息的技术之一。当涉及多台主机时,该技术被称为“分布式端口扫描”。利用端口扫描,黑客使用合法的TCP/IP(传输控制协议/因特网协议)命令来收集信息。在这方面,黑客发出SYN(同步)分组,冒充成希望启动TCP会话的站点。或者,黑客也可以发出RST分组。不论是哪一种情况,黑客都希望一个不产生怀疑的主机以分组作出响应,从这些分组中可以收集有关主机的信息。有许多其他可以被用来进行端口扫描的组合。这样的组合包括SYN/ACK、FIN、空值圣诞树分组等等。事实上,需要作出响应的任何协议都可以用于进行端口扫描。\n[0007] 现有技术已经认识到计算机网络的重要性,并已经提供了入侵检测系统来保护它们免受黑客的侵害。采用现有技术的检测系统的示例可以在美国专利6,405,318;\n6,363,489;6,477,651;6,279,113;6,282,546;5,991,881;6,338,141;5,414,833 以 及\n5,983,348中找到。尽管这些专利中的每一个专利中所描述的入侵检测系统(IDS)对于其预定的用途能发挥作用,但是,在检测扫描活动中却未必如此。\n[0008] 人们认为,现有技术IDS不能检测网络扫描是基于这样的事实:它们使用标头值或有效负载字节的已知模式的库。将接收到的分组中的分组标头或有效负载与已知模式(可能是正则表达式或固定值)进行比较。这种方法所存在的缺点是,这样的库不能完全包括以前没有见到的侦察或扫描模式。结果,一些现有技术IDS不能防止新颖的侦察通信。\n[0009] 甚至吹牛能够检测扫描的IDS技术也只意味着,它们能够发现是否有许多分组(一些阈值)发送给了单一目的地址。它们不能将使用较少的分组(小于阈值)的扫描关联,并且在使用了多个目的地和格式时被进一步阻碍。\n[0010] 现有技术已经认识到在所述计算机网络上使用一些工具来检测恶意病毒的必要性,并已经提供了这样的工具。在很大程度上,这些工具对于它们的预定用途能发挥作用。\n换句话说,这些工具对于它们创建时所要检测的病毒能发挥作用。如果病毒的特征发生改变,则该工具可能会变得毫无价值,并且不能够检测到新的病毒。已知黑客是非常聪明的人,他们最有可能改变病毒特征来妨碍检测。\n[0011] 鉴于上述情况,现有技术和设备没有给网络管理员提供足够的保卫计算机网络免受侦察或扫描通信的能力。结果,需要诸如这里所描述的系统和方法来提供额外的保护。\n[0012] 鉴于上述情况,主要基于工具中的模式库和分组中的病毒之间的比较的现有技术并没有给网络管理员提供足够的能力和控制来保护计算机网络免受恶意病毒的侵害。结果,需要一种不基于病毒模式而基于其他特征或恶意地发送的分组的统计量来保护计算机网络的工具。这样一来,黑客可以随意改变病毒模式,但这样的恶意分组仍可以被检测到。\n发明内容\n[0013] 根据第一个方面,本发明提供了用于检测网络上的未经授权的扫描的方法,包括:\n(a)监视在网络设备中接收到的通信;(b)检测所述通信内的预先定义的分组子集;以及(c)对预先定义的分组子集进行分析,以检测具有预先定义的统计特征的可疑的分组。\n[0014] 优选情况下,该方法进一步包括发出告警,表示检测到具有预先定义的统计特征的分组。在一个实施例中,预先定义的分组子集涉及TCP(传输控制协议)/IP(因特网协议)集。在另一个实施例中,预先定义的分组子集涉及UDP(用户数据报协议)集。在再一个实施例中,预先定义的分组子集包括TCP/IP集中的SYN分组。在再一个实施例中,预先定义的分组子集包括TCP/IP“圣诞树”分组。在再一个实施例中,分组子集包括TCP/IP集中的RST分组。在再一个实施例中,分组子集包括TCP/IP集中的空值TCP分组。\n[0015] 优选情况下,分组子集包括在来自TCP/IP集的TCP分组中TCP标头的三个比特中的至少两个比特(SYN、RST、FIN)被设置的分组。更好的是,预先定义的统计特征包括一个源地址(SA),m个目的地址(DA)和n个目的端口(DP),其中,m≥1,n≥5。\n[0016] 在优选实施例中,发出告警的步骤进一步包括将所述可疑的分组报告到中心管理机构。优选情况下,所述管理机构丢弃具有如可疑的分组的那些特征的所有随后的分组。更好的是,所述管理机构将与可疑的分组具有相同SA的所有随后的分组的速率限制到不大可能对网络产生伤害的程度。\n[0017] 优选情况下,该方法进一步包括下列步骤:在耦接到所述网络的设备中提供查询结构,所述查询结构在逻辑上等效于搜索树,该搜索树具有第一部分,该部分被分区为多个槽,至少一个槽可操作地耦接到树形结构;在设备中接收网络通信;利用编程的CPU对网络通信进行分析,以检测具有预先定义的统计特征的TCP/IP分组;对于如此检测到的每一个TCP/IP分组,使用所述编程CPU来从源地址(SA)和目的地址(DA)生成散列值;使用散列值索引到槽中;检查槽以查找指针;如果没有发现指针,则插入新叶,SA和DA作为所述叶的标识符;将所述每一个TCP/IP分组中包含的目的端口(DP)的地址存储在所述叶中;以及在所述槽中创建指向所述叶的指针。\n[0018] 更好的是,该方法进一步包括下列步骤:如果指针位于槽中,则使用所述指针来访问叶;检查所述叶的内容,以检测记录在其中的目的端口(DP)的地址;将如此检测到的地址的数量与阈值进行比较;以及如果地址的数量等于或超过阈值,则执行第二层查询。\n[0019] 更好的是,该方法进一步包括下列步骤:包括,如果所述叶中的地址数量小于阈值,则将DA添加到所述叶中。\n[0020] 根据第二个方面,本发明提供了用于检测网络上的扫描的系统,包括:存储器;可操作地在所述存储器内配置的查询数据结构;以及执行一组算法的处理器,该组算法将预先定义的分组与查询数据结构关联,以检测具有预先定义的统计特征的预先定义的分组,当检测到具有预先定义的统计特征的预先定义的分组时,给管理员发出告警消息。\n[0021] 优选情况下,查询数据结构包括搜索树的逻辑上的等效物。更好的是,搜索树的第一部分对预先定义的分组的许多比特进行测试。更好的是,搜索树的第一部分包括直接表。\n[0022] 在优选实施例中,预先定义的统计特征包括一个源地址(SA),一个目的地址(DA)和n个目的端口(DP),n>1。在另一个优选实施例中,预先定义的统计特征包括一个源地址(SA),m个目的地址(DA),m>1,和n个目的端口,n>1。\n[0023] 优选情况下,算法集包括至少一个检测算法。更好的是,算法集包括在直接表(DT)进行插入的算法。更好的是,算法集包括插入新的树算法。更好的是,算法集包括插入较大的树算法。更好的是,算法集包括阈值算法。更好的是,算法集包括删除算法。\n[0024] 根据第三个方面,本发明提供了包括程序代码装置的计算机程序,当所述程序在计算机上运行时,用于执行上文所描述的方法的所有步骤。\n[0025] 对诸如主机(计算机)之类的网络设备的未经授权的访问是分两个阶段进行的:\n即,侦察和攻击。在侦察阶段,收集有关计算机的信息。收集到的信息在攻击阶段被用来干扰计算活动。\n[0026] 本发明检测侦察阶段的未经授权的扫描(也叫做“侦察”),并采取这里阐述的校正操作。\n[0027] 系统包括编程的通用处理器,如PowerPC,或专业化处理器,如PowerNP,它们与查询和记录结构共同合作,以检测高带宽通信内的TCP/IP SYN(同步)或RST(重置)分组,这些分组的特征是,具有一个源地址(SA)、一个或几个目的地址(DA)和几个(小于4个)或许多(大于4个)目的端口(DP)。对满足这些特征的TCP/IP分组作出标记,并报告给管理机构,以便采取进一步的行动。\n[0028] 在一个实施例中,查询和记录结构包括直接表(DT)和关联的Patricia树。有双层完全匹配(FM)查询。第一层在接收到的分组的被称为密钥或标头的部分中使用SA和DA的散列,索引到第一直接表的槽中。从DA和SA中所选择的比特被用来在与槽关联的树中漫游,直到到达一个叶。将叶中的SA和DA与密钥中的SA和DA进行比较,如果匹配,则将密钥中的DP与DP的链接列表进行比较,以便查找相同的SA和DA。如果DP是新的(即,没有找到匹配),则将它添加到列表中。当列表中的DP的数量≥n时,则使用SA的散列来在第二个直接表和关联Patricia树中执行第二层查询。第二个表中的查询类似于第一个表中的查询。如果第二个表的叶中的SA匹配未散列的SA,则检查叶中的DA和DP,如果DA≥n,并且DP≥(等于或大于)n,则发出告警,宣布具有SA和DA的分组为未经授权的扫描或侦察分组。响应告警,网络管理员采取措施,限制从中启动了分组的SA的行动。在本发明的一个实施例中,n被设置为4。\n[0029] 在另一个实施例中,可以使用目的地址与搜索的端口的比率来判断此通信是否恶意。此通信比率实际上是唯一的DA的数量乘以唯一的DP的数量的乘数(multiplier),确保乘积大于10(或另一个数字)。这将可以发现最初企图逃避甚至低阈值检测器的较小的扫描。这是攻击者常常使用的技术,非常慢地发送侦察分组,企图逃避检测。\n[0030] 在前面所描述的另一个实施例中,不会使用静态数字(如4),而是使用与静态数字相比的乘数(如10)。散列的输入只包括SA。在每一个叶中,将保留与SA关联的DA的列表。列表中的每一个DA都将与DP的列表关联。此较大的叶将允许检测对来自一个或几个SA的许多DA和DP组合的慢扫描。对这些扫描的检测大致一样,只是不是比较静态数字(如4),而是将获取每个DA的唯一DP的计数,然后乘以其他DA(与一个SA关联的)。将继续以上文所描述的方式对这样的对于特定SA的多个DA和DP的扫描作出响应。\n[0031] 根据第四个方面,本发明提供了用于检测计算机网络上的有害分组的方法,包括:\na)提供对接收到的分组进行扫描的至少一个算法;以及b)识别具有预先定义的格式的包括单一源地址(SA)、N个目的地址(DA)和M个目的端口(DP)的分组。\n[0032] 根据第五个方面,本发明提供了用于检测计算机网络中的包含有害代码的分组的系统,包括:包括存储器和至少一个处理元件的网络处理器;一个数据结构,包括至少一个Patricia树布局,存储了至少一个规则,比特模式类似于位于所述存储器内的携带有害代码的分组的比特模式;在所述至少一个处理元件上部署的计算机程序,如果执行,使所述处理元件从预先定义的分组中的预先定义的字段生成密钥会将密钥与规则关联,以识别具有单一SA(源地址)、单一DP(目的端口)和许多DA(目的地址)的分组。\n[0033] 根据第六个方面,本发明提供了包括程序代码装置的计算机程序,当所述程序在计算机上运行时,用于执行上文所描述的方法的所有步骤。\n[0034] 提供了一种检测和响应系统,包括一组算法,用于检测普通计算机通信流内的TCP分组子集,它们具有一个IP源地址(SA)值、一个目的地址(DA)值,以及超过了不同的目的地址(DA)阈值的数量。有效地利用了诸如直接表和Patricia搜索树之类的查询机制来记录具有一个SA和一个DP以及对于给定SA、DP组合观察到的DA值集合的分组集。将存在这样的分组子集的情况以及包括所述子集的SA、DP和多个DA的标头值报告给网络管理员。\n此外,还提供了对报告的各种管理响应。\n[0035] 本发明的检测系统包括诸如网络处理器之类的计算机,其中,在存储器中提供了包括直接表和Patricia树的结构。提供了算法,以监视所选择的网络流量,维护结构,将来自所选择的网络流量的密钥与该结构关联,以便将具有一个源地址(SA)、一个目的端口(DP)和许多目的地址(DA)的传输控制协议(TCP)同步(SYN)分组标识为恶意分组,并报告出去。\n[0036] 在一个实施例中,本发明首先将原始DP(16比特)与由管理员指定的已知的DP值的比较短的列表进行比较。该列表可以包括,例如,端口80,这是超文本传输协议(HTTP)端口,因为它在Web冲浪过程中创建从一个SA到许多DA的通信是标准的,所有的都是DP=\n80。如果分组位于列表中,它不被本发明进一步视为潜在恶意分组。在优选实施例中,可以在数据路径软件中进行对这样的许可DP值的测试。即,程序可能包含小的查询表,该程序在诸如网络处理器之类的可编程处理器中对分组进行处理。小查询表将适用于对许可的DP的小列表(如10个许可的DP)中的分组DP成员身份进行测试。在某些情况下,许可的DP的另一个示例是25,该数字表示简单邮件传输协议(SMTP)。\n[0037] 在另一个实施例中,本发明将自动地丢弃具有标头比特的非法设置或合法设置的非法序列的分组,例如,具有SYN和Finish(FIN)比特且两者都等于1的TCP分组,或具有设置了SYN和确认(ACK)比特但未曾记录对应的SYN分组的TCP分组。还是在优选实施例中,当在会话中看到FIN或FIN/ACK分组时,本发明将删除对应于一个SA和一个或多个DA的查询项。\n[0038] 从更一般的角度来看,本发明嗅探在TCP会话中使用的以TCP分组的外观投放的恶意分组。有许多方式可以供恶意的人选择用来破坏计算机网络通信。一种方式是恶意的人在传输控制协议(TCP)会话的有效负载中传播蠕虫或病毒。这可能会发现脆弱的机器,容易立即感染或稍后被感染。\n[0039] 传播可以是从一个IP源地址(SA)(攻击者)发送到脆弱的目的端口(DP)号和多个IP目的地址(DA)(可能是随机的、连续的或在一组被认为是潜在的受害者地址的DA)的TCP会话。本发明能够对许多这样的SYN分组的集合(将包括这样的恶意通信)进行检测,所有的都在更大的正常通信集内。此外,本发明还包括对这样的检测的多个可能的响应。\n[0040] 即,本发明包括有效的搜索策略和在高带宽通信内检测具有一个SA、一个DP和许多DA值的同步(SYN)分组的子集的算法。一些攻击可能是故意搞得慢一点,大约一个到十个分组每秒钟,以避免引起异常检测器的注意。慢的传播速率是本发明所描述的和解决的问题。恶意通信可能是发现支持某些应用程序的目标机器的标识的侦察行为。或者,恶意通信也可以包括有效负载,该有效负载本身是能够侦察或获得对处理器的未经授权的控制的病毒或蠕虫,导致对文件进行未经授权的访问、删除文件、修改文件或复制文件。任何这样的SYN通信在本发明中叫做“利用”。\n[0041] 诸如网络处理器之类的网络中的可编程处理器可以包括完全匹配(FM)查询。可以从诸如包括SA、DA、源端口(SP)、DP和协议编号(对于TCP,=6)中的104比特IP五元组之类的TCP分组中读取长密钥。或者,也可以使用具有IP五元组及其他标头值的比较长的密钥,最多大致192比特。将密钥散列到方便的大小,比如,16比特。对于16比特索引,将会有具有64K槽的直接表(DT)。存储了存储器的每一个槽都可以正好指向一个叶,也可以指向具有一个或多个树枝和一些叶的树。在树中,检查原始密钥中的一些另外的比特,直到至多可能有一个匹配剩下(叶)。当通过任何手段到达一个叶时,将完全密钥与完全叶密钥模式[具有0,1,或*(自由)项,或高和低范围项]进行比较,要么有命中(导致关联的操作也被记录在叶中)要么错过(导致默认操作)。\n[0042] 本发明以新的方式利用FM查询。目标不是使用已知参数识别特定分组,然后采取行动。而是没有已知参数。目标是利用迄今无人知道的标头比特组合来识别一组分组的统计特征。与常规的分组识别相反,这可以叫做“行为识别”。本发明所解决的行为识别问题包括识别这样的事实:在大得多的分组集内存在具有一个SA、一个DP和许多DA的一组SYN分组。本发明包括常见的SA和DP的识别以及报告。在备选的实施例中,还可以识别和报告一个以上的SA或一个以上的DP,直到比较小的极限(例如两个或十个)。\n[0043] 为解决行为识别问题,本发明的输入密钥被定义为每个TCP分组的SA和DP的串联。\n[0044] 在另一个实施例中,本发明可以允许没有DP值。\n[0045] 为解决行为识别问题,本发明所使用的输入密钥被定义为TCP源地址(SA)和目的端口(DP)的串联。此值SA、DP被作为密钥馈送到集成了Patricia树的搜索引擎。\n[0046] 如果分组没有如上所述的许可的DP,那么,本发明将SA和DP的串联(48比特)散列到直接表(DT)中的方便的映像(如16比特)。必须在树的比特测试树枝中对SA、DP比特进行进一步测试,直到我们到达与至多一个前面看到的SA、DP组合关联的叶。每一个叶都由一个SA、DP组合定义。每一个叶还包含至少一个DA值,还可能包含更多的DA值。\n[0047] 可能会发生两种冲突(具有不同标头值的分组,在DT具有相同散列值)。首先,恶意通信的传播可能会导致具有相同SA和DP,但有多个不同的DA的分组。由于只有SA、DP被输入到散列中,因此,这样的散列将发生冲突。其次,两个不相关的SA、DP组合的散列偶然也可能相同。在第二种情况下,必须在树的比特测试树枝中对SA、DP比特进行进一步测试,直到我们到达与至多一个前面看到的SA、DP组合关联的叶。如此,每一个叶都由一个SA、DP组合定义。每一个叶还包含至少一个DA值,还可能包含更多的DA值。\n[0048] 优选情况下,N>8,M=1。更好的是,分组被报告到中心管理机构。\n[0049] 优选情况下,中心管理机构采取决定性行动,以限制所述分组的不良影响。更好的是,决定性行动包括丢弃与标识的分组具有相同SA、DA和DP的所有随后的分组。更好的是,决定性行动包括将所述分组的目的端口(DP)添加到许可的DP的列表中。更好的是,决定性行动包括对具有相同SA的所有随后的分组集的速率进行限制。\n[0050] 在优选实施例中,SA、DP和许多DA存储在Patricia树布局的叶中。优选情况下,Patricia树布局包括直接表。更好的是,在可操作地耦接到所述计算机网络的系统上执行至少一个算法。\n附图说明\n[0051] 现在将参考优选实施例,只作为示例,对本发明进行描述,如下面的图形所显示的,其中:\n[0052] 图1显示了网络的高级别组件,具体来说,显示了作为检测机构的本发明的一些潜在的逻辑位置。\n[0053] 图2显示了硬件的高级别组件,具体来说,显示了实现本发明所需要的组件的一些潜在的逻辑位置。\n[0054] 图3显示了本发明的检测部分的流程图。\n[0055] 图4显示了本发明的涉及在直接表(DT)中插入新指针和新叶的部分的流程图。\n[0056] 图5显示了本发明的涉及在直接表(DT)中插入新的Patricia树的插入的部分的流程图。\n[0057] 图6显示了本发明的涉及在直接表(DT)中的较大的Patricia树内插入新叶和新树枝的部分的流程图。\n[0058] 图7显示了将一个叶中的不同的目的地址(DA)的数量与阈值进行比较的流程图(本发明的一部分)。\n[0059] 图8显示了周期性地删除所有叶、树和指针以重置检测设备的流程图(本发明的一部分)。\n[0060] 图9显示了可以在其中实现本发明的网络处理器的方框图。\n[0061] 图10代表IP数据报标头格式。\n[0062] 图11代表TCP标头格式。\n[0063] 图12代表根据本发明的原理的查询搜索结构。\n[0064] 图13显示了本发明的检测部分的流程图。\n[0065] 图14显示了本发明的涉及在直接表(DT)中插入新指针和新叶的部分的流程图。\n[0066] 图15显示了本发明的涉及在直接表(DT)中插入新的Patricia树的插入的部分的流程图。\n[0067] 图16显示了本发明的涉及在直接表(DT)中的较大的Patricia树内插入新叶和新树枝的部分的流程图。\n[0068] 图17显示了将一个叶中的不同的目的地址(DA)的数量与阈值进行比较的流程图(本发明的一部分)。\n[0069] 图18显示了根据本发明的原理的查询数据结构的图形表示。\n具体实施方式\n[0070] 计算机网络管理包括保卫网络资产免受恶意侦察通信的情况。在某些情况下,侦察通信需要一组分组,其中,具有对应于攻击者的一个源地址(SA)、对应于由攻击者研究的一个或多个受害机器的一个或几个目的地址(DA),以及对应于被认为是易受攻击者攻击的应用程序的几个或许多目的端口(DP)。\n[0071] 管理员可以依赖诸如本发明中说明的工具来帮助保卫网络。作为网络防护的一部分,当这样的分组集穿过交换机、路由器、网络接口卡(NIC)、仪器,或更一般而言,能够分类、切换、路由、治安功能或基于分类结果的其他安全性功能的机器时,管理员可能希望检测这样的分组集。\n[0072] 图1显示了其中可以采用本发明的高度简化的网络100。因特网或其他网络102连接到边缘设备104。可以给每一个边缘设备提供,也可以不提供包含本发明的实例的检测部件108。边缘设备也连接子网106。接着,可以通过桥设备110将两个子网连接起来。桥设备可以包含,也可以不包含本发明的实例112。边缘设备可以包括路由器、交换机、服务器等等。由于边缘设备和桥设备在现有技术中已为大家所熟知,因此,这里只讨论包括本发明的原理的或理解本发明所必需的那些部分。\n[0073] 图2显示了边缘设备或桥设备的检测部件108内的组件的方框图200。随机存取存储器(RAM)202存储了本发明中包含的信息的更新。中央处理单元(CPU)204可以访问存储在只读存储器(ROM)206中的配置中的数据来实现本发明的算法,从而更新RAM。提供了总线208,用于在多个组件之间传递信号。输入/输出(I/O)适配器210管理往来于外部设备212之间的信号发送,该外部设备212可以包括通用计算机,通用计算机配备有监视器(未显示),由管理员定期观察。\n[0074] 在另一个实施例中,诸如由IBM开发和销售的PowerNP之类的网络处理器(NET PRO)耦接到I/O适配器210。网络处理器被置于数据平面内,包含用于在网络内路由分组的所有需要的组件和算法。在网络处理器上执行根据本发明的原理的侦察算法。请参看图9,显示了网络处理器的方框图。图9与美国专利6,404,752的图18相同,描述了网络处理器,这里进行了引用,作为参考。由于此引用,可以轻松地获取网络处理器的详细描述。\n因此,将只讨论网络处理器的那些与本发明直接相关并由本发明使用的特征。嵌入式处理器综合体(EPC)包含多个处理器,它们执行路由数据的算法和根据本发明的原理的检测算法。如这里所陈述的,检测算法检测和标识网络上的侦察分组。另一个相关的特点是引用的专利中所显示的数据结构。数据结构包括直接表和与其连接的Patricia树。数据结构和关联的树搜索引擎被用作本发明的查询和跟踪机制。\n[0075] 请参看图3,显示了流程图300,这是本发明中包含的DETECTION算法。算法在302处开始检测,然后,下一个分组到达(304)。对因特网协议(IP)分组进行测试306,看是否为TCP。测试是在分组的标头中的比特上进行的。如果不是,该算法返回到304,等待下一个分组。如果分组是TCP,那么,对该分组进行测试308,以查看是否为SYN。测试是通过检查分组的标头中的控制比特进行的。如果不是,那么,该算法返回到304。如果是SYN,那么,将SA和DA的串联馈送312到散列函数。散列的值变成314直接表(DT)的索引。对DT槽进行测试316,以查看是否具有指向叶或指向至少具有两个叶的树的指针。如果没有指针,那么,该算法转到318 INSERTION ON DT算法(图4)。如果有指针,那么,算法进行测试320,以查看是否正好指向一个叶。如果指针是指向具有至少两个叶的树,那么,由Patricia树算法对SA、DA串联进行测试324。然后,由Patricia树算法对SA、DA进行测试330,以试图匹配现有的叶的标记。如果SA、DA不匹配,那么,算法转到334INSERTION LARGER TREE算法(图6)。如果SA,DA确实匹配树中的叶,那么,将密钥的DP与叶中的一个或多个DP值进行比较332。再次转到320,如果DT槽正好指向一个叶,那么,该算法将密钥SA、DA与该叶的标记进行比较322。如果SA、DA不匹配326,那么,该算法转到INSERTION NEW TREE \n328(图500)。如果SA、DA匹配326,那么,该算法转到密钥的DA与叶中的一个或多个DP值的比较332。如果密钥DP匹配一些叶DP,那么,该算法返回到304,等待下一个分组。如果密钥DP不匹配任何叶DP,那么,新的DP存储338在叶中。然后,算法进入340THRESHOLD算法中(图700)。\n[0076] 除了流程图之外,还可以按如下方式描述检测算法:\n[0077] SA、DA的散列的16比特(大约)被用作直接表(DT)中的索引。DT槽是普通的FM槽,并可以不指向任何叶,正好指向一个叶,或指向具有树枝和两个或更多叶的树。每一个叶都将完整的分组SA、DA与SA、DA的准确的模式进行比较。再者,叶包含SA,DA作为其标记,和至少一个DP(可能有多个)。\n[0078] 如果在计算SA、DA组合的散列值时DT中的槽正好是空的(没有指向任何东西),那么,修改DT槽,以指向具有标记SA、DA和内容DP的新叶。否则,如果DT中的SA、DA槽具有指针,那么,后面跟着叶或树。如果槽指向一个树,那么,需要对SA、DA中的某些比特进行测试,直到至多一个前面的看到的叶可能适合SA、DA。不论是哪一种情况,都将密钥中的完整的SA、DA与叶中的完整的SA、DA进行比较。如果它们不相等,那么,必须重建树,以测试SA、DA中的比特,以区别新密钥与前面看到的密钥。如果它们相等,那么,叶真正对应于密钥,将密钥的DP值与存储在叶中的一个或多个DP值进行比较。如果密钥的DP值与前面存储的DP相同,那么,不执行任何操作。否则,将密钥的DP值添加到存储在叶中的一个或多个DP值。还将DP值的新的总数与阈值进行比较。\n[0079] 表I阐述了检测算法(Detection Algorithm)的另一个表示形式。步骤0到16是一目了然的。因此,将不进行进一步的描述。\n[0080] 表I。\n[0081] DETECTION\n[0082] 0.下一个分组到达。\n[0083] 1.如果该分组不是TCP,那么,转到0。\n[0084] 2.如果该分组不是SYN,那么,转到删除步骤1(表VI)。\n[0085] 3.将来自分组的标头的SA、DA组合(密钥)馈送到散列函数。\n[0086] 4.散列值被用作到直接表槽的索引。\n[0087] 5.如果槽没有指针(没有与散列到槽的SA、DA的当前会话),那么,转到INSERTION ON DT(在DT上插入)步骤0(表II)。\n[0088] 6.如果槽指向树(具有两个或更多叶),那么,转到12。\n[0089] 7.如果槽(正好)指向一个叶,则将SA、DA与该叶的对等物进行比较。\n[0090] 8.如果密钥和叶的SA、DA不匹配,则转到INSERTION NEWTREE(插入新树)步骤\n0(表III)。\n[0091] 9.否则,连续地将分组的DP与叶中的一个或多个DP值进行比较。\n[0092] 11.10.如果分组的DP和叶的某些DP相等,那么,转到0。否则,将新的DP存储在叶中。转到THRESHOLD(阈值)(表V)。\n[0093] 12.执行密钥的SA、DA上的树中的比特测试树枝,直到到达叶。\n[0094] 13.如果密钥和叶的SA、DA不匹配,则转到INSERTIONLARGER TREE(插入较大树)步骤0(表IV)。\n[0095] 14.否则,连续地将分组的DP与叶中的一个或多个DP值进行比较。\n[0096] 15.如果分组的DP和叶的某些DP相等,那么,转到0。\n[0097] 16.否则,将新的DP存储在叶中。转到THRESHOLD(阈值)步骤0。\n[0098] 请参看图4,显示了流程图400,这是本发明中包含的INSERTION算法。算法在402处开始,然后,创建404从直接表(DT)槽到新叶的新指针。用SA和DA的串联来标记该叶(406)。叶被用来存储分组IP标头中的DP的值(408)。然后,算法转到410前面描述的DETECTION。\n[0099] 表II是插入(Insertion)技术的另一个一目了然的表示形式。\n[0100] 表II\n[0101] INSERTION ON DT\n[0102] 0.创建从DT槽到具有SA、DA作为标记的新叶的指针,并存储DP。\n[0103] 1.转到DETECTION(检测)步骤0。\n[0104] 请参看图5,显示了流程图500,这是本发明中包含的INSERTION NEW TREE算法。\n此算法涵盖了一个原始叶已经附加到DT槽中,将添加具有不同的SA、DA值但具有相同散列值的第二个叶的情况。算法在502处开始,后面是创建新树504,其根等于DT槽。一个树枝被附力506到根中。两个SA、DA值散列到此相同的槽中。按已知的Patricia树算法的方式,找到508第一比特,其中,两个SA,DA标记不同。树枝中的测试比特的一个值指向原始叶(方框508)。同一个比特的其他可能的值指向新添加的叶(方框1510)。新添加的叶以其SA、DA作为标记,并存储了新密钥的DP(方框510)。然后,算法转到前面描述的DETECTION(方框512)。\n[0105] 表III阐明了Insertion New Tree(插入新树)技术的另一个一目了然的表示形式。\n[0106] 表III\n[0107] INSERTION NEW TREE\n[0108] 0.创建其根等于DT槽和一个树枝的一个新树。\n[0109] 1.查找其中它们不同的两个SA、DA组合的两个串联中第一个比特。\n[0110] 2.在到两个叶的比特测试树枝中使用该比特,一个叶是原始的,并添加具有新的SA、DA作为标记的另一个叶,并存储新密钥的DP。\n[0111] 3.转到DETECTION步骤0。\n[0112] 请参看图6,显示了流程图600,这是本发明中包含的INSERTION LARGER TREE算法。算法在602处开始,后面是新树枝和新叶的已知的Patricia树插入604。新叶的标记指定为密钥的SA、DA的串联(方框606)。分组的DP存储在新叶中(方框608)。然后,算法转到前面描述的DETECTION(方框610)。\n[0113] 表IV阐明了Insertion Larger Tree(插入较大树)算法的另一个一目了然的表示形式。\n[0114] 表IV\n[0115] INSERTION LARGER TREE\n[0116] 0.使用常规的Patricia树算法来插入新的比特测试树枝,添加一个叶。\n[0117] 1.新叶具有新密钥的SA、DA作为标记,并存储DP。\n[0118] 3.转到DETECTION步骤0。\n[0119] 请参看图7,显示了流程图700,这是本发明中包含的THRESHOLD算法。算法在702处开始,后面是,将存储在叶中的DP值的数量与配置时指定的阈值(通常是8)进行比较(方框704)。如果(不同的)DP值的数量小于或等于阈值,那么,算法转到DETECTION(方框708)。如果DP值的数量大于阈值,那么,向管理员或管理系统发送一个报告(方框706)。\n然后,算法转到DETECTION(方框708)。\n[0120] 表V阐明了阈值算法的另一个一目了然的表示形式。\n[0121] 表V\n[0122] THRESHOLD\n[0123] 0.如果叶中的DP的新数量大于阈值T,那么,报告来自SA的恶意通信的可能性。\n[0124] 1.转到DETECTION步骤0。\n[0125] 请参看图8,显示了流程图800,这是本发明中包含的DELETION算法。此算法从直接表/Patricia树数据结构中删除陈旧的项。算法在802处开始,后面是,将帧计数值增大\n1(804)。然后,将帧计数与帧阈值数量(如1024)进行比较(806)。如果帧计数不大于阈值,那么,该算法转到DETECTION(812)。如果帧计数大于或等于阈值,那么,该算法使所有叶、树(树枝)和DT指针完全删除(808)。接下来,该算法将帧计数的值重置为零(810)。\n然后,算法转到DETECTION(方框812)。表VI阐明了删除算法的另一个一目了然的表示形式。\n[0126] 表VI\n[0127] DELETION\n[0128] 1.将时间计数器增大1。\n[0129] 2.将时间计数器值与阈值进行比较。\n[0130] 4.如果时间计数小于或等于阈值,那么,转到DETECTION步骤0。\n[0131] 5.如果时间计数器值超过阈值,那么,从DT中删除所有叶与树。\n[0132] 6.将时间计数重置为零。\n[0133] 7.转到DETECTION步骤0。\n[0134] 在另一个实施例中,所使用的计数可以是时间增量,而不是帧数。那些本领域普通技术人员将理解,此方案是DELETION(删除)算法的简单变化;表VII显示了基于时间增量的检测算法的一目了然的表示形式。\n[0135] 表VII\n[0136] DELETION\n[0137] 1.将时间计数器增大1。\n[0138] 2.将时间计数器值与阈值进行比较。\n[0139] 4.如果时间计数小于或等于阈值,那么,转到DETECTION步骤0。\n[0140] 5.如果时间计数器值超过阈值,那么,从DT中删除所有叶与树。\n[0141] 6.将时间计数重置为零。\n[0142] 7.转到DETECTION步骤0。\n[0143] 如这里所陈述的,一旦在网络中检测到侦察分组,它们将被报告给管理员或其他管理功能,以便采取进一步的行动。\n[0144] 本发明包括向报告机制作出RESPONSE的多个可能的选项。在一个实施例中,本发明可以包括向管理员发送警告,然后,管理员可以调查导致进入REPORT状态的具有分组的SA、DA、DP的通信,以了解是否可能有恶意。在第二个实施例中,本发明可以包括丢弃具有相同的SA、DA、DP的所有随后的分组。在第三个实施例中,本发明可以包括丢弃具有相同的SA的所有随后的分组,或限制它们的速率。在第四个实施例中,本发明可以包括开头三个可能的RESPONSE的一些组合。RESPONSE的组合可能随着时间而变化。\n[0145] 图10显示了IP数据报标头格式的图形表示。由于此IP数据报标头格式在现有技术已为大家所熟知,下面将只讨论标头的与本发明相关的字段。相关的字段是源IP地址(SA)和目标IP地址(DA)。SA标识了数据报(分组)的来源,而DA标识了所述分组的结尾(目标)。\n[0146] 图11显示了嵌入在IP数据报的有效负载字段中的TCP标头格式的图形表示。TCP标头格式在现有技术中也是人所共知的。因此,将只进一步地讨论与本发明相关的字段和比特。相关的字段包括源端口(SP)和目的端口(DP)。那些本领域普通技术人员也知道,SP标识了分组的起始端口,而DP标识了将向其中发送分组的结束端口。相关的比特包括Reset(RST)和Synchronize(SYN)。当设置时,这些比特是活动的,当重置时,是非活动的。\n通过比特的设置,确定分组标识。例如,如果设置了SYN比特,这将包括SYN分组。在现有技术中很好地描述了这些比特的用途和功能。因此,将不进行进一步的讨论。\n[0147] 图12显示了根据本发明的原理的搜索功能或搜索查询数据结构的图形表示。那些本领域普通技术人员可以设计其他树形结构。因此,图形表示只是示范性的,并不限制权利要求所定义的本发明的范围。\n[0148] 数据结构1200包括由SA和DA的串联组成的密钥1202的提取,64比特。它进一步包括应用散列函数1204,以产生较短的索引,如16或32比特。相对于直接表1208使用索引,以识别作为Patricia树1210的根的项。Patricia树具有一个或多个叶,如1212、\n1214、1216。每一个叶都包含散列到直接表项的完整的SA、DA以及已经观察到的一个或数据处理个DP值。\n[0149] OPERATION:\n[0150] 在操作中,按如下方式检查在其上面采用了本发明的设备中接收到的分组:\n[0151] 假设查询机制在逻辑上等效于搜索树。在一个实施例中,树的第一树枝对许多比特进行测试,连接许多常规树。第一个这样的树枝可以叫做“直接表”。\n[0152] 第一查询(第一层)将TCP SYN或RST分组的源地址(SA)和目的地址(DA)散列到直接表(DT)中。DT的索引可以是一个方便的值(如16比特)。完全密钥是SA、DA和目的端口(DP)。叶通过SA和DA匹配分组,然后,将DP与DP的链接列表进行比较,以查找相同的SA和DA。如果DP是新的,则将它添加到列表中。周期性地(如每秒钟一次),完全删除此查询的一些部分(如1/16)。\n[0153] 如果叶中的观察到的DP的数量大于阈值(如4),那么,叶的SA、DA、DP的组合被散列到第二查询(第二层)。对于第二查询,散列只位于SA中。DT索引中的比特的数量可以较低(如8)。如果一个SA具有许多DA、DP组合,那么,DA、DP组合存储在叶中。如果这样的叶中的DA、DP组合的数量超过阈值(如四个),那么,怀疑SA参与了分布式扫描。在中等时间段内(如四秒)清除第二层中的整个表。\n[0154] 建议的清除时间间隔是基于推理和真实的流量统计。如果清除时间间隔太短,那么,攻击可能会被忽视,因为完全成熟的攻击实际横跨多个时间段。如果清除时间间隔太长,那么,本发明的对新的攻击的反应会被延迟。\n[0155] 一般而言,清除时间间隔可以被调节。如果没有报告攻击,那么,时间间隔可以增大到极限。如果报告了太多的攻击,那么,清除时间间隔可以缩小到极限。可以使用按指数规律的加权函数来增大或减小周期。按如下方式描述该函数。让i表示周期P的索引=0,\n1,2,...,如此P(i)是序列中的第i个值。P(0)=最小极限。周期调整可以具有下列形式[0156] 1.如果报告了太少的攻击,那么,P(i+1)=(1-K)*P(i)+K*最大极限。\n[0157] 2.否则P(i+1)=(1-K)*P(i)+K*最小极限\n[0158] 这里,最小极限<最大极限,K是满足0<K<=1的某个数。\n[0159] 计算机网络管理包括保卫网络资产免受恶意通信的情况。在某些情况下,恶意通信的传播需要一组分组,其中,具有对应于攻击者的一个源地址(SA)、对应于被认为是易受攻击者攻击的应用程序的一个目的端口(DP),以及对应于可能的受害者的许多目的地址(DA)。在其它情况下,可能涉及几个SA和DP,但仍有很多的DA。\n[0160] 请参看图13,显示了流程图1300,这是根据本发明的原理的DETECTION算法。算法在1302处开始,然后,下一个分组到达(1304)。对因特网协议(IP)分组进行测试1306,看是否为TCP。测试是通过检查IP标头中的控制比特进行的。如果不是,该算法返回到状态1304,等待下一个分组。如果分组是TCP,那么,对该分组进行测试1308,以查看是否为SYN。测试是通过检查TCP标头中的控制比特进行的。如果不是,那么,该算法返回到1304。\n如果是SYN,那么,对TCP标头中的DP进行测试,以查看它在许可的列表中是否具有成员身份。如果它在许可的列表中,那么,该算法返回到1304。如果DP不是被许可的,那么,将SA和DP的串联馈送1312到散列函数。散列的值变成直接表(DT)的索引(1314)。对DT槽进行测试1316,以查看是否具有指向叶的指针或具有指向两个至少叶的树的指针。如果没有指针,那么,该算法转到1318 INSERTIONON DT算法(图4)。如果有指针,那么,算法进行测试,以查看是否正好指向一个叶(1320)。如果指针是指向至少具有两个叶的树,那么,由Patricia树算法对SA、DP串联进行测试1324。然后,由Patricia树算法对SA、DP密钥进行测试1330,以试图匹配现有的叶的标记。如果SA、DP不匹配,那么,算法转到1334INSERTION LARGER TREE算法(图6)。如果SA,DP确实匹配树中的叶,那么,将密钥的DA与叶中的一个或多个DA值进行比较1332。再次转到1320,如果DT槽正好指向一个叶,那么,该算法将密钥SA、DP与该叶的标记进行比较1322。如果SA、DP不匹配1326,那么,该算法转到INSERTION NEW TREE 1328。如果SA、DP匹配1326,那么,该算法转到密钥的DA与叶中的一个或多个DA值的比较1332。如果密钥DA匹配一些叶DA 1336,那么,该算法返回到1304,等待下一个分组。如果密钥DA不匹配任何叶DA,那么,新的DA存储1338在叶中。然后,该算法进入1340THRESHOLD算法。\n[0161] 请参看图14,显示了流程图1400,这是本发明中包含的INSERTION算法。算法在\n1402处开始,然后,创建1404从直接表(DT)槽到新叶的新指针。用SA和DP的串联来标记该叶(1406)。叶被用来存储分组IP标头中的DA的值(1408)。然后,算法转到1410前面参考图13描述的DETECTION。\n[0162] 请参看图15,显示了流程图1500,这是本发明中包含的INSERTION NEW TREE算法。此算法涵盖了一个原始叶已经附加到DT槽中,将添加具有不同的SA、DP值但具有相同散列值的第二个叶的情况。算法在1502处开始,后面是创建新树1504,其根等于DT槽。一个树枝被附加1506到根中。两个SA、DP值散列到此相同的槽中。按已知的Patricia树算法的方式,找到1508第一比特,其中,两个SA,DP标记不同。树枝中的测试比特的一个值指向原始叶(方框1508)。同一个比特的其他可能的值指向新添加的叶(方框1510)。新添加的叶以其SA、DP作为标记,并存储了新密钥的DA(方框1510)。然后,算法转到DETECTION(方框1512)。\n[0163] 请参看图16,显示了流程图1600,这是本发明中包含的INSERTION LARGER TREE算法。算法在1602处开始,后面是新树枝和新叶的已知的Patricia树插入1604。新叶的标记指定为密钥的SA、DP的串联(方框1606)。分组的DA存储在新叶中(方框1608)。然后,算法转到DETECTION(方框1610)。\n[0164] 请参看图17,显示了流程图1700,这是本发明中包含的THRESHOLD算法。算法在\n1702处开始,后面是,将存储在叶中的DA值的数量与配置时指定的阈值(通常是8)进行比较(方框1704)。如果(不同的)DA值的数量小于或等于阈值,那么,算法转到DETECTION(方框1708)。如果DA值的数量大于阈值,那么,向管理员或管理系统发送一个报告(方框\n1706)。然后,算法转到DETECTION(方框1708)。\n[0165] 图18显示了一个数据结构的图形表示,TCP/IP SYN分组的SA和DA与该数据结构关联,以便判断它是否为恶意分组。\n[0166] 数据结构1800包括由SA和DP的串联组成的密钥的提取1802,因此是48比特。\n它进一步包括应用散列函数1804,以产生较短的索引,如16比特。相对于直接表1808使用索引,以识别作为Patricia树1810的根的项。Patricia树具有一个或多个叶,如1812、\n1814、1816。每一个叶都包含散列到直接表项的完整的SA、DP以及已经观察到的一个或多个DA值。\n[0167] 到目前为止,是使用流程图描述本发明的。介绍本发明中使用的算法的另一种方式如下:\n[0168] SA、DP的散列的16比特(大约)被用作直接表(DT)中的索引。DT槽是普通的FM槽,并可以不指向任何叶,正好指向一个叶,或指向具有树枝和两个或更多叶的树。每一个叶都将完整的分组SA、DP与SA、DP的准确的模式进行比较。再者,叶包含SA、DP作为其标记,和至少一个DA(可能有多个)。\n[0169] 如果在计算SA、DP组合的散列值时DT中的槽正好是空的(没有指向任何东西),那么,修改DT槽,以指向具有标记SA、DP和内容DA的新叶。否则,如果DT中的SA、DP槽具有指针,那么,按照指针到达叶或树。如果槽指向一个树,那么,需要对SA、DP中的某些比特进行测试,直到至多一个前面看到的叶可能适合SA、DP。不论是哪一种情况,都将密钥中的完整的SA、DP与叶中的完整的SA、DP进行比较。如果它们不相等,那么,必须重建树,以测试SA、DP中的比特,以区别新密钥与前面看到的密钥。如果它们相等,那么,叶真正对应于密钥,将密钥的DA值与存储在叶中的一个或多个DA值进行比较。如果密钥的DA值与前面存储的DA相同,那么,不执行任何操作。否则,将密钥的DA值添加到存储在叶中的一个或多个DA值。还将DA值的新的总数与阈值进行比较。如果该数字大于阈值,判断分组包含病毒。\n[0170] 下面是本发明的DETECTION ALGORITHM(检测算法)中的搜索操作,包括下面的以伪代码表达的子程序。\n[0171] DETECTION\n[0172] 0.下一个分组到达。\n[0173] 1.如果该分组不是TCP,那么,转到DETECTION。\n[0174] 2.如果该分组不是TCP,那么,转到DELETION。\n[0175] 3.如果分组的DP位于许可的列表中,那么,转到DETECTION。\n[0176] 4.将来自分组的标头的SA、DP组合(密钥)馈送到散列函数。\n[0177] 5.散列值被用作到直接表槽的索引。\n[0178] 6.如果槽没有指针(没有与散列到槽的SA、DP的当前会话),那么,转到INSERTION ON DT步骤0。\n[0179] 7.如果槽指向树(具有两个或更多叶),那么,转到13。\n[0180] 8.如果槽(正好)指向一个叶,则将SA、DP与该叶的对等物进行比较。\n[0181] 9.如果密钥和叶的SA、DP不匹配,则转到INSERTION NEWTREE步骤0。\n[0182] 10.否则,连续地将分组的DA与叶中的一个或多个DA值进行比较。11.如果分组的DA和叶的某些DA相等,那么,转到0。\n[0183] 12.否则,将新的DA存储在叶中。转到THRESHOLD。\n[0184] 13.执行密钥的SA、DP上的树中的比特测试树枝,直到到达叶。\n[0185] 14.如果密钥和叶的SA、DP不匹配,则转到INSERTIONLARGER TREE步骤0。\n[0186] 15.否则,连续地将分组的DA与叶中的一个或多个DA值进行比较。16.如果分组的DA和叶的某些DA相等,那么,转到0。\n[0187] 17.否则,将新的DA存储在叶中。转到THRESHOLD。\n[0188] INSERTION ON DT\n[0189] 0.创建从DT槽到具有SA、DP作为标记的新叶的指针,并存储DA。\n[0190] 1.转到DETECTION。\n[0191] INSERTION NEW TREE\n[0192] 0.创建其根等于DT槽和一个树枝的一个新树。\n[0193] 1.查找其中它们不同的两个SA、DP组合的两个串联中第一个比特。\n[0194] 2.在到两个叶的比特测试树枝中使用该比特,一个叶是原始的,并添加具有新的SA、DP作为标记的另一个叶,并存储新密钥的DA。\n[0195] 3.转到DETECTION。\n[0196] INSERTION LARGER TREE\n[0197] 0.使用常规的Patricia树算法来插入新的比特测试树枝,添加一个叶。\n[0198] 1.新叶具有新密钥的SA、DP作为标记,并存储DA。\n[0199] 3.转到DETECTION。\n[0200] THRESHOLD\n[0201] 0.如果叶中的DA的新数量大于阈值T,那么,报告来自SA的恶意通信的可能性。\n[0202] 1.转到DETECTION。\n[0203] DELETION\n[0204] 1.将帧计数器增大1。\n[0205] 2.将帧计数器值与阈值进行比较。\n[0206] 4.如果帧计数小于或等于阈值,那么,转到DETECTION。\n[0207] 5.如果帧计数器值超过阈值,那么,从DT中删除所有叶与树。\n[0208] 6.将帧计数重置为零。\n[0209] 7.转到DETECTION。\n[0210] 在另一个实施例中,计数可以是时间间隔,而不是帧,即,\n[0211] DELETION\n[0212] 1.将时间计数器增大1。\n[0213] 2.将时间计数器值与阈值进行比较。\n[0214] 4.如果时间计数小于或等于阈值,那么,转到DETECTION。\n[0215] 5.如果时间计数器值超过阈值,那么,从DT中删除所有叶与树。\n[0216] 6.将时间计数重置为零。\n[0217] 7.转到DETECTION。\n[0218] 3.REPORTING ALGORITHM\n[0219] 在从检测机制接收到REPORT时,本发明可以以下列响应之一作出反应:\n[0220] 1.向管理员发送警告,然后,管理员可以调查具有给定SA、SP、DA、DP的通信,以了解是否可能有恶意。\n[0221] 2.将DP=槽值添加到许可的DP的列表中。\n[0222] 3.丢弃具有相同的SA、DA、DP的所有随后的分组\n[0223] 4.或者,丢弃具有相同的SA的所有随后的分组\n[0224] 5.可能随时间而变化的响应1、2、3、4的组合。\n[0225] 本发明所提供的许多好处之一是,检测可以动态地并实时地执行。结果,可以检测到未经授权的嗅探,并在对网络上的设备造成危害之前采取校正操作。\n[0226] 尽管是参考TCP/IP协议描述本发明的,但是,这不应该被理解为对本发明的范围的限制。本发明可以广泛地用于许多不同的协议。当使用其他协议时,那些本领域普通技术人员可以应用本发明的原理来检测侦察。任何这样的使用和/或应用都在如权利要求所阐述的本发明的范围之内。\n[0227] 前面的内容只是为了说明本发明,不应该理解为对其限制。虽然描述了本发明的示范性实施例,但是,那些精通本技术的普通人员将认识到,在不偏离本发明的新颖的原理和高级用法的情况下,在示范性实施例中作出许多修改方案也是可以的。相应地,所有这样的修改方案都包括在如权利要求所定义的本发明的范围内。
法律信息
- 2017-09-01
未缴年费专利权终止
IPC(主分类): G06F 1/00
专利号: ZL 200580022880.1
申请日: 2005.07.20
授权公告日: 2012.01.04
- 2012-01-04
- 2007-12-05
- 2007-10-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2000-01-31
| | |
2
| | 暂无 |
2002-04-19
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |