Speaker : Hsuan-Ling Weng Advisor : Dr. Kai-Wei Ke Date: 2016/06/24 軟體定義網路基於網路功能虛擬化之通訊監察系統 Network Function Virtualization-based Lawful Interception System for Software Defined Networks Speaker : Hsuan-Ling Weng Advisor : Dr. Kai-Wei Ke Date: 2016/06/24
Outline 相關技術背景 系統分析與設計 系統實作 目前進度 參考文獻 SDN、OpenFlow、Email Protocols(SMTP、POP3、IMAP) 系統分析與設計 系統目標、系統架構、系統運作流程 系統實作 One Switch、Multiple Switch、SMTP追蹤紀錄、POP3追蹤紀錄、 IMAP追蹤紀錄 目前進度 參考文獻
SDN OpenFlow SMTP POP3 IMAP 相關技術背景
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 Sending emails: Simple Mail Transfer Protocol (SMTP) Retrieving emails: Post Office Protocol version 3 (POP3) Internet Message Access Protocol (IMAP)
SMTP 使用TCP 未加密 Port 25 SSL/TLS加密 Port 465 Port 587
SMTP常見之指令與回覆碼 指令或回覆碼 描述 HELO/EHLO Client發送出自己的主機名稱,用以表示寄件人的身分 MAIL FROM 寄件人的電子郵件地址 RCPT TO 收件人的電子郵件地址 DATA 通知郵件伺服器準備送出郵件內容 QUIT 表示發送結束 220 連線建立後,Mail Server所回覆的訊息 221 Mail Server關閉連線 250 通知要求命令執行成功 354 通知開始輸入郵件內容 550 收件人之郵箱無法使用
POP3 使用TCP 未加密 Port 110 SSL/TLS加密 Port 995
POP3常見之指令 指令 描述 CAPA 詢問Mail Server支援的功能 USER 使用者的帳戶名稱 PASS 使用者的密碼 STAT UIDL 將指定信件的識別碼列出來 LIST 要求Mail Server傳回每封信件的長度 RETR 下載指定的信件內容 DELE 將指定的信件標示成『刪除』 RSET 將所有標示為『刪除』的信件,全部還原成尚未標示成刪除的狀態 QUIT POP3連線結束
IMAP 使用TCP 未加密 Port 143 SSL/TLS加密 Port 993
IMAP常見之指令(1) State 指令 描述 Any CAPABILITY 詢問Mail Server支援的功能 LOGOUT Non-Authenticated AUTHENTICATE 進入Authenticated state LOGIN 利用帳戶名稱與密碼做登入 Authenticated SELECT 選取指定之收件匣,讓該收件匣中之郵件可被存取 CREATE 創建收件匣 DELETE 將指定的收件匣刪除 RENAME 將指定的收件匣重新命名 LIST 取得所有收件匣的清單
IMAP常見之指令(2) State 指令 描述 Selected CHECK 檢查當前Mail Server之狀態 CLOSE 結束對當前收件匣的訪問,關閉收件匣並將該收件匣所有標示為DELETED的郵件刪除 EXPUNGE 在不關閉收件匣的情況下,將該收件匣所有標示為DELETED的郵件永久刪除並不可恢復 SEARCH 依照所設定之條件來搜尋郵件 FETCH 讀取指定之郵件的內容 STORE 修改指定郵件之屬性(包含已讀、刪除…等等) COPY 把郵件從一個收件匣複製到另一個收件匣
POP3與IMAP之比較 POP3 IMAP 運作方式 功能類似store and forward 功能類似檔案伺服器(File Server) 開啟信箱 同時下載標題、內容及附件檔 可以先下載標題,讀取郵件時才下載內容 郵件讀取 除非設定郵件保留於伺服器,否則會下載至用戶端 郵件下載後,原件能儲存於伺服器 郵件儲存 儲存於Local電腦中郵件系統設定的目錄下 存於伺服器,且用戶可以自訂目錄的架構 郵件同步 用戶在不同地方讀取後,需自行處理郵件一致性 用戶在不同地方讀取的郵件均一致 郵件狀態 用戶一旦下載後即無法得知郵件處理狀態 用戶可以隨時獲取郵件處理的狀態
系統目標 系統架構 系統運作流程 系統分析與設計
系統目標 在SDN網路架構下,分別針對一個交換器與多個交換器的 拓樸環境,將Flow做分類以及將不同通訊協定( HTTP、 FTP、SMTP、POP3、IMAP、ICMP )之Flow透過Mirror的 方法將封包轉送到欲監察的擷取與紀錄系統中 提供將Mirror開啟或是關閉的功能,讓使用者可自由選擇 欲監察的通訊協定類型 SMTP、POP3、IMAP協定追蹤與解析
系統架構 資料庫系統(Database System, DB) 擷取與紀錄系統(Interception and Recording System, IRS) 分析系統(Analyzing System, AS) OpenFlow Controller(RYU) OpenFlow Switch(OpenvSwitch, OVS)
資料庫系統(DB) MySQL Database Server 做為儲存網路事件紀錄、各IRS名稱-IP位置對應及服務狀態 等資訊的儲存體
擷取與紀錄系統(IRS) 擷取封包 判斷封包是否屬於目標通訊協定 追蹤相關連線 紀錄原始資料 產生網路事件紀錄條目上傳至資料庫,以便AS進行查詢 接受AS的請求,上傳原始資料至AS 接收AS的訊息,將使用者所選定的protocol做關閉或是開啟 protocol parser的動作
分析系統(AS) 連結資料庫取得網路事件紀錄條目 整理條目呈現給使用者,並提供數種呈現及查詢方 式供使用者使用 從IRS下載原始資料並還原為檔案 提供介面讓使用者可自由選擇欲監察的protocol類 型,並將此訊息傳給IRS,讓其關閉或是開啟選定 的protocol parser
SDN Controller 分別針對一個交換器與多個交換器的拓樸環境,在Ryu控制 器中設計出不同的應用程式,以對OVS下適當的指令 提供介面讓使用者可自由選擇欲監察之protocol,並通知 RYU程式,得以讓其對OVS下命令修改action來做enable 和disable mirroring之功能
One Switch
Multiple Switch
Internet Message Format SMTP分析
POP3分析
One switch Multiple switch SMTP追蹤紀錄 POP3追蹤紀錄 IMAP追蹤紀錄 系統實作
One switch 服務協定 TCP/UDP Port Number HTTP TCP 80 FTP 20、21 SMTP 25、465、587 POP3 110、995 IMAP 143、993
Multiple switch
Example h1 send data to h3 h4 is the mirror destination S1: actions=output:4,output:3
Protocol Parser Protocol Parser是IRS的演算單元,提供標準的協定追蹤流 程,內部定義四個抽象(Abstract)方法: isRelative:判斷取得的封包是否需要被處理。 processPacket:處理經過篩選的封包。 isContinue:判斷追蹤的通訊是否已結束,是否繼續執行此 Protocol Parser。 endProcess:若不繼續執行, Protocol Parser結束前的動作。
SMTP追蹤紀錄 isRelative: processPacket: isContinue: endProcess: 若封包之目的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指令則開始追蹤接下來要傳的寄件資料之後再對其做 解析。 isContinue: 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結束連線 則結束SMTP Command Protocol Parser的執行。 endProcess: 建立SMTP事件條目上傳至資料庫系統。
POP3追蹤紀錄 isRelative: processPacket: isContinue: endProcess: 若封包之目的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指令則紀錄收件人的帳戶 名稱和密碼; +OK message follows則開始追蹤接下來要收的收 件資料,若為QUIT指令則對剛所追蹤到的收件資料做解析。 isContinue: 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結 束連線則結束POP3 Command Protocol Parser的執行。 endProcess: 建立POP3事件條目上傳至資料庫系統。
IMAP追蹤紀錄 isRelative: processPacket: isContinue: endProcess: 若封包之目的port為143、993則為相關封包。 processPacket: 將封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port以字串方式 相接得到此連線的唯一識別,並檢查此識別是否已處理過,若否,則開啟 針對此連線之IMAP Command Protocol Parser進行追蹤。 isContinue: 由於IMAP Protocol Parser是屬於偵測通訊協定是否存在之 ProtocolParser,故必須持續執行至系統被關閉。 endProcess: 無需進行結束前的處理。
IMAP Command Protocol Parser isRelative: 封包之客戶端IP、客戶端port、伺服器端IP、伺服器端port符合被 指定之連線則處理。 processPacket: 將連線時間做紀錄。 isContinue: 當長時間未有封包符合處理條件或追蹤之命令連線經過四向交握結 束連線則結束IMAP Command Protocol Parser的執行。 endProcess: 建立IMAP事件條目上傳至資料庫系統。
目前進度 已完成之項目 未完成之項目 Multiple switch(實機測試) 找到能測試IMAP(未加密)的Mail Server One switch Multiple switch(in mininet) Controller對switch下命令修改action 來做enable和disable mirroring之功能 由AS來控制不同之IRS是否對指定種類 之封包做處理或是丟棄 SMTP parser POP3 parser IMAP connection detected Multiple switch(實機測試) 找到能測試IMAP(未加密)的Mail Server
參考文獻 [1] Open Networking Foundation, “Software-Defined Networking: The New Norm for Networks”, ONF White Paper, April 13, 2012 [2] Open Networking Foundation, “OpenFlow Switch Specification Version 1.3.0”, June 25, 2012 [3] 張以磊著,「分散式網路事件分析紀錄系統之研製」,碩士論文, 國立台北科技大學資訊工程系碩士班,台北,2013。
Thanks for listening!