本發(fā)明涉及網(wǎng)絡安全技術領域,尤其涉及一種基于關聯(lián)規(guī)則的ipv6地址掃描方法。
背景技術:
ip地址掃描廣泛應用于漏洞掃描、蠕蟲檢測等領域,認知系統(tǒng)框架,發(fā)現(xiàn)主機漏洞,檢測未知服務,在網(wǎng)絡安全研究中具有重要意義。相比ipv4協(xié)議的32位地址,ipv6協(xié)議具有128位的巨大地址空間,傳統(tǒng)的地址掃描技術在ipv6網(wǎng)絡中無法應用,因此,研究適用于ipv6網(wǎng)絡的地址掃描技術,對于防止新型的ipv6掃描攻擊、部署安全策略具有重要意義。
地址掃描是網(wǎng)絡安全掃描、漏洞掃描的前提,發(fā)送探測包到目標主機,如果收到回復,那么說明目標主機是開啟的,可以確定目標網(wǎng)絡上的主機是否可達,這是信息搜集的初始階段,它將直接影響到后續(xù)的工作。蠕蟲在利用漏洞進行傳播之前,也需要先對目標節(jié)點進行掃描發(fā)現(xiàn),地址掃描對于網(wǎng)絡安全具有很重要的意義。
在ipv4網(wǎng)絡中常用的基于網(wǎng)絡層的順序掃描、隨機掃描。這些掃描策略大多需要對一定子網(wǎng)范圍內ip地址全部進行掃描,一個典型的具有8位主機位的ipv4網(wǎng)絡,遠程攻擊者最多只需要探測256個地址,按照每秒掃描一個地址,幾分鐘就可以完成,在64位的ipv6子網(wǎng)中,可以容納1.844*10^19個主機比ipv4網(wǎng)絡的主機密度更低,掃描一個子網(wǎng)的所有地址就需要數(shù)億年才能完成,即使使用更快的掃描方法,仍然需要無限的時間,加上地址空間稀疏,順序掃描、隨機掃描等掃描方法不能有效的發(fā)現(xiàn)活動主機。
如何縮小地址掃描空間,是ipv6地址掃描面臨的關鍵問題,目前已經(jīng)有研究者在此方面開展了一些工作,文獻“networkreconnaissanceinipv6networks”中列出了很多可以縮小ipv6地址掃描空間的方法,例如,按照人為配置地址,無狀態(tài)地址自動配置的規(guī)律等等,但是這種方法也存在弊端,比如:受限于發(fā)現(xiàn)標準格式之內的地址,對于不符合標準特征的地址,隨機地址無法進行有效的掃描;ipv6技術在不斷發(fā)展,地址配置方式在不斷更新,需要不斷更新符合新標準的地址格式。利用組播和本地鏈路地址的本地網(wǎng)絡ipv6地址掃描方式,僅能發(fā)現(xiàn)與本地網(wǎng)絡相關的ipv6地址,不適合大范圍的地址掃描應用。文獻“ipv6環(huán)境下的蠕蟲傳播研究”中提出網(wǎng)內采用虛假ra探測和網(wǎng)間流量監(jiān)聽結合的方法,僅適用于局部,流量監(jiān)聽屬于被動方式,而且掃描速度緩慢。文獻“onreconnaissancewithipv6:apattern-basedscanningapproach”中的方法僅能生成一種模式,在挖掘速度和掃描效率低。
技術實現(xiàn)要素:
本發(fā)明的目的就是為了解決上述問題,提供一種基于關聯(lián)規(guī)則的ipv6地址掃描方法,該方法可以顯著縮小ipv6地址掃描空間,基于當前掃描能力范圍之內。
為了實現(xiàn)上述目的,本發(fā)明采用如下技術方案:
一種基于關聯(lián)規(guī)則的ipv6地址掃描方法,包括,
在ipv6網(wǎng)絡中進行子網(wǎng)內掃描,獲取包含ipv6地址的數(shù)據(jù)集,將所有ipv6地址的接口標識符取出,并轉換成二進制形式;
將接口標識符的每一位看作一項,找出多項之間的關聯(lián)規(guī)則,當一條關聯(lián)規(guī)則中相關聯(lián)的bit項數(shù)量大于等于閾值t時,對該條關聯(lián)規(guī)則外的項進行順序掃描;
根據(jù)地址是否連續(xù)選擇不同的方法進行發(fā)現(xiàn)。
對于連續(xù)的地址采用相鄰關聯(lián)規(guī)則發(fā)現(xiàn)的方法;對于非連續(xù)的地址,去掉滿足相鄰關聯(lián)規(guī)則的地址,對數(shù)據(jù)集中剩下的地址進行非相鄰關聯(lián)規(guī)則發(fā)現(xiàn)的方法。
相鄰關聯(lián)規(guī)則發(fā)現(xiàn)方法包括:
將接口標識符進行排序,輸入閾值t;
設第j行為lj,然后逐行與下一行l(wèi)j+1進行多項的關聯(lián)規(guī)則發(fā)現(xiàn),確定lj和lj+1之間的最長關聯(lián)項;
當相關聯(lián)的bit數(shù)量n大于等于閾值t時,則輸出相應的關聯(lián)規(guī)則;
按照上述方法遍歷整個數(shù)據(jù)集合;
生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式;
根據(jù)基于關聯(lián)規(guī)則的掃描表達式在數(shù)據(jù)集中匹配到的地址數(shù)量進行排序,去掉重復、包含關系的選項。
所述最長關聯(lián)項為在這兩行中同時出現(xiàn)的所有項的關聯(lián)規(guī)則。
生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式的方法為:
將產(chǎn)生的關聯(lián)規(guī)則中的bit項作為已知bit,在64位接口標識符中的剩余bit作為未知bit,生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式。
非相鄰關聯(lián)規(guī)則發(fā)現(xiàn)的方法包括:
(1)輸入閾值t;
(2)將64位接口標識符的每個bit項用xi(i<=64)表示,計算每個bit支持度sup(xi),選擇支持度最高的bit項x1;
(3)計算支持度
(4)迭代計算
(5)當閾值t處的子數(shù)據(jù)集無法繼續(xù)發(fā)現(xiàn)關聯(lián)規(guī)則時,將子數(shù)據(jù)集從全部數(shù)據(jù)集中去除,重復(2)(3)(4),直至無法發(fā)現(xiàn)新的關聯(lián)規(guī)則;
(6)生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式;
(7)根據(jù)基于關聯(lián)規(guī)則的掃描表達式在數(shù)據(jù)集中匹配到的地址數(shù)量進行排序,去掉重復、包含關系的選項。
非相鄰關聯(lián)規(guī)則發(fā)現(xiàn)的方法中,將相鄰關聯(lián)規(guī)則發(fā)現(xiàn)方法中不滿足正則表達式的接口標識符作為數(shù)據(jù)集。
所述步驟(4)迭代計算
所述步驟(6)中,將產(chǎn)生的關聯(lián)規(guī)則中的bit項作為已知bit,在64位接口標識符中的剩余bit作為未知bit。
在經(jīng)過排序的基于關聯(lián)規(guī)則的掃描表達式中,選取前n個表達式,將前綴與基于規(guī)則的接口標識符表達式結合,對未知的bit進行順序掃描,如果發(fā)現(xiàn)活動的主機地址則添加到活動主機列表。
本發(fā)明的有益效果:
利用關聯(lián)規(guī)則挖掘ipv6地址中接口標識符比特之間的關聯(lián)關系,達到了縮小掃描空間的目的。
采用相鄰與非相鄰關聯(lián)規(guī)則挖掘的方法,使用多種關聯(lián)規(guī)則掃描的方法,適用于所有類型的ipv6地址掃描。
附圖說明
圖1為相鄰關聯(lián)規(guī)則發(fā)現(xiàn)流程圖;
圖2為非相鄰規(guī)則發(fā)現(xiàn)流程圖;
圖3為基于規(guī)則掃描地址流程圖;
圖4為規(guī)則1,2,3,4掃描結果;
圖5為規(guī)則1,2,3,4與其總和掃描結果對比;
圖6為ipv6地址結構圖。
具體實施方式
下面結合附圖與實施例對本發(fā)明作進一步說明。
ipv6介紹
ipv6是internetprotocolversion6的縮寫,其中internetprotocol譯為“互聯(lián)網(wǎng)協(xié)議”。ipv6是ietf(互聯(lián)網(wǎng)工程任務組,internetengineeringtaskforce)設計的用于替代現(xiàn)行版本ip協(xié)議(ipv4)的下一代ip協(xié)議。
ipv6地址
ipv6地址的基本表達方式是x:x:x:x:x:x:x:x,其中x是一個4位十六進制整數(shù)(16位)。每一個數(shù)字包含4位,每個整數(shù)包含4個數(shù)字,每個地址包括8個整數(shù),共計128位(4×4×8=128),這些整數(shù)是十六進制整數(shù)。ipv6地址被分成兩個部分:子網(wǎng)前綴(subnetprefix)和接口標識符(interfaceidentifiers)。ipv6地址結構如圖6所示。
ipv4與ipv6地址之間最明顯的差別在于ip地址的長度:ipv4地址長度為32位,而ipv6地址長度為128位。ipv4地址可以被分為2至3個不同部分(網(wǎng)絡標識符、節(jié)點標識符,有時還有子網(wǎng)標識符),ipv6地址中擁有更大的地址空間,可以支持更多的字段。
關聯(lián)規(guī)則
關聯(lián)規(guī)則用于從大量數(shù)據(jù)中挖掘出有價值的數(shù)據(jù)項之間的相關關系。
假設i={i1,i2,...,im}是項的集合。給定一個數(shù)據(jù)庫d={t1,t2,...,tn},其中每個事務(transaction)t是i的非空子集,即
如圖3所示,一種基于關聯(lián)規(guī)則的ipv6地址掃描方法,在ipv6網(wǎng)絡中的掃描主要是子網(wǎng)內掃描,首先獲取包含ipv6地址的數(shù)據(jù)集,將所有ipv6地址的接口標識符取出,并轉換成二進制形式;
將64位接口標識符的每一位看作一項,通過發(fā)現(xiàn)多項之間的關聯(lián)規(guī)則,當這條關聯(lián)規(guī)則中相關聯(lián)的bit項數(shù)量大于等于閾值t,表示在ipv6地址中這種關聯(lián)關系是頻繁出現(xiàn)的,那么可以對規(guī)則外的項(即未知bit)進行順序掃描,可以達到縮小掃描空間的目的,此時未知bit數(shù)量小于(64-t);
通過分析ipv6地址的特點,連續(xù)的地址有大量相同的bit,容易發(fā)現(xiàn)滿足條件的關聯(lián)規(guī)則,并且耗時少,采用相鄰關聯(lián)規(guī)則發(fā)現(xiàn)的方法;對于非連續(xù)的地址,特別是復雜的臨時地址等,也可能存在大量相同的bit,去掉滿足相鄰關聯(lián)規(guī)則的地址,對數(shù)據(jù)集中剩下的地址進行非相鄰關聯(lián)規(guī)則的發(fā)現(xiàn)。
具體實現(xiàn)方法如下:
如圖1所示,相鄰關聯(lián)規(guī)則發(fā)現(xiàn)
(1)首先將接口標識符進行排序;
(2)輸入閾值t;
(3)設第j行為lj,然后逐行與下一行l(wèi)j+1進行多項的關聯(lián)規(guī)則發(fā)現(xiàn),確定lj和lj+1之間的最長關聯(lián)項(即在這兩行中同時出現(xiàn)的所有項的關聯(lián)規(guī)則);
(4)當相關聯(lián)的bit數(shù)量n大于等于閾值t時,則輸出相應的關聯(lián)規(guī)則;
(5)循環(huán)進行(3)和(4),遍歷整個數(shù)據(jù)集合;
(6)將產(chǎn)生的關聯(lián)規(guī)則中的bit項作為已知bit,在64位接口標識符中的剩余bit作為未知bit,生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式;
(7)根據(jù)基于關聯(lián)規(guī)則的掃描表達式在數(shù)據(jù)集中匹配到的地址數(shù)量進行排序,去掉重復、包含關系的選項。
如圖2所示,非相鄰關聯(lián)規(guī)則發(fā)現(xiàn)
(1)將1、中不滿足正則表達式的接口標識符作為數(shù)據(jù)集;
(2)輸入閾值t;
(3)將64位接口標識符的每個bit項用(i<=64)表示,計算每個bit支持度sup(xi),選擇支持度最高的bit項x1;
(4)然后計算支持度
(5)迭代計算
(6)當閾值t處的子數(shù)據(jù)集無法繼續(xù)發(fā)現(xiàn)關聯(lián)規(guī)則時,將子數(shù)據(jù)集從全部數(shù)據(jù)集中去除,重復(3)(4)(5),直至無法發(fā)現(xiàn)新的關聯(lián)規(guī)則;
(7)將產(chǎn)生的關聯(lián)規(guī)則中的bit項作為已知bit,在64位接口標識符中的剩余bit作為未知bit,那么可以生成包含已知和未知bit項的基于關聯(lián)規(guī)則的掃描表達式;
(8)根據(jù)基于關聯(lián)規(guī)則的掃描表達式可以在數(shù)據(jù)集中匹配到的地址數(shù)量進行排序,去掉重復、包含關系的選項。
在經(jīng)過排序的基于關聯(lián)規(guī)則的掃描表達式中,選取前n個表達式,將前綴與基于規(guī)則的接口標識符表達式結合,對未知的bit進行順序掃描,如果發(fā)現(xiàn)活動的主機地址添加到活動主機列表。
實驗以及結果:
通過實驗對本方法進行驗證,實驗使用的數(shù)據(jù)集包含10000個ipv6地址,將接口標識符單獨取出,打亂順序,將其中70%作為訓練集,剩下的30%作為測試集進行對比驗證,閾值t設為40,對關聯(lián)規(guī)則表達式的未知bit進行掃描,即是輸出測試集中符合關聯(lián)規(guī)則的接口標識符。
進行相鄰關聯(lián)規(guī)則發(fā)現(xiàn),結果獲得了144條關聯(lián)規(guī)則,用時42s;對比測試集可以獲得1998個地址。
進行非相鄰關聯(lián)規(guī)則發(fā)現(xiàn),結果獲得了901條關聯(lián)規(guī)則,用時615s;對比測試集獲得了43個地址。
獲得的地址總和占測試集總數(shù)的66.8%。結果表明本方法可以縮小ipv6地址的掃描空間,高效的對ipv6地址進行掃描。
將生成的規(guī)則按照在訓練集中的匹配地址數(shù)量排序,排在前面的規(guī)則包含的地址稠密,掃描效率高,排在后面的規(guī)則包含的地址稀疏,掃描效率低。這里取前4項規(guī)則進行對比掃描。圖4以地址掃描的方式顯示了前4條規(guī)則在測試集中匹配結果,圖5以地址掃描的方式顯示了4條規(guī)則掃描結果與其總和對比。
本發(fā)明提出一種基于關聯(lián)規(guī)則的ipv6地址掃描方法,使用關聯(lián)分析的方法,基于已有的ipv6地址集,挖掘ipv6地址中所包含的比特位(bit)之間潛在的關聯(lián)關系,建立起關聯(lián)關系規(guī)則集合,并將其應用于ipv6地址掃描。該方法可以顯著縮小ipv6地址掃描空間,基于當前掃描能力范圍之內。
上述雖然結合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領域技術人員應該明白,在本發(fā)明的技術方案的基礎上,本領域技術人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內。