新四季網

一種基於軟體定義網絡的安全防禦系統及防禦方法

2023-10-23 22:08:32

一種基於軟體定義網絡的安全防禦系統及防禦方法
【專利摘要】本發明涉及一種計算機安全【技術領域】,特別涉及一種基於軟體定義網絡的安全防禦系統及防禦方法,包括:網絡控制模塊、攻擊分析模塊、進程檢測模塊以及網絡流量檢測模塊。網絡控制模塊攔截虛擬機之間的網絡數據包並將獲取的流量信息轉發至攻擊分析模塊,攻擊分析模塊接收來自網絡控制模塊的虛擬機間的流量信息,並調用進程檢測模塊檢測進程是否可疑,必要時調用網絡流量檢測模塊對可疑流量進行更深層的檢測。本發明針對當前虛擬機伺服器中用於各虛擬機之間流量轉發的虛擬交換機進行擴展,提出一個能夠攔截、檢測、重定向流量的縱深防禦系統,能夠達到預防並制止網絡集群內虛擬機之間攻擊行為的目的。
【專利說明】一種基於軟體定義網絡的安全防禦系統及防禦方法
[0001]
【技術領域】
[0002]本發明涉及的是一種計算機安全領域的防禦系統,具體是一種基於軟體定義網絡的安全防禦系統及防禦方法。
【背景技術】
[0003]現有很多著重於檢測被感染虛擬機並保護雲中其他虛擬機不受其攻擊的技術,如防火牆和入侵檢測系統(Intrusion Detection System, IDS)。在網絡層,傳統的網絡防火牆和基於網絡的入侵檢測系統(Network-based Intrusion Detection System, NIDS)建立在「被監控網絡內——防火牆外」模式下。此種模式不適用於被感染虛擬機和攻擊目標處於同一雲主機內部的情況,因為網絡防火牆和NIDS搜集的必須是進出被監控網絡的信息。在主機層,個人防火牆,HIDS,防病毒和防間諜軟體系統等,運行在它們所保護的虛擬機內,使得這些工具很容易被竊取到系統特權的攻擊者破壞。故這些傳統網絡安全技術並不能很好的解決本文所著重解決的問題:及時檢測有害虛擬機,並在其試圖與其他虛擬機進行連接時予以阻止,防止攻擊的發生。
[0004]目前,部分研究在虛擬化技術的基礎上,發展入侵檢測技術來檢測網絡通訊過程中的惡意行為,保障虛擬機的安全。 [0005]Tal Garfinkel等人提出的Livewire系統是一個虛擬化環境下的入侵檢測系統,它將系統放置在被監控虛擬機外。它構建出的入侵檢測系統不僅保留了主機層技術具備的良好系統狀態視圖,也為IDS提供了強大的隔離性。然而,Livewire僅提供了對虛擬機硬體的訪問控制,仍無法阻擋通過網絡流量進行的攻擊。
[0006]ff.Yassin等人提出的一種基於雲計算的框架,稱作「基於雲的入侵檢測服務」(Cloud-based Intrusion Detection Service, CBIDS)。CBIDS 能夠克服傳統入侵檢測技術的不足,例如傳統IDS —般部署在虛擬機內部,易受攻擊;或是部署在被監控虛擬機的同一網絡內,對其他虛擬機可見,也會增加風險。同時,該框架可以嗅探到網絡內任意地方的網絡流量,感興趣的數據包會傳遞到CBIDS中進行深度檢測,然後檢測是否存在惡意行為並產生相應的警告。然而,CBIDS僅能檢測網絡流量並提出警告,卻無法對攻擊行為作出幹預,本身不能阻止攻擊發生。
[0007]Marcos Laureano等人提出的一種入侵檢測方案,從被監控虛擬機外部監控,檢測並阻塞來自虛擬機內運行服務的攻擊。方案包括了入侵檢測機制和響應機制,保證既能檢測出攻擊行為,也能阻止其發生。此方案中,檢測的是主機內虛擬機與外界(主機以外)進行網絡通訊過程中的流量,這些網絡通訊行為由安裝在主機內的防火牆軟體進行管理。因此,響應機制中是通過該防火牆軟體阻塞虛擬機的埠並斷開其與外界的通訊,而不能對同主機內虛擬機與虛擬機間的通訊進行控制。
[0008]而Flavio Lombardi等人提出了另一個安全框架-KvmSec,它是內核為Linux的虛擬機的拓展,旨在增加被監控虛擬機的安全性。KvmSec具有以下幾個特徵:1.對虛擬機透明,從虛擬機很難訪問KvmSec ;2.能收集虛擬機信息並分析,然後做出相應反應;3.能提供虛擬機與主機之間的安全通信。該框架是部署在Linux的主機上的,而且目前僅支持Linux虛擬機。同時,它所能提供的安全通信是Qemu與虛擬機間,即主機與虛擬機間的安全通信,而不提供主機與主機之間、主機內虛擬機與虛擬機之間的安全通信。
[0009]虛擬機監控方面,如高性能輕量級虛擬機監控器TiOChilidae可檢測虛擬機運行狀態,然而側重點不在於對網絡流量的監控上。VMI技術即虛擬機自省技術,是從虛擬機外部分析虛擬機內部狀態的一種方法。基於VMI的虛擬機保護方案將安全保護工具和被監控虛擬機予以隔離,因此無需在被監控虛擬機中安裝任何代理。這一特點使得該方案抵抗攻擊的能力大大增強,不受虛擬機的影響。現有部分研究也採用了此種方法。VMwatcher是另一個利用了 VMI技術的系統,可重建虛擬機內部的語義視圖,從而檢測虛擬機內隱藏的惡意軟體。其缺點是,首先它僅能檢測出惡意軟體的存在,但無法做出反饋;再者,它不能檢測使用直接內核對象操作(Direct Kernel Object Manipulation, DKOM)方式的 rootkit。Antfarm是一個基於虛擬機監視器實現的在虛擬機外部的監控系統,它通過監控客戶機作業系統與其內存管理結構之間的低層次交互來追蹤虛擬機內進程的活動。Lycosid是一個基於虛擬機監視器的隱藏進程檢測識別的工具。它利用了 Antfarm來獲取虛擬機內進程的可信視圖,然後利用交叉視圖方式,與用戶級程序列出的進程進行比較,得出隱藏進程。然而由於利用了用戶級程序的結果,可能由於此結果被篡改而導致誤判。

【發明內容】

[0010]本發明主要是解決現有技術所存在的技術問題;提供了一種通過對虛擬機網絡集群內虛擬機之間的可疑流量進行攔截分析,能夠達到預防並制止網絡集群內虛擬機之間攻擊行為的目的的一種基於軟體定義網絡的安全防禦系統及防禦方法。
[0011]本發明的上述技術問題主要是通過下述技術方案得以解決的:
一種基於軟體定義網絡的安全防禦系統,包括若干臺虛擬機、虛擬機交換機、虛擬機接口模塊、以及一臺openflow交換機;其特徵在於,還包括設置在受保護虛擬機外部的:
一網絡控制模塊:某臺虛擬機經過虛擬機交換機發起的網絡連接請求數據包,會以openflow交換機為介質到達網絡控制模塊,網絡控制模塊記錄下流量的信息,且虛擬機交換機中沒有該網絡連接請求相應的流表項;如果數據包的協議高於網絡層,則查看目標物理地址是否在虛擬機交換機上有埠,如果有則廣播該包,無則生成流表項並轉發到目的地;如果數據包協議不高於網絡層,則網絡控制模塊將發送網絡連接請求的datapath id、源地址、源埠信息發送出;
一攻擊分析模塊:接受在數據包協議不高於網絡層,由網絡控制模塊發送的網絡連接請求數據包的datapath id、源地址、源埠 ;並調用進程檢測模塊和虛擬機接口模塊獲取發起請求的虛擬機的信息,並將判定結果返回給網絡控制模塊並由網絡控制模塊做出對策:
判定一:若判定為惡意流量,則生成流表項並丟包;若判定不是惡意流量則生成流表項並送往原目的地;
判定二:若無法判斷是否惡意,則生成流表項並將數據包重定向到網絡流量檢測模塊處;
一進程檢測模塊:進行進程檢測並將進程檢測結果發送給攻擊分析模塊,具體是:首先利用虛擬機接口模塊尋找虛擬機內的活動進程鏈,在此之前,需要找到Windows加載的內核模塊鍊表表頭,然後遍歷內核模塊鍊表找出ntoskrnl.exe ;找到作業系統內核文件ntoskrnl.exe以及其加載到內存中的基地址後,通過分析ntoskrnl.exe的PE文件,在其中的.edata節的導出地址表中得到PsInitialSystemProcess的相對虛擬地址;PsInitialSystemProcess是指向系統進程的EPR0CESS結構的指針,其在內存中的虛擬地址VA由VA=RVA+BaseAddress得出;在Windows中,活動進程的EPR0CESS結構會相互連接成一個雙向循環鍊表,故得到PsInitialSystemProcess地址並尋找到system的EPR0CESS後,即可確定活動進程鏈,從而分析隱藏進程以及檢測網絡狀態,提供進程相關信息給攻擊分析模塊;
一網絡流量檢測模塊:接收攻擊分析模塊發送的數據包,並進行深層檢查,若判斷為正常流量,則直接正常轉發到原目的地並生成對應的流表項,若判定為惡意流量則生成流表項並丟包;本框架的工作在於對網絡流量的捕獲以及路由控制,而不在於改良現有的流量檢測算法,因此本模塊直接利用了開源工具snort,將snort運行在in-1 ine模式下,實行數據包檢測。
[0012]一種基於軟體定義網絡的安全防禦方法,其特徵在於,包括以下步驟:
步驟1,在主機外接網絡控制模塊,使攻擊分析模塊控制網絡控制模塊;
步驟2,某臺虛擬機發起網絡連接請求經過虛擬交換機時,若有相應的流表項則按照流表項轉發,若虛擬交換機中沒有相應的流表項,則虛擬交換機會將流量發送給網絡控制模塊;
步驟3,網絡控制模塊記錄下流量的信息並轉發給攻擊分析模塊,攻擊分析模塊調用進程檢測模塊來獲取發起請求的虛擬機的信息,進程檢測模塊可以判斷發起者虛擬機內所有進程的安全狀態;網絡控制模塊基於開源網絡控制器增加了一個自循環避免環節,防止廣播包在網絡流量檢測模塊和虛擬交換機之間循環;
步驟4,若攻擊分析模塊的決策斷定發起網絡請求的進程是可疑的,則攻擊分析模塊將會向網絡控制模塊發起命令,對於該進程或該進程所屬的虛擬機所發出的所有流量,都將在網絡控制模塊的控制下被虛擬交換機送至網絡流量檢測模塊進行判斷;若判斷結果為安全,則轉向原目的地;若攻擊分析模塊的決策斷定發起請求的進程為有害,則直接丟包;在此若只針對該進程發出的流量進行重定向,可以控制整個系統的開銷;若針對該進程所屬的虛擬機發出的所有流量都進行重定向,將會增大開銷來保證系統的安全性。
[0013]在上述的一種基於軟體定義網絡的安全防禦方法,網絡流量檢測模塊包括兩個被添加到被監控網絡所屬的虛擬交換機上的虛擬網卡,並設置成混雜模式用來嗅探網絡流量;同時,配置網絡流量檢測模塊其中一個虛擬網卡僅作為接收流量的入口,另一個網卡僅作為正常流量的出口 ;在這種狀態下,廣播流量易引起自循環,因為廣播流量會發送到每個虛擬機中,當此流量進入到網絡流量檢測模塊入口,網絡流量檢測模塊會判斷是否正常,若為正常,便讓其通過出口又重回到虛擬交換機上重新進行廣播;網絡流量檢測模塊包括一個自循環避免步驟,具體操作如下:
如果數據包不是產生於虛擬交換機的埠,則認為該數據包不合法,丟棄;若數據包產生於虛擬交換機的埠且目標物理地址為空,則觀察數據包的源地址和目標地址;如果源地址和目標地址同為網絡流量監測模塊,則認為該包為自循環包,遂丟棄;若不為自循環包,則執行廣播操作;此處網絡流量檢測模塊是使用的開源軟體snort。
[0014]在上述的一種基於軟體定義網絡的安全防禦方法,進程檢測模塊進行檢測的具體方法是:首先利用虛擬機接口模塊尋找虛擬機內的活動進程鏈;在此之前,需要找到Windows加載的內核模塊鍊表表頭,然後遍歷內核模塊鍊表找出ntoskrnl.exe ;找到作業系統內核文件ntoskrnl.exe以及其加載到內存中的基地址後,通過分析ntoskrnl.exe的PE文件,在其中的.edata節的導出地址表中得到PsInitialSystemProcess的相對虛擬地址!PsInitialSystemProcess是指向系統進程的EPR0CESS結構的指針,其在內存中的虛擬地址VA可由VA=RVA+BaseAddress計算得出;在Windows中,活動進程的EPR0CESS結構會相互連接成一個雙向循環鍊表,故得到PsInitialSystemProcess地址並尋找到system的EPR0CESS後,即可確定活動進程鏈,從而分析隱藏進程以及檢測網絡狀態,提供進程相關信息給給攻擊分析模塊;包括以下步驟
步驟4.1,當網絡控制模塊接收到來自虛擬交換機的流量時,會記錄下該虛擬交換機的datapath ID以及發送數據包的虛擬機對應在虛擬交換機上的虛擬網卡號和具體發包的進程所使用的埠號;
步驟4.2,OPENFLOW交換機根據datapath ID,確定虛擬交換機所屬的虛擬機集群; 步驟4.3,虛擬交換機根據數據包來源的ofport,確定該數據包來源於何虛擬機;
步驟4.4,為了了解具 體發送數據包的進程,則調用進程檢測模塊和虛擬機接口模塊,列出該虛擬機內的所有進程,以及進程所使用的網絡埠 ;
步驟4.5,將步驟4.1記錄的source port與步驟4.4中的所有進程的網絡埠號--
比對,找到符合的進程號pid,再將虛擬機的ID和進程的pid返回給攻擊分析器;
步驟4.6,攻擊分析模塊通過進程檢測模塊獲取該虛擬機以及該進程的安全信息並進行分析,進而在先驗知識幫助下做出決策;可疑進程列表和惡意進程列表是可以動態更新的,因為攻擊分析模塊每次得到進程檢測模塊的反饋後,若確認某進程可疑或惡意,便會更新這兩個列表;
步驟4.7,若判定為惡意進程,則攻擊分析模塊會終止該進程與其他虛擬機的進程的通訊行為;若可疑則重定向它發出的流量到網絡流量檢測系統處檢查;若正常,則按正常程序進行轉發。
[0015]因此,本發明具有如下優點:1、利用了網絡交換模型OpenFlow構建可編程網絡,能夠及時捕獲可疑或惡意流量,反向定位發起流量的虛擬機和進程,利用隱藏進程檢測和進程網絡信息獲取等安全技術確定流量的安全性,運用網絡的可編程性對特定進程發起的流量進行控制,保證網絡服務質量的同時,有效阻止了虛擬機網絡集群中虛擬機間惡意行為的擴散,保護了系統安全;2、本系統涉及到兩個方面的流量監控,一為進程級,一為虛擬機級。進程級別的流量監控相對於虛擬機級別的流量監控來說,可以減少對發送流量的虛擬機的幹擾。而虛擬機級別的流量監控則會更廣泛的監控整個虛擬機內的進程狀況。
【專利附圖】

【附圖說明】
[0016]附圖1為本發明的系統架構圖。[0017]附圖2為網絡控制模塊工作流程圖。
[0018]附圖3為攻擊分析模塊的工作流程圖。
[0019]附圖4為進程檢測模塊和虛擬機接口模塊結構圖。
【具體實施方式】
[0020]下面通過實施例,並結合附圖,對本發明的技術方案作進一步具體的說明。
[0021]實施例:
下面對本發明的實施例作詳細說明,本實施例在以本發明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護範圍不限於下述的實施例。
[0022]如圖1所示,本實施例包括:網絡控制模塊、攻擊分析模塊、進程檢測模塊以及網絡流量檢測系統,其中:網絡控制模塊攔截虛擬機之間的網絡數據包並將獲取的流量信息轉發至攻擊分析模塊,攻擊分析模塊接收來自網絡控制模塊的虛擬機間的流量信息,並調用進程檢測模塊檢測進程是否可疑,必要時(進程可疑時)調用網絡流量檢測模塊對可疑流量進行更深層的檢測。
[0023]網絡控制模塊基於開源流虛擬交換機(Open vSwitch,以下簡稱ovs),將數據轉發功能和路由控制功能分離,增加了對虛擬機之間的數據包進行截獲、修改和重定向的功能。網絡控制模塊基於開源網絡控制器增加了一個自循環避免環節,防止廣播包在網絡流量檢測系統和OVS之間循環。
[0024]攻擊分析模塊具有可編程性,攻擊分析模塊結合進程檢測模塊,實現調用虛擬機接口模塊,檢測隱藏進程以及分析進程的網絡狀態等功能。
[0025]網絡流量檢測模塊(網絡流量監測模塊具體做法是開源軟體snort的工作)被放在非特權域,這樣做的好處是:1、部署動態化和自適應化:NIDS作為一個虛擬應用部署,重配置並動態遷移到任意網段中會變得相對容易,且無需複雜的網絡配置過程。NIDS工作在in-line模式下,檢測並過濾惡意流量,但無需將其配置成一個in-line的網關。2、減輕特權域ro的負載:由於特權域ro需要管理和配置內存和硬體資源的訪問,如ro的負載過大,會嚴重影響VM訪問內存和硬體資源,故應儘可能減輕ro的負載。NIDS的主要作用是對重定向到此處的流量進行深度數據包檢測(Deep Packet Inspection, DPI),這一過程十分耗費資源,故不適合放在H)內。
[0026]另外,NIDS自身的安全也需要考慮在內。儘管NIDS處於UPD內,但是基於以下假設,仍然可以認為它是安全的:
1、假設每臺雲主機的管理器Hypervisor是受保護的,每個VM都能完全相互隔離。惡意的VM不能通過Hypervisor攻擊NIDS。
[0027]2、儘管NIDS處於uro中,能夠從ro中被訪問,但只有雲管理員才能在其中維護軟體的安裝行為以及運行管理任務。假設雲管理員是可信的,那麼NIDS僅能由雲管理員從ro安全的訪問,未授權者無法訪問。
[0028]NIDS對於網絡內的其他VM是不可見的,僅有NC可以通過OVS和OFS的控制通道去控制和主導NIDS的行為。而控制通道是與0VS、OFS傳輸網絡流量的數據通道相互分離的,故控制通道的安全性值得信任。
[0029]本實施例通過以下方式進行工作: 1、當一個網絡連接請求被虛擬機網絡集群中的一臺虛擬機創建,該請求的流量會到達OVS並等候處理。由於這是個新的連接,故OVS內不存在相應的流表項。此時,OVS會將流量發送給網絡控制模塊,向網絡控制模塊詢問處理方式。由於網絡控制模塊在主機外部,與該主機以網絡交換機(OpenFlow Switches, OFS)相連接,故這一過程需要經過0FS。這裡的網絡控制模塊是基於開源軟體floodlight0.9改編的,具有可編程性,可以根據使用者的選擇對流量的去向進行操控。
[0030]2、網絡控制模塊的工作流程如圖2所示。當流量被成功發送到網絡控制模塊後,網絡控制模塊記錄下流量的信息。如果數據包的協議高於網絡層,則查看目標物理地址是否在OVS上有埠,如果有則廣播該包,無則生成流表項並轉發到目的地。如果數據包協議不高於網絡層,則網絡控制模塊將發送流量的datapath id、源地址、源埠發送給攻擊分析模塊,由攻擊分析模塊調用進程檢測模塊和虛擬機模塊獲取發起請求的虛擬機的信息,並做出決策,若判定為惡意流量,則生成流表項並丟包。若無法判斷是否惡意,則生成流表項並重定向到網絡流量檢測系統處進行深層檢查。若判斷為正常流量,則直接正常轉發到原目的地並生成對應的流表項。
[0031]3、攻擊分析模塊的流程如圖3所示。攻擊根系模塊收到來自網絡控制模塊的如何轉發流量的請求,會定位引起警報的虛擬機和具體進程並檢測其安全狀態,從而判斷對於流量請求的具體處理命令。攻擊分析模塊將命令傳遞給網絡控制模塊,由網絡控制模塊控制OVS具體執行流量處理操作,同時將該操作寫進流表。這種處理方式可以在惡意虛擬機試圖與其他虛擬機建立連接的時候及時阻斷連接,保證其他虛擬機不會受到威脅。由於可疑流量需要被重定向到網絡流量檢測系統中進行深層數據包檢測,網絡流量檢測系統的兩個虛擬網卡會被添加到被監控網絡所屬的OVS上,並設置成混雜模式用來嗅探網絡流量。同時,配置網絡流量檢測系統其中一個虛擬網卡僅作為接收流量的入口,另一個網卡僅作為正常流量的出口。在這種狀態下,廣播流量易引起自循環,因為廣播流量會發送到每個虛擬機中,當此流量進入到網絡流量檢測系統入口,網絡流量檢測系統會判斷是否正常,若為正常,便讓其通過出口又重回到OVS上重新進行廣播。因此,需要特別處理這種情況,避免引起自循環,耗費網絡資源。自循環避免算法具體操作如下:如果數據包不是產生於OVS的埠,則認為該數據包不合法,丟棄。若數據包產生於OVS的埠且目標物理地址為空(為廣播數據包),則觀察數據包的源地址和目標地址。如果源地址和目標地址同為網絡流量監測模塊,則認為該包為自循環包,遂丟棄。若不為自循環包,則執行廣播操作。此處網絡流量檢測模塊是使用的開源軟體snort。
[0032]4、進程檢測模塊和虛擬機接口模塊結構如圖4。在進程檢測過程中,進程檢測模塊首先利用虛擬機接口模塊尋找虛擬機內的活動進程鏈。在此之前,需要找到Windows加載的內核模塊鍊表表頭,然後遍歷內核模塊鍊表找出ntoskrnl.exe。找到作業系統內核文件ntoskrnl.exe以及其加載到內存中的基地址後,通過分析ntoskrnl.exe的PE文件,在其中的.edata節的導出地址表中得到PsInitialSystemProcess的相對虛擬地址。PsInitialSystemProcess是指向系統進程的EPR0CESS結構的指針,其在內存中的虛擬地址VA可由VA=RVA+BaseAddress計算得出。在Windows中,活動進程的EPR0CESS結構會相互連接成一個雙向循環鍊表,故得到PsInitialSystemProcess地址並尋找到system的EPR0CESS後,即可確定活動進程鏈,從而分析隱藏進程以及檢測網絡狀態,提供進程相關信息給給攻擊分析模塊。
[0033]以下是進程監控的具體操作步驟:
1,當網絡控制模塊接收到來自ovs的流量時,會記錄下該ovs的datapath ID以及發送數據包的虛擬機對應在ovs上的虛擬網卡號(ofport)和具體發包的進程所使用的埠號(source port)。
[0034]2, OFS根據datapath ID,確定ovs所屬的虛擬機集群。
[0035]3,ovs根據數據包來源的ofport,確定該數據包來源於何虛擬機。
[0036]4,為了了解具體發送數據包的進程,則調用進程檢測模塊和虛擬機接口模塊,列出該虛擬機內的所有進程(包括隱藏進程),以及進程所使用的網絡埠。
[0037]5,將I)記錄的source port與4)中的所有進程的網絡埠號--比對,找到符合
的進程號pid,再將虛擬機的ID和進程的Pid返回給攻擊分析器。
[0038]6,攻擊分析模塊通過進程檢測模塊獲取該虛擬機以及該進程的安全信息並進行分析,進而在先驗知識(可疑進程列表、惡意進程列表)幫助下做出決策。可疑進程列表和惡意進程列表是可以動態更新的,因為攻擊分析模塊每次得到進程檢測模塊的反饋後,若確認某進程可疑或惡意,便會更新這兩個列表。
[0039]7,若判定為惡意進程,則攻擊分析模塊會終止該進程與其他虛擬機的進程的通訊行為;若可疑則重定向它發出的流量到網絡流量檢測系統處檢查;若正常,則按正常程序進行轉發。
[0040]本文中所描述的具體實施例僅僅是對本發明精神作舉例說明。本發明所屬【技術領域】的技術人員可以對所描述的具體實施例做各種各樣的修改或補充或採用類似的方式替代,但並不會偏離本發明的精神或者超越所附權利要求書所定義的範圍。
【權利要求】
1.一種基於軟體定義網絡的安全防禦系統,包括若干臺虛擬機、虛擬機交換機、虛擬機接口模塊、以及一臺openflow交換機;其特徵在於,還包括設置在受保護虛擬機外部的: 一網絡控制模塊:某臺虛擬機經過虛擬機交換機發起的網絡連接請求數據包,會以openflow交換機為介質到達網絡控制模塊,網絡控制模塊記錄下流量的信息,且虛擬機交換機中沒有該網絡連接請求相應的流表項;如果數據包的協議高於網絡層,則查看目標物理地址是否在虛擬機交換機上有埠,如果有則廣播該包,無則生成流表項並轉發到目的地;如果數據包協議不高於網絡層,則網絡控制模塊將發送網絡連接請求的datapath id、源地址、源埠信息發送出; 一攻擊分析模塊:接受在數據包協議不高於網絡層,由網絡控制模塊發送的網絡連接請求數據包的datapath id、源地址、源埠 ;並調用進程檢測模塊和虛擬機接口模塊獲取發起請求的虛擬機的信息,並將判定結果返回給網絡控制模塊並由網絡控制模塊做出對策: 判定一:若判定為惡意流量,則生成流表項並丟包;若判定不是惡意流量則生成流表項並送往原目的地; 判定二:若無法判斷是否惡意,則生成流表項並將數據包重定向到網絡流量檢測模塊處; 一進程檢測模塊:進行進程檢測並將進程檢測結果發送給攻擊分析模塊,具體是:首先利用虛擬機接口模塊尋找虛擬機內的活動進程鏈,在此之前,需要找到Windows加載的內核模塊鍊表表頭 ,然後遍歷內核模塊鍊表找出ntoskrnl.exe ;找到作業系統內核文件ntoskrnl.exe以及其加載到內存中的基地址後,通過分析ntoskrnl.exe的PE文件,在其中的.edata節的導出地址表中得到PsInitialSystemProcess的相對虛擬地址;PsInitialSystemProcess是指向系統進程的EPR0CESS結構的指針,其在內存中的虛擬地址VA由VA=RVA+BaseAddress得出;在Windows中,活動進程的EPR0CESS結構會相互連接成一個雙向循環鍊表,故得到PsInitialSystemProcess地址並尋找到system的EPR0CESS後,即可確定活動進程鏈,從而分析隱藏進程以及檢測網絡狀態,提供進程相關信息給攻擊分析模塊; 一網絡流量檢測模塊:接收攻擊分析模塊發送的數據包,並進行深層檢查,若判斷為正常流量,則直接正常轉發到原目的地並生成對應的流表項,若判定為惡意流量則生成流表項並丟包;本框架的工作在於對網絡流量的捕獲以及路由控制,而不在於改良現有的流量檢測算法,因此本模塊直接利用了開源工具snort,將snort運行在in-line模式下,實行數據包檢測。
2.一種基於軟體定義網絡的安全防禦方法,其特徵在於,包括以下步驟: 步驟1,在主機外接網絡控制模塊,使攻擊分析模塊控制網絡控制模塊; 步驟2,某臺虛擬機發起網絡連接請求經過虛擬交換機時,若有相應的流表項則按照流表項轉發,若虛擬交換機中沒有相應的流表項,則虛擬交換機會將流量發送給網絡控制模塊; 步驟3,網絡控制模塊記錄下流量的信息並轉發給攻擊分析模塊,攻擊分析模塊調用進程檢測模塊來獲取發起請求的虛擬機的信息,進程檢測模塊可以判斷發起者虛擬機內所有進程的安全狀態;網絡控制模炔基於開源網絡控制器增加了一個自循環避免環節,防止廣播包在網絡流量檢測模塊和虛擬交換機之間循環; 步驟4,若攻擊分析模塊的決策斷定發起網絡請求的進程是可疑的,則攻擊分析模塊將會向網絡控制模塊發起命令,對於該進程或該進程所屬的虛擬機所發出的所有流量,都將在網絡控制模塊的控制下被虛擬交換機送至網絡流量檢測模塊進行判斷;若判斷結果為安全,則轉向原目的地;若攻擊分析模塊的決策斷定發起請求的進程為有害,則直接丟包;在此若只針對該進程發出的流量進行重定向,可以控制整個系統的開銷;若針對該進程所屬的虛擬機發出的所有流量都進行重定向,將會增大開銷來保證系統的安全性。
3.根據權利要求2所述的一種基於軟體定義網絡的安全防禦方法,其特徵在於,網絡流量檢測模塊包括兩個被添加到被監控網絡所屬的虛擬交換機上的虛擬網卡,並設置成混雜模式用來嗅探網絡流量;同時,配置網絡流量檢測模塊其中一個虛擬網卡僅作為接收流量的入口,另一個網卡僅作為正常流量的出口 ;在這種狀態下,廣播流量易引起自循環,因為廣播流量會發送到每個虛擬機中,當此流量進入到網絡流量檢測模塊入口,網絡流量檢測模塊會判斷是否正常,若為正常,便讓其通過出口又重回到虛擬交換機上重新進行廣播;網絡流量檢測模塊包括一個自循環避免步驟,具體操作如下: 如果數據包不是產生於虛擬交換機的埠,則認為該數據包不合法,丟棄;若數據包產生於虛擬交換機的埠且目標物理地址為空,則觀察數據包的源地址和目標地址;如果源地址和目標地址同為網絡流量監測模塊,則認為該包為自循環包,遂丟棄;若不為自循環包,則執行廣播操作;此處網絡流量檢測模塊是使用的開源軟體snort。
4.根據權利要求2所述的一種基於軟體定義網絡的安全防禦方法,其特徵在於,進程檢測模塊進行檢測的具體方法是:首先利用虛擬機接口模塊尋找虛擬機內的活動進程鏈;在此之前,需要找到Windows加載的內核模塊鍊表表頭,然後遍歷內核模塊鍊表找出ntoskrnl.exe ;找到作業系統內核文件ntoskrnl.exe以及其加載到內存中的基地址後,通過分析ntoskrnl.exe的PE文件,在其中的.edata節的導出地址表中得到PsInitialSystemProcess 的相對虛擬地址!PsInitialSystemProcess 是指向系統進程的EPR0CESS結構的指針,其在內存中的虛擬地址VA可由VA=RVA+BaseAddress計算得出;在Windows中,活動進程的EPR0CESS結構會相互連接成一個雙向循環鍊表,故得到PsInitialSystemProcess地址並尋找到system的EPR0CESS後,即可確定活動進程鏈,從而分析隱藏進程以及檢測網絡狀態,提供進程相關信息給給攻擊分析模塊;包括以下步驟 步驟4.1,當網絡控制模塊接收到來自虛擬交換機的流量時,會記錄下該虛擬交換機的datapath ID以及發送數據包的虛擬機對應在虛擬交換機上的虛擬網卡號和具體發包的進程所使用的埠號; 步驟4.2,OPENFLOW交換機根據datapath ID,確定虛擬交換機所屬的虛擬機集群; 步驟4.3,虛擬交換機根據數據包來源的ofport,確定該數據包來源於何虛擬機; 步驟4.4,為了了解具體發送數據包的進程,則調用進程檢測模塊和虛擬機接口模塊,列出該虛擬機內的所有進程,以及進程所使用的網絡埠 ; 步驟4.5,將步驟4.1記錄的source port與步驟4.4中的所有進程的網絡埠號--比對,找到符合的進程號pid,再將虛擬機的ID和進程的pid返回給攻擊分析器; 步驟4.6,攻擊分析模塊通過進程檢測模塊獲取該虛擬機以及該進程的安全信息並進行分析,進而在先驗知識幫助下做出決策;可疑進程列表和惡意進程列表是可以動態更新的,因為攻擊分析模塊每次得到進程檢測模塊的反饋後,若確認某進程可疑或惡意,便會更新這兩個列表; 步驟4.7,若判定為惡意進程,則攻擊分析模塊會終止該進程與其他虛擬機的進程的通訊行為;若可疑則重定向它發出的流量到網絡流量檢測系統處檢查;若正常,則按正常程序進行轉發 。
【文檔編號】H04L29/06GK104023034SQ201410287800
【公開日】2014年9月3日 申請日期:2014年6月25日 優先權日:2014年6月25日
【發明者】崔競松, 郭遲, 張萌, 田昌友 申請人:武漢大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀