• 沒有找到結果。

第三章 相關研究

3.4 決策樹

決策樹是一種預測模型,它可以找出一堆輸入值與後續輸出值的對應關係,

而且樹中的節點代表某個對象,而每個分叉路徑則是代表該對象可能的屬性值。

此外,每個葉節點則代表從對應根節點到該葉節點所經歷路徑表示對象的值。

決策樹學習也是資料探勘中一個普通的方法。在這裡,每個決策樹都呈現一 種樹狀結構,它由它的分支來對該類型的對象依靠屬性進行分類。每個決策樹可 以依靠對來源數據資料的分割進行數據測試,這個過程可以遞歸式的對樹進行修 剪。當不能再進行分割或一個單獨的類可以被應用到某一分支時,遞歸過程就完 成了,此外決策樹也可以依靠計算條件機率來構造。例如我們的來源資料(X, Y) 為(x1, x2, x3,…, xk, y)中,相關變數 y 表示我們嘗試去找出的結果,而其他變數 x1, x2, x3等則是幫助我們達到目的的變量。

建立方法為

(1)以資料母群體為根節點。

(2)做單因子變異數分析等,找出變異量最大的變項作為分割準則。(決策樹 每個葉節點即為一連串法則的分類結果。)

(3)若判斷結果的正確率或涵蓋率未滿足條件,則再依最大變異量條件長出 分岔。

17

18

第四 第四 第四

第四章 章 章 章 系統設計 系統設計 系統設計 系統設計

由於我們主要目的是要找出 UI 伺服器送出的 http 封包及 AP 伺服器送往資 料庫端的 SQL 封包間的配對,找到最有可能配對成功的結果,進而找出該 SQL 封包是由哪個 AP 伺服器所送出的。因此在本章節,我們會討論到我們資料庫稽 查系統的大體架構為何,及其細部的內容和實作方法,在 4.1 節我們介紹我們的 大體架構,可分初步分類及進階分類兩個階段。在 4.2 節我們說明初步分類階段 是如何分類的。在 4.3 節我們說明進階分類階段的實作方法及如何利用 Neural Network來達成進階分類的功能。

4.1

資料庫稽查的架構資料庫稽查的架構資料庫稽查的架構資料庫稽查的架構

在我們設計的資料庫稽查系統中,主要可分為初步分類與進階分類兩個階段,

初步分類階段主要是利用去除雜訊、對封包做排序等前置處理的方法,先取出可 以用的資料,然後在利用一些背景知識及資料探勘的技術找出有用的資訊並加以 統計,以供後續進階分類時的 Neural Network 使用。在處理完初步分類的階段後,

接下來我們利用先前收集的統計資訊提供 Neural Network 使用,使進階分類能提 供更精確的比對。而其中的初步分類階段及進階分類階段分別如圖 9 與圖 10 所 示。

19

圖 9 初步分類階段的流程圖

圖 10 進階分類階段的流程圖 前置處理

資料探勘

第一次配對 結束

成功

失敗

類神經網路應

統計資料更新

相似字更新

成功

失敗 進階配對

20

4.2

資料庫稽查系統資料庫稽查系統資料庫稽查系統資料庫稽查系統 – 初步分類初步分類初步分類初步分類階段階段階段階段

在此階段中主要是執行前置處理動作,然後進行第一階段比對,接著從比對 完後的資訊找出統計資訊,並進行類神經網路的學習。

4.2.1

前置處理前置處理前置處理前置處理 – 處理封包雜訊處理封包雜訊處理封包雜訊 處理封包雜訊

由於 http 封包或 SQL 封包在傳輸的過程中,可能因為一些原因,而導致封 包在送達時的內容與一開始的內容有所差異,可能有多出一些數值或是缺少一些 數值的情形,在此情況下,如果不先把雜訊處理好,我們後續的封包比對動作便 會變得困難,因此我們一開始要做的事情就是處理封包雜訊問題,那我們如何處 理呢?

以當傳送的是 http 封包為例,該封包內容為{a1, a2, a3, a4, a5},欄位 a1、a2、 a3、a4分別代表封包的時間郵戳、封包中的網頁 URI、封包的標籤名稱、封包的 標籤數值,而欄位 a5代表封包中欄位 a1到 a4串接後的雜湊值。此外,a1、a2、 a3、a4為該封包最主要的部份。那麼封包送達後,只要 a1、a2、a3、a4這四個欄 位的值還在,那麼即使後面缺少了 a5的值,我們就把 a5視為空字串即可;若是 a5 後有多出來的數值,那麼我們就把它們串接成一個數值,然後把該數值當成 a5欄位的值,如表 5 所示。

21

1279180201 ec-exit.asp pp 6 TD698KwQA 1279180203 pos-pass-check.asp B1 Login TD6+S6wQA 收到

的 http 封包

1279180201 ec-exit.asp pp 6 NULL

1279180203 pos-pass-check.asp B1 Login TD6+S6wQA 445 處理

後的 http 封包

1279180203 pos-pass-check.asp B1 Login 表 5 出現雜訊的封包處理過程

22

圖 11 依時間郵戳排序前的 http 封包

圖 12 依時間郵戳排序前的 http 封包

4.2.3

前置處理前置處理前置處理前置處理 – 建立相似字資料表建立相似字資料表建立相似字資料表 建立相似字資料表

由於在做 http 封包與 SQL 封包的標籤名稱比對時,如果只單純用完整的標 籤名稱比對,則很容易會遺失資訊。如表 6 與表 7 所示,若我們在標籤名稱的比 對時只考慮到用 Policy_no 做比對,那麼在 SQL 封包中的標籤名稱 Policy 及 policy_no將無法被認為是與 Policy_no 相同的比對,如此一來即使原本應該配對 成功的兩筆 http 封包與 SQL 封包,也會因標籤取名的些微差異,而被誤判為不 該是配對的 http 封包與 SQL 封包。

23

時間郵戳 網頁 URI 標籤名 稱

標籤數 值 1279180271 ec-policy-qry-1.asp Policy_no 9442000 1279180401 ta-policy-qry2.asp Policy_no 213

表 6 標籤名稱為 Policy_no 的 http 封包

時間郵戳 SQL指令

1279180271 select insurance_type from polf where Policy = ? 1279180401 select a . exrt_source_ind from pldf a , polf b where a .

plan_code = b . basic_plan_code and where policy_no =

“213”

表 7 與標籤名稱為 Policy_no 的 http 封包配對的 SQL 封包

因此,我們在處理資料之前先將所有 http 及 SQL 封包中的變數名稱先取出,

然後以人工的方式判斷哪些可能是相同的變數名稱,然後將之歸類,那麼在後續 比對時,只要找到類似的變數名稱,便可將其認定為是同樣的意義,那麼就比較 不會有誤判的問題了。如圖 13 所示

圖 13 標籤相似字的資料表

24

4.2.4

第一階段配對第一階段配對第一階段配對第一階段配對 – 時間郵戳的判斷時間郵戳的判斷時間郵戳的判斷 時間郵戳的判斷

由於一般在使用瀏覽器瀏覽網頁時,若伺服器端太久沒回應的話,那麼瀏覽 器會斷開該連線。加上 AP 伺服器只有在收到 UI 伺服器送來的 http 封包後, AP 伺服器才會傳送 SQL 封包給資料庫,所以 SQL 封包中的時間郵戳會比相對應的 http封包時間郵戳來得晚。因此我們利用這兩個觀念來縮小找尋 SQL 封包可能配 對的 http 封包範圍,用以達到節省比對時間及更能準確找到配對的目的。假設 今天我們要比對的 SQL 封包其時間郵戳為 TSQL,而可能比對到的 http 封包其時間 郵戳為 Thttp,那麼可能配對的 http 封包必須符合下列這兩個條件:

1. TSQL – Thttp <= 10 2. TSQL >= Thttp

以圖 14、圖 15 為例,圖 14 代表的是我們取出 SQL 封包的內容,圖 15 代表 的是我們取出的 http 封包內容

圖 14 我們要比對的 SQL 封包內容

25

圖 15 可能比對成功的 http 封包內容

以上述 SQL 封包裡時間郵戳 1279180382 的 SQL 封包為例子,則可能比對符 合的 http 封包其時間郵戳 Thttp必須符合 1279180382 - Thttp <= 10及 1279180382 >=

Thttp這兩個條件,從上述的 http 封包範圍限縮後,我們發現 http 封包裡時間郵 戳 1279180376 到 1279180382 的這些資料符合可能比對成功的 http 封包條件。

4.2.5

第一階段配對第一階段配對第一階段配對第一階段配對 – 關鍵字比對關鍵字比對關鍵字比對 & 計分系統關鍵字比對 計分系統計分系統計分系統

在前置處理完及縮小比對範圍後,接下來我們要進行第一次的 SQL 與 http 封包比對,在此我們利用兩個步驟來達成我們的目的。第一,利用關鍵字的比對,

第二,利用計分系統來算出哪個 http 封包比較符合 SQL 封包的配對。

在關鍵字比對的部分,我們分成兩個步驟,第一個步驟是標籤名稱的相似字 比對,第二個部分則是標籤數值的精確比對。在標籤名稱的比對部分,我們利用 先前所建立的相似字資料表的部分做查詢,若 http 封包中的標籤名稱的值與 SQL 封包中擷取出的變數名稱是屬於相似字資料表中的同一類,那麼就表示它們是相 同的,如表 8、表 9、表 10 所示。

26

Index 時間郵戳 網頁 URI 標籤名 稱

標籤數 值 1 1279180271 ec-policy-qry-1.asp Policy_no 9442000 2 1279180401 ta-policy-qry2.asp Policy_no 213

表 8 比對標籤相似字的 http 封包

索引值 時間郵戳 SQL指令

1 1279180271 select insurance_type from polf where Policy

= “9442000”

2 1279180401 select a . exrt_source_ind from pldf a , polf b where a . plan_code = b . basic_plan_code

and where policy_no = “213”

表 9 比對標籤相似字的 SQL 封包

相似字資料表中查詢到 Policy_no 相似字的資料為

Policy_no Policy_NO policy_no pol policy Policy 表 10 在相似字資料表裡查詢到的相似字資料

27

1 1279180382 select insurance_type , po_sts_code from polf where policy_no = “990600009”

表 11 計分系統下的 SQL 封包

28

圖 16 處理完第一次比對後的結果

4.2.6

資料探勘資料探勘資料探勘資料探勘

在第一次的比對時,有不少獲得最高分的 http 封包個數,事實上是超過一 筆的,因此接下來我們要做資料探勘,從原本資料中找出較重要的資訊並加以統 計整理,使這些超過一筆的最高分 http 封包在之後分析時能加以考慮這些資訊,

以達到更精準的分析。

但我們要統計分析什麼樣的資訊呢?在此我們認為每個網頁中出現過哪些 標籤名稱、每個標籤名稱的次數、每個標籤數值的次數、出現過哪些 SQL 操作指 令、該 SQL 指令的出現次數、用過那些資料庫種類,及這些標籤名稱、標籤數值、

SQL操作指令、資料庫種類的出現頻率等等,是比較重要的資訊。

我們統計每個網頁含那些標籤及每個標籤出現過的次數結果如圖 17 所示,

每個網頁含那些 SQL 操作指令及每個 SQL 操作指令在網頁中出現次數如圖 18 所 示,

29

圖 17 每個網頁含有的標籤名稱及該標籤出現次數

圖 18 每個網頁含有的 SQL 操作指令及該指令出現次數

在文檔中 資料庫軟體上的資訊安全 (頁 25-0)

相關文件