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