SDN安全:SDN軟件堆棧是否安全?
最近關(guān)于美國(guó)國(guó)家安全局在IT基礎(chǔ)架構(gòu)植入后門事件的報(bào)道很多,其中軟件定義網(wǎng)絡(luò)(SDN)肯定也會(huì)成為間諜竊聽的目標(biāo)。
事實(shí)上,在這些技術(shù)成為主流之前,整個(gè)行業(yè)都必須解決一些SDN安全問題,同時(shí)要讓網(wǎng)絡(luò)工程師保證SDN基本軟件堆的完整性。
就職于一家全球網(wǎng)絡(luò)公司的網(wǎng)絡(luò)工程師Nick Buraglio說:“NSA事件讓我重新思考了一下這個(gè)問題。當(dāng)轉(zhuǎn)發(fā)控制面板與各個(gè)設(shè)備完全無(wú)關(guān),而且控制面板只有一兩臺(tái)Linux設(shè)備時(shí),這意味著什么?如果有人攻擊了這臺(tái)設(shè)備呢?他們可以隨意改變您的流量流。”
ONF已經(jīng)發(fā)現(xiàn)了兩個(gè)基本的SDN安全問題
SDN社區(qū)已經(jīng)知道這個(gè)問題。負(fù)責(zé)管理OpenFlow協(xié)議的開放網(wǎng)絡(luò)聯(lián)盟(ONF)在去年10月發(fā)表了一篇論文,文中指出了兩個(gè)潛在的SDN安全問題,也是行業(yè)必須封堵的兩個(gè)攻擊途徑:
集中控制是一個(gè)“潛在的單點(diǎn)攻擊和故障源”。
控制器與數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備之間的南向接口(如OpenFlow)很容易“受到攻擊而降低網(wǎng)絡(luò)的可用性、性能和完整性。”
Matthew Palmer是SDNCentral.com的共同創(chuàng)始人和SDN供應(yīng)商及云服務(wù)提供商咨詢公司W(wǎng)iretap Ventures的合伙人,他說:“我們從客戶聽到的最主要的反饋是:‘我們把安全性視為SDN的首要問題。’”
SDN控制器將成為攻擊目標(biāo)
SDN控制器是黑客一個(gè)主要攻擊目標(biāo),因?yàn)樗仁且粋€(gè)集中的網(wǎng)絡(luò)干擾點(diǎn),也是一個(gè)潛在的單點(diǎn)故障源。
Voodoo Security安全咨詢師和IANS領(lǐng)導(dǎo)成員Dave Shackleford說:“如果不注意控制器,那么它會(huì)成為攻擊者的最重要目標(biāo),他們可能會(huì)輕松攻破它,修改代碼庫(kù),改變流量控制,從而在一些位置過濾或藏匿數(shù)據(jù),任由攻擊者操控?cái)?shù)據(jù)。”
“只需要修改控制器,攻擊者就會(huì)有許多機(jī)會(huì)修改網(wǎng)絡(luò)流量行為的整個(gè)運(yùn)行基礎(chǔ)。我們遇到的問題是前所未有的。即使傳統(tǒng)網(wǎng)絡(luò)管理工具也無(wú)法這樣靈活地動(dòng)態(tài)修改各個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)行為。”
SDN控制器的可編程性是一把雙刃劍。工程師可以在控制器的北向接口上安裝安全應(yīng)用程序,從而得到一種在網(wǎng)絡(luò)中應(yīng)用安全策略的新方法。這些應(yīng)用程序可以指示控制器交換機(jī)和路由器,然后將它們作為策略執(zhí)行點(diǎn)。
然而,這種可編程北向接口也是一個(gè)潛在的漏洞。這些應(yīng)用程序可以通過控制器對(duì)網(wǎng)絡(luò)進(jìn)行重新編程。黑客可以欺騙工程師安裝一些受攻擊的應(yīng)用程序。由于對(duì)控制器上運(yùn)行的良性應(yīng)用程序有足夠的了解,所以黑客只需要給網(wǎng)絡(luò)發(fā)送一些精心設(shè)置的數(shù)據(jù)包,就可以控制網(wǎng)絡(luò)去做一些完全讓人出乎意料的事情。
非盈利性研究與創(chuàng)新中心SRI International的項(xiàng)目主管Phil Porras說:“OpenFlow應(yīng)用程序之間可以相互影響。它們可以插入一些組合規(guī)則,產(chǎn)生讓人意想不到和不想看到的交叉效應(yīng)。”
SDN控制器通常還不無(wú)法讓安全應(yīng)用程序獲得高于其他應(yīng)用程序的通信優(yōu)先級(jí)。如果控制器不知道如何處理與安全策略沖突的應(yīng)用請(qǐng)求,那么即使是一個(gè)無(wú)惡意的應(yīng)用程序也可能破壞安全策略。
Porras說:“假設(shè)OpenFlow安全應(yīng)用程序認(rèn)為有一個(gè)內(nèi)部主機(jī)的運(yùn)行方式像是感染了病毒。那么這個(gè)安全應(yīng)用程序就會(huì)隔離這個(gè)主機(jī),去除它與網(wǎng)絡(luò)的通信能力。同時(shí),有一個(gè)負(fù)載均衡應(yīng)用程序可能會(huì)監(jiān)視這個(gè)主機(jī),然后讓網(wǎng)絡(luò)中負(fù)載最小的主機(jī)接管它的負(fù)載。這樣負(fù)載均衡應(yīng)用程序就會(huì)決定讓流量開始轉(zhuǎn)到被隔離的主機(jī)上。”#p#
SE-Floodlight:一個(gè)面向更智能的安全控制器的模型
Porras說:“我們正在尋找方法約束SDN應(yīng)用,從而保證一些特定的策略一定會(huì)執(zhí)行。這些OpenFlow應(yīng)用并不一定是惡意應(yīng)用。它們可能只是完全不知道有哪些安全策略。”
Porras已經(jīng)開發(fā)出SE-Floodlight,它是基于開源Floodlight OpenFlow控制器修改的版本,專門用于保證安全應(yīng)用程序的完整性。
Porras說:“SE-Floodlight引入了一個(gè)概念,即OpenFlow應(yīng)用可以運(yùn)行在分級(jí)角色上。這些角色將由數(shù)字認(rèn)證技術(shù)指派。”
他指出,通過使用SE-Floodlight,工程師就可以給安全應(yīng)用程序指定高于其他應(yīng)用程序的優(yōu)先級(jí)。當(dāng)有一個(gè)負(fù)載均衡應(yīng)用給控制器發(fā)送的流量規(guī)則與安全應(yīng)用程序策略發(fā)生沖突時(shí),這個(gè)控制器就可能拒絕這個(gè)規(guī)則。此外,它還會(huì)給負(fù)載均衡應(yīng)用程序發(fā)送反饋,使它知道必須尋找其他方法來轉(zhuǎn)發(fā)流量。
Porras說:“我認(rèn)為,如果我們準(zhǔn)備在金融服務(wù)網(wǎng)絡(luò)、醫(yī)療網(wǎng)絡(luò)或政府網(wǎng)絡(luò)中使用OpenFlow,那么必須用到現(xiàn)在SE-Floodlight所做的工作。我們需要使用一個(gè)強(qiáng)力的安全模型,保證添加SDN不會(huì)消弱一些組件的安全性。我認(rèn)為,SDN供應(yīng)商和標(biāo)準(zhǔn)委員會(huì)都應(yīng)該更認(rèn)真地審視OpenFlow的安全架構(gòu)。我接觸的許多供應(yīng)商都很關(guān)注這個(gè)問題。”
南向接口安全性
ONF還發(fā)現(xiàn)控制器與數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備之間的南向通信也容易受到攻擊。OpenFlow等南向接口協(xié)議有一個(gè)基礎(chǔ)身份認(rèn)證技術(shù),它可以防止黑客從控制器向交換機(jī)發(fā)送欺騙性的流命令。然而,Palmer指出,工程師應(yīng)該要求SDN供應(yīng)商驗(yàn)證他們已經(jīng)在控制器和SDN交換機(jī)之間實(shí)現(xiàn)了正確的身份驗(yàn)證證書。
但是,黑客可能不會(huì)試圖劫持南向接口,因?yàn)檫€有更簡(jiǎn)單方法可以破壞它。黑客可能會(huì)針對(duì)控制器、交換機(jī)或虛擬交換機(jī)等發(fā)起拒絕服務(wù)攻擊。
Porras說:“有人可能會(huì)讓控制面板保持高負(fù)載,或者讓控制面板與數(shù)據(jù)面板之間的接口保持高負(fù)載,這樣可能降低整個(gè)網(wǎng)絡(luò)的運(yùn)行速度。我們會(huì)看到一些對(duì)抗模型,其中‘攻擊目標(biāo)’并不會(huì)試圖讓網(wǎng)絡(luò)徹底崩潰,而是通過發(fā)送大量的數(shù)據(jù)包來讓數(shù)據(jù)面板和控制面板發(fā)生過量交互。”
我們應(yīng)該如何處理SDN安全問題?
工程師沒有必要因?yàn)榘踩珕栴}而放棄SDN。每一種環(huán)境都有不同程度的風(fēng)險(xiǎn)容忍力。而且,現(xiàn)在大多數(shù)SDN部署都處于試用或概念驗(yàn)證階段。然而,如果注意這些問題,工程師就可以自行采取一些措施來保護(hù)SDN軟件堆棧。
Buraglio說:“要盡力鎖定控制器。不要讓任何沒有正當(dāng)理由通過的東西進(jìn)出控制器。要保持控制器的更新。要給它設(shè)置基線。要記錄CPU使用率、內(nèi)存使用率和接口統(tǒng)計(jì)信息。要收集所有的數(shù)據(jù),然后在設(shè)備上設(shè)置臨界值和警報(bào)。”
Shackleford指出,工程師需要在SDN控制器上應(yīng)用與敏感數(shù)據(jù)服務(wù)器相同級(jí)別的安全性,如信用卡號(hào)和知識(shí)產(chǎn)權(quán)等。
他說:“我們必須關(guān)注于完整性監(jiān)控,格外警惕日志報(bào)告,對(duì)訪問實(shí)施多重身份驗(yàn)證。我們必須保證所有這些方面都有分層次訪問。”
但是,在SDN技術(shù)的安全性和完整性得到驗(yàn)證之前,它還不會(huì)用于主流生產(chǎn)部署??刂破鞴?yīng)商尤其需要向潛在客戶證明這一點(diǎn)。
Palmer說:“這并不是一個(gè)安全問題。這是一個(gè)合規(guī)性問題。除非他們可以向合規(guī)性團(tuán)隊(duì)證明SDN在安全性方面能夠和遺留系統(tǒng)做得一樣好,否則他們是不會(huì)同意部署的。”
Palmer預(yù)計(jì)供應(yīng)商將會(huì)在2015年開始證明SDN軟件堆棧的安全性。他說:“2014年是SDN的概念驗(yàn)證之年。人們都在試用這項(xiàng)技術(shù)。我認(rèn)為,一些重要的安全功能將會(huì)浮出水面。但是,我們?nèi)匀恍枰却荒昊蛞荒臧霑r(shí)間,這些安全特性才會(huì)真正進(jìn)入控制器和其他SDN產(chǎn)品中。”