摘 要: 為了解決傳統(tǒng)網(wǎng)絡(luò)滲透方法在異構(gòu)網(wǎng)絡(luò)上適應(yīng)性較差的問題,采用計(jì)算機(jī)算法與設(shè)計(jì)中的迷宮路徑算法、圖論中的相關(guān)理論,將傳統(tǒng)的迷宮路徑算法進(jìn)行了拓展。在此基礎(chǔ)上,利用拓展的迷宮路徑算法對(duì)網(wǎng)絡(luò)滲透進(jìn)行了全新探索,提高了異構(gòu)網(wǎng)絡(luò)下的網(wǎng)絡(luò)滲透適應(yīng)能力與速度,為開展有目標(biāo)性的網(wǎng)絡(luò)攻擊打下了堅(jiān)實(shí)的基礎(chǔ)。利用上述研究確定的最短路徑與關(guān)鍵節(jié)點(diǎn),為開展數(shù)據(jù)網(wǎng)絡(luò)防護(hù)提供了明確的對(duì)策與方法。通過上述具有完全實(shí)踐性的理論研究,為拓展傳統(tǒng)的網(wǎng)絡(luò)滲透攻擊技術(shù)與方法,為數(shù)據(jù)網(wǎng)絡(luò)安全防護(hù)等方面開辟了一片全新的領(lǐng)域。
關(guān)鍵詞: 迷宮路徑算法;拓展圖;極大連通;模型
網(wǎng)絡(luò)滲透攻擊簡稱為滲透攻擊(Network Penetration),是攻擊者常用的一種攻擊手段,也是一種綜合的高級(jí)攻擊技術(shù),指通過一步步滲透,進(jìn)入某個(gè)大型網(wǎng)絡(luò)主機(jī)服務(wù)器群組所在的整個(gè)網(wǎng)絡(luò)系統(tǒng),從而實(shí)施網(wǎng)絡(luò)攻擊的技術(shù)。由于滲透攻擊具有極大的隱蔽性(其在遍歷整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)之前并不發(fā)生危害作用),但是一旦其掌握整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)后,發(fā)動(dòng)的網(wǎng)絡(luò)攻擊往往是致命性的,在該網(wǎng)絡(luò)系統(tǒng)的任何主機(jī)都無法幸免[1]。滲透攻擊目前常用的方法是基于攻擊圖的滲透測試模型攻擊圖方法PTGM(Penetration Testing Graph Modal)。
滲透攻擊圖的自動(dòng)生成方法有很多,參考文獻(xiàn)[2] 通過定義攻擊模式和prolog規(guī)則來自動(dòng)生成子攻擊和攻擊圖;參考文獻(xiàn)[3]建立了網(wǎng)絡(luò)攻擊過程中的貪心策略,并給出該策略的約束攻擊圖生成過程;而參考文獻(xiàn)[4]則利用被測試目標(biāo)網(wǎng)絡(luò)脆弱點(diǎn)間的邏輯關(guān)系,結(jié)合原子攻擊知識(shí)庫,給出一種滲透攻擊圖自動(dòng)生成方法。此外,基于生成的滲透攻擊圖,一些學(xué)者還研究了滲透攻擊圖的優(yōu)化問題,如參考文獻(xiàn)[5]將蟻群算法應(yīng)用于攻擊模型的安全分析中,獲取最小關(guān)鍵攻擊集的優(yōu)化解;參考文獻(xiàn)[6,7]通過將攻擊圖與通用安全脆弱點(diǎn)評(píng)估系統(tǒng)相結(jié)合,刪除攻擊圖中的不可達(dá)路徑,簡化了攻擊圖。
傳統(tǒng)的網(wǎng)絡(luò)滲透攻擊研究對(duì)異構(gòu)網(wǎng)絡(luò)環(huán)境下的攻擊研究不足,同時(shí)研究重心過多地側(cè)重于被動(dòng)防護(hù)研究,而對(duì)主動(dòng)防御研究不足,導(dǎo)致網(wǎng)絡(luò)安全研究一直處于被動(dòng)挨打、疲于應(yīng)對(duì)的局面。通過在網(wǎng)絡(luò)滲透攻擊研究中引入拓展的迷宮路徑算法,為異構(gòu)網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)安全研究提供了主動(dòng)應(yīng)對(duì)策略與方法。通過引入拓展的迷宮路徑算法,對(duì)任意復(fù)雜網(wǎng)絡(luò)中的關(guān)鍵路徑、關(guān)鍵節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)安全策略分析與防護(hù),解決整個(gè)網(wǎng)絡(luò)安全問題提供了切實(shí)可行的解決方案。
為了提高對(duì)網(wǎng)絡(luò)滲透攻擊的研究,以便對(duì)網(wǎng)絡(luò)滲透攻擊進(jìn)行預(yù)防和處理,以計(jì)算機(jī)算法設(shè)計(jì)與分析中的迷宮路徑算法為藍(lán)本,通過對(duì)其進(jìn)行擴(kuò)展,嘗試對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行遍歷,在此基礎(chǔ)上利用網(wǎng)絡(luò)攻擊方法,實(shí)現(xiàn)網(wǎng)絡(luò)滲透攻擊。
迷宮路徑算法(Algorithm of Maze’s Path)是一種在已知迷宮存在一條從入口到出口的通路的前提下,尋找到該條迷宮具體路徑的算法。迷宮路徑算法對(duì)于未知圖的遍歷具有極大的優(yōu)越性,它可以通過簡單有效的算法,在較短時(shí)間內(nèi)尋找到可行路徑。該算法在具體實(shí)現(xiàn)時(shí),用二維向量對(duì)迷宮進(jìn)行表示。迷宮的入口處一般用向量(0,0)表示,迷宮的出口用二維向量(m,n)表示。探索者從(0,0)出發(fā),每次只能向前(有4個(gè)可選方向,分別是:正北、正南、正東、正西)行進(jìn)一步,前進(jìn)完成后,探索者所在位置由行進(jìn)前的(i,j)變更為行進(jìn)后的(i,j+1)、(i,j-1)、(i+1,j)、(i-1,j)(上述4個(gè)位置依次對(duì)應(yīng)向正北、向正南、向正東、向正西前進(jìn))。在行進(jìn)前同時(shí)記錄(將信息記錄到歷史行進(jìn)記錄中)行進(jìn)前所在位置和行進(jìn)的具體方向,當(dāng)行動(dòng)后的位置可達(dá)后,記錄行動(dòng)后的位置。依此順序前進(jìn),當(dāng)隨機(jī)選取的行進(jìn)方向無法抵達(dá)時(shí),查找歷史行進(jìn)記錄,回退到上一步所在的位置,并按照行進(jìn)歷史記錄記載,去探索當(dāng)前位置未探索的方向。按照這種思路,對(duì)整個(gè)位置迷宮進(jìn)行遍歷,直到找到出口位置。由于事先已經(jīng)確定該迷宮存在至少一條明確的由入口到出口的通路,所以迷宮路徑算法必然能夠?qū)ふ业缴鲜雎窂街械囊粭l。
1 基于拓展迷宮路徑算法的網(wǎng)絡(luò)滲透實(shí)現(xiàn)
在進(jìn)行網(wǎng)絡(luò)滲透時(shí),網(wǎng)絡(luò)滲透的最初切入點(diǎn)就可以看做迷宮路徑算法中的迷宮入口(Entrance),而迷宮出口(Exit)則是此次切入點(diǎn)所能直接到達(dá)的目的地址,此處所說的直接到達(dá)是指通過切入點(diǎn)路由表顯示的目的地址。用符號(hào)A1表示初始切入點(diǎn),從切入點(diǎn)A1的路由表中可以獲取該主機(jī)所能達(dá)到的多個(gè)目標(biāo)地址,假定分別為B1、B2、…、Bm??梢噪S機(jī)選取上述目標(biāo)地址中的任意一個(gè)作為前進(jìn)的方向(為了便于說明,在此選取B1作為前進(jìn)目標(biāo)),將前進(jìn)信息和當(dāng)前位置信息計(jì)入行動(dòng)歷史記錄中,由此歷史行動(dòng)記錄已經(jīng)構(gòu)成,記為H1。此時(shí),H1=(A1,B1)。由于網(wǎng)絡(luò)結(jié)構(gòu)不同于標(biāo)準(zhǔn)迷宮,在任何一個(gè)節(jié)點(diǎn),理論上均有多個(gè)可選方向(大于4個(gè)方向)作為下一步前進(jìn)方向,因此需要構(gòu)造一個(gè)行動(dòng)方向可選記錄集,記為D1。此時(shí),D1=(B2,B3,…,Bm),在此未記錄B1是因?yàn)樵摴?jié)點(diǎn)已經(jīng)被選擇進(jìn)行了滲透測試,所以不需要進(jìn)行標(biāo)記。當(dāng)B1方向可達(dá)后,用網(wǎng)絡(luò)偵聽工具和網(wǎng)絡(luò)攻擊工具破解B1主機(jī),以此獲得該主機(jī)的最高權(quán)限。當(dāng)上述目標(biāo)均實(shí)現(xiàn)后,獲取B1主機(jī)的路由信息表,假定路由信息表中顯示的目標(biāo)地址為C1、C2、…、Cl。按照上述方法,隨機(jī)選取上述目標(biāo)地址中的任意一個(gè)作為前進(jìn)的方向(為了便于說明,在此選取C1作為前進(jìn)目標(biāo)),將前進(jìn)信息和當(dāng)前位置信息計(jì)入行動(dòng)歷史記錄中,此時(shí)歷史行動(dòng)記錄H1已經(jīng)由H1=(A1,B1)變更為H1=(A1,B1,C1)。與此同時(shí),行動(dòng)方向可選記錄集為(D1,D2)。
在此時(shí),D2=(C2,C3,…,Cl)。如果C1點(diǎn)依然方向可達(dá),且用網(wǎng)絡(luò)偵聽工具和網(wǎng)絡(luò)攻擊工具破解C1主機(jī)成功,以此獲得該主機(jī)的最高權(quán)限后,依上述步驟繼續(xù)進(jìn)行滲透。如果在限定的時(shí)間內(nèi),C1無法完成上述操作,則利用類似迷宮路徑算法的回退機(jī)制進(jìn)行網(wǎng)絡(luò)滲透回退,通過結(jié)合歷史行動(dòng)記錄集H1和行動(dòng)方向可選記錄集(D1,D2),確定回退后進(jìn)行網(wǎng)絡(luò)滲透的下一目標(biāo)主機(jī)地址。由于網(wǎng)絡(luò)中主機(jī)的安全性能、漏洞狀態(tài)并不一致,且主機(jī)的口令、密鑰強(qiáng)度存在明顯的差別,所以只要同一網(wǎng)段中的一臺(tái)主機(jī)存在安全隱患,均能完成對(duì)此網(wǎng)段上一級(jí)網(wǎng)絡(luò)連接的滲透工作。利用此拓展的迷宮路徑算法就完成了從初始切入點(diǎn)A1開始的最遠(yuǎn)目標(biāo)地址滲透工作。由于整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)不同于迷宮結(jié)構(gòu),網(wǎng)絡(luò)中并不是任意兩臺(tái)主機(jī)之間都是彼此可達(dá)的。選擇已經(jīng)滲透成功的任意一臺(tái)非A1主機(jī)作為初始切入點(diǎn),重復(fù)利用上述網(wǎng)絡(luò)滲透技術(shù)進(jìn)行網(wǎng)絡(luò)滲透,即可完成基于變更后的主機(jī)地址的網(wǎng)絡(luò)滲透工作。利用這種拓展的迷宮路徑算法,基本完成了整個(gè)網(wǎng)絡(luò)拓?fù)涞臐B透遍歷。
但是該算法存在一個(gè)明顯的問題就是網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的重復(fù)、無效信息過多,不利于后期進(jìn)行網(wǎng)絡(luò)攻擊。以網(wǎng)絡(luò)中任意一對(duì)網(wǎng)絡(luò)主機(jī)為例,假定該成對(duì)網(wǎng)絡(luò)主機(jī)分別為A1、P1,那么從A1出發(fā)到達(dá)P1的通路與從P1出發(fā)到達(dá)A1的通路可能大相徑庭。需要確定以哪一條通路作為行動(dòng)路線。另外,在A1出發(fā)到達(dá)P1的通路或從P1出發(fā)到達(dá)A1的通路上,是否存在冗余路徑也需要確定。只有將冗余路徑刪除并保留最短路徑,在后期進(jìn)行網(wǎng)絡(luò)攻擊時(shí)才能在最短時(shí)間內(nèi)真正有效地達(dá)到所需的目的點(diǎn)?;谏鲜鋈毕?,利用圖論中的相關(guān)理論與方法對(duì)拓展算法進(jìn)行完善。通過這種方式將現(xiàn)實(shí)中的離散數(shù)據(jù)進(jìn)行了數(shù)學(xué)意義上的整合處理。
2 基于圖論算法的網(wǎng)絡(luò)滲透完全圖的生成
在圖論理論中,有一個(gè)非常重要的思想就是極大連通子圖的概念。用圖論語言描述就是:設(shè)圖G=(V,E),其中變量V代表頂點(diǎn)集合,變量E代表邊集合,變量G代表圖。如果存在另外一個(gè)圖G1=(V1,E1),其中變量V1代表頂點(diǎn)集合,且V1?哿V;變量E1代表邊集合,且E1?哿E;變量G1代表圖。若圖G1中的任意兩點(diǎn)之間是連通的,且圖G1不存在回路,此時(shí)向圖G1中添加任何一個(gè)頂點(diǎn)或邊,圖G1將出現(xiàn)回路或者變?yōu)榉沁B通,那么圖G1就稱為圖G的極大連通子圖。
按照上述理論,需要在此構(gòu)造網(wǎng)絡(luò)滲透圖的極大連通子圖,通過將若干個(gè)極大連通子圖合并,來實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)滲透圖的最小覆蓋訴求?;谏鲜鱿敕ǎ紫葘?duì)拓展算法進(jìn)行改進(jìn)。在每一步,完成對(duì)下一步主機(jī)的完全滲透工作后,記錄從滲透成功節(jié)點(diǎn)到上一步節(jié)點(diǎn)的物理到達(dá)時(shí)間,以此時(shí)間作為該條通路的路徑長度。假如當(dāng)前地址是A1,而目標(biāo)地址是B1,當(dāng)成功獲取B1的超級(jí)操作權(quán)限后,在B1主機(jī)上測試到達(dá)A1主機(jī)的時(shí)長,以此作為通路A1 B1的路徑長度。用此方法,對(duì)成功獲取權(quán)限后的主機(jī)進(jìn)行路徑長度測量,并將此信息記錄在路徑信息歷史集合DI中。隨著整個(gè)網(wǎng)絡(luò)拓?fù)錆B透的完成,得以獲取所有可達(dá)路徑的路徑長度信息。利用獲取的所有節(jié)點(diǎn)信息以及與之對(duì)應(yīng)的節(jié)點(diǎn)間路徑長度信息,重新構(gòu)造一個(gè)圖鄰接矩陣,其具體表述如下:
3 網(wǎng)絡(luò)攻擊分析研究與數(shù)據(jù)網(wǎng)絡(luò)防護(hù)研究
上述內(nèi)容對(duì)未知的網(wǎng)絡(luò)拓?fù)溥M(jìn)行了探索,明確了整個(gè)網(wǎng)絡(luò)結(jié)構(gòu),并在此基礎(chǔ)上完成了對(duì)網(wǎng)絡(luò)拓?fù)涞闹攸c(diǎn)分析,找到了整個(gè)網(wǎng)絡(luò)拓?fù)涞淖疃搪窂剑瑸橄乱徊接嗅槍?duì)性地進(jìn)行防護(hù)網(wǎng)絡(luò)攻擊打下了堅(jiān)實(shí)的基礎(chǔ)。
針對(duì)上述分析中確定的整個(gè)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的最短路徑,將最短路徑中的每一個(gè)節(jié)點(diǎn)確定為關(guān)鍵節(jié)點(diǎn)。在具體的數(shù)據(jù)網(wǎng)絡(luò)中,這些關(guān)鍵節(jié)點(diǎn)就是未來網(wǎng)絡(luò)滲透和網(wǎng)絡(luò)攻擊的主要目標(biāo),對(duì)上述數(shù)據(jù)網(wǎng)絡(luò)的關(guān)鍵節(jié)點(diǎn)主機(jī),需要建立一臺(tái)雙備份服務(wù)器,該主機(jī)負(fù)責(zé)監(jiān)控上述關(guān)鍵節(jié)點(diǎn)主機(jī)的動(dòng)態(tài)信息。具體說來,就是在此服務(wù)器上,存儲(chǔ)上述關(guān)鍵節(jié)點(diǎn)主機(jī)的IP地址及其對(duì)應(yīng)的MAC地址,且形成一一對(duì)應(yīng)的穩(wěn)定關(guān)系。同時(shí)對(duì)整個(gè)網(wǎng)絡(luò)中涉及上述關(guān)鍵節(jié)點(diǎn)主機(jī)的ARP請(qǐng)求進(jìn)行實(shí)時(shí)監(jiān)控,對(duì)于涉及關(guān)鍵節(jié)點(diǎn)主機(jī)發(fā)送的ARP請(qǐng)求,必須與服務(wù)器上的對(duì)應(yīng)信息進(jìn)行自動(dòng)核對(duì)。一旦發(fā)現(xiàn)有與原地址不匹配的ARP請(qǐng)求發(fā)生,立即進(jìn)行系統(tǒng)報(bào)警,同時(shí)定向跟蹤此ARP請(qǐng)求發(fā)生的地址及時(shí)間。并將正確的ARP請(qǐng)求進(jìn)行網(wǎng)絡(luò)廣播傳送,以防止黑客行為的發(fā)生。所有關(guān)鍵節(jié)點(diǎn)主機(jī)要求變更地址的TCP/IP請(qǐng)求,必須提前通過手工報(bào)送的方式實(shí)現(xiàn),不能采取自行更換主機(jī)網(wǎng)卡、主機(jī)IP地址的方式實(shí)現(xiàn)。同理,RARP請(qǐng)求的處理方式與上類似。
通過上述分析研究,對(duì)攻擊網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)分析,從任意出發(fā)點(diǎn)開始,設(shè)定下一步網(wǎng)絡(luò)攻擊的傳播方向。設(shè)定的規(guī)則是根據(jù)當(dāng)前節(jié)點(diǎn)與網(wǎng)絡(luò)上任意可達(dá)節(jié)點(diǎn)之間的最短路徑為其傳播的具體路徑。對(duì)網(wǎng)絡(luò)中任意可達(dá)節(jié)點(diǎn)采取同樣方法進(jìn)行設(shè)定,并確定網(wǎng)絡(luò)攻擊的強(qiáng)度與時(shí)間,由此即可在制定的時(shí)間達(dá)到預(yù)期的網(wǎng)絡(luò)攻擊效果。
基于上述整體方法,任意網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)下的網(wǎng)絡(luò)滲透攻擊均可確定。利用拓展的迷宮路徑算法完成了對(duì)網(wǎng)絡(luò)滲透的初步改善;在此基礎(chǔ)上,利用圖論相關(guān)理論與方法,最終完成了網(wǎng)絡(luò)滲透攻擊的全過程優(yōu)化升級(jí)。通過確定的最短路徑及關(guān)鍵節(jié)點(diǎn),為數(shù)據(jù)網(wǎng)絡(luò)中確立網(wǎng)絡(luò)防御保護(hù)措施的實(shí)施范圍、實(shí)施方式確定了明確的思路。
傳統(tǒng)的網(wǎng)絡(luò)滲透攻擊研究在異構(gòu)網(wǎng)絡(luò)環(huán)境下的攻擊研究不足,同時(shí)研究重心過多地側(cè)重于被動(dòng)防護(hù)研究,而對(duì)主動(dòng)防御研究不足。從而導(dǎo)致網(wǎng)絡(luò)安全研究一直處于被動(dòng)挨打、疲于應(yīng)對(duì)的局面。通過在網(wǎng)絡(luò)滲透攻擊研究中引入拓展的迷宮路徑算法,為異構(gòu)網(wǎng)絡(luò)環(huán)境下的網(wǎng)絡(luò)安全研究提供了主動(dòng)應(yīng)對(duì)策略與方法。本文通過引入拓展的迷宮路徑算法,對(duì)任意復(fù)雜網(wǎng)絡(luò)中的關(guān)鍵路徑、關(guān)鍵節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)安全策略分析、防護(hù),從而為解決整個(gè)網(wǎng)絡(luò)安全問題提供了切實(shí)可行的解決方案。
參考文獻(xiàn)
[1] HAMISI N Y,MVUNGI N H,MFINANGA D A,et al. Intrussion detection by penetration test in an organization network[J].Adaptive Science & Technology,2009:226-231.
[2] 肖竟華,王熠.基于攻擊模式的攻擊圖自動(dòng)生成方法研究[J].計(jì)算機(jī)安全,2008(7):23-25.
[3] 宋舜宏,陸余良,夏陽,等.基于貪心策略的網(wǎng)絡(luò)攻擊圖生成方法[J].計(jì)算機(jī)工程,2011,37(2):126-128.
[4] 崔穎,章麗娟,吳灝.基于攻擊圖的滲透測試方案自動(dòng)生成方法[J].計(jì)算機(jī)應(yīng)用,2010(8):2146-2150.
[5] 金晶,孫東來,陳秀真.基于攻擊圖及蟻群算法的安全評(píng)估[J].信息安全與通信保密,2009(4):79-81.
[6] 祝寧,陳性元,王前.基于效果的網(wǎng)絡(luò)攻擊分類方法[J].計(jì)算機(jī)應(yīng)用,2006(S1):162-164.
[7] 葉云,徐錫山,賈焰,等.基于攻擊圖的網(wǎng)絡(luò)安全概率計(jì)算方法[J].計(jì)算機(jī)學(xué)報(bào),2010,33(10):164-167.