魏 偉,秦 華,劉文懋
(1.北京工業(yè)大學 信息學部,北京 100124;2.北京神州綠盟科技股份有限公司 創(chuàng)新中心,北京 100089)
隨著云平臺的不斷普及,加大了數據泄露和網絡遭受攻擊的風險,一方面對于跨網絡訪問(即南北向流量)來說,需要解決的問題是如何應對來自內部虛擬環(huán)境的錯綜復雜的流量。內部環(huán)境會多個租戶,每個租戶又可能會同時擁有多個網絡。另一方面,對于子網內部流量(即東西向流量),用戶資源和敏感數據分布在多個不同的計算節(jié)點中,計算節(jié)點內部虛擬機之間存在大量的二層流量交換,這種二層交換通常會通過GRE或VxLAN隧道傳輸,這樣對于外部的物理防火墻來說是透明的,只能通過虛擬化技術將虛擬防火墻引入二層環(huán)境解決。應對租戶內部網絡虛擬機不同的業(yè)務場景和多樣的安全需求,如何進行更細粒度的訪問控制是一個亟待解決的關鍵問題。
傳統(tǒng)的網絡安全解決方案已經不能滿足云環(huán)境下的要求,如何適應虛擬化環(huán)境,這讓信息安全面臨巨大的挑戰(zhàn)。在云計算時代,虛擬化已經成為安全產品的必備功能,研究針對云環(huán)境虛擬化的安全防護解決方案迫在眉睫。
Gartner率先提出了軟件定義安全(software defined security),提出將傳統(tǒng)的安全設備通過虛擬化技術形成虛擬化安全資源池,在上層統(tǒng)一通過軟件定義方式進行自動化的業(yè)務編排和資源管理,以此實現一種靈活的安全防護框架。軟件定義與安全的結合現已成為業(yè)界的前沿發(fā)展熱點。近年來,在訪問控制的研究中,出現了不少新的模型,如Gartner提出的自適應訪問控制(adaptive access control)[6]模型,CSA的軟件定義邊界(software defined peri-meter,SDP)[7],等等,它們與以往基于角色的訪問控制(role based access control,RBAC)不同,通過軟件定義的方式,新模型提高了控制的靈活性,還可提供更清晰的認證語義和更豐富的訪問控制決策。總之,各種傳統(tǒng)訪問控制模型通過主客體和上下文環(huán)境的各種因素,綜合決策系統(tǒng)內資源的訪問控制。但是云環(huán)境較為復雜,要求靈活度更高,控制粒度更細,還必須實現在云環(huán)境中的集中控制。所以必須要研究新的訪問控制模型來適應云環(huán)境。
OpenStack中的Neutron項目主要實現了云環(huán)境中的網絡虛擬化功能,它現有OVS、linux bridge和SDN等多種實現機制,可實現GRE、VxLAN、VLAN與flat network這4種類型的網絡,基本滿足了現代云計算環(huán)境的網絡功能需求。
如圖1所示,在neutron原生的L3層網絡,在網絡節(jié)點通過命名空間(namespace)隔離租戶的三層網絡流量,命名空間qrouter內部使用iptables實現路由轉發(fā)、SNAT地址轉換、floating IP等功能,還實現了簡單的防火墻即服務(firewall as a service,FWaaS)。其通過開放的API向防火墻下發(fā)安全策略。FWaaS主要用來控制云環(huán)境中的南北向流量。Neutron為FWaaS定義了一套API,用于管理訪問控制服務及其策略,可用于自動化的防火墻業(yè)務上線。
如圖2所示的Neutron原生二層網絡實現了VLAN網絡類型,在虛擬機到虛擬交換機之間,數據流量會經過qbr、br-int等虛擬網絡設備,虛擬設備之間采用TAP、Veth pair等手段邏輯鏈接,qbr是一個支持iptables實現的Linux bridge設備,以此實現簡單的安全組(security group)。br-int是由OpenVSwitch實現的虛擬交換機,它的主要功能是將這一臺物理設備上的所有虛擬機連接在一起,還通過L2-agent向虛擬交換機下發(fā)流表的方法,用vlan id標識不同租戶間的流量,實現簡單的二層租戶網絡流量隔離。
圖1 Neutron原生三層網絡
Neutron提供了良好的擴展性,我們可通過定制相應agent與driver的方法,加固neutron的安全能力,實現更完善的訪問控制。
云計算環(huán)境可以分為內外兩個部分:云計算內部環(huán)境是虛擬的SDN網絡,外部環(huán)境為虛擬化環(huán)境外的傳統(tǒng)物理網絡環(huán)境。訪問控制框架必須覆蓋內外兩個環(huán)境的融合網絡,形成統(tǒng)一的訪問控制策略。以此為依據,本文設計了如圖3所示的訪問控制框架,重點解決云環(huán)境內部的訪問控制問題。
圖3 面向云環(huán)境的訪問控制框架
Neutron網絡節(jié)點通過命名空間(Namespace)隔離不同租戶的流量,命名空間內部使用iptables實現NAT和訪問控制功能。iptables可以定義多條規(guī)則,形成規(guī)則鏈,共同發(fā)揮作用,還可以將多條規(guī)則鏈組成一個列表,實現某一方面的訪問控制功能。
如圖4所示,當一個數據包要訪問某個客體資源時,會先經由iptables進行檢查。檢查通過則接受(ACCEPT)進入本機取得資源,如果檢查不通過,則可能予以丟棄(DROP),規(guī)則是有順序的,例如當數據包進行Rule01的檢查,如果比對結果符合,則對這個數據包進行Action 1的操作,而不會再進行Rule 02,Rule 03等規(guī)則的匹配。
圖4 iptables數據包檢查過程
iptables的一大缺點是依賴線性匹配,當大于500條規(guī)則時,匹配效率就會明顯下降。且iptables不能進行應用層等更高級別的過濾??梢哉fopenstack僅采用這種底層實現是難以應對高并發(fā)大流量的過濾,與更細粒度更智能的監(jiān)控的。
本框架對neutron的原生FWaaS實現機制進行了改進,主要是在neutron的L3層替換其原有的qrouter namespace,將其底層實現方面,根據SDS的原則,引入開放了RESTful API的虛擬化防火墻(virtual firewall,vFW),這些虛擬防火墻鏡像可由第三方廠商定制,有利于產品在云環(huán)境中快速上線,形成虛擬防火墻資源池,由資源池管理模塊bootagent統(tǒng)一維護并管理,vFW底層功能實現替換ipta-bles規(guī)則。將vFW做為內部虛擬化網絡的安全網關,可以大大提高云環(huán)境虛擬邊界處的訪問控制能力。
如圖5所示,實現方法是采用“借殼”Namespace的方式,qrouter Namespace僅保留獲取元數據的功能,其余原neutron l3層的功能則統(tǒng)一由vFW實現。當用戶發(fā)出創(chuàng)建路由器的請求時,會在防火墻資源池中為租戶啟動一臺vFW,并為其通過DHCP分配管理口IP,還會創(chuàng)建這個vFW獨占的OVS進出口網橋(以此來實現租戶隔離)。此時vFW與用戶創(chuàng)建的路由是一一對應的,當用戶進行與路由相關的網絡操作時,經過改進的neutron l3-agent模塊會將用戶的請求通過RESTful API發(fā)送給路由對應的vFW,由vFW內部進行功能實現。當租戶有多個網絡時,設計的interface driver模塊會憑借vFW的三層子接口功能,以VLAN tags來實現網絡隔離,在統(tǒng)一入口處設置為trunk,識別來自不同網絡的流量。
在訪問控制功能實現方面,通過替換neutron fwaas driver實現了由neutron API到vFW RESTful API的轉換,以安全五元組的形式在vFW內創(chuàng)建相應客體并生成相應的安全規(guī)則。將南北向流量統(tǒng)一由vFW做訪問控制。由此實現安全網關的功能。
在虛擬化環(huán)境中,越來越多的流量出現在租戶內部網絡中,這是租戶業(yè)務發(fā)展所決定的。此外在云環(huán)境中,租戶可能會在同一個網絡中同時部署WEB服務器和數據庫服務器,也有可能存在一個租戶下面多個部門或員工申請的虛擬機部署在同一個網絡中。這種情況下,攻擊者一旦攻破了某個VM,則很可能進而攻擊其它網絡內部的服務器,因為防火墻一般是部署在網絡之間,此時訪問控制策略無法生效,內部服務器群會完全暴露給攻擊者。
圖5 VFW實現FWaaS
如圖2所示,對于虛擬網絡內部的東西向流量,OpenStack原生安全組使用linux bridge放在虛擬機的進出口,對租戶網絡內部所有的虛擬機流量進行統(tǒng)一的訪問控制,其實這并不是嚴格意義上的東西向流量的訪問控制,在租戶網絡內部,不同的虛擬機有不同的安全需求與業(yè)務需求。原生方案統(tǒng)一在虛擬機的進出口做訪問控制是無法靈活解決上述問題的。
作為一種解決東西向流量訪問控制的思路,微分段(micro-segmentation)技術近年被提出,它將租戶網絡中的多個虛擬機劃分為一個分段(segment),并在這些分段邊界上部署訪問控制機制。分段方法比較靈活,可以是一個虛擬機,也可以是滿足某種條件的多個虛擬機的集合,所以就可以在一個網絡中按需地劃分出若干個微安全域,然后在這些微安全域的分段邊界部署安全策略。這與傳統(tǒng)的邊界劃分不同的是,微分段可以是一個虛擬網絡中的任意一部分,如果在微分段間部署安全策略,則可以監(jiān)控到二層網絡中的流量。我們可以根據虛擬機不同的安全需求將他們分為不同的組,在組之間再做細粒度的訪問控制。
還可以通過結合服務鏈(services chain)進行更高級的訪問控制。服務鏈是指利用SDN技術,將流量經過多個設備,分別進行不同目的的檢查、防護或其它功能的實現。在傳統(tǒng)訪問控制的場景中,規(guī)則一般通過RBAC或ABAC來制定,總體而言缺少上下文感知,在發(fā)生威脅時無法及時調整控制規(guī)則。在云環(huán)境中,攻擊威脅會發(fā)生在很短時間中,這就要求策略調整非常及時。通過服務鏈,我們可以按需地在虛擬或物理位置部署各種虛擬安全設備,流量根據上層的編排依次經過預先啟動好的虛擬設備,當安全檢測設備發(fā)現可疑的攻擊時,可通知防火墻實時調整訪問控制策略。
如圖6所示,如果要部署應用程序的服務器,我們可以提供防火墻和負載均衡設備來提供安全性和可用性,將它們組成服務鏈并部署在組的邊界處,邊界處可定義策略,流量經過IDS的檢測,將符合相應條件的流量重定向到服務鏈,經過多個設備處理可訪問到應用程序組,檢測到有威脅的流量,則可直接配置規(guī)則拒絕訪問的請求。
本實驗擬在100 Mbps以太網的網絡環(huán)境下,測量ip-tables與VNF兩種底層實現方案在64 bytes、128 bytes、256 bytes、512 bytes和最大1518 bytes這5種RFC2544定義的標準幀長數據在滿負載情況下的穩(wěn)定性表現。通過本文之前的分析可知,iptables解決方案在大量安全規(guī)則的情況下會出現性能下降的現象,為此,本文計劃采用100條安全規(guī)則與500條安全規(guī)則兩種規(guī)模規(guī)則集分別對比兩種解決方案性能情況。
圖6 結合服務鏈的微分段
實驗環(huán)境統(tǒng)一在虛擬化云平臺中進行,在云平臺中創(chuàng)建兩個網絡,并在每個網絡中都啟動一臺虛擬機分別是VM1與VM2,虛擬路由器作為三層實現將兩個網絡相連,作為FWaaS解決方案,正是在此路由器的位置,其原生底層實現是iptables,之后被替換為第三方的虛擬防火墻VNF,為了進行性能測試,Ixchariot的客戶端軟件需要在VM1和VM2上安裝,因此兩臺虛擬機可作為流量通道的兩端,確保之間的流量都經過了FWaaS過濾,將Ixchariot控制臺安裝在其中一臺虛擬機VM1上,以此定制流量并獲取測試結果。
按照上述實驗方案,執(zhí)行性能測試,可在Ixchariot控制臺得到輸出結果,記錄5種幀長在兩種解決方案環(huán)境條件下的每次獲得的平均流量帶寬值(單位:Mbps),總共兩種規(guī)模的安全規(guī)則集總會產生20個數據,整理可得表1與表2兩組實驗結果。
表1 100條規(guī)則規(guī)模條件下平均帶寬/Mbps
表2 500條規(guī)則規(guī)模條件下平均帶寬/Mbps
將所得數據除以100 Mbps的理論帶寬值,所得百分比即為吞吐量,將數據再次經過處理,以橫坐標軸為幀長,縱坐標軸為換算好的系統(tǒng)吞吐量,分別作圖并分析兩種規(guī)模集下的兩種解決方案的性能優(yōu)劣。
如圖7所示,在100條規(guī)則的規(guī)模條件下,兩種解決方案性能相近,iptables在同長度幀長的條件下,比VNF方案更早的達到接近100%的系統(tǒng)吞吐量。在規(guī)則規(guī)模較小的情況下,VNF在規(guī)則匹配算法方面,沒有太多發(fā)揮空間。iptables在實現方面更靠近硬件底層,而VNF的實現建立在虛擬化的基礎上,需要借助hypervisor層面的管理與優(yōu)化,且在網絡連接等方面比iptables原生方案更加復雜,對比可發(fā)現VNF方案會使數據流量再多經過兩次OVS網橋(即防火墻的入口網橋Nf-in-XXX),故iptables在對于系統(tǒng)資源的利用率方面占優(yōu),在規(guī)則較少的情況下性能比VNF有微弱的性能優(yōu)勢,但是VNF比起iptables有著更強大的功能,在差距不明顯的情況下,如需更重視系統(tǒng)安全性,建議忽略微小的性能損失,采用VNF方案。且對于云環(huán)境來說,訪問控制策略繁多復雜,策略規(guī)則的數量規(guī)模相對龐大,本框架也主要應用于大規(guī)模安全規(guī)則的條件。
圖7 100條規(guī)則規(guī)模條件下兩種解決方案性能對比
如圖8所示,在500條規(guī)則的測試條件下,VNF方案在安全過濾規(guī)則算法方面的優(yōu)勢明顯,在相同幀長的情形下VNF體現出明顯的性能優(yōu)勢,主要是摒棄了iptables機械的鏈式匹配過濾算法,安全規(guī)則規(guī)模劇增后,包過濾處理能力優(yōu)勢明顯,能高效且完善的解決云環(huán)境中的訪問控制問題。
圖8 500條規(guī)則規(guī)模條件下兩種解決方案性能對比
云計算技術的興起給網絡架構帶來了深刻的變革,傳統(tǒng)的實體防火墻能夠監(jiān)控傳統(tǒng)數據中心網絡中的流量從而進行安全防護,并且能都做到一定的業(yè)務隔離。但是在云計算環(huán)境中,物理防火墻無法部署在模糊的安全邊界,云平臺管理者也無法做到對云中資源的隔離與防護。
本文通過軟件定義的方式,在Neutron項目的基礎上,設計出一套適用于云環(huán)境的訪問控制框架,對于南北向流量采用FWaaS方式,引入虛擬安全網關,能夠識別來自虛擬網絡的復雜流量并準確進行控制策略的定制與下發(fā)。對于東西向流量,采用微分段加服務鏈的方式,能進行更細粒度的訪問控制,并能夠根據多變的安全威脅,進行快速的安全策略調整。