Speaker : 翁瑄伶 Advisor : 柯開維 博士 Date: 2016/07/31 軟體定義網路基於網路功能虛擬化之通訊監察系統 Network Function Virtualization-based Lawful Interception System for Software Defined Networks Speaker : 翁瑄伶 Advisor : 柯開維 博士 Date: 2016/07/31
Outline 緒論 相關技術背景 系統分析與設計 系統實作 系統展示與測試 結論 背景與動機、系統目標 SDN、OpenFlow、Email Protocols(SMTP、POP3) 系統分析與設計 系統架構、系統元件設計、通訊協定分析(SMTP、POP3) 系統實作 One Switch、Multiple Switch、SMTP追蹤與紀錄、POP3追蹤與紀錄 系統展示與測試 系統測試環境、SMTP功能測試、Mirror功能測試與展示 結論 系統特色、未來展望
緒論 背景與動機 系統目標
背景與動機 網路通訊監察之必要性 軟體定義網路與網路功能虛擬化之益處 網路管理之應用 對犯罪行為達到有效的監督與追蹤 提升網路效能 降低營運成本
系統目標 在SDN網路架構下,分別針對一個交換器與多個交換器的 拓樸環境,設計出可偵測、分析、紀錄與還原通訊協定 (FTP、HTTP、SMTP、POP3和IMAP4)之系統 讓使用者設定不同之擷取與紀錄系統其所監察的通訊協定 類型,以及提供將Mirror開啟或是關閉的功能 SMTP、POP3協定追蹤與解析
SDN 相關技術背景 POP3 OpenFlow SMTP
SDN
SDN overall architecture
OpenFlow
Flow Table Entries Match fields Priority Counters Instructions Timeouts Cookie Match fields: Argument Description in_port Switch input port eth_dst Ethernet destination address eth_src Ethernet source address eth_type Ethernet frame type ip_proto IP protocol ipv4_src IPv4 source address ipv4_dst IPv4 destination address tcp_src TCP source port tcp_dst TCP destination port udp_src UDP source port udp_dst UDP destination port
Electronic Mail 使用者代理器(User agents) 郵件伺服器(Mail servers) 傳送電子郵件: 簡單郵件傳輸通訊協定(Simple Mail Transfer Protocol, SMTP) 接收電子郵件: 郵局通訊協定3(Post Office Protocol version 3, POP3) 網際網路訊息存取通訊協定4(Internet Message Access Protocol version 4, IMAP4)
SMTP 使用TCP 未加密 Port 25 SSL/TLS加密 Port 465 Port 587
POP3 使用TCP 未加密 Port 110 SSL/TLS加密 Port 995
系統架構 系統元件設計 通訊協定分析 SMTP POP3 系統分析與設計
系統架構 資料庫系統(Database System, DB) 擷取與紀錄系統(Interception and Recording System, IRS) 分析系統(Analyzing System, AS) SDN控制器(Ryu Controller) SDN交換器(Open vSwitch, OVS)
資料庫系統(DB) MySQL Database Server 記錄各IRS名稱與其相對應之IP位置以及服務狀態 接受AS的請求,將所紀錄之網路事件紀錄條目提供給AS
擷取與紀錄系統(IRS) 擷取封包 判斷封包是否屬於目標通訊協定 追蹤相關連線 紀錄原始資料 產生網路事件紀錄條目上傳至資料庫,以便AS進行查詢 接受AS的請求,上傳原始資料至AS 接受Controller的請求,將使用者所選定的protocol做關閉或是 開啟protocol parser的動作
分析系統(AS) 連結資料庫取得網路事件紀錄條目 整理條目呈現給使用者,並提供數種呈現及查詢 方式供使用者使用 從IRS下載原始資料並還原為檔案
SDN Controller 分別針對一個交換器與多個交換器的拓樸環境,在Ryu Controller中設計出不同的應用程式,以對OVS下適當的指令 提供介面讓使用者可自由選擇不同IRS欲監察之protocol,並將 此訊息傳給IRS與Ryu程式,讓IRS關閉或是開啟選定的protocol parser,以及讓Ryu程式知道該讓何種類型的protocol轉送到哪 台IRS做監察之動作 在系統運行中時,提供介面讓使用者可選擇將特定之protocol 的Mirror做關閉或是開啟之動作,並通知Ryu程式,得以讓其對 OVS下命令修改action來做enable和disable mirroring之功能
One Switch
Multiple Switch
Multiple Switch
Internet Message Format SMTP分析 郵件內容 附件檔案名稱及其內容
POP3分析
郵件內容 附件檔案名稱及其內容
系統實作 One switch Multiple switch SMTP追蹤與紀錄 POP3追蹤與紀錄
One switch 服務協定 TCP/UDP Port Number HTTP TCP 80 FTP 20、21 SMTP 25、465、587 POP3 110、995 IMAP4 143、993
Multiple switch
Example h1 send data to h3 h4 is the mirror destination
Protocol Parser Protocol Parser是IRS的演算單元,提供標準的協定追蹤流 程,內部定義四個抽象(Abstract)方法: isRelative():基於封包之port number或是IP來判斷取得的封包是 否需要被處理。 processPacket():處理經過篩選的封包。 isContinue():判斷追蹤的通訊是否已結束,是否繼續執行此 Protocol Parser。 endProcess():若不繼續執行, Protocol Parser結束前的動作。
SMTP追蹤與紀錄 本論文實作三種Protocol Parser用以追蹤與紀錄SMTP事件, 分別為 SMTP Command Protocol Parser SMTP Recorder Protocol Parser
SMTP Protocol Parser isRelative(): processPacket(): isContinue(): 若封包之目的port為25、465、587則為相關封包。 processPacket(): 將封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port以字串方式 相接得到此連線的唯一識別,並檢查此識別是否已處理過,若否,則開啟 針對此連線之SMTP Command Protocol Parser進行追蹤。 isContinue(): 由於SMTP Protocol Parser是屬於偵測通訊協定是否存在之 ProtocolParser,故必須持續執行至系統被關閉。 endProcess(): 無需進行結束前的處理。
SMTP Command Protocol Parser isRelative(): 封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port符合被指定之 連線則處理。 processPacket(): 追蹤SMTP命令回應,若為MAIL和RCPT指令則紀錄寄件人和收件人的電 子郵件地址,在發現DATA指令時建立新的SMTP Recorder Protocol Parser對連線進行追蹤。 isContinue(): 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結束連線 則結束SMTP Command Protocol Parser的執行。 endProcess(): 無須進行特殊的動作。
SMTP Recorder Protocol Parser isRelative(): 封包之來源IP、來源port、目的IP與目的port符合被指定之連線則處理。 processPacket(): 將電子郵件之內容透過MIMEparser()進行分析與切割字串之動作,藉以 將傳送之電子郵件的主旨、日期、郵件內容與附件檔案之名稱及其內容取 出,並對附件檔案做儲存之動作。 isContinue(): 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結束連線 則結束SMTP Recorder Protocol Parser的執行。 endProcess(): 建立SMTP事件條目並上傳至資料庫系統。
POP3追蹤與紀錄 本論文實作三種Protocol Parser用以追蹤與紀錄POP3事件, 分別為 POP3 Command Protocol Parser POP3 Recorder Protocol Parser
POP3 Protocol Parser isRelative(): processPacket(): isContinue(): 若封包之目的port為110、995則為相關封包。 processPacket(): 將封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port以字串方式 相接得到此連線的唯一識別,並檢查此識別是否已處理過,若否,則開啟 針對此連線之POP3 Command Protocol Parser進行追蹤。 isContinue(): 由於POP3 Protocol Parser是屬於偵測通訊協定是否存在之 ProtocolParser,故必須持續執行至系統被關閉。 endProcess(): 無需進行結束前的處理。
POP3 Command Protocol Parser isRelative(): 封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port符合被 指定之連線則處理。 processPacket(): 追蹤POP3命令回應,若為USER或PASS指令則紀錄收件人的帳戶 名稱和密碼,在發現RETR指令時建立新的POP3 Recorder Protocol Parser對連線進行追蹤。 isContinue(): 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結 束連線則結束POP3 Command Protocol Parser的執行。 endProcess(): 無須進行特殊的動作。
POP3 Recorder Protocol Parser isRelative(): 封包之來源IP、來源port、目的IP與目的port符合被指定之連線則處理。 processPacket(): 將電子郵件之內容透過MIMEparser()進行分析與切割字串之動作,藉以 將寄件人的電子郵件地址、收件人的電子郵件地址以及收到之電子郵件的 主旨、日期、郵件內容與附件檔案之名稱及其內容取出,並對附件檔案做 儲存之動作。 isContinue(): 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結束連線 則結束POP3 Recorder Protocol Parser的執行。 endProcess(): 建立POP3事件條目上傳至資料庫系統。
系統展示與測試 系統測試環境 SMTP功能測試 Mirror功能測試與展示
測試環境
初始設定(Ryu Controller)
SMTP功能測試
SMTP功能測試
SMTP功能測試
Mirror功能測試與展示
HTTP Mirror off
OVS Flow Table之修改
結論 系統特色 未來展望
系統特色 擷取與紀錄系統和分析系統使用Java開發,具跨不同作業 系統平台之特性 系統採用分散式架構,可靈活佈建 Ryu Controller集中控管網路功能 可設定不同之IRS欲監察何種通訊協定 系統運作途中,可將Mirror功能開啟或是關閉
未來展望 結合機器學習(Machine Learning)之概念 電子郵件的還原功能,僅能將編碼方式為7bit之內容還原, 而編碼方式為quoted printable或是Base64之內容還原尚 未實作出來,可對此做擴充 利用SDN實作出網路管理系統並與本系統作結合
Thanks for listening!