本發明涉及計算機網絡安全領域,更為具體地,涉及一種基于sdn網絡路徑的訪問控制方法及系統。
背景技術:
隨著計算機網絡的發展,網絡安全形勢變得越來越嚴峻,網絡安全問題也越來越受到國家、企業的重視。傳統的網絡安全威脅模型假設內網的人員和設備都比外網的安全可信得多,網絡安全威脅主要來自網絡外部?;谶@種假設,出現了各種網絡安全設備,如防火墻、入侵檢測設備等,這些設備都是部署在網絡的內部與外部的連接處,用來保證內部網絡的安全。但是據美國cai/fbi關于計算機犯罪及安全調查顯示,有網絡安全問題帶來的損失68%與內部威脅有關;另外,全球調查機構idc的安全統計數據顯示,來自企業內部終端的安全威脅占整個安全威脅的70%以上;近年來發生的“棱鏡門”事件、韓國信用局信用卡信息被盜事件都給各國、各企業和單位敲響了網絡內部威脅的警鐘。要保證網絡的安全,做好對內部威脅的防護也相當重要。
但是當前對內部威脅的防護力度比較小,當前防護內網主機威脅的技術主要是網絡訪問控制技術,網絡訪問控制技術是根據安全策略,限制終端設備對網絡資源的可用性來達到強化專有網絡安全的方法。目前具有代表性的網絡訪問控制技術架構主要有cisco的c-nac架構、microsoft的nap架構和tcg的tnc架構。c-nac、nap和tcg三種網絡訪問控制技術在功能上具有相似性。它們都是為了保證網絡終端的安全接入。當有終端要求接入本地網絡時,需要對終端進行校驗,不僅驗證用戶名、口令、用戶證書等與用戶相關的信息,而且驗證終端是否與管理員預先制定的安全策略保持一致性。但三種技術對用戶的檢測主要集中在用戶接入時,并且對用戶權限的動態調整性差,用戶接入網絡后,如出現非法行為,無法自動調整其訪問網絡的權限。
技術實現要素:
鑒于上述不足,本發明提供一種基于sdn網絡路徑的訪問控制方法及系統,對接入網絡的用戶進行實時的流量監控,在內網中對用戶接入網絡進行認證和授權,建立用戶與服務器之間的網絡路徑,根據用戶的行為證據計算信任度,根據信任度采取針對該用戶的訪問控制策略,保證內網的安全。
為解決上述技術問題,本發明采用如下技術方案:
一種基于sdn網絡路徑選擇的網絡訪問控制方法,步驟包括:
1)用戶訪問某網絡服務時廣播一arp請求,該arp請求由sdn交換機上傳到sdn控制器,sdn控制器判斷發出該arp請求的用戶是否已認證,如否,則要求其進行身份認證;
2)如用戶通過認證,sdn控制器將其認證時所使用的認證信息報給aca,該認證信息包括用戶名、終端mac地址以及用戶終端連接sdn交換機的端口,同時給sdn交換機下發流表f3,該流表能將所有ip數據包上傳到sdn控制器;
3)用戶通過認證后,其arp請求被正常處理,隨之發出的ip數據包上傳到sdn控制器,sdn控制器解析該ip數據包,獲得地址信息并報給aca,該地址信息包括源mac地址、目的mac地址、源ip地址、目的ip地址以及ip數據包中傳輸層端口字段;
4)aca根據上述源mac地址確定發起請求的用戶,并根據用戶的認證信息確定其權限,根據該權限判斷其請求是否合法,如合法,則為該請求建立一條網絡路徑,否則通知sdn控制器生成并下發流表f5,將該請求的數據包丟棄;
5)sdn控制器根據上述網絡路徑信息生成流表f4,并下發到所涉及的sdn交換機上,以建立用戶與服務器之間的網絡路徑;
6)將來自該用戶的所有流量鏡像到流量分析設備上以提取行為證據,并將該行為證據報給aca,aca根據該行為證據計算信任度的值,并根據信任度的值采取針對該用戶的訪問控制策略。
進一步地,初始狀態下網絡中所有用戶的終端均為未注冊狀態,sdn交換機(邊緣交換機)上含有流表f1,該流表將所有到達該sdn交換機的數據包丟棄。
進一步地,用戶在接入網絡之前,其接入的sdn交換機和所連接sdn交換機的端口由系統管理員配置,該配置信息由aca傳輸到sdn控制器;sdn控制器根據該配置信息生成流表f2并下發到sdn交換機,該流表可將端口信息、源mac為配置信息里的mac的終端認證數據包和arp數據包上傳到sdn控制器。
進一步地,用戶進行認證時,系統管理員給aca提供注冊信息,aca將注冊信息傳輸給sdn控制器,sdn控制器給sdn交換機下發流表f2以獲取來自用戶的認證數據包。
進一步地,如用戶未通過認證,則aca通知sdn控制器arp請求非法,并下發流表f5給sdn交換機,以丟棄來自該請求的所有數據包,同時記錄該次非法訪問過程并作為該用戶的行為證據。
進一步地,sdn交換機通過packet_in消息將arp請求上傳到sdn控制器。
進一步地,流表f1、f2、f3、f4、f5的優先級為f5>f4>f3>f2>f1。
進一步地,行為證據包括身份可信度、越權訪問、流量攻擊、畸形數據包攻擊、掃描網絡中主機和端口;信任度包括子信任度和總信任度,子信任度與行為證據一一對應,包括身份安全子信任度、越權訪問安全子信任度、流量安全子信任度、畸形數據包安全子信任度、掃描攻擊安全子信任度。
進一步地,利用層次分析法計算子信任度和總信任度的值。
進一步地,所述根據信任度的值采取針對該用戶的訪問控制策略,是指比較子信任度和總信任度的值是否低于預設的閾值,如低于,則對用戶采取相應的訪問控制策略;訪問控制策略為將不同的安全設備編排進網絡路徑,實現不同訪問控制;包括:
如身份安全子信任度、越權訪問安全子信任度低于閾值,則將用戶身份確認設備編排進網絡路徑;如流量安全子信任度低于閾值,則將流量清洗設備編排進網絡路徑;如畸形數據包安全子信任度低于閾值,則將畸形包清洗設備編排進網絡路徑;如掃描攻擊安全子信任度低于閾值,由于本方案未給越權訪問建立訪問路徑,則系統掃描無效,路徑不變;如總信任度低于閾值,則將用戶進行隔離。
一種基于sdn網絡路徑的訪問控制系統,基于現有sdn架構,包括:
aca(accesscontrolapplication,訪問控制應用):是sdn應用層面應用,能夠通過行為證據計算用戶的信任度,決定訪問控制策略;
sdn控制器:向aca報告數據層信息,接收用戶請求并請求aca進行決策,接收aca訪問控制策略消息并生成流表下發;
sdn交換機:進行數據包的匹配和轉發,為了滿足系統對用戶流量的監控,包括一鏡像流表,用以鏡像來自用戶的所有流量以進行監控,并傳輸到流量分析設備;
流量分析設備:分析用戶的流量,得出用戶的行為證據;
認證服務器:與sdn控制器進行通信,為用戶接入認證服務。
進一步地,aca通過北向接口與sdn控制器進行通信,通過rest接口接收sdn控制器對數據層信息的報告。
sdn是一種新型網絡創新架構,通過將網絡設備控制面與數據面分離開來,實現了對網絡流量的靈活控制,其網絡可編程思想使得網絡變得更加智能。在sdn網絡中部署網絡安全防御設備,并利用sdn牽引流量的優勢,按需將這些設備編排進用戶訪問網絡的路徑形成網絡防御路徑,將訪問控制策略對應到網絡防御路徑。同時,根據用戶行為證據對用戶的信任度進行計算,并根據信任度動態調整網絡防御路徑,實現對內部網絡威脅動態、有效地防御。
通過以上分析可知,可以利用sdn網絡架構來解決對內網威脅防御措施少、力度小的問題,并實時靈活地按需改變網絡路徑,實現動態的網絡訪問控制。
本發明具有如下有益效果:(1)用戶通過接入認證之后,只有在用戶對服務發起訪問并且該請求合法時,才建立相應的網絡鏈路,通過這種方式可以阻止大多數的非授權訪問和掃描攻擊;(2)將傳統用于內外網之間的網絡安全設備部署到網絡內部,按照需要將相應的流量牽引至這些安全設備進行處理,這樣可以保證內網服務的安全和抵御來自內部的威脅;(3)實時分析用戶的信任度,并基于用戶信任度和安全閾值對防御路徑進行實時調整。
附圖說明
圖1是用戶認證流程圖。
圖2是用戶認證之后的路徑控制流程圖。
圖3是根據信任度對用戶訪問路徑進行動態調整的流程圖。
具體實施方式
為使本發明的上述特征和優點能更明顯易懂,下文特舉實施例,并配合所附圖作詳細說明如下。可以理解的是,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明提供一種基于sdn網絡路徑選擇的網絡訪問控制方法及系統,在現有sdn架構的基礎之上,在sdn應用層加入aca,數據層面的所有數據流都由aca來控制,aca通過北向接口與sdn控制器進行通信,sdn控制器通過sdn與數據層進行通信。同時為aca添加了rest接口,sdn控制器可以通過這個接口主動向aca報告數據層面的情況,該系統包括:
(1)aca:是sdn應用層面應用,是整個系統的核心,能夠通過行為證據計算用戶的信任度,決定訪問控制策略;
(2)sdn控制器:主要功能是向aca報告數據層信息,接收用戶請求并請求aca進行決策,接收aca訪問控制策略消息并生成流表下發;
(3)sdn交換機:主要功能和一般sdn網絡中的交換機相同,都是進行數據包的匹配和轉發。為了滿足系統對用戶流量的監控,在用戶所連接的交換機上添加了一條鏡像流表,把來自用戶的所有流量鏡像到sdn交換機的某一端口,然后再傳輸到流量分析設備;
(4)流量分析設備:主要功能是分析用戶的流量,得出用戶的行為證據;
(5)認證服務器:與sdn控制器進行通信,為用戶接入認證服務。
在aca、sdn控制器、sdn交換機、流量分析設備和認證服務器的協同工作下,可以針對用戶的訪問請求自適應地進行相應的處理,并在用戶訪問過程動態調整訪問控制策略。
本方法包括:
(1)初始狀態下網絡中所有的終端為未注冊狀態,邊緣交換機(sdn交換機)上有流表f1,該流表將所有到達邊緣交換機的數據包丟棄。用戶在接入網絡之前,必須由管理員配置終端接入的sdn交換機和所連接sdn交換機的端口,該配置信息由aca傳輸到sdn控制器,sdn控制器收到該配置信息后,據以生成流表f2并下發到sdn交換機,該流表能夠將來自某個端口、源mac為配置信息里面的mac的終端的認證數據包和arp數據包上傳到sdn控制器。
(2)當未認證的用戶嘗試訪問某個網絡中的服務時,用戶將會廣播一個arp請求,查詢目標地址對應的mac地址。arp請求到達sdn交換機之后,sdn交換機根據流表將此arp請求通過packet_in消息上傳到sdn控制器。sdn控制器在處理packet_in消息時,首先會分析發出該arp請求的終端是否已經通過認證,如果沒有,sdn控制器要求該終端進行身份認證。
(3)如果認證成功,sdn控制器將該終端認證時候所使用的用戶名、終端的mac地址以及終端連接邊緣交換機的端口報告給aca。同時,sdn控制器給終端所連接的邊緣交換機下發流表f3,該流表能將所有ip數據包上傳到sdn控制器;如用戶未通過認證,則aca通知sdn控制器arp請求非法,并下發流表f5給sdn交換機,以丟棄來自該請求的所有數據包,同時記錄該次非法訪問過程并作為該用戶的行為證據。
(4)終端認證成功之后,arp請求可以被正常處理,隨之發出的ip數據包可以上傳到sdn控制器,sdn控制器收到該數據包之后進行解析,得到該數據包的地址信息,包括源mac地址、目的mac地址、源ip地址、目的ip地址以及ip數據包中傳輸層端口字段,并報告給aca。
(5)aca收到來自sdn控制器傳來的地址信息,根據源mac地址確定發起請求的終端,并根據該終端的認證信息確定其身份,然后根據身份信息確定其權限來判斷該請求是否合法。如果該請求合法,aca將會為該請求建立一條網絡路徑并將路徑信息傳輸給sdn控制器,否則通知sdn控制器生成并下發流表f5,將該請求的數據包丟棄。
(6)當sdn控制器收到相應的路徑信息,sdn控制器將會根據這些信息生成相應的流表f4(優先級:f5>f4>f3>f2>f1)并下發到所涉及的sdn交換機上,終端與服務器之間的網絡路徑建立完畢。
同時,所有來自該終端的流量都被鏡像到流量分析設備進行行為證據的提取,這些證據定期報告給aca,aca根據證據利用層次分析法計算信任度,并通過信任度決定是否改變針對該終端的訪問控制策略。訪問控制策略是指將不同的安全設備編排進網絡路徑,實現不同訪問控制。
為使本發明的實施例的目的、技術方案和優點更加清楚,下面進一步結合附圖對本發明作詳細描述。
1.圖1是用戶認證流程圖,具體流程包括:所述訪問控制策略為將不同的安全設備編排進網絡路徑,實現不同訪問控制;
(1)用戶注冊階段,系統管理員給aca提供注冊信息,aca將注冊信息傳輸給sdn控制器,sdn控制器給sdn交換機下發允許認證數據包和arp數據包上傳交換機的流表。之后,客戶端發送的arprequest被發送到sdn交換機(步驟1);sdn交換機通過packet_in消息將arprequest上傳到sdn控制器(步驟2);
(2)sdn控制器解析packet_in消息,發現源mac未知,控制器發送一個eap-request/identity消息打包給sdn交換機(步驟3);sdn交換機再將該消息發送到客戶端(步驟4)以觸發認證過程;
(3)客戶端收到eap-request/identity消息,回復一個eap-response/identity(消息中包含要認證的用戶名)發送到sdn交換機(步驟5);sdn交換機再通過packet_in消息打包給sdn控制器(步驟6);
(4)sdn控制器將eap-response/identity報文封裝到radiusaccess-request(eap-response/identity)報文中,發送給認證服務器(步驟7);
(5)認證服務器產生一個challenge即radiusaccess-challenge(eap-response/identity),發給sdn控制器(步驟8);
(6)sdn控制器將radiusaccess-challenge報文發送給sdn交換機,其中包含有eap-request/md5-challenge(步驟9);sdn交換機再發送給客戶端,要求客戶端進行認證(步驟10);
(7)客戶端收到eap-request/md5-challenge報文后,將密碼和challenge做md5算法后的challenged-pass-word,在eap-response/md5-challenge回應給sdn交換機(步驟11);sdn交換機打包到sdn控制器(步驟12);
(8)sdn控制器將challenge,即radiusaccess-request(eap-response/md5-challenge),challengedpassword和用戶名一起送到認證服務器(radius服務器),由認證服務器進行認證(步驟13);
(9)認證服務器根據用戶信息,做md5算法,判斷用戶是否合法,然后回應認證成功/失敗報文radiusaccess-accept(eap-success)/radiusaccess-reject(eap-failed)到sdn控制器(步驟14);認證成功,sdn控制器將相關的mac加入到一個acl中,同時將eap_success/eap-failed消息打包發送給sdn交換機(步驟15);sdn交換機將該消息發送給客戶端(步驟16)。
2.圖2是用戶認證之后的路徑控制流程圖,具體流程包括:
(1)認證通過之后,sdn控制器給終端所連接的邊緣交換機下發流表f3,該流表能將所有ip數據包上傳到sdn控制器,使得來自該客戶端且沒有流表匹配的ip數據包將會上傳到sdn控制器。
(2)sdn控制器將會分析該請求數據包,并將相關信息發送給aca,aca根據用戶的權限決定針對該用戶的訪問控制策略,決定是否能讓該用戶訪問該服務。
(3)如果請求是被允許的,aca選擇一條合理的路徑并告知sdn控制器下發流表f4。否則,aca通知sdn控制器該請求非法,并下發流表f5將所有的該請求的數據包丟棄。在這個過程中,aca將會記住這次非法訪問過程并將其作為用戶信任度計算的依據。通過這種方式,可以有效禁止用戶的越權訪問行為。另外,如果某個客戶端試圖掃描網絡中的主機或主機的端口,該客戶端只能與其權限范圍內的主機和服務建立連接,這樣可以有效防止主機和端口掃描。
3.圖3是根據信任度對用戶訪問路徑進行動態調整的流程圖,具體流程包括:
(1)根據常見的內部威脅類型,將用戶信任度分解為5個子信任度,即身份安全子信任度、越權訪問安全子信任度、流量安全子信任度、畸形數據包安全子信任度、掃描攻擊安全子信任度。身份安全子信任度主要代表用戶身份的可信程度;越權訪問安全子信任度主要代表越權訪問的嚴重程度;流量安全子信任度主要代表用戶發動流量型攻擊的可能性;畸形數據包安全子信任度代表用戶發動畸形數據包攻擊的可能性;掃描攻擊安全子信任度代表用戶掃描網絡中主機和端口的可能性。
(2)通過aca利用層次分析法計算信任度的值,具體是計算子信任度和總信任度的值。
(3)根據信任度值與設定的安全閾值確定信任度的值是否低于預設閾值,如果是,就給該用戶訪問路徑中添加一個或多個安全設備,使得用戶的流量到達服務器之前對其進行安全處理,降低甚至消除惡意流量對服務器的影響。
具體包括:如身份安全子信任度、越權訪問安全子信任度低于閾值,則將用戶身份確認設備編排進網絡路徑;如流量安全子信任度低于閾值,則將流量清洗設備編排進網絡路徑;如畸形數據包安全子信任度低于閾值,則將畸形包清洗設備編排進網絡路徑;如掃描攻擊安全子信任度低于閾值,由于本方案未給越權訪問建立訪問路徑,則系統掃描無效,路徑不變;如總信任度低于閾值,則將用戶進行隔離。
信任度的閾值由系統管理員根據系統安全策略進行確定,系統安全策略允許信任度證據的臨界點計算出的信任度的值即為相應的閾值。
(4)定期監控行為證據并計算信任度,據以確定是否需要對路徑進行變更。
通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發明在sdn中的實現過程,以上實施例僅用以說明本發明的技術方案而非對其進行限制,本領域的普通技術人員可以對本發明的技術方案進行修改或者等同替換,而不脫離本發明的精神和范圍,本發明的保護范圍應以權利要求書所述為準。