• 沒有找到結果。

資料庫稽查的架構

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

第四章 系統設計

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 操作指令及該指令出現次數

30

4.3

進階分類的階段進階分類的階段進階分類的階段進階分類的階段

在初步分類結束之後,就可以進行我們的進階分類了,在這個階段一開始先 對初步分類階段所找出的統計資訊利用類神經網路加以訓練,然後針對初步分類 階段中第一次比對時,所遇到獲得最高分配對筆數超過一筆的情形,接著進行 Neural Network的測試然後獲得新分數,再比較的這些配對獲得的新分數高低,

以最高分者為我們認為最佳的比對。

4.3.1 Neural Network

訓練過程訓練過程訓練過程訓練過程

在做完資料探勘的動作後,我們會得到一些重要的統計資訊,接下來我們用 Neural Network來對我們的資料做訓練的動作。我們採用的是倒傳遞的神經網路,

然後輸入的屬性為 SQL 封包與 http 封包時間郵戳差值,及另外的 8 個屬性,分 別為該 http 封包網頁 URI 欄位的網頁中,出現過標籤名稱的次數、標籤數值的 次數、SQL 操作指令及用過的資料庫種類等出現次數的頻率,及這些標籤名稱、

標籤數值、SQL 操作指令、資料庫種類的頻率。

在得到這些結果之後,我們再進行把輸入資料正規化的動作,在時間郵戳差 值的部分,我們利用表 14 中的轉換公式來把時間郵戳差值變成 0 到 1 之間的數 值。而剩下的 8 個屬性,則是直接算出其相對比例。

時間郵戳差值 正規化的結果

X (10 - x) / 10 表 14 時間郵戳差值的轉換公式

31

SQL封包 select d.names , b.dept_name , c.address , c.tel_1 from … 對應的 http 封

包網頁 URI

/aiad/pack01/ec/ec-policy-qry-1.asp

時間郵戳差值 1279180587 – 1279180587 = 0 相似標籤名稱 policy_no

相同標籤數值 無

32

33

另外,在我們使用的類神經網路部分,預設有一個隱藏層,隱藏層內有 200 個隱藏神經元,還有一個輸出神經元,訓練的次數為 2000 次,以及訓練的樣本 數有 10000 個。其訓練次數與訓練出來的誤差結果如圖 21 所示,圖 21 前面的數 字表示回合數(每 10 回合為一單位),後面數字表示誤差值,我們可以看出當訓

另外,在我們使用的類神經網路部分,預設有一個隱藏層,隱藏層內有 200 個隱藏神經元,還有一個輸出神經元,訓練的次數為 2000 次,以及訓練的樣本 數有 10000 個。其訓練次數與訓練出來的誤差結果如圖 21 所示,圖 21 前面的數 字表示回合數(每 10 回合為一單位),後面數字表示誤差值,我們可以看出當訓

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

相關文件