網路上常見利用誘騙方式讓受害者點選惡意連結,進而觸發一連串惡意程式執行與加密檔案的勒索行為。針對這種情況,這裡將介紹利用SDN新型態網路架構,並搭配勒索軟體封鎖清單,在偵測到問題封包時,第一時間中斷問題連線,阻擋加密金鑰傳輸,有效防止勒索軟體的侵害。
在端點方面,早已存在大大小小的防毒軟體,但卻未能確切阻斷勒索攻擊,且為因應各式設備、系統都有遭遇勒索的可能性,各資安廠商紛紛針對不同設備系統開發相對應的防毒軟體。但若能在網路端加上一項把關,是否可使安全性向上提升,防範勒索軟體?
本文提供了一種防治方式,利用新型態SDN網路架構具有SDN控制器動態彈性的控制特性,於第一時間得知險遭感染的確切主機,達到網路安全防護的目的。
實作相關資訊說明
接下來,講解與實作相關的資訊,先說明何謂軟體定義網路(SDN),然後介紹非營利性的網站Ransomware Tracker。
軟體定義網路(SDN)
「軟體定義網路(SDN)」是一種新型態的網路概念,此概念早在2009年於國際會議中被提出,史丹佛大學在一項網路計畫中實踐出SDN架構的網路協定OpenFlow,現在主要由開放網路基金會(Open Networking Foundation,ONF)來負責維護與管理。
軟體定義網路的出現,目的在於解決雲端運算與巨量資料需求增加,網路設備所處理的工作不只是單純的封包轉送,新型態的網路協定還促使設備工作量大增,造成網路設備須額外進行解封裝與封裝新表頭等瑣碎事務,導致大部分的效能耗費在處理封包,讓傳輸效能下降與網路頻寬受限。
另一方面,網管人員為了讓現有網路架構符合不同需求以及提高效率目的,在每個網路設備上手動建立特殊規則,此舉不但耗費相當大的人力成本且具高風險性,一旦發生設定上的疏失,整個網路就會因此癱瘓,後續的損失與故障排除又是一大考驗。
軟體定義網路最大的特性為可程式化網路架構,為符合現代科技網路與運算效能的需求,因此將控制與資料分割開來。邏輯上分成控制平面(Control Plane)與資料平面(Data Plane),於控制平面中透過控制器負責網路控制與管理,而一台控制器可同時管理多台SDN交換器,讓原先的交換器只剩下單純的轉送工作,大大提升效能。另外,中央式控管促使網路管理人員只須透過控制器的操作,即可自動化管理整個網路,使人力成本與人為疏失風險降到最低。
OpenFlow Protocol
OpenFlow通訊協定是基於SDN網路架構,使用在控制平面與資料平面交換器之間的溝通協定,雖然OpenFlow不是唯一實踐出SDN架構的通訊協定,另外還存在著基於Remote Procedure Call(RPC)的NETCONF網路管理協定、MPLS Transport Profile(MPLS-TP)等等,但OpenFlow開源的特性成為目前實踐SDN時使用最廣泛的通訊協定。
控制器可透過OpenFlow協定針對指定的網路交換器,以一個類似路由表的概念稱之為流量表(Flow Table),進行流量表與項目新增、修改、刪除行為。流量表在軟體定義網路中扮演極為重要的角色,利用流量表可使位於資料平面中的封包依照規定執行轉發、過濾、修改表頭內容等複雜動作(圖4)。
|
▲圖4 Flow Entry區塊示意圖。 |
RYU Controller Framework
RYU是日本NTT針對SDN架構所開發出的控制器框架,RYU完全是以Python語言所編寫,目前支援OpenFlow 1.0到1.4版本。而此框架結合REST API,以至於可以更加彈性地處理動態事件的控制命令。
Ransomware Tracker - Blocklist
一個非營利性的網站Ransomware Tracker(https://ransomwaretracker.abuse.ch/blocklist/),致力於整合所有勒索軟體所觸發的網路行為追蹤,追蹤內容包括勒索殭屍網路、控制命令伺服器、勒索支付網站與勒索軟體散布網站,此網站從2016年2月持續至今,將蒐集到的惡意域名、IP Address整理成黑名單並且隨時更新,如圖5所示。
|
▲圖5 Ransomware Tracker資料庫頁面。 |
封包擷取及證據分析
勒索軟體在感染者電腦內確定感染後,會經由多個轉跳點連結至C&C伺服器,提供感染電腦的資訊(例如Victim ID與IP),並請求加密鑰匙與包含勒索內容的圖檔,同樣地,C&C伺服器也會經由不停轉送方式以達到隱藏自己使之難以追蹤的目的。
為了由網路端著手防治勒索軟體,且在最短時間內進行阻擋動作,所以必須比對經過網路設備的封包,利用域名轉換服務的DNS封包來進行分析比對。本文擬訂了一份分析流程,藉由SDN架構將分析比對流程程式化,透過架設資料與控制平面分割的環境,解析封包並針對惡意域名進行阻擋,如圖6所示。
|
▲圖6 分析比對流程。 |
架設SDN環境
本文實例操作的使用環境為Ubuntu 16.04作業系統的筆記型電腦,並利用VirtualBox與Mininet模擬出所需之控制器、SDN交換器與目標主機,其中控制器是基於RYU的框架所產生。另外,控制器與SDN交換器間的通訊協定為OpenFlow,並利用SSL進行通道加密。
架設完環境後須確保主機能夠連上網際網路,再者還須確認控制器與SDN交換器之間的連線狀態,當兩端完成連接,就會持續出現OpenFlow協定的封包,如圖7所示。
|
▲圖7 控制器與SDN交換器持續確認連結的封包。 |