sdn將傳統封閉的網路體系解耦為資料平面、控制平面 和應用平面
為使用者提供了良好的網路可程式設計性,但同時也引入了眾多(單點失效、南/北向介面協議的)安全性難以控制等問題.
[新的一頁]
本文的目的和原因:此外,sdn 動態、開放的可程式設計架構也間接地為攻擊 者提供了便捷、有效的攻擊手段和方式,使得他們只要通過軟體程式設計的方式便能夠輕易地對網路發起攻擊
(1) 基礎設施層由網路底層的**裝置組成,主要負責資料的處理、**和狀態收集.
(2) 控制層集中維護網路狀態,一方面,它通過自身與基礎設施 層之間的介面獲取底層基礎設施資訊,對資料平面的資源進行編排;另一方面,它對全網的資訊進行實時維護,並為應用層提供可擴充套件的程式設計介面(api).
(3) 應用層位於 sdn 架構的頂層,主要包括不同型別的業務和應用.此外,按照位置關係,定義了 sdn 架構中的南向介面和北向介面.
(4) 在南向介面方面定義了開放的openflow協議標準.然而,由於應用層中各類業務和應用的複雜和多樣性,北向介面目前尚無統一的標準.
注:openflow,一種網路通訊協議,屬於資料鏈路層,能夠控制網上交換器或路由器的**平面(forwarding plane),藉此改變網路資料報所走的網路路徑。
基於 openflow 協議的 sdn 架構初步實現了 sdn 的原型設計思想,是 sdn 技術的典型例項.如圖所示, 在基於 openflow 協議的 sdn 網路中,當終端 a 初次和終端 b 進行通訊時,其基本通訊流程大致包括 7 步.
step 1. 終端 a 加入網路,並向交換機 1 傳送資料報.
step 2. 交換機 1 查詢自身的流表,若流表中沒有與該資料報匹配的表項,則交換機 1將 該資料報**給控制器.在向控制器傳送訊息時,交換機 1 可以通過tcp協議直接將資料報傳送給控制器,也可 以採用安全傳輸層協議(transport layer security,簡稱 tls)對資料報進行加密傳送.
step 3. 控制器收到交換機 1 的請求資訊後,生成相應的應答策略,並通過 packet-out 事件下發至交換機 1 的指定埠.
step 4. 交換機 1 執行控制器下發的應答策略,將資料報**至交換機 2.
step 5. 若交換機 2 的流表中無該資料報匹配項,與 step 2 處理方式相似,交換機 2把 收到的資料報資訊**給控制器;若交換機 2 的流表中含有匹配項,則跳轉至 step 7,即交換機 2 按流表中相應的**規則將資料報**至終端 b.
step 6. 與 step 3 相似,控制器根據交換機 2 的請求資訊,下發相應的應答策略至交換機 2 的指定埠.
step 7. 交換機 2 執行控制器下發的應答策略,資料報被**至終端 b.
【新的一頁】
一)流的概念
我們把同一時間經過同一網路中,具有某種共同特徵或屬性的資料,抽象為乙個流
比如:我們將訪問同乙個位址的資料視為乙個流
流一般是由網路管理員定義的,可以根據不同的流執行不同的策略,
在openflow中,資料都是作為流進行處理的。
所以流表就是針對特定流的策略表項的集合,負責資料報的查詢和**
一張流表包含了一系列的流表項條目
計數器:例如:針對每張流表,統計當前活動的表項數、資料報查詢次數、資料報匹配次數等;
針對每個資料流,統計接收到的資料報數、位元組數、資料流持續時間等;針對每個裝置埠,除統計接收到的資料報數、傳送資料報數、接收位元組數、傳送位元組數等指標之外,還可以對各種錯誤發生的次數進行統計;
針對每個佇列,統計傳送的資料報數和位元組數,還有傳送時的溢位錯誤次數等。
動作:openflow流表的動作用於指示交換機在收到匹配的資料報後應該如何對其進行處理。與傳統交換機**表只需要指明資料報的**出埠不同,openflow交換機因為缺少控制平面的能力,所以對匹配資料報的處理不僅僅是簡單的**操作,而需要用動作來詳細說明交換機將要對資料報所做的處理。
1)資料報的處理流程
其中匹配表按照優先順序進行排序,從高到低
如果匹配成功,對應計數器進行更新並去執行相應動作
如果表項沒有對應的動作執行,則資料報將會被丟棄
如果沒有找到匹配的表項,則封裝資料報**給控制器
2)包頭解析是為了得到資料分組的12元組(包頭域)
【新的一頁】
當交換機啟動時,首先嘗試連線至使用者指定的tcp埠或控制器的6653 tcp埠,雙方通過交換數字證書 相互進行認證.同時,每個 openflow 交換機至少需要配置兩個證書,乙個用於認證控制器的合法性,乙個用來向 伺服器證實自身的合法身份.交換機和控制器證書的生成和分發過程如下
(1) 由證書管理機構生成站點範圍內的證書;
(2) 生成控制器證書;
(3) 生成交換機證書;
(4) 使用站點範圍內的私鑰對證書進行簽名;
(5) 將金鑰和證書分別發放到各個裝置中.
【新的一頁】
dos/ddos 攻擊主要是指攻擊者通過傀儡主機消耗攻擊目標的計算資源,阻止目標為合法使用者提供服務.
當攻擊者通過不同的交換機持續地向控制器傳送大規模的虛假請求資訊時,會使得控制器一直忙於應答攻 擊者的非法請求,而無暇響應合法使用者的正常請求.當控制器在短時間內接收到的虛假請求資訊超過一定規模 時,它便可能因計算資源和記憶體資源消耗過度而無法正常工作,致使整個 sdn 網路處於癱瘓狀態.
sdn 控制器遭受 dos/ddos 攻擊時候因此,若在控 製器和交換機的通訊過程中增加乙個流資訊過濾模組,在控制器收到流請求之前,由該過濾模組 對無效的資訊進行過濾,轉移非法資訊,僅將合法的資訊傳送至控制器。
【新的一頁】
引發安全性的緣由:這主要是指由 openflow 協議的脆弱性而引發的安全性威脅.openflow 安全通道採用 ssl/tls 對資料進 行加密,但由於 ssl/tls 協議本身並不安全,再加上 openflow 1.3.0 版本之後的規範均將 tls 設為可選 的選項,允許控制通道不採取任何安全措施,因而南向介面面臨著竊聽、控制器假冒等安全威脅
(1) 基於 stride 威脅分析模型對 openflow 系統進行建模,列舉系統潛在的脆弱性,如 dos/ddos 攻擊、可擴充套件性和自 適應性等方面的安全威脅;
(2) 基於 stride 模型建立 openflow 各系統的資料流圖,包括基本的處理過程、數 據儲存、有條件的資料流和信任邊界等;
(3) 分析系統的詳細資料流圖,從拒絕服務、欺騙、篡改、不可否認、 資訊洩露和特權提公升等方面,對系統各組成部分的脆弱性進行檢查;
(4) 通過向控制器傳送大量的資料來模擬 dos/ddos攻擊,對方案的效能進行驗證.
軟體安全性測試
1 產品安全是指產品在系統的所有者或管理員的控制下,保護使用者資訊的保密性 完整性 可獲得性,以及處理資源的完整性和可獲得性。安全漏洞是指使產品不可行的缺陷 即使是正確地使用產品時 來防止攻擊者被竊取系統的使用者許可權 調節操作 破壞資料,或建立未授權的信任。2 黑客獲得訪問許可權的動機 3 測試安...
mysql 網路安全性 MySQL安全性指南(1)
作為乙個mysql的系統管理員,你有責任維護你的mysql資料庫系統的資料安全性和完整性。本文主要主要介紹如何建立乙個安全的mysql系統,從系統內部和外部網路兩個角度,為你提供乙個指南。為什麼安全性很重要,你應該防範那些攻擊?伺服器面臨的風險 內部安全性 如何處理?連線伺服器的客戶端風險 外部安全...
mysql 網路安全性 MySQL安全性指南(3)
2.4 不用grant設定使用者 當你發出一條grant語句時,你指定乙個使用者名稱和主機名,可能還有口令。對該使用者生成乙個user表記錄,並且這些值記錄在user host和password列中。如果你在grant語句中指定全域性許可權,這些許可權記錄在記錄的許可權列中。其中要留神的是grant...