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