一種組播防攻擊方法和裝置的制造方法
【技術領域】
[0001]本發明涉及通信技術領域,特別涉及一種組播防攻擊和裝置。
【背景技術】
[0002]IP組播(IP Multicast)是介于單播(Unicast)和廣播(Broadcast)之間的一種分組傳送形式,又稱為IP多播,是指IP數據由單一的發送者(組播源)產生,經過網絡分發給一組接收者。
[0003]工作在數據鏈路層的IP組播稱為二層組播,相應的組播協議稱為二層組播協議,包括 IGMP Snooping (Internet Group Management Protocol Snooping,互聯網組管理協議窺探)/MLD Snooping (Multicast Listener Discovery Snooping,組播偵聽發現協議窺探)等。IGMP Snooping為IPv4 二層組播協議,MLD Snooping為IPv6 二層組播協議,二者實現基本相同,以下均以IPv4為例進行描述和說明。
[0004]IGMP Snooping簡稱IGSP,主要運行于IGMP路由器和主機之間的二層設備上,用于管理和控制組播組。運行IGMP Snooping的二層組播設備通過對收到的IGMP報文進行分析,為端口和IP組播地址建立起映射關系,并根據這樣的映射關系轉發組播數據。
[0005]IGSP根據端口所收到的協議報文,將端口劃分為兩種端口類型,一種稱為路由器端口,一種稱為成員端口。其中,路由器端口通常為朝向上游三層組播設備的端口,例如圖1中交換機A的端口 Ethl/Ι和交換機B的端口 Ethl/1,IGSP模塊將收到IGMP普遍組查詢報文或PM Hello報文的端口維護為路由器端口 ;成員端口通常為朝向下游組播組成員的端口,例如圖1中交換機A的端口 Ethl/2和Ethl/3、以及交換機B的端口 Ethl/2,IGSP模塊將收到IGMP成員關系報告報文的端口維護為對應組播組的成員端口。
[0006]在現有實現中,IGSP模塊將收到IGMP普遍組查詢報文或P頂Hello報文的端口維護為路由器端口時,還會根據IGMP普遍組查詢報文中最大響應時間(Max Resp Time)字段值或P頂Hello報文中保持時間(Holdtime)字段值來設置該路由器端口的老化定時器。運行IGSP的二層組播設備會將收到的組播數據報文,向所有路由器端口轉發,如果有惡意攻擊者向某一路由器端口發送Holdtime為never的PIM Hello報文或Max Resp Time為最大值的IGMP查詢報文,則IGSP模塊會將該端口維護為永不老化或老化時間超長的路由器端口,且會將接收的所有的組播流量都無條件向該端口轉發,這就有可能會造成信息泄露。
【發明內容】
[0007]有鑒于此,本發明的目的在于提供一種組播防攻擊方法和裝置,能夠防止信息泄
Mo
[0008]為了達到上述目的,本發明提供了如下技術方案:
[0009]—種組播防攻擊方法,所述方法包括:組播設備接收到能夠使所述組播設備的端口成為路由器端口的組播協議報文時,根據所述端口的鏈路狀態信息判斷所述端口是否存在攻擊風險,如果存在攻擊風險,則禁止將所述端口添加為路由器端口,否則,將所述端口添加為路由器端口。
[0010]—種組播防攻擊裝置,應用于組播設備中,其特征在于,所述裝置包括:接收單元、判斷單元、處理單元;
[0011 ] 所述接收單元,用于組播設備接收能夠使所述組播設備的端口成為路由器端口的組播協議報文;
[0012]所述判斷單元,用于在組播設備接收到所述組播報文后,根據所述端口的鏈路狀態信息判斷該端口是否存在攻擊風險;
[0013]所述處理單元,用于如果所述端口存在攻擊風險,則禁止將所述端口添加為路由器端口,否則,將所述端口添加為路由器端口。
[0014]由上面的技術方案可知,本發明中,在確定需要將端口添加為路由器端口時,根據端口鏈路狀態信息判斷端口是否存在攻擊風險,存在攻擊風險的情況下禁止將該端口添加為路由器端口。本發明可以有效避免信息泄露,例如,當惡意攻擊者通過向某一端口發送Holdtime為never的PIM Hello報文或Max Resp Time為最大值的IGMP查詢報文,使得該端口一直作為路由器端口向外發送組播報文而造成信息泄露時,通過應用本發明技術方案可以發現該端口存在惡意攻擊,進而通過取消該端口作為路由器端口來避免信息泄露。
【附圖說明】
[0015]圖1是現有技術IGSP端口關系示意圖;
[0016]圖2是本發明實施例提供的組播防攻擊方法流程圖;
[0017]圖3是本發明實施例一組播防攻擊方法流程圖;
[0018]圖4是本發明實施例二組播防攻擊方法流程圖;
[0019]圖5是本發明實施例組播防攻擊裝置的結構示意圖。
【具體實施方式】
[0020]為了使本發明的目的、技術方案及優點更加清楚明白,下面結合附圖并據實施例,對本發明的技術方案進行詳細說明。
[0021]本發明所提供的技術方案可用于二層網絡中,或二層網絡與三層網絡間。
[0022]參見圖2,圖2是本發明實施例提供的組播防攻擊方法流程圖,該方法應用于組播設備,具體包括以下步驟:
[0023]步驟201、在組播設備的任一端口接收能夠使該端口成為路由器端口的組播協議報文;
[0024]在實際應用中,在組播設備的某一端口接收到普遍組查詢報文或組播路由協議Hello報文時,需要將該端口添加為路由器端口,因此,普遍組查詢報文和組播路由協議Hello報文均屬于能夠該端口成為路由器端口的組播協議報文。需要說明的是,在IPv4網絡中,普遍組查詢報文為IGMP普遍組查詢報文,組播路由協議Hello報文為P頂Hello報文;在IPv6網絡中,普遍組查詢報文為MLD普遍組查詢報文,組播路由協議Hello報文為IPv6 PIM Hello 報文。
[0025]步驟202、根據該端口的鏈路狀態信息判斷該端口是否存在攻擊風險,如果存在攻擊風險,則禁止將該端口添加為路由器端口并丟棄所述報文,否則將該端口添加為路由器端口。
[0026]本實施例應用于組播設備中的組播協議模塊,在IPv4網絡中,組播設備中的組播協議模塊為IGMP Snooping模塊或基于IGMP Snooping功能實現的組播協議模塊;在IPv6網絡中,組播設備中的組播協議模塊為MLD Snooping模塊或基于MLD Snooping功能實現的組播協議模塊。
[0027]在本步驟之前,組播協議模塊還需要獲取該端口的鏈路狀態信息,具體包括:建立組播設備中的鏈路狀態協議模塊的連接,通過該連接向所述鏈路狀態協議模塊發送針對該端口的鏈路狀態查詢報文,接收所述鏈路狀態協議模塊返回的該端口的鏈路狀態信息。
[0028]本實施例中,端口的鏈路狀態信息包括:是否存在鏈路狀態鄰居。根據端口的鏈路狀態信息判斷該端口是否存在攻擊風險具體包括:如果該端口的鏈路狀態信息表明該端口不存在鏈路狀態鄰居,則確定該端口存在攻擊風險,否則,確定該端口不存在攻擊風險。
[0029]當根據端口的鏈路狀態信息確定該端口存在攻擊風險時,禁止將該端口添加為路由器端口,組播設備接收到的組播數據報文將不會從該端口發送出去,從而信息也不會從該端口泄露出去。
[0030]當根據端口的鏈路狀態信息確定該端口不存在攻擊風險時,仍按照現有技術的處理方法,將該端口添加為路由器端口,組播設備收到的組播數據報文都將從該端口轉發出去。
[0031 ] 下面結合兩個具體實施例,對本發明的實現原理進行詳細說明。
[0032]參見3,圖3是本發明實施例一組播防攻擊方法流程圖,該方法應用于組播設備中的組播協議模塊,主要包括以下步驟:
[0033]步驟301、組播協議模塊與本地的鏈路層狀態協議模塊建立連接。
[0034]組播設備中配置有組播協議模塊和鏈路狀態模塊。在通常情況下,組播設備中的組播協議模塊和鏈路狀態協議模塊默認均是啟動的,因此,組播協議模塊可以直接建立與鏈路狀態協議模塊之間的連接。
[0035]然而,考慮到也可能存在組播協議模塊啟動,而鏈路狀態協議模塊未啟動的情況,為了保證組播設備中的組播協議模塊和鏈路狀態協議模塊能夠成功建立連接,組播協議模塊啟動時可以同時觸發鏈路狀態協議模塊啟動,從而使組播協議模塊在建立與鏈路狀態協議模塊之間的連接之前,兩個模塊均是啟動的。
[0036]另外,相鄰組播設備中,也可能存在一個組播設備中的鏈路狀態協議模塊啟動,而另一組播設備中的鏈路狀態協議模塊未啟動的情況。為了保證正常情況下相鄰組播設備之間能夠通過各自的鏈路狀態協議模塊建立起鄰居關系,組播設備中的組播協議模塊啟動后,還可