• 沒有找到結果。

3.2 系統設計

3.2.4 建立 Cube

由於事實資料表與維度資料表都己經設計好了,要實做 Cube 就變得非常的容易。本 論文使用 Microsoft SQL Server 所提供的 Analysis Services 工具來做為我們資料倉儲 的線上分析處理的決策支援工具,我們將透過它來建立 Cube。

Analyzer 2005 提供多種形式的分析表,我們可以依需要,將資料來源以拖拉的方式 將資料拖曳進報表中,即可簡單地完成一張分析表,透過系統提供的任意維度間階層組合 交叉分析功能,可更快速地達到不同角度來分析資料的目的。另外,若希望以統計圖的方 式呈現,我們也可以利用建立統計圖形的功能迅速地產生對應資料的統計圖形。

本論文希望透過 Analyzer 2005 來製作一個“目的地 Port 流量統計與監測“的分析 報表,透過報表來設定我們使用決策樹所分析出來的臨界值,透過此臨界值來提醒管理者 網 路 可 能 出 現 了 某 些 異 常 狀 況 , 同 時 藉 由 此 報 表 來 為 有 興 趣 的 量 值 設 定 資 料 鑽 研

(DrillDown)的功能,以及設定決策分析圖的樣式。

(a) 報表名稱:目的地 Port 流量統計與監測報表(area)

報表功能:針對目的地 Port 之流量加以統計,並對該值設定蠕蟲病毒的臨界值,

借以提醒網路管理者,流量異常情況的發生 使用 cube 名稱:cube_dwnflow_sifip_dport_area

選取維度:時間、port no 、in or out、ip、protocol name、start time 選取量值:fcount、pkts

3.2.6 Customize Web AP

本論文為網路流量統計設計了一些功能較簡單的報表,最主要的用意是給網路管理者 一個想法,免費的工具固然好用,但有時候卻非完全盡如人意。這時候,做個自行開發流 量統計的系統也是個好主意,如此對於功能需求的彈性度會更大些。圖 9 為自行開發流量 統計系統 Netflow On Web(NOW)之開發環境。

圖 9 Netflow On Web 開發環境

Netflow On Web(NOW)是本論文自行開發之網路流量統計網頁程式,主要是依據 netflow 資料庫中的每日流量資料產生一些統計性的查詢報表,供網路管理者查詢。

Netflow On Web 開發環境:

開發軟體:ASP.NET

開發平台:.NET Framework 1.1 以上 網站伺服器:IIS

資料庫:Microsoft SQL Server 2000

Netflow On Web 主要功能:

(c)個別 IP 當日之流量排行:依據使用者選定之日期,列出當日各個 IP 之流量,

並依流量做降冪的排行。

(d)每個 Port 當日之流量排行:依據使用者選定之日期,列出當日各個 Port 之 流量,並依流量做降冪的排行。

(e)疑似病毒感染之 IP 列表:依據各種蠕蟲病毒所界定的流量臨界值,來判斷疑 似感染蠕蟲病毒之 IP 列表。

4.系統實作

4.1 Decision Tree 在流量(flow)臨界值之分析

本論文將使用決策樹分析法來決定 netflow 流量的臨界值,以判別是否遭受病毒的攻 擊。在決定出幾種病毒的臨界值後,後面章節的系統設計與實作部份都將使用我們所定義 出來的臨界值。

由於網路上多數的病毒攻擊方式都採用 DDoS,所以我們將焦點放在 flow 的封包量 上;受攻擊的次數愈多,封包量就會愈大。

流量臨界值分析環境:Microsoft Analysis Services (SQL Server 2000)。

4.1.1 MSBlast 病毒臨界值分析

在我們所擁有的歷史資料裡,依據 MSBlast 病毒的特性,我們將 pktsize 與 flowcount 以及 isWorm 這三個欄位放入決策樹中,讓決策樹來產生合理的臨界值。

(a) 決策樹所依據的資料表名稱:worm_msblast (b) worm_msblast 資料表資料欄位

表 14 worm_msblast table schema

欄位名稱 資料型態 資料長度 是否允許 null 值 欄位說明

(c) 資料筆數

資料總筆數:719 中毒資料筆數:163 沒有中毒資料筆數:556

(b) 決策樹所需之值

Predictable columns:isWorm

Input columns:pktsize、flowcount (c) 決策樹產生之結果

依據以上的條件值,決策樹產生的結果如下:

圖 10 使用決策樹產生 MSBlast 病毒之決策樹狀圖 (1)

圖 10 依據現有資料庫中的資料說明了 flowcount >= 316.75(單位時間內 flow 的 數量),有 98.8%的機會受到 MSBlast 病毒的攻擊。而另一個子節點則說明了若 flowcount <= 317.75 有 99.64%的機會不會受到此種病毒的攻擊。

圖 11 使用決策樹產生 MSBlast 病毒之決策樹狀圖 (2)

(e) MSBlast 臨界值的設定:flowcount = 330

如圖 11 所示,由決策樹所決定出來的 flowcount 為 316.75,為方便取整數,我 們將值設定為 330,並將此臨界值進一步的做驗証,在驗証中若發現有不適合的現象,

我們再來修正此臨界值。

4.1.2 CodeRed 病毒臨界值分析

在我們所擁有的歷史資料裡,依據 CodeRed 病毒的特性,我們將 pktsize 與 flowcount 以及 isWorm 這三個欄位放入決策樹中,讓決策樹來產生合理的臨界值。

(a)決策樹所依據的資料表名稱:worm_codered (b)worm_codered 資料表資料欄位

表 15 worm_codered table schema

Predictable columns:isWorm

Input columns:pktsize、flowcount (d)決策樹產生之結果

依據以上的條件值,決策樹產生的結果如下:

圖 12 使用決策樹產生 CodeRed 病毒之決策樹狀圖

如圖 12 所示,在“All"根節點下分出了二層的子節點,每一個子節點其所佔的 資料筆數與機率值如下表:

表 16 CodeRed 決策樹狀圖中每個子節點所佔之資料筆數與機率值

Flowcount > 14.75 and

<= 406.75

0 / 38 1 / 6

82.98%

14.89%

Flowcount <= 14.75 or

> 406.75

0 / 409 1 / 0

99.51%

0.24%

Flowcount > 994.75 and <= 3202.75

(e)CodeRed 臨界值的設定:flowcount = 1000

由表 16 的樹狀圖表中我們可以看到"flowcount <= 994.75"子節點佔了 453 筆的資料筆數,不過大部分都是屬於 isworm = 0(沒有中毒的資料),所以我們再 看看另一個子節點"flowcount > 994.75 and <= 3202.75",它的總筆數有 43 筆,屬於中毒的筆數有 7 筆,沒有中毒的筆數有 36 筆,和 flowcount <= 994.75"

此子節點總筆數加起來共有 490 筆,佔絕大多數的資料了,所以,我們決定以將 994.75 取整數 1000 為 CodeRed flowcount 的臨界值。

4.1.3 一般 DDos 攻擊病毒臨界值分析

在我們所擁有的歷史資料裡,依據 CodeRed 病毒的特性,我們將 pktsize 與 flowcount 以及 isWorm 這三個欄位放入決策樹中,讓決策樹來產生合理的臨界值。

(a)決策樹所依據的資料表名稱:worm_ddos (b)資料表資料欄位

表 17 worm_ddos table schema

Predictable columns:isWorm

Input columns:pktsize、flowcount (e)決策樹產生之結果

依據以上的條件值,決策樹產生的結果如下:

圖 13 使用決策樹產生 DDoS 病毒之決策樹狀圖

Flowcount > 21.25 and

<= 936.25

(f)DDoS 臨界值的設定:flowcount = 30

由表 18 的樹狀圖表中我們可以看到"flowcount <= 21.25"子節點 isworm=0 的筆數佔了 22 筆(沒有中毒的資料),所以我們再看看另一個子節點"flowcount >

21.25 and <= 936.25",它的總筆數有 159 筆,屬於中毒的筆數有 99 筆,沒有 中毒的筆數有 60 筆,和 flowcount <= 21.25"此子節點沒有中毒的筆數加總起 來己經有 82 筆,對沒有中毒的筆數來說己佔絕大多數的資料了,所以,我們決定

將 21.25 取整數 30 為 DDoS flowcount 的臨界值。

4.2 流量(flow)臨界值之驗証

在 4.1 節中我們為幾個俱攻擊性的病毒使用了決策樹模型分別為其單位時間內 netflow 之 flow 數量決定了臨界值;

表 19 決策樹模型分析出各病毒種類之所屬 flow 臨界值一欄表 病毒種類 單位時間內 flow 數量之臨界值

MSBlast 330 CodeRed 1000 DDoS 攻擊 30

以下我們將依據上面的臨界值來做驗証,以確保臨界值是有意義的。

4.2.1 驗証 MSBlast 病毒

資料內容包含了已確定中毒及未中毒之 flow 資料;

. 驗証資料日期:2004/04/09 ~ 2004/04/12

. 驗証臨界值:330

. 驗証資料方式:

使用 SQL command 至資料庫中將歷史資料撈出,再做進一步的確認 SQL Command 與結果:

圖 14 MSBlast 資料驗証

如圖 14 所示,在資料驗証上之說明:第 72 筆以後的資料其 flowcount 值皆大於 330,isWorm 欄位皆為 1(表示遭受病毒攻擊),所以 330 是可以信任的臨界值。

4.2.2 驗証 CodeRed 病毒

資料內容包含了已確定中毒及未中毒之 flow 資料;

. 驗証資料日期:2004/04/15 ~ 2004/04/22

. 驗証臨界值:1000

. 驗証資料方式:

使用 SQL command 至資料庫中將歷史資料撈出,再做進一步的確認 SQL

圖 15 CodeRed 資料驗証

如圖 15 所示,在 DDoS 資料驗証之說明:第 50 筆以後的資料其 flowcount 值皆 大於 1000,isWorm 欄位皆為 1(表示遭受病毒攻擊),所以 1000 是可以信任的臨界值。

4.2.3 驗証 DDoS 攻擊

資料內容包含了已確定中毒及未中毒之 flow 資料;

. 驗証資料日期:2003/10/02 ~ 2003/11/12、2004/04/23 ~ 2004/08/31

. 驗証臨界值:30

. 驗証資料方式:

使用 SQL command 至資料庫中將歷史資料撈出,再做進一步的確認 SQL Command 與結果。

圖 16 DDoS 資料驗証

如圖 16 所示,在 DDoS 資料驗証之說明:第 5 筆以後的資料其 flowcount 值皆大 於 30,isWorm 欄位皆為 1(表示遭受病毒攻擊),所以 30 是可以信任的臨界值。

4.3 OLAP 系統實作

本論文系統實作部份的資料將以 NetFlow dump 出來之原始資料為基礎,基於此資料 將其應用於線上即時分析與自行開發之網頁應用程式上。

4.3.1 實作環境

作業系統 : Windows 2000 Server 資料庫 : Microsoft SQL Server 2000 網站伺服器:IIS

程式開發工具 : SQL Language 、ASP.NET

商業智慧軟體 : MS Analysis Services、Analyzer 2005

在我們提供的整個系統實作部份,首先,要將 NetFlow 的原始資料擷取出來,並依據 要分析的主題將資料轉化成有意義的資訊,載入資料倉儲或資料超市的資料庫中,以做為 將來知識或智慧的資料源頭。本系統整個所涵蓋的內容包括了(1)資料粹取/轉換/載入 工具(ETL),(2)資料分析平台設計工具(Analysis services),(3)線上分析呈現工具

(OLAP)及後端之查詢應用程式,請參考圖 17 資料轉化為最後智慧之流程。

圖 17 資料轉化成智慧的流程

當然,從資料轉化成智慧的流程必得經過許多系統化或人工操作的加值部份(像是資 料的整理、篩選、擷取等等),並輔以工具的使用及對系統的探索,才能完成一個完整的 資料倉庫與商業智慧的解決方案。

4.3.2 系統實作步驟

在本節系統實作步驟裡,將分成 DataSource 部份、ETL 資料轉換部份、Data Cube、

Data Mining 決策樹模型建立臨界值運用於線上即時分析報表以及 Web 查詢報表等五大部 份,以下將一一詳細說明:

Data Source 部份

由 Cisco Router dump 出來的 NetFlow 資料封包原始格式;如圖 18 所示:

圖 18 由 Cisco Router dump 出的 NetFlow 格式

圖 18 的資料格式為 Cisco Router dump 出來的 netflow 資料,而框框內的資料才是 我們需要的 netflow 格式,其中包括了 SrcIf、SrcIPaddress、DestIf、DestIPaddress、

Pr、SrcP、DetP 以及 pkts。

ETL (資料擷取與轉換至資料庫)

由 Data Source 之資料轉入資料庫,我們必須先在資料庫為其建構一個 netflow 資料 表格,netflow 資料表結構請參考前章節之表 3。

在有了資料表的結構後,我們必需使用 SQL 指令,將其建立於資料庫中,以儲存資料。

建立 netflow 資料表格之 SQL 指令:

圖 19 建立 netflow 資料表格之 SQL 指令

在原始資料表的部份,除了歷史資料外,其它每日新增的資料受限於路由器儲存容量

在原始資料表的部份,除了歷史資料外,其它每日新增的資料受限於路由器儲存容量

相關文件