軟件定義網絡的安全性與openflow流表

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攻擊,對方案的性能進行驗證.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章