一種防MAC泛洪攻擊的方法及裝置與流程
2024-01-24 05:58:15 3

本申請涉及安全防護領域,特別涉及一種防mac泛洪攻擊的方法及裝置。
背景技術:
當交換機接收到報文,無法在本地查找到對應於該報文的源mac的mac表項時,可以通過保存該報文的源mac與接收該報文的埠的映射關係,來學習對應於該報文的源mac的mac表項。
mac泛洪攻擊正是基於上述交換機學習mac表項的機制產生的。在典型的mac泛洪攻擊中,攻擊者通過區域網中與交換機連接的主機向交換機發送大量具有偽造出的無效源mac的報文,導致交換機內存或晶片資源學習到大量對應於無效mac地址的mac表項,從而在後續沒有足夠的交換機內存或晶片資源來存放有效的mac地址與埠的映射關係。
當交換機內存或晶片資源被完全佔用時,交換機在後續無法學習新的mac表項,mac泛洪攻擊成功,此時,交換機進入失效開放(failopen)模式。交換機進入失效開放模式後,在後續接收到報文時,會將後續接收到的報文廣播至除接收該報文的埠以外的所有埠。在這種情況下,正常的報文都會被泛洪處理,降低了交換機的工作效率。此外,攻擊者可以進一步通過嗅探工具,對在區域網內廣播的報文進行捕獲,從而得到機密信息或者各類業務敏感信息。
在現有技術中,通過限制交換機學習對應於各埠的mac地址的數量來防範mac泛洪攻擊。當交換機的任一埠遭受到mac泛洪攻擊時,交換機會學習對應於該埠的mac表項,當學習到的mac表項達到預設的數量上限後,交換機不再學習對應於該埠的新的mac表項。在這種情況下,若交換機的任一埠遭受mac泛洪攻擊,交換機內存或晶片資源不會被無效的mac表項佔滿,交換機從其它未受mac泛洪攻擊的埠接收到報文後,仍可以正常學習新的mac表項,以及在查找到對應的表項後單播該報文。
然而,現有技術中,當交換機的任一埠遭受到mac泛洪攻擊,且交換機學習到的對應於該埠的mac表項達到預設的數量上限後,由於無法學習到對應於該埠的新的mac表項,交換機在後續接收到正常的報文時,如果該報文的目的mac與上述遭受攻擊的埠相對應,由於交換機不再學習對應於該埠的mac表項,因此,交換機無法查找到對應於該報文的目的mac的mac表項,會泛洪該報文。
可見,現有技術在防護mac泛洪攻擊時,會導致正常的報文被泛洪處理,降低了區域網的通信效率。
技術實現要素:
有鑑於此,本申請提供一種防mac泛洪攻擊的方法及裝置,用於解決現有技術在防護mac泛洪攻擊時,會導致正常的報文被泛洪處理,降低區域網的通信效率的問題。
具體地,本申請是通過如下技術方案實現的:
一種防mac泛洪攻擊的方法,應用於網管伺服器,所述網管伺服器與目標區域網中的網關設備對接;所述目標區域網還包括若干個接入交換機以及若干個終端設備,包括:
接收到所述網關設備上傳的mac地址;所述mac地址包括所述網關設備的mac地址,以及所述網關設備所在網段的終端設備的mac地址;
基於所述網關設備上傳的mac地址創建mac地址集;
向各接入交換機下發所述mac地址集,以使得各接入交換機基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單。
在所述防mac泛洪攻擊的方法中,所述接入交換機預先配置許可arp報文以及dhcp報文通過的acl表項;
所述網關設備所在網段的終端設備的mac地址,為所述網關設備周期性掃描所述接入交換機上送的arp報文學習到的mac地址。
在所述防mac泛洪攻擊的方法中,所述方法還包括:
基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單,並將所述mac地址白名單下發至各接入交換機。
在所述防mac泛洪攻擊的方法中,所述mac地址白名單,包括以所述mac地址集中的mac地址分別作為源mac和目的mac而創建的acl白名單表項。
在所述防mac泛洪攻擊的方法中,所述許可arp報文以及dhcp報文通過的acl表項的優先級大於以所述mac地址集中的mac地址創建的acl白名單表項的優先級。
一種防mac泛洪攻擊的裝置,應用於網管伺服器,所述網管伺服器與目標區域網中的網關設備對接;所述目標區域網還包括若干個接入交換機以及若干個終端設備,包括:
接收單元,用於接收到所述網關設備上傳的mac地址;所述mac地址包括所述網關設備的mac地址,以及所述網關設備所在網段的終端設備的mac地址;
創建單元,用於基於所述網關設備上傳的mac地址創建mac地址集;
下發單元,用於向各接入交換機下發所述mac地址集,以使得各接入交換機基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單。
在所述防mac泛洪攻擊的裝置中,所述接入交換機預先配置許可arp報文以及dhcp報文通過的acl表項;
所述網關設備所在網段的終端設備的mac地址,為所述網關設備周期性掃描所述接入交換機上送的arp報文學習到的mac地址。
在所述防mac泛洪攻擊的裝置中,所述下發單元,進一步用於:
基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單,並將所述mac地址白名單下發至各接入交換機。
在所述防mac泛洪攻擊的裝置中,所述mac地址白名單,包括以所述mac地址集中的mac地址分別作為源mac和目的mac而創建的acl白名單表項。
在所述防mac泛洪攻擊的裝置中,所述許可arp報文以及dhcp報文通過的acl表項的優先級大於以所述mac地址集中的mac地址創建的acl白名單表項的優先級。
在本申請實施例中,網管伺服器接收到網關設備上傳的mac地址,其中,該mac地址包括所述網關設備的mac地址和所述網關設備所在網段的終端設備的mac地址;網管伺服器可以基於所述網關設備上傳的mac地址創建mac地址集,然後,向各交換機下發所述mac地址集,以使得各交換機基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單;
由於所述mac地址白名單中僅包括所述目標區域網中的所有設備的mac地址,所以各交換機基於所述mac地址白名單過濾後,不會因學習具有無效的源mac的報文,而導致交換機內存或晶片資源被佔滿;也不會因泛洪大量具有無效目的mac的報文,而導致區域網的通信效率下降。因此,本申請可以有效地防護mac泛洪攻擊。
附圖說明
圖1是現有技術的一種區域網架構圖;
圖2是本申請示出的一種區域網架構圖;
圖3是本申請示出的一種防mac泛洪攻擊的方法的流程圖;
圖4是本申請示出的一種防mac泛洪攻擊的裝置的實施例框圖;
圖5是本申請示出的一種防mac泛洪攻擊的裝置的硬體結構圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明實施例中的技術方案,並使本發明實施例的上述目的、特徵和優點能夠更加明顯易懂,下面結合附圖對現有技術方案和本發明實施例中的技術方案作進一步詳細的說明。
交換機上保存有記錄mac地址的表,用以完成數據的快速轉發。交換機接收到報文後,會根據報文的目的mac查找該表,獲得對應於該目的mac的mac表項,然後從該mac表項中的埠將報文轉發出去。其中,該表可以是cam(contentaddressablememory,內容可尋址存儲器)表。
當交換機接收到報文後,首先會檢查本地是否已保存對應於該報文的源mac的mac表項,如果否,則可以通過保存該報文的源mac與接收該報文的埠的映射關係,來學習對應於該報文的源mac的mac表項。
mac泛洪攻擊正是基於上述交換機學習mac表項的機制產生的。在典型的mac泛洪攻擊中,攻擊者通過區域網中與交換機連接的主機向交換機發送大量具有偽造出的無效源mac的報文,導致交換機內存或晶片資源學習到大量對應於無效mac地址的mac表項,從而在後續沒有足夠的交換機內存或晶片資源來存放有效的mac地址與埠的映射關係。
參見圖1,為現有技術的一種區域網架構圖,如圖1所示,交換機分別通過埠1、埠2、埠3與計算機a、計算機b、計算機c連接。
當攻擊者通過計算機b對交換機進行mac泛洪攻擊時,會向交換機發送大量具有偽造出的無效源mac的報文。交換機接收到計算機b發送的報文後,會學習大量對應於無效mac地址的mac表項,並存儲在交換機內存或晶片資源中。當交換機學習到的mac表項達到一定的數量後,交換機內存或晶片資源被mac表項佔滿,交換機無法再學習新的mac表項。此時,mac泛洪攻擊成功。
交換機無法學習新的mac表項後,進入失效開放模式,在後續接收到報文時,將報文廣播至所有埠。在這種情況下,正常的報文都會被泛洪處理,降低了交換機的工作效率。
仍以圖1為例,當計算機b向交換機進行mac泛洪攻擊成功後,如果計算機a與計算機c之間互相通信,由於交換機無法學習對應於計算機a和計算機c的mac表項,因此會將計算機a發送至計算機c的報文廣播至除埠1以外的所有埠。
在這種情況下,計算機b會接收到計算機a發送至計算機c的報文。如果攻擊者通過嗅探工具(例如:wireshark)捕獲區域網內廣播的報文,則可以得到機密信息或者各類業務敏感信息。
可見,mac泛洪攻擊的後果十分嚴重。現有技術通過限制交換機學習對應於各埠的mac地址的數量來防範mac泛洪攻擊。如果交換機的任一埠遭受mac泛洪攻擊,且交換機學習到的對應於該埠的mac表項達到預設的數量上限後,交換機從該埠接收到報文後,不再學習新的mac表項。在這種情況下,不會因為一個埠遭受mac泛洪攻擊,而導致交換機內存或晶片資源全部被無效mac表項佔滿,因此,其它埠仍可以正常學習mac表項。現有技術有效地減少了mac泛洪攻擊的攻擊範圍。
然而,當交換機從未受攻擊的埠接收到報文,且該報文發往通過遭受攻擊的上述埠接入交換機的終端設備時,如果交換機沒有學習過對應於該終端設備的mac表項,則交換機將報文廣播至所有埠。
可見,在現有技術中,遭遇mac泛洪攻擊後,交換機仍舊會泛洪正常業務的報文,可能影響正常業務的處理時延。
為解決上述問題,本申請技術方案將區域網內所有終端設備和網關設備的mac地址下發至區域網中的各交換機;各交換機基於接收到的mac地址生成防mac泛洪攻擊的mac地址白名單。當交換機接收到具有無效源mac的報文後,可以直接丟棄報文,不再學習對應於無效源mac的mac表項。
請參見圖2,為本申請示出的一種區域網架構圖,如圖2所示,該區域網(下文稱為目標區域網)中存在網管伺服器、網關設備、交換機e、交換機f、計算機a、計算機b、計算機c和計算機d;其中,網管伺服器與網關設備對接。
請繼續參見圖3,為本申請示出的一種防mac泛洪攻擊的方法的流程圖,該方法應用於網管伺服器,所述網管伺服器與目標區域網中的網關設備對接;所述目標區域網還包括若干個接入交換機以及若干個終端設備,該方法包括以下步驟:
步驟301:接收到所述網關設備上傳的mac地址;所述mac地址包括所述網關設備的mac地址,以及所述網關設備所在網段的終端設備的mac地址。
步驟302:基於所述網關設備上傳的mac地址創建mac地址集。
步驟303:向各接入交換機下發所述mac地址集,以使得各接入交換機基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單。
其中,上述接入交換機指的是直接連接終端設備的交換機。
在本申請實施例中,初始狀態下,目標區域網內的接入交換機預先配置對應於arp(addressresolutionprotocol,地址解析協議)協議的acl(accesscontrollist,訪問控制列表)表項,該表項許可arp報文通過,以及,接入交換機預先配置對應於dhcp(dynamichostconfigurationprotocol,動態主機配置協議)協議的acl表項,該表項許可dhcp報文通過。
目標區域網內的接入交換機經配置上述acl表項後,接入交換機的轉發晶片在接收到終端設備發送的報文時,首先可以判斷該報文是否為arp報文或dhcp報文;
一方面,如果該報文不是arp報文或dhcp報文,轉發晶片可以直接丟棄該報文,並且不學習對應於該報文的源mac的mac表項;
另一方面,如果該報文是arp報文或dhcp報文中的任一一種,轉發晶片可以將該報文上送至接入交換機的處理器,以由處理器轉發該報文,轉發晶片並不學習對應於該報文的源mac的mac表項。
由於轉發晶片在接收到arp報文或dhcp報文時,不學習對應於報文的源mac的mac表項,避免了接入交換機遭受終端設備通過arp報文或dhcp報文進行mac泛洪攻擊的情況。
同時,由於目標區域網中的接入交換機預先配置了許可arp報文通過的acl表項,因此,目標區域網中的網關設備可以通過arp報文學習目標區域網中的終端設備的arp表項,進而獲得終端設備的mac地址。以及,由於上述接入交換機預先配置了許可dhcp報文通過的acl表項,因此,目標區域網內各終端設備可以正常地被分配ip地址。
在本申請實施例中,上述網關設備可以開啟arp掃描功能,然後基於預設的周期時長周期性地掃描上述接入交換機上送的arp報文,進而學習其所在網段的終端設備的arp表項。其中,上述周期時長可以根據應用環境進行配置。
一方面,如果上述網關設備已保存其所在網段的終端設備的ip地址,則上述網關設備可以向其所在網段的終端設備發送arp請求報文。終端設備接收到arp請求報文後,通過上述接入交換機向上述網關設備返回arp應答報文。上述網關設備基於接收到的arp應答報文,學習對應於各終端設備的arp表項。
以圖2為例,網關設備可以每隔30秒向其所在網段192.168.1.1/24的終端設備發送arp請求報文,計算機a、計算機b、計算機c和計算機d接收到arp請求報文後,分別向網關設備返回arp應答報文。網關設備接收到arp應答報文後,學習到對應於計算機a、計算機b、計算機c和計算機d的arp表項。
另一方面,當上述網關設備所在網段的終端設備之間互相發送arp報文時,上述網關設備同樣可以收到上述接入交換機上送的arp報文,並學習終端設備的arp表項。
上述網關設備學習到其所在網段的終端設備的arp表項後,可以提取arp表項中的mac地址,過濾出合法mac地址後。上述網關設備可以將其所在網段的終端設備的mac地址以及其本地的mac地址上傳至上述網管伺服器。
在本申請實施例中,上述網管伺服器接收到上述網關設備上傳的mac地址後,可以基於上述網關設備上傳的mac地址創建mac地址集
需要指出的是,如果目標區域網中存在多個網關設備,則多個網關設備向上述網管伺服器上傳mac地址後,上述網管伺服器會將接收到的所有mac地址,創建一個統一的mac地址集。
在本申請實施例中,上述網管伺服器在創建得到mac地址集後,可以向目標區域網中的所有接入交換機下發mac地址集。
目標區域網中的各接入交換機接收到上述網管伺服器下發的mac地址集後,可以基於該mac地址集生成防mac泛洪攻擊的mac地址白名單。
在示出的一種實施方式中,上述mac地址白名單包括以上述mac地址集中的mac地址分別作為源mac和目的mac而創建的acl白名單表項;
具體地,如果上述mac地址集中有n個mac地址,則以這n個mac地址分別作為源mac和目的mac,最終可以創建n*n個acl白名單表項;其中,該acl白名單表項許可源mac和目的mac都匹配的報文通過;
或者,如果上述mac地址集中有n個mac地址,則以這n個mac地址作為源mac創建n個acl白名單表項,該acl白名單表項許可源mac匹配的報文通過;以及,以這n個mac地址作為目的mac創建n個acl白名單表項,該acl白名單表項許可目的mac匹配的報文通過,最終可以創建2n個acl白名單表項;其中,前者的優先級大於後者的優先級。接入交換機先匹配報文的源mac,若匹配成功,則進一步匹配報文的目的mac,並在匹配成功後許可報文通過。這種創建acl白名單表項的方式可以大大降低acl白名單表項的總數量。
通過上述措施,接入交換機只允許目標區域網內的終端設備之間互相通信。
在本申請實施例中,上述網管伺服器也可以不向接入交換機下發mac地址集,而是基於mac地址集生成防mac泛洪攻擊的mac地址白名單,然後通過上述網關設備向各接入交換機下發該mac地址白名單。由上述網管伺服器生成mac地址白名單,可以使得接入交換機直接根據mac地址白名單防護mac泛洪攻擊,也適用於接入交換機不具有基於mac地址集生成mac地址白名單的功能的情況。
在示出的一種實施方式中,上述mac地址白名單包括以上述mac地址集中的mac地址分別作為源mac和目的mac而創建的acl白名單表項;其中,該acl白名單表項許可源mac和目的mac都匹配的報文通過。
通過上述措施,接入交換機可以直接獲得mac地址白名單,並根據mac白名單的規則只允許目標區域網內的終端設備之間互相通信。
在本申請實施例中,當接入交換機上的mac地址白名單是acl白名單表項時,接入交換機上預配置的許可arp報文以及dhcp報文通過的acl表項的優先級大於以mac地址集中的mac地址創建的acl白名單表項的優先級。
因此,接入交換機接收到報文後,首先會判斷該報文是否為arp報文或dhcp報文,如果該報文不是arp報文或dhcp報文,則將該報文的源mac和目的mac在上述acl白名單表項中進行匹配,若能配到acl白名單表項,則轉發該報文,同時學習對應於源mac的mac表項;如果不能匹配到acl表項,則丟棄該報文,避免了潛在的mac泛洪攻擊。
綜上所述,在本申請實施例中,網管伺服器接收到網關設備上傳的mac地址後,可以基於上述網關設備上傳的mac地址創建mac地址集,然後向各接入交換機下發該mac地址集;其中,該mac地址集包括上述網關設備學習到的其所在網段的終端設備的mac地址和上述網關設備的mac地址;各接入交換機接收到網管伺服器下發的mac地址集後,基於該mac地址集生成防mac泛洪攻擊的mac地址白名單;
或者,網管伺服器直接基於上述mac地址集生成mac地址白名單,並通過上述網關設備向各接入交換機下發該mac地址白名單;
由於網管伺服器下發至各接入交換機的mac地址集中包括目標區域網中的所有終端設備和網關設備的mac地址,所以接入交換機基於由上述mac地址集生成的mac地址白名單進行防mac泛洪攻擊時,實際上只允許目標區域網內的終端設備之間互相通信;如果有攻擊者利用目標區域網內的終端設備向接入交換機發送具有偽造出的無效源mac的攻擊報文,則接入交換機根據mac地址白名單會直接丟棄攻擊報文,從而達到防mac泛洪攻擊的效果;並且,由於本申請中接入交換機始終不會學習無效的mac表項,因此,接入交換機內存或晶片資源不會被無效的mac表項佔滿,進而避免了正常的報文被泛洪處理,導致目標區域網的通信效率下降的問題。
與前述防mac泛洪攻擊的方法的實施例相對應,本申請還提供了防mac泛洪攻擊的裝置的實施例。
參見圖4,為本申請示出的一種防mac泛洪攻擊的裝置的實施例框圖:
如圖4所示,該防mac泛洪攻擊的裝置40包括:
接收單元410,用於接收到所述網關設備上傳的mac地址;所述mac地址包括所述網關設備的mac地址,以及所述網關設備所在網段的終端設備的mac地址。
創建單元420,用於基於所述網關設備上傳的mac地址創建mac地址集。
下發單元420,用於向各接入交換機下發所述mac地址集,以使得各接入交換機基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單。
在本例中,所述接入交換機預先配置許可arp報文以及dhcp報文通過的acl表項;
所述網關設備所在網段的終端設備的mac地址,為所述網關設備周期性掃描所述接入交換機上送的arp報文學習到的mac地址。
在本例中,所述下發單元420,進一步用於:
基於所述mac地址集生成防mac泛洪攻擊的mac地址白名單,並將所述mac地址白名單下發至各接入交換機。
在本例中,所述mac地址白名單,包括以所述mac地址集中的mac地址分別作為源mac和目的mac而創建的acl白名單表項。
在本例中,所述許可arp報文以及dhcp報文通過的acl表項的優先級大於以所述mac地址集中的mac地址創建的acl白名單表項的優先級。
本申請防mac泛洪攻擊的裝置的實施例可以應用在網管伺服器上。裝置實施例可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是通過其所在網管伺服器的處理器將非易失性存儲器中對應的電腦程式指令讀取到內存中運行形成的。從硬體層面而言,如圖5所示,為本申請防mac泛洪攻擊的裝置所在網管伺服器的一種硬體結構圖,除了圖5所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的網管伺服器通常根據該防mac泛洪攻擊的裝置的實際功能,還可以包括其他硬體,對此不再贅述。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅為本申請的較佳實施例而已,並不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的範圍之內。