郭 宇
[摘 要]對IPv6局域網(wǎng)攻擊的原理、IPV6局域網(wǎng)鄰居發(fā)現(xiàn)協(xié)議進行闡述,分析IPv6局域網(wǎng)攻擊檢測策略,設(shè)計掃描攻擊檢測的實現(xiàn)方法。
[關(guān)鍵詞]IPv6 局域網(wǎng) 攻擊 檢測
中圖分類號:TP3 文獻標識碼:A 文章編號:1671-7597(2009)0720039-01
一、局域網(wǎng)攻擊原理
局域網(wǎng)攻擊的基本原理是擾亂鄰節(jié)點發(fā)現(xiàn)各過程次序。攻擊主機要對網(wǎng)絡(luò)流量進行偵聽,通過對數(shù)據(jù)報的分析,來獲知其他主機狀態(tài)及鄰節(jié)點發(fā)現(xiàn)過程的階段,進而發(fā)出包含指定信息的數(shù)據(jù)報,來擾亂鄰節(jié)點發(fā)現(xiàn)過程的進行。甚至,攻擊主機主動發(fā)出請求報文,誤導其他主機對某目標主機進行應(yīng)答而導致目標主機的癱瘓,或者偽裝路由器,發(fā)送公告報文,誤導主機使用攻擊主機當作路由器進行轉(zhuǎn)發(fā)等等。
局域網(wǎng)攻擊的范圍主要局限在本鏈路內(nèi),但破壞力極大,尤其當前接入網(wǎng)的主要形式是以太網(wǎng),多主機共用一條物理鏈路,局域網(wǎng)攻擊一旦發(fā)起,將會威脅所有主機的信息安全及正常通信。
二、IPV6局域網(wǎng)鄰居發(fā)現(xiàn)協(xié)議(ND)
主機與外界連接成功后,使用鄰節(jié)點發(fā)現(xiàn)協(xié)議來確定鄰節(jié)點的可達性及路由器的可用性,并在路由器不可用時,尋找新的候選。所以,從功能上看,鄰節(jié)點發(fā)現(xiàn)協(xié)議可以按功能分為幾個部分,地址解析,鄰節(jié)點不可到達檢測,重復地址檢測,路由器發(fā)現(xiàn)和重定向等功能。
這些功能通過使用ICMPv6協(xié)議定義的不同報文進行消息的交互與確定。報文包括路由器公告報文(Router Advertisement 簡稱RA),路由器請求報文(Router solieitation 簡稱Rs),鄰節(jié)點請求報文(Neighbor Solieitation 簡稱NS),鄰節(jié)點公告報文(Neighbor Advertisement 簡稱NA)及重定向報文(Redireet)。
(一)鄰節(jié)點地址解析
如果報文源地址(即發(fā)出RS主機的IP地址)是非未確定地址(0:0),則目標主機根據(jù)報文中的源地址對鄰節(jié)點緩存(Neighbor Cache)進行創(chuàng)建或者更新。然后,發(fā)送一個鄰節(jié)點公告NA對該請求進行回應(yīng),該NA消息中包含目標鏈路層地址選項。當請求主機接收到來自目標主機的NA消息后,使用其提供的目標鏈路層地址選項中的信息,對鄰節(jié)點高速緩存進行項的創(chuàng)建及更新。
在地址解析的過程中,請求主機與目標主機間通過NS及NA消息進行交互。其成功的前提是其他主機遵守協(xié)議的規(guī)則,對目標地址為不是自身接口地址的請求報文進行回應(yīng)。當網(wǎng)絡(luò)中的某個主機不遵守協(xié)議,擅自進行應(yīng)答時,地址解析的后果將不可預(yù)測,甚至出現(xiàn)異常。
(二)重復地址檢測
主機連接到網(wǎng)絡(luò),使用無狀態(tài)自動配置或者靜態(tài)設(shè)置進行IP地址的配置。IP地址首先要經(jīng)過重復地址檢測,確保鏈路上沒有其他主機使用,該IP才一能被成功設(shè)置。重復地址的檢測過程與地址解析比較相似。所不同的是,地址解析的目的是獲取目標主機的MAC地址,重復地址檢測是為了確認護地址在鏈路上的唯一性。假如已經(jīng)有主機設(shè)置該?。ǚQ為目標主機),那么目標主機就會廣播一個鄰節(jié)點公告報文NA,使用目標鏈路層選項來說明自己的IP地址及MAC地址。重復地址檢測合理性的前提是鏈路上的其他主機不響應(yīng)檢測自己伊的NS請求。如果某主機假冒IP對其他主機的重復地址檢測請求報文進行響應(yīng),就會影響其他主機的網(wǎng)絡(luò)服務(wù),導致其他主機無法正常獲得IP。
三、攻擊檢測與策略分析
(一)阻止IP攻擊的檢測分析
根據(jù)DosNewIP的攻擊原理,攻擊主機應(yīng)答局域網(wǎng)出現(xiàn)的所有DAD檢測報文,即使該檢測地址并未被攻擊主機使用。一般的檢測思路是對捕獲的數(shù)據(jù)報進行特征分析,如果特征匹配成功,則檢測到該攻擊。DosNewIP的攻擊特征是一個DAD檢測的應(yīng)答報文,假如單純從報文來進行特征的匹配,會造成誤報和漏報。比如,通過事先對DosNewIP代碼的分析,使用應(yīng)答報文中的MAC地址等字段作為特征進行攻擊識別,在攻擊者修改源代碼并使用其他MAC地址后,Snort就無法檢測新的DosNew正攻擊。所以,使用這類手段進行檢測,會導致漏報率的升高。被動等待攻擊報文的出現(xiàn),并進行特征匹配的方法,無法保證對DosNewIP攻擊的有效檢測。只能采取其他手段利用DosNewIP攻擊的特性進行檢測。攻擊主機開啟DosNewIP攻擊后,會對局域網(wǎng)內(nèi)所有的DAD檢測報文進行應(yīng)答,以阻止新IP地址的使用。進行攻擊檢測的前提是,部署Snort的監(jiān)控主機不能受到DosNewIP攻擊的影響。如果前提無法滿足,那么監(jiān)控主機無法使用網(wǎng)絡(luò),更談不上網(wǎng)絡(luò)監(jiān)控。所以必須保證監(jiān)控主機的存在早于攻擊行為的產(chǎn)生。
(二)阻止IP攻擊的檢測實現(xiàn)
1.總體設(shè)計。DosNewIP的檢測模塊,包括三大模塊:檢測數(shù)據(jù)報的生成與發(fā)送、應(yīng)答報文的捕獲與解析、警報的產(chǎn)生與發(fā)布。檢測模塊首先按照鄰節(jié)點請求報文結(jié)構(gòu)構(gòu)造檢測數(shù)據(jù)報,然后進行發(fā)送。其重點在于取得自身lP及報文格式的構(gòu)造。自身lP地址可以通過打開/proc/net/if_inet
6文件,并匹配相應(yīng)接口,如“eth0”,來完成。分析模塊完成對Snort傳入數(shù)據(jù)報的分析工作。檢查數(shù)據(jù)報是否是對監(jiān)控主機自身IP地址進行的DAD應(yīng)答報文。預(yù)警模塊對上述的檢查結(jié)果進行預(yù)警。
2.詳細設(shè)計。程序開始后首先進行初始化工作:將標志done置為NOTD,并生成用于存儲監(jiān)控主機護地址的ADDR變量和用于存放時間的變量ts。然后,程序分成兩個線程分別進行操作。分線程獲得自身伊地址,并存儲到ADDR中,然后按照鄰節(jié)點請求報文的格式進行誘餌數(shù)據(jù)報的構(gòu)造。如果標志done此時為NOTD,表明預(yù)處理器不清楚網(wǎng)絡(luò)中是否存在DosNewIP攻擊。然后發(fā)送誘餌數(shù)據(jù)報,并睡眠一段時間,再進行條件判斷部分。主線程進行捕獲數(shù)據(jù)報的分析及報警工作。當Snort捕獲到數(shù)據(jù)報后,主線程首先測試標志done,如果值為NOTD,則檢查數(shù)據(jù)報,報文如果是DAD檢測的應(yīng)答報文,則提取數(shù)據(jù)報中的幾rgetIP選項,然后與ADDR相比較,相同則說明發(fā)現(xiàn)了DosNewIP攻擊,將標志done置為DONE并記錄當前時間到ts,然后產(chǎn)生警報。如果TargctIP與ADDR不匹配,說明該應(yīng)答報文是執(zhí)行正常的DAD檢測,不需對數(shù)據(jù)報進行動作。
標志done為DONE時,說明己探測到DosNewIP攻擊。此時,局域網(wǎng)中如果有主機進行DAD檢測,其IP地址都會被阻止使用。將來如果出現(xiàn)數(shù)據(jù)報使用這些地址作為源地址或者目的地址,那么很有可能攻擊主機使用這些護地址作為掩飾,向其他主機發(fā)送攻擊報文。所以,這些被阻止的IP地址需要被記錄。主線程中,當done值為DONE時,如果捕獲到DAD檢測請求數(shù)據(jù)報,則提取其TargetIP,并進行記錄及報警。
參考文獻:
[1]DE CASTRO L N,VON ZUBEN F J,The clonal selectionalgorithm with engineering applications[A].WorkshopProceedings of GECCO'00,Workshop on Artificial Immune Systems and their Applications[C].2000.
[2]Rolf Oppliger,Security at the Internet Layer,IEEE Computer,1998,43-47.