摘要:ARP病毒具有極大的破壞性,針對它的原理,提出了基于SNMP的主動防御ARP欺騙的解決方案,創新性地利用SNMP協議將交換機狀態監測和管理引入ARP防御體系中,以盡早發現和維護出現故障的交換機,確保整個計算機網絡的穩定性。該方案特別適合在較大規模的網絡中部署,其代價小,效率高。
關鍵詞:SNMP;交換機狀態監測;ARP主動防御;網絡穩定性
0、引 言
最近幾年,ARP欺騙木馬病毒在高校網絡中頻繁地爆發,同一網段的大多數用戶頻繁斷網,導致整個局域網無法正常運行,嚴重時致使整個校園網大面積癱瘓,給網絡管理工作增添了巨大壓力。
目前,通常采用以下兩種途徑發現ARP欺騙:
(1)網管員登錄網關查看ARP表,如發現多個IP對應同一個網卡地址,該網卡地址就是中ARP欺騙木馬病毒的機器的MAC地址。
(2)上網用戶在主機上通過arp-a命令可以發現網關MAC地址與網絡運行正常時的MAC地址不符。用戶可以將錯誤的網關MAC地址報告給網管員進行處理。
以上兩種方法都需要網絡管理員或用戶繁瑣的手動操作才能發現ARP欺騙病毒,這在具有幾萬用戶的校園網絡中都是不可行的,因為工作量太大。為了及時發現局域網中存在的ARP欺騙現象,進行快速處理,將其壞影響降至最低,我們引入SNMP來進行主動防御。由于校園網由大量交換機構成,而利用SNMP預防欺騙是通過交換機管理來實現的,所以我們創新性地將交換機狀態監測和管理引入ARP預防體系中,以快速發現、準確定位出現故障的交換機并及時加以維護,從而確保ARP病毒欺騙的主動防御與處理可以在整個網絡中穩定地實施。
1、基于SNMP的交換機狀態監測和主動防御ARP欺騙的基本原理
網管工作站中的管理進程,利用SNMP協議可獲取交換機運行狀態信息,并可配置交換機的部分運行參數,達到監測和管理校園網中大量交換機的目的。標準的MIB庫中定義了與ARP信息相關的變量,利用這些變量可以獲取與ARP欺騙相關的信息,通過MIB庫定義的其他MIB變量可以設置網絡設備的運行參數,將實施ARP欺騙者從網絡中隔離開來,阻止ARP欺騙對網絡正常通信的破壞。本文方案中所涉及的相關MIB變量的定義如表1表示。
利用SNMP監測交換機狀態和主動防御ARP欺騙的基本原理如下。
1.1交換機狀態監測原理
我們通過SNMP協議實時讀取出全網的交換機信息,生成樹狀結構,以三層交換機為根,兩層接入交換機為兒子,每隔一段時間循環監測所有交換機狀態。如果該交換出現工作異常,則報警。網絡管理人員看到報警,可以及時處理和維護交換機。此外,根據SNMP協議修改交換機運行參數,可以對交換機的信息進行補充,定位交換機的地理位置,當交換機出現故障時,網絡管理工作者就可以及時發現該交換機所在的地理位置和在網絡體系中所處層次。
1.2基于SNMP主動防御ARP病毒原理
ARP欺騙可以通過以下方式發現:
(1)獲取網關MIB庫中的ipNetToMediaTable表,并對獲取的數據進行逐條比較。如從中發現有若干不同IP地址對應同一網卡,則該局域網內發生了ARP欺騙。在發現ARP欺騙者后,將ARP欺騙者從廣播域中隔離出來,防止其繼續危害網絡的正常通訊。隔離ARP欺騙者比較簡單的辦法是關閉其接入的交換機端口。通過SNMP協議獲取接入交換機中的FDB地址表,找到ARP欺騙者接入交換機的端口,然后通過SNMP的Set操作可以對表ifTable的ifAdminStatus參數對交換機端口進行封鎖和開啟。
(2)查找ARP欺騙工具或木馬。這一步的工作需要人工采取措施清除中毒電腦中ARP欺騙工具或木馬程序。
2、系統設計與實現
本系統用ruby語言及rails框架開發,采用mysql作為數據庫,由兩套軟件組成:
(1)由ruby語言開發的數據采集系統,用于從交換機中定時采集交換機信息和ARP數據存儲到數據庫中。
(2)用ruby語言基于rails框架開發的交換機監測和ARP主動防御系統,主要負責交換機的狀態監控和ARP病毒發現、隔離、處理。
系統實施架構如圖1所示。
2.1實現交換機信息收集和工作狀態監測
交換機樹生成和監測原理:
(1)指定所有三層交換機。
(2)利用SNMP協議讀出所有三層交換機上的二層接入交換機信息,如交換機的IP地址、名稱、父端口、向下的級聯端口、交換機描述等信息。
(3)手動修正交換機信息,包括所在的地理位置、增加交換機兒子、刪除交換機兒子等。
(4)得到修正的交換機樹后,每隔十分鐘向每個交換機索取信息。如果交換機無法連接,或者返回報錯信息,則表明該交換機出現故障。一般返回錯誤結果為:“交換機(IP地址),無法連接或出現錯誤”。
(5)如果交換機出現異常,可以通過(4)返回的IP地址,查詢該交換的詳細信息,如所在的地理位置、在交換機樹中所處的位置等信息。
(6)派出工作人員維修該交換機,系統繼續進行(4)(5)(6)循環。
(7)另外在校園網中,交換機樹結構出現大的變動時,可以從(1)開始重新生成交換機樹;而當小面積修改交換機中的信息和結構時,可以從(3)開始手動修改交換機樹。
交換機信息收集和監測邏輯如圖2所示。
交換機監測和管理界面如圖3所示。圖中,左邊是交換機樹,旁邊帶文件夾標識為三層交換機或者父交換機。右邊為被點擊的交換機信息,如IP地址,交換機名稱,父端口,級聯端口,所在地址,層級等信息。
2.2實現基于SNMP的ARP欺騙主動預防
實現原理如下:
(1)在建立交換機樹后,通過讀取表1的ip_net_to_me-alia_table表,即ip_net_to_media_table=[〝ipNetToMediaIfIndex〞,〝ipNetToMediaPhysAddress〞,〝ipNetToMediaNetAddress〞]得到ARP表信息。讀取ARP信息順序為先讀每個三層交換機的ARP,再讀出所有該三層交換機下接入交換機的ARP表信息。
(2)將所有ARP信息讀出后,存入switch_ip_mac.table,查詢是否有多個IP地址對應一個MAC地址。如果出現該隋況。就說明該MAC地址中了ARP病毒,列出所有中毒的MAC,如圖4所示。
如果查詢完畢,清除switch_ip_mac.table表中所有數據,從(1)開始進入下一次循環。如果查詢未完,繼續下面的步驟。
(3)給中毒用戶發郵件,或者電話通知處理該用戶。
(4)在發現中毒MAC地址后,通過LfTable表中dotld_tp_fdb_address=‘1.3.6.1.2.1.17.4.3.1.1’.dotld_tp_fdb_port=1.3.6.1.2.1.17.4.3.1.2兩個屬性,可以找到交換機上對應的端口port,并使用ifAdminStatus屬性關閉或打開端口。功能實現如圖5所示。圖中,最左邊ip一欄為可管理交換機IP地址,MAC一欄為中毒計算機MAC地址,port一欄為該MAC對應的計算機端口,狀態一欄為關閉或打開該端口按鈕。
(5)待中毒電腦(用戶)清除病毒后,打開端口。
(6)其他功能。某個MAC地址出現異常時,可以查找該MAC所連接的交換機及對應的交換機端口。當交換機出現異常時可以輸入交換機IP地址,查看交換機的狀態。查詢界面如圖6所示。
實現基于SNMP的ARP欺騙主動防御的邏輯結構,如圖7所示。
3、結束語
利用SNMP基本原理,我們開發出一套監測交換機狀態和主動防御ARP病毒軟件系統。該系統可在輪詢時間內發現并處理ARP欺騙者偽裝行為,同時監控所有交換機狀況,以便及時維護出現故障的設備。該方案的主要實現目標為:
(1)部署低成本。不需任何終端用戶參與ARP欺騙的防范工作,只需組成網絡的交換機為可管理交換機。
(2)效率高。一次部署即可監控整個網絡系統中ARP欺騙行為。在輪詢時間內,能夠實現對重慶交通大學四百多臺交換設實施狀態監控、以及兩萬多個終端節點的采集數據,實現了主動發現與隔離ARP欺騙者。
(3)能定位ARP欺騙者,有利于終端用戶自覺消除終端的ARP欺騙行為。
(4)僅隔離用戶終端所在端口,該方案不影響網絡的其他正常功能。
(5)在ARP主動防御方案中引入交換機監控,能夠及時發現交換機故障,極大地保證了用戶上網服務和ARP欺騙主動防御的順利實施。
該方案不受網絡結構與終端數量變化的影響,能夠隨網絡拓撲結構的變化,自動生成交換機樹。需要注意的是,因為SNMP協議只能應用于可管理交換機,所以該方案只適合由可管理交換機或大部分由可管理交換機組成的網絡。
參考文獻:
[1]劉素平,丁采生,錢斌,基于SNMP的ARP欺騙監控研究[J],計算機應用與軟件,2009 26(1)
[2]吳小平,周建中,方曉惠,基于SNMP的ARP欺騙主動防御機制[J],華中師范大學學報(自然科學版),2007,41(4)
[3]王佳,李志蜀,基于ARP協議的攻擊原理分析[J],微電子學與計算機,2004 21