第三章 實驗架構與實驗⽅方法
3.2 入侵偵測系統的⾃自動防護功能
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
3.2 入侵偵測系統的⾃自動防護功能
在3.1節規則學習中,所⾯面臨最⼤大的挑戰是如何辨識有害的流量,系統在觀測時間內會 放⾏行所有封包,即有可能是有害封包。︒為解決這個問題,我們在本架構中導入IDS入侵 偵測系統(Intrusion Detection System),透過IDS監控網路上所有流量,並與本身所設定 的規則檔案(Rule file)進⾏行比對,辨別有害的流量。︒有問題的封包,將透過Unix Domain Socket送給IDS主機上的監聽程式,監聽程式再透過Json-RPC呼叫控制器,將問題封包 加入防⽕火牆規則,達到即時拒絕危險流量,避免危害網路⾏行為發⽣生。︒Unix Domain Socket是基於socket架構上,應⽤用在同⼀一台主機上的程序間通訊(IPC,Inter-Process Communication),不需使⽤用網路底層協議通信,使⽤用系統⽂文件位置做為身份識別,所 以兩個程序可透過打開同⼀一個系統⽂文件進⾏行通信。︒
實驗架構如圖3.4所⽰示,各主機說明如下:
• Server1:內部主機。︒
• IDS server:入侵偵測伺服器,安裝兩張網路卡,其中之⼀一監聽網路上所有流量,進
⾏行比對並找出有危害之封包,進⼀一步提交需求給控制器,阻擋該危險流量︔;另⼀一張 則做為正常網路通訊使⽤用。︒
• Open vSwitch : 使⽤用Linux Ubuntu伺服器並安裝Open vSwitch來實作OpenFlow switch。︒
• POX Controller : 使⽤用Linux Ubuntu伺服器並安裝POX controller,管理SDN網路環境。︒
• Client : 測試主機,向server1產⽣生測試封包,藉此驗證是否達到入侵偵測系統的⾃自動 功能。︒
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖3.4 入侵偵測系統的⾃自動防護功能實驗架構圖。︒
圖3.5 入侵偵測系統的⾃自動防護功能實驗流程圖。︒
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
實驗時我們採取下列步驟,實驗流程如圖3.5所⽰示:
1. 建⽴立交換機中的路由表,以利後續測試。︒
2. IDS server執⾏行入侵偵測服務,監控網路上所有流量。︒
3. Client端利⽤用測試軟體IDSwakeup[10],向Server1送出測試封包進⾏行測試。︒
4. IDS監聽Client所送出的封包,經比對後判斷為有危害的封包,將此封包資料轉換為 防⽕火牆規則並透過HTTP送出Json-RPC至控制器將規則套⽤用到交換機上。︒
5. 由Client對Server1再次送出相同封包流量,驗證是否已經成功被阻擋。︒
IDSwakeup為專⾨門測試入侵偵測系統的軟體,由⼀一系列⼯工具所組成(Hping2,Libnet 1.x),能夠產⽣生TCP 、︑UDP、︑ICMP等各種通訊協定,並且產⽣生封包模擬攻擊⾏行為,例 如DoS攻擊,Web Application攻擊等。︒本⽂文將使⽤用此軟體進⾏行測試,產⽣生共88筆攻擊⾏行 為,詳細如表3.2所列。︒並且依據Snort偵測所判定之危害程度進⾏行處理,優先序為1的 封包將直接封鎖該封包來源位置,其他優先序的封包由於較無直接危害影響,故未對 其做封鎖。︒
‧
Attack type Priority Description Number of
attacks
Protocol
Attempted Denial of Service
2 Attempted Denial of Service 10 TCP/UDP
Attempted Information Leak
2 Attempted Information Leak 18 TCP/UDP
Access to a Potentially Vulnerable Web Application
2 WEB-CGI phf access WEB-IIS ISAPI .ida access WEB-FRONTPAGE administrators.pwd access WEB-MISC handler access WEB-IIS newdsn.exe access WEB-IIS search97.vts access
6 TCP
Web Application Attack
1 WEB-IIS cmd.exe access WEB-IIS iisadmin access WEB-IIS Alternate Data streams ASP file access attempt
4 TCP
Misc activity 3 ICMP Destination Unreachable Port/Network/Host/Protocol Unreachable
ICMP Echo Reply
36 ICMP
Potentially Bad Traffic
2 FTP SITE EXEC attempt FTP CWD ~root attempt ICMP Source Quench ICMP redirect net/host loopback traffic
8 TCP/ICMP
A Suspicious String was Detected
3 FTP format string attempt 1 TCP
Attempted Administrator Privilege Gain
1 TELNET resolv_host_con SMTP rcpt to command attempt
2 TCP/
TELNET/
SMTP Detection of a Denial
of Service Attack
2 FTP CWD ~ attempt 1 TCP
Misc Attack 2 FTP PORT bounce attempt 2 TCP
‧
供開放的程式介⾯面(Application Programming Interface, API)供其他服務使⽤用。︒⽽而POX控 制器已經實作Json格式的遠端程序呼叫(Remote Procedure Call, RPC)並且可透過HTTP通 訊協定呼叫(Json-RPC via HTTP),我們在此基礎下,實作防⽕火牆邏輯的新增程序,達 到動態調整防⽕火牆規則的⽬目的。︒本論⽂文中所使⽤用之Json-RPC所提交的參數主要有⼆二 個,如下範例:1. Method:呼叫遠端程序之名稱,格式為字串,此範例為呼叫遠端之add_flow程序。︒
2. Params:所需傳入之參數,格式為Object,內容格式為⾃自訂,依各⼈人實作需求訂 定。︒在此範例中包含dpid字串,為交換機ID,及flows陣列。︒flows陣列中包含actios 使⽤用公司網路等。︒因此,我們基於隨需(on demand)的概念,當有服務需要通過防⽕火牆
{
“method”:"add_flow",
"params":{"dpid":"00-1c-42-6b-67-ec",
"flows":[{ "actions":[{"type":"OFPAT_OUTPUT","port":"OFPP_ALL"}],
"match":{"tcp","nw_src":"10.211.55.4","nw_dst":"10.211.55.7","tp_dst":80}
}]
} }