TW202305632A - 用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品 - Google Patents

用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品 Download PDF

Info

Publication number
TW202305632A
TW202305632A TW111126131A TW111126131A TW202305632A TW 202305632 A TW202305632 A TW 202305632A TW 111126131 A TW111126131 A TW 111126131A TW 111126131 A TW111126131 A TW 111126131A TW 202305632 A TW202305632 A TW 202305632A
Authority
TW
Taiwan
Prior art keywords
node
hierarchical
dag
nodes
similarity
Prior art date
Application number
TW111126131A
Other languages
English (en)
Other versions
TWI814481B (zh
Inventor
邱銘彰
吳明蔚
叢培侃
林哲宇
楊政霖
Original Assignee
奧義智慧科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 奧義智慧科技股份有限公司 filed Critical 奧義智慧科技股份有限公司
Priority to US17/867,058 priority Critical patent/US20230022709A1/en
Publication of TW202305632A publication Critical patent/TW202305632A/zh
Application granted granted Critical
Publication of TWI814481B publication Critical patent/TWI814481B/zh

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Burglar Alarm Systems (AREA)
  • Image Generation (AREA)
  • Alarm Systems (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

本發明提出一種資安事件診斷系統,用於輔助偵測一標的網路系統是否已受到駭客入侵。首先,收集一標的網路系統中一或多個運算裝置的多個活動記錄。接著,依據該多個活動記錄產生一離散空間度量樹,對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集。每一事件叢集透過單一連結聚合分析可形成對應該事件叢集的一導引樹,用以指引相似度由高到低的一合併順序。該合併順序被用於遞迴地進行圖像產生運作,使該一或多個事件叢集所對應的多個活動記錄轉換為一階層式有向無環圖。

Description

用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品
本發明涉及駭客入侵活動檢測技術,尤指是關於一種高效能的資料分析方式和結構化的資料呈現方式,來做為網路安全漏洞的輔助診斷工具。
隨著各種網路應用越來越普及,駭客入侵事件在各地層出不窮。電腦中安裝的一般防毒軟體能夠偵測並阻擋常見的電腦病毒,但通常難以有效防範或偵測出駭客的入侵行為。例如,近年日益盛行的一種駭客攻擊手段,稱為「進階持續性滲透威脅」(Advanced Persistent Threat,APT),會針對特定企業或組織所做持續、進階且全方位的攻擊。這種駭客攻擊方式通常是由特定國家或組織所贊助的針對性攻擊行動,主要目的是竊取特定情資、加密虛擬貨幣(Cryptocurrency)、或特定人士的個人隱私等等,但一般的資安防護軟體很難發現這類的駭客攻擊行為。
由於駭客攻擊手段非常多樣,當前的技術尚無法單純依賴電腦程式做出精確判斷。實務上,要檢測特定環境是否已遭受前述的進階持續性滲透威脅或其他類型的駭客手段攻擊,需要依賴有經驗的專業資安分析人員,收集受檢環境中大量的電腦活動紀錄後,透過特定的瀏覽篩選工具進行後續的人工分析。然而,在全球化的大型商務網站系統中,電腦活動紀錄的資料量往往相當龐大,傳統的人工分析方式將會產生無法預期的時間成本,也難以即時偵測到系統的異常或入侵威脅。
有鑑於此,如何提升檢測特定環境是否已遭受駭客攻擊的分析效率與精確度,實為有待解決的問題。
本發明提出一種資安事件診斷系統,用於輔助偵測一標的網路系統是否已受到駭客入侵。該資安事件診斷系統包含:一活動記錄匯集裝置和一可疑事件研判裝置。該活動記錄匯集裝置耦接於該標的網路系統,設置成收集與該標的網路系統中的多個運算裝置有關的多個活動記錄,並處理該多個活動記錄以產生一回傳資料。該可疑事件研判裝置設置成可透過網路接收該活動記錄匯集裝置所產生的該回傳資料,從該回傳資料中獲取該多個活動記錄,依據該多個活動記錄產生一離散空間度量樹,對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集。其中,該可疑事件研判裝置還設置為可對至少一事件叢集進行單一連結聚合分析,建立對應該事件叢集的一導引樹,用以指引相似度由高到低的一合併順序。其中,該可疑事件研判裝置還設置為可依據該合併順序,對該一或多個事件叢集所對應的多個活動記錄以遞迴方式進行一圖像產生運作以產生該階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵。其中,該可疑事件研判裝置包含一顯示裝置,設置為可顯示該階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的視覺輔助信息。其中,該離散空間度量樹包含多個節點,每個節點代表一個活動記錄,兩兩節點之間以具有一個權重係數的一個邊緣相連。其中,該可疑事件研判裝置還設置成,可運行一階層式相似度分析運作,以計算兩個待分析活動記錄之間的一階層式編輯距離。其中,產生該離散空間度量樹的運作還包含:對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析活動記錄,進行一階層式相似度分析運作,以產生一階層式編輯距離;以及將該階層式編輯距離設置為該邊緣的權重係數;其中,該階層式相似度分析運作包含:將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節;計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值;以及依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離。
本發明另提出一種電腦程式產品的實施例,允許一可疑事件研判裝置執行一階層式有向無環圖產生運作,以產生一或多個階層式有向無環圖以做為診斷一標的網路系統是否已受到駭客入侵的依據,其中,該可疑事件研判裝置包含一控制電路、一顯示裝置,及一通信電路。該階層式有向無環圖產生運作包含:利用該通信電路透過網路接收一活動記錄匯集裝置所產生的一回傳資料,從該回傳資料中獲取該多個活動記錄;利用該控制電路依據該多個活動記錄產生一離散空間度量樹,其中該離散空間度量樹包含多個節點,每個節點代表一個活動記錄,且兩兩節點之間以具有一個權重係數的一個邊緣相連;利用該控制電路對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別對應的一或多個事件叢集;利用該控制電路對該一或多個事件叢集進行一單一連結聚合分析,以建立對應該一或多個事件叢集的一導引樹,其中,該導引樹用以指出相似度由高到低的一合併順序;利用該控制電路依據該合併順序,對該一或多個事件叢集所對應的多個活動記錄以遞迴方式進行一圖像產生運作以產生一階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵;以及,利用一顯示裝置,顯示該階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的依據。其中,產生該離散空間度量樹的運作還包含:對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析活動記錄,進行一階層式相似度分析運作,以產生一階層式編輯距離;以及,將該階層式編輯距離設置為該邊緣的權重係數。其中,該階層式相似度分析運作包含:將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節;計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值;以及,依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離。
本發明提出一種日誌分類裝置的實施例,用於自適應地將從一標的網路系統收集的多個活動記錄叢集化。該多個活動記錄是由儲存在該標的網路系統中的多個運算裝置中的多個裝置活動回報程式依據該多個運算裝置接收到的命令串所分別產生。該日誌分類裝置至少包含一通信電路、一儲存電路,以及一控制電路。該通信電路設置成可透過網路接收該多個活動記錄。該儲存電路可儲存一資料分析程式。該控制電路耦接該通信電路和該儲存電路,設置成可執行該資料分析程式而依據該多個活動記錄產生一離散空間度量樹,並對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集。該輸出裝置設置為可輸出該一或多個事件叢集,允許一資安事件診斷系統計算該一或多個事件叢集中多個活動記錄的相似特徵信息與差異特徵信息,做為診斷該標的網路系統是否被入侵或發生異常狀況的輔助信息。其中,該離散空間度量樹包含多個節點,每個節點代表一個活動記錄,兩兩節點之間以具有一個權重係數的一個邊緣相連。其中,該日誌分類裝置中的該控制電路還設置成,可運行一階層式相似度分析運作,以計算兩個待分析活動記錄之間的一階層式編輯距離。其中,該日誌分類裝置中的該控制電路還設置成,在產生該離散空間度量樹時,對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析詞節,進行一階層式相似度分析運作,以產生一階層式編輯距離,並將該階層式編輯距離設置為該邊緣的權重係數。其中,該階層式相似度分析運作包含:將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節;計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值;以及,依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離。
本發明另提出一種電腦程式產品的實施例。該電腦程式產品允許一日誌分類裝置執行一自適應數據分類運作,以產生用於診斷一標的網路系統是否被入侵或發生異常狀況的一輔助信息。其中,該日誌分類裝置至少包含一控制電路,一輸出裝置,及一通信電路。該自適應數據分類運作包含:利用該通信電路透過網路接收多個裝置活動回報程式依據多個運算裝置接收到的命令串所產生的多個活動記錄;利用該控制電路依據該多個活動記錄產生一離散空間度量樹,其中該離散空間度量樹包含多個節點,每個節點對應一個活動記錄,且兩兩節點之間以具有一個權重係數的一個邊緣相連;利用該控制電路對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別對應的一或多個事件叢集;以及,利用該輸出裝置輸出該一或多個事件叢集,允許資安事件診斷系統計算該一或多個事件叢集中多個活動記錄的相似特徵信息與差異特徵信息,做為診斷該標的網路系統是否被入侵或發生異常狀況的輔助信息。其中,產生該離散空間度量樹的運作還包含:對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析活動記錄,進行一階層式相似度分析運作,以產生一階層式編輯距離;以及,將該階層式編輯距離設置為該邊緣的權重係數。其中,該階層式相似度分析運作包含:將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節;計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值;以及,依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離。
本發明還提出一種事件視覺化裝置,用於依據多個活動記錄產生可做為診斷一標的網路系統是否已受到駭客入侵之依據的一或多個有向無環圖。其中,該多個活動記錄屬於與一可疑事件類別有關的一事件叢集,且該事件叢集是由多個運算裝置所接收到的命令串經過一叢集化運作而產生。其中,該事件視覺化裝置至少包含:一儲存電路、一控制電路、以及一顯示裝置。該儲存電路設置成可儲存一圖像產生程式。該控制電路耦接該儲存電路,設置成可執行該圖像產生程式,對該多個活動記錄以遞迴方式進行一圖像產生運作以產生一階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵。該顯示裝置耦接該控制電路,設置為可顯示該階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的依據。其中,該圖像產生運作包含:將一活動記錄解譯為一目標有向無環圖,其中,該目標有向無環圖包含一或多個節點,每個節點代表一個詞節,且每個詞節包含一或多個字元;將該目標有向無環圖與一參考有向無環圖進行一階層式偏序對齊運作,以獲得每個節點的一合併條件;依據該合併條件,將該目標有向無環圖與該參考有向無環圖合併為該階層式有向無環圖;以及,利用該階層式有向無環圖做為下一次階層式偏序對齊運作的該參考有向無環圖。
本發明還提出一種電腦程式產品的實施例,允許一事件視覺化裝置執行一階層式有向無環圖產生運作,以產生一或多個階層式有向無環圖以做為診斷一標的網路系統是否已受到駭客入侵的依據。其中,該多個活動記錄屬於與一可疑事件類別有關的一事件叢集,且該事件叢集是由多個運算裝置所接收到的命令串經過一叢集化運作而產生。其中,該事件視覺化裝置至少包含一控制電路及一顯示裝置,該階層式有向無環圖產生運作包含:利用該控制電路對該多個活動記錄以遞迴方式進行一圖像產生運作以產生一階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵;以及,利用該顯示裝置顯示該一或多個階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的依據。其中,該圖像產生運作包含:將一活動記錄解譯為一目標有向無環圖,其中,該目標有向無環圖包含一或多個節點,每個節點代表一個詞節,且每個詞節包含一或多個字元;將該目標有向無環圖與一參考有向無環圖進行一階層式偏序對齊運作,以獲得每個節點的一合併條件;依據該合併條件,將該目標有向無環圖與該參考有向無環圖合併為該階層式有向無環圖;以及,利用該階層式有向無環圖做為下一次階層式偏序對齊運作的該參考有向無環圖。
上述實施例的優點之一,是利用可疑事件研判裝置將大量活動記錄以改良的資料儲存結構,能夠有效減少後續進行資料查詢、更新、分類的運算資源,進而提升資料分析的效率。
上述實施例的另一優點,是以改良的資料儲存結構為基礎,進行一種可將活動記錄自適應分類的運作,使各種未知或新式的異常活動記錄更易於被發現。
上述實施例的另一優點,是提供視覺化呈現方式,將大量活動記錄轉換為具有多層次精細度的有向無環圖,來顯示大量活動記錄的相似特徵與相異特徵,協助資安分析人員更易於判斷異常事件。
本發明的其他優點將搭配以下的說明和圖式進行更詳細的解說。
以下將配合相關圖式來說明本發明的實施例。在圖式中,相同的標號表示相同或類似的元件或方法流程。
圖1為本發明一實施例的資安事件診斷系統100簡化後的功能方塊圖。資安事件診斷系統100用於診斷一標的網路系統102是否已受到駭客入侵。如圖1所示,標的網路系統102中包含有多個運算裝置(例如,圖1中的示例性運算裝置111~112)。請注意,圖1中所繪示的運算裝置的數量,只是為了舉例說明,並非有意將標的網路系統102中的運算裝置數量侷限在特定數目。
在說明書及申請專利範圍中所指稱的「運算裝置」一詞,指的是各種能執行特定作業系統(例如:Windows、Linux、macOS、Android、Chrome OS、HarmonyOS等等)進行運作、並支援合適的資料通信協定的電子設備,例如,桌上型電腦、筆記型電腦、平板電腦、伺服器、網路儲存裝置(Network Attached Storage,NAS)、智慧電視、智慧手機、或智慧音箱等等。前述的資料通信協定則可以是各種有線資料傳輸協定或無線資料傳輸協定,例如,TCP/IP通信協定、UDP(User Datagram Protocol)通信協定、USB(Universal Serial Bus)通信協定、IEEE 802.11系列通信協定、藍牙系列通信協定等等。
在實際應用中,標的網路系統102可以是各種規模的企業、學校、研究機構、或組織的內部網路系統,所以標的網路系統102中的運算裝置的數量,從個位數、數十台、數百台、甚至超過千台以上都有可能。另外,標的網路系統102中的多個運算裝置,有可能都位於同一個地理區域,也有可能是分散在不同的地理區域(例如,不同的城市或國家)。
標的網路系統102中的每個運算裝置可以透過適當的資料傳輸機制(例如,標的網路系統102的內部網路或資料傳輸線),與其他的一或多個運算裝置直接或間接進行各種資料通信。在運作時,標的網路系統102中可有一部分的運算裝置採用有線資料傳輸方式來進行資料通信,並有一部分的運算裝置採用有線資料傳輸方式來進行資料通信。換言之,不同的運算裝置所採用的資料傳輸方式可以有所不同。舉例來說,每個運算裝置111~112分別可耦接一指令輸入裝置113~114,用於接收指令。指令輸入裝置113~114可以是鍵盤、主控臺設備,或其他人機介面裝置。
在圖1的實施例中,資安事件診斷系統100包含有多個裝置活動回報程式120、一活動記錄匯集裝置130、以及一可疑事件研判裝置140。
資安事件診斷系統100中的多個裝置活動回報程式120,分別儲存並安裝在標的網路系統102的前述多個運算裝置111~112中,用於產生與多個運算裝置111~112有關的多個活動記錄(activities records)。駭客入侵的途徑,除了可透過網際網路對運算裝置111~112進行遠端操控,也可透過指令輸入裝置113~114直接在運算裝置111~112的終端進行。因此,裝置活動回報程式120也可以配置成,記錄透過運算裝置111~112所收接到的命令串,做為活動記錄的其中一種類型。舉例來說,裝置活動回報程式120可記錄在指令視窗(Command Window)或殼程式環境(Shell Environment)下所接收到的指令歷史記錄(command history log),做為活動記錄的一部份。另一方面,裝置活動回報程式120在產生活動記錄的時候,也可以一併記錄各種附屬相關資訊在活動記錄中,例如時戳、應用程式名稱、使用者名稱、路徑資源、或網路位址等,以便於後續進一步的分析。換句話說,活動記錄的形式和模板可以隨著每一運算裝置111~112的運行需求而異,不在本實施例中限定。
活動記錄匯集裝置130包含一通信電路131、一處理電路133、以及一儲存電路135。通信電路131耦接於標的網路系統102,並設置成透過適當的網路連線(例如,標的網路系統102的內部網路或網際網路)與前述的多個運算裝置111~112進行資料通信,以接收前述多個裝置活動回報程式120所產生的多個活動記錄。處理電路133耦接於通信電路131,設置成控制通信電路131的運作,並對接收到的多個活動記錄進行處理,以產生一回傳資料(return data)。處理電路133還會利用通信電路131將回傳資料透過合適的網路(例如,網際網路)傳送給可疑事件研判裝置140。儲存電路135耦接於處理電路133,並設置成儲存活動記錄匯集裝置130運作所需的資料或檔案。
在實際應用中,前述的活動記錄匯集裝置130可以安裝在標的網路系統102所屬單位的內部,也可以安裝在標的網路系統102所屬單位以外的其他位置。
如圖1所示,可疑事件研判裝置140包含一顯示裝置141、一通信電路143、一輸入裝置145、一儲存電路147、以及一控制電路149。顯示裝置141用於顯示各種資料與影像。通信電路143設置成透過合適的網路(例如,網際網路)接收前述的回傳資料。輸入裝置145設置成允許可疑事件研判裝置140的使用者(例如,資安分析人員)對可疑事件研判裝置140進行各種操作,例如,輸入指令、修改相關分析參數、調整相關的資料比對標準、或是調整顯示裝置141中的影像尺寸、影像位置、與影像內容等等。儲存電路147設置成儲存一資訊安全分析程式150。資訊安全分析程式150包含資料分析模塊153和圖像產生模塊155。控制電路149耦接於顯示裝置141、通信電路143、輸入裝置145、與儲存電路147,並設置成從通信電路143所接收到的回傳資料中,擷取出與標的網路系統102中的多個運算裝置111~112有關的多個活動記錄。控制電路149還設置成執行資訊安全分析程式150的資料分析模塊153,依據該多個活動記錄產生一離散空間度量樹,對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集。控制電路149還設置成執行資訊安全分析程式150的圖像產生模塊155,將該一或多個事件叢集轉換為可代表該多個活動記錄的相似特徵與差異特徵的一階層式有向無環圖。另一方面,圖像產生模塊155還可使控制電路149利用顯示裝置141顯示該階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的依據。
另一方面,可疑事件研判裝置140產生該階層式有向無環圖的方式,可以是對一或多個事件叢集中的多個活動記錄以遞迴方式進行一圖像產生運作。更進一步地說,可疑事件研判裝置140以遞迴方式將一或多個事件叢集合併為該階層式有向無環圖的順序,可以是依據一個由單一連結聚合分析所建立的導引樹而進行。詳細實施方式於後詳述。
另外,圖1中的示例性惡意檔案提供裝置160,代表駭客在入侵標的網路系統102的過程中可能會使用到的釣魚網站、殭屍電腦、網路跳板、散播惡意程式碼的網站伺服器、或是其他扮演類似角色的各種裝置實體(device entity)的其中之一。在實際的駭客入侵行動中,駭客有可能透過更多數量的惡意檔案提供裝置來試圖攻擊標的網路系統102。
實作上,前述的通信電路131與143皆可用各種有線傳輸電路、無線傳輸電路、或是同時整合前述兩種通信機制的混合電路來實現。處理電路133可以用一或多個處理器單元來實現。儲存電路135與147可用各種非揮發性儲存裝置來實現。顯示裝置141可用能夠呈現影像的各種螢幕或投影裝置來實現。輸入裝置145可用鍵盤、滑鼠、遙控器、觸控螢幕、觸控板、按鈕、聲控輸入裝置、手勢感應裝置、採用其他各種指令産生技術的電路、或前述裝置的組合來實現。控制電路149可用單一處理器模塊、多個處理器模塊的組合、電腦系統、伺服器、或雲端系統來實現。另外,前述的顯示裝置141和輸入裝置145也可以共同整合成單一觸控螢幕或多個觸控螢幕的組合。
以下以圖2說明圖1中的資訊安全分析程式150在資料分析模塊153的部份所提供的功能。
圖2為圖1中的資料分析模塊153的功能模塊示意圖。資料分析模塊153主要包含三種功能模塊,叢集化運作模塊210,搜尋控制模塊220和相似度分析模塊230。這三個功能模塊的運作基礎是一種從BK樹改良而來的離散空間度量樹。
BK樹(Burkhard Keller tree)是一種數據結構,基於編輯距離(Levenshtein距離)的原理而設計,通常適用於自然語言處理,或近似單字的匹配運作。BK樹主要是由多個節點和邊緣組成。每個節點代表一個單字,可透過一或多個邊緣連接至其他節點。每一邊緣指派有一個權重係數,用於代表該邊緣兩端的節點的編輯距離。每個節點可連接一或多個邊緣,但這些邊緣的權重係數不會重複。當大量單字以BK樹結構儲存後,就能有效率地利用這個BK樹來為一新單字查詢最接近的相似字。不論是在查詢單字時,或是在增加一個新單字一BK樹中時,都需要從根節點開始,與每個節點進行一個編輯距離運算,並循著符合編輯距離運算結果的邊,遞迴地與下一個節點進行編輯距離運算。傳統的編輯距離運算方式,是從兩個單字中所有字元的可能替換組合中,找出替換成本總值最小的一個組合,並使該組合的替換成本總值做為該兩個單字的編輯距離。每兩個字元之間的替換成本包含三種可能數值:
從第一字元替換為空白,或從空白替換為第二字元,替換成本為1。
從第一字元替換為第二字元,替換成本為2。
第一字元等於第二字元時,替換成本為0。
因此,在BK樹的每個邊緣中所記錄的權重係數,即兩兩單字之間的替換成本,是該兩個單字中所有字元的一最佳替換組合的替換成本加總值,也將會是一個沒有上限的整數值。
本申請的實施例中,提出一種叢集化運作模塊210,用於將可疑事件研判裝置140從標的網路系統102或活動記錄匯集裝置130中接收到大量的活動記錄,轉換為離散空間度量樹的形式而儲存,並提供新增節點以及自適應叢集化的功能。每筆活動記錄通常是包含一或多個單字的一行文字。舉例來說,一筆活動記錄可以用來代表一行命令串,而每行命令串通常是由一個主命令詞加上一或多個執行參數組成,且每個執行參數之間以一個空白相隔。依據自然語言處理領域的慣例,本實施例將每行文字中各別的單字稱為一個詞節(token)。
在本實施例所提出的離散空間度量樹中,每個節點包含的活動記錄,實際上是長度變化不定的一或多個詞節。本實施例的相似度分析模塊230,為節點和節點之間的權重係數,提供一種標準化的計算方式。相似度分析模塊230可接收兩個輸入值,經過運算後,輸出該兩個輸入值的階層式編輯距離HED。叢集化運作模塊210可利用相似度分析模塊230來計算離散空間度量樹中每個邊緣的權重係數。
舉例來說,當資料分析模塊153收到一個新增活動記錄的要求,要將第n+1個活動記錄S(n+1)加入已有n個活動記錄的一離散空間度量樹中,叢集化運作模塊210將該活動記錄S(n+1)指派為目標節點S,並將離散空間度量樹的根節點指派為參考節點S’。叢集化運作模塊210將目標節點S和參考節點S’中的活動記錄值代入相似度分析模塊230後,獲得一階層式編輯距離HED(S,S’)。叢集化運作模塊210循著權重係數為階層式編輯距離HED(S,S’)的邊緣,將該邊緣連結的下個節點指派為參考節點S’,並重複代入相似度分析模塊230的運算持續往下搜尋。當叢集化運作模塊210遍歷至某一節點而且找不到符合權重係數階層式編輯距離HED(S,S’)的邊緣時,新增一新邊緣將該節點與目標節點S相連,並指派階層式編輯距離HED(S,S’)值為該新邊緣的權重係數。相似度分析模塊230是資料分析模塊153中大量重複使用的關鍵運算模塊。其詳細的運作將於圖3中說明。
另一方面,本實施例所提出的叢集化運作模塊210,還提供一種自適應叢集化的功能。在資料分析模塊153收到一個新增的活動記錄S(n+1)時,除了可以利用叢集化運作模塊210來處理新增的活動記錄,也可以利用搜尋控制模塊220來進行叢集化運作。叢集化運作包含一系列遞迴搜尋的過程。在過程中,會新增鄰邊,將活動記錄S(n+1)連結至相似度符合條件的所有節點,藉此使有鄰邊相連的所有節點形成一個叢集。在遍歷搜尋的過程中,搜尋控制模塊220可協助決定需要往下搜尋的邊緣,以及不需要搜尋的邊緣,藉以減低在離散空間度量樹中搜尋的運算量,加速建立叢集的運作。搜尋控制模塊220可接收目標節點S和參考節點S’做為輸入值,經過一個離散三角不等式的運算後,判斷離散空間度量樹中的參考節點S’上的哪些邊緣是需要繼續往下搜尋的邊緣。搜尋控制模塊220將需要搜尋的邊緣輸出為一個佇列T’,讓叢集化運作模塊210據以遞迴地完成遍歷搜尋的運作。
當叢集化運作模塊210完成對一個目標節點S的叢集化運作後,可輸出一組資訊(T, E)並儲存至儲存電路147中。其中T是一個更新後的離散空間度量樹,以及E是一個事件叢集的所有節點或鄰邊資訊的集合。
本實施例中的叢集化的優點包含:運作方式完全是依據目標節點與參考節點的相似度指標來決定,不需要事先設置固定的模板或條件,因此具有自適應能力,可對任何未知的新型態攻擊樣式產生即時反應。搜尋控制模塊220也是資料分析模塊153中大量重複使用的關鍵運算模塊,其運算過程也會大量的重複利用相似度分析模塊230來計算階層式編輯距離HED。詳細的運作將於圖5中說明。
圖3為圖2中的相似度分析模塊230功能模塊示意圖。相似度分析模塊230的主要功能包含詞節解譯模塊301,正規化運算模塊303,替換成本運算模塊305和相似度運算模塊307。相似度分析模塊230可接收兩個待分析活動記錄(S,S’),經過詞節解譯模塊301,正規化運算模塊303,替換成本運算模塊305和相似度運算模塊307協同執行的階層式相似度分析運作後,輸出該兩個待分析活動記錄(S,S’)的階層式編輯距離HED(S,S’)和階層式最長共用子序列長度HLCS(S,S’)。
當相似度分析模塊230接收到兩個待分析活動記錄(S,S’)時,由詞節解譯模塊301進行詞節解譯。將第一活動記錄S和第二活動記錄S’解譯為多個第一詞節ts和多個第二詞節ts’。以每一筆活動記錄代表一行命令串的情況為例,每行命令串通常是由一個主命令詞加上一或多個執行參數組成,且每個執行參數之間以一個空白相隔。詞節解譯模塊301可依據常用的命令串語法規則,將主命令詞和各種執行參數,以空白字元為分隔符號,拆解為多個獨立的詞節。主命令詞通常可以是一個執行檔或安裝檔的檔名,甚至包含路徑位址。在某些特定的情況下,詞節解譯模塊301可以選擇將主命令詞中的路徑位址捨棄掉,只留下單純的檔名,以減輕分析負擔。
在詞節解譯模塊301將兩個待分析活動記錄(S,S’)解譯為多個第一詞節ts和多個第二詞節ts’後,正規化運算模塊303計算該多個第一詞節ts與該多個第二詞節ts’兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值。舉例來說,如果第一活動記錄S中包含有m個第一詞節ts,而第二活動記錄S’包含有n個第二詞節ts’,正規化運算模塊303會計算出m*n個正規化編輯距離NED(ts,ts’)。
正規化編輯距離NED是本申請定義的一種度量單位,目的是希望將兩個詞節之間的替換成本以一種固定範圍的指標值來表示。本實施例提出的NED定義如下:
Figure 02_image001
……(1)
其中,w1表示一個第一詞節,而w2表示一個第二詞節,其中分別可包含一或多個字元。
|w1|或|w2|表示第一詞節或第二詞節的長度,即字元個數。
ED(w1,w2)表示的是第一詞節和第二詞節的編輯距離。編輯距離和最長共用子序列值LCS具有二元互換的特性。
Figure 02_image003
……(2)
最長共用子序列LCS代表兩個詞節之間共同擁有的字元序列,可以不連續,但不能換順序。換句話說,最長共用子序列LCS的長度可以做為兩個詞節之間的相似度指標。由於詞節之間的編輯距離和最長共用子序列算法是已知技術,在此不再加以說明其計算方式。
由公式(1)和(2)可理解,兩個詞節的長度和最長共用子序列LCS長度可以形成一個二維空間的三角形,實質上等效於兩個詞節向量的內積。而本申請實施例透過餘弦反函數將這兩個詞節向量的夾角反推出來,並轉譯為一個範圍在0到1之間的實數值,以排除詞節長度的差異對邊緣權重造成的影響,讓後續應用更加精確。換句話說,正規化運算模塊303運行公式(1)計算每一第一詞節與每二詞節的一最長共用子序列值,每一第一詞節與每二詞節的一字元數乘積的根值,最後依據該最長共用子序列值和該字元數乘積的根值的一比值的一反餘弦函數,萬得該正規化編輯距離NED。
替換成本運算模塊305收到正規化運算模塊303算出的所有正規化編輯距離NED後,可進行與傳統編輯距離運算類似的運作,找出階層式編輯距離HED。舉例來說,每兩個字元之間的階層式編輯距離HED包含三種可能數值:
從第一字元w替換為空白,或從空白替換為第二字元w’,正規化替換成本定義為1;
從第一字元w替換為第二字元w’,正規化替換成本定義為兩倍的正規化編輯距離NED(w,w’) ;以及
當第一字元w等於第二字元時w’,正規化替換成本為0。
替換成本運算模塊305可從該多個第一詞節與該多個第二詞節的所有可能替換組合中,找出具有最小正規化替換總成本的一替換組合,並將該最小正規化替換總成本指派為該兩個待分析活動記錄(S,S’)的階層式編輯距離HED(S,S’)。替換成本運算模塊305最後輸出階層式編輯距離HED(S,S’)以利離散空間度量樹相關運算。
進一步地,本實施例依據階層式編輯距離HED的定義,也定義了句子級別的相似度指標為階層式最長共用子序列(Hierarchical Longest Common Sub-sequence,HLCS)的長度。階層式最長共用子序列長度HLCS和階層式編輯距離HED之間也具有二元交換性。
Figure 02_image005
……(3)
其中,S表示第一活動記錄,而S’表示第二活動記錄,其中分別可包含一或多個詞節。
|S|或|S’|表示第一活動記錄或第二活動記錄的長度,即總字元數。
相似度運算模塊307依據公式(3)將替換成本運算模塊305輸出的階層式編輯距離HED轉換為階層式最長共用子序列長度HLCS,做為兩筆活動記錄之間一種標準化相似度指標。舉例來說,相似度運算模塊307依據該兩個待分析活動記錄的字元數加總,減去該兩個待分析活動記錄的該階層式編輯距離後除以2,就能換算出該兩個待分析活動記錄的一相似度指標。
本實施例所定義的階層式編輯距離HED計算方式,包含下列優點。由於標的網路系統102中的活動記錄通常是長度不固定,而且內容隨機變化的命令串。本實施例先將每個活動記錄拆解為詞節進行單字級別的正規化運算,再進行為句子級別的二階段式運算,相對於傳統的編輯距離運算法,對資料差異的識別度有顯著提升,也能有效降低運算量。
圖4為本發明的相似度分析模塊230為兩筆活動記錄計算階層式編輯距離HED的實施例。
命令串分析表410表達兩筆活動記錄A和B。每筆活動記錄可分別透過詞節解譯模塊301解譯為詞節A1、A2、A3,以及詞節B1、B2、B3。接著依據正規化運算模塊303的實施例,可求得每兩個對應詞節之間的正規化編輯距離NED(An, Bn)。舉例來說:
NED(A1,B1)=0;
NED(A2,B2)=0.7;以及
NED(A3,B3)=0.5。
依據替換成本運算模塊305的實施例,活動記錄A中的詞節A1、A2、A3,以及活動記錄B中的詞節B1、B2、B3,可利用一替換成本陣列420來進行分析,以便於逐步找出最佳路徑而累加替換成本。替換成本陣列420的分析邏輯與傳統的編輯距離運相似,只是兩兩詞節之間的替換成本改用正規化編輯距離NED來計算。在圖4中,路徑422代表從(A1,B1)到(A2,B2)的最佳累加路徑,而路徑424代表從(A2,B2)到(A3,B3)的最佳累加路徑。由於正規化編輯距離NED(A2,B2)是0.7,所以從(A1,B1)累加至(A2,B2)的總替換成本是0+0.7x2=1.4。同樣的,由於正規化編輯距離NED(A3,B3)是0.5,所以(A3,B3)的正規化替換成本是2x0.5=1,而累加至(A3,B3)的總替換成本是1.4+1=2.4。完成全部運算後的總替換成本2.4就被輸出為活動記錄A和B的階層式編輯距離HED。
圖4的實施例進一步說明了以下優點。由於原本的活動記錄被拆解成多個較短的詞節,且每個詞節是符合自然語言原則或電腦指令規則的有意義單字,因此計算出來的正規化編輯距離NED值也比隨機字串的相似度值更具有分析意義,最後加總出來的階層式編輯距離HED值也能保留原語句結構的辨識度。此外,每個正規化編輯距離NED運算只需要處理長度較短的詞節,運算量極為輕省。若是相似度分析模塊230能搭配計算機的平行運算技術,可以在短時間內同時完成大量輕負擔的正規化編輯距離NED運算,使整體階層式編輯距離HED運算的效能呈現指數級的提升。
圖5為離散空間度量樹500的實施例以及叢集化運作的實施例。
圖5的離散空間度量樹500中,包含多個節點,每個節點之間以邊緣相連。在本實施例中,每個節點代表的是一筆活動記錄,而每筆活動記錄可以一或多個詞節。每個邊緣上的權重係數,是經由相似度分析模塊230計算出來的階層式編輯距離HED。
相似度分析模塊230計算出來的階層式編輯距離HED可能是浮點數。然而,在叢集化運作模塊210建立離散空間度量樹500時,考慮到樹的結構平衡,邊緣的權重係數必須是不連續的離散值,例如整數。因此,在叢集化運作模塊210利用相似度分析模塊230為每一條邊緣設置權重係數時,可利用無條件捨去法或四捨五入法取將階層式編輯距離HED轉換為一整數值,再設置為該邊緣的權重係數。當叢集化運作模塊210為一新節點進行新增或查詢運算時,也依據同樣的取整數原則來處理該新節點與離散空間度量樹500中每個節點的階層式編輯距離HED值。
圖5可用來說明在離散空間度量樹500中新增一節點I的實例。離散空間度量樹500具有一個根節點R。在資料分析模塊153收到一個新增的活動記錄S(n+1)時,該活動記錄S(n+1)被視為新節點I,而叢集化運作模塊210會執行一個將該新節點I加入至離散空間度量樹500中的任務。叢集化運作模塊210從根節點R開始,將根節點R指派為參考節點。叢集化運作模塊210可利用相似度分析模塊230來計算離散空間度量樹中每個邊緣的權重係數。舉例來說,叢集化運作模塊210利用相似度分析模塊230計算該新節點I與參考節點的階層式編輯距離HED,獲得階層式編輯距離HED(I,R)=2.4。在圖5的實施例中,根節點R上包含有三條邊緣,其權重係數分別為2、4、及8,對應地指向下游節點J、B、及A。新節點I與根節點R的階層式編輯距離HED(I,R)經過取整數運算後,符合權重係數為2的這條邊緣。因此,叢集化運作模塊210將對應的下游節點J指派為新的參考節點,並利用相似度分析模塊230計算新節點I與節點J的階層式編輯距離HED,依此返覆。圖5中的節點J只有一條下游邊緣,權重係數為3。如果新節點I和節點J的階層式編輯距離HED取整數後符合權重係數3,叢集化運作模塊210就將參考節點指派為對應的下游節點K而返覆上述步驟。如果新節點I和節點J的階層式編輯距離HED取整數後不符合權重係數3,而是一個不同的數值,例如1,則叢集化運作模塊210為節點J新增一個權重係數為1的邊緣,並使節點I連接至該邊緣,成為節點J的下游。藉此,節點I即被加入至離散空間度量樹500。
圖5還可用來說明在離散空間度量樹500中進行叢集化運作的實施例。同樣是以新節點I為例。在資料分析模塊153收到一個新增的活動記錄S(n+1)時,該活動記錄S(n+1)被視為新節點I。新節點I在本實施例中又簡稱為目標節點。而叢集化運作模塊210會利用搜尋控制模塊220來將符合一搜尋範圍的邊緣加入一個搜尋佇列,以便進行叢集化運作。首先,叢集化運作模塊210從該離散空間度量樹的根節點R開始,指派根節點R為一參考節點。接著,叢集化運作模塊210利用相似度分析模塊230計算目標節點和參考節點對應的階層式編輯距離HED和階層式最長共用子序列長度HLCS。階層式編輯距離HED在本實施例可用來代入一離散三角不等式,以決定該搜尋範圍。階層式最長共用子序列長度HLCS是用來進行一相似度條件的判斷。
在本實施例中,定義了一個離散三角不等式,用來決定搜尋範圍:
Figure 02_image007
……(4)
其中,HED(S,S’)代表目標節點和參考節點的階層式編輯距離HED;
Ke代表離散空間度量樹中的一個邊緣的權重係數;以及
ε定義為相似度期望值。舉例來說,如果希望找到與目標節點的階層式編輯距離HED小於2的節點,則相似度期望值ε就定義為2。在一實施例中,相似度期望值ε可定義為目標節點本身的對應的活動記錄長度|S|,例如詞節個數,或總字元個數。
這個離散三角不等式可以理解為一種加速搜尋的方式。在離散空間度量樹中搜尋與目標節點相似的對象時,只需要循著權重係數符合這個搜尋範圍的邊緣往下尋找。至於不符合這個搜尋範圍的邊緣,可直接忽略不處理。
舉例來說,從根節點R開始搜尋時,該搜尋範圍的上限值,是該新節點I與根節點R的階層式編輯距離HED(I,R)加上該新節點I的長度。而該搜尋範圍的下限值,是該新節點I與根節點R的階層式編輯距離HED(I,R)減去該新節點I的長度再減1。公式(4)之所以稱為「離散」三角不等式,是因為離散空間度量樹中的邊緣的權重係數是經過無條件捨去法所獲得的離散值,因此搜尋範圍的下限值還需要包含一個減去1的運算,才能涵蓋原階層式編輯距離HED被捨去的非整數範圍。如果相似度期望值ε定義為2,且階層式編輯距離HED(I,R)是2.4,則搜尋範圍的上限值是4.4,而下限值是-0.4。在根節點R的下游邊緣中,符合這個搜尋範圍的邊緣包含兩條,權重係數分別為2和4,且對應的下游節點分別為節點J和節點B。於是,搜尋控制模塊220將節點J和B加入搜尋佇列,依序將節點J和B指派為參考節點,而重複上述搜尋。
又例如,叢集化運作模塊210搜尋至節點B時,依據節點I和節點B計算下一搜尋範圍。而在節點B的兩條下游邊緣中,只有權重係數為3的邊緣符合該搜尋範圍,於是搜尋控制模塊220將該邊緣所連結的節點C加入搜尋佇列,使叢集化運作模塊210依序往下遞迴搜尋。至於權重係數為5的邊緣,因不符合搜尋範圍,則被忽略而不處理。
本實施例所定義的離散三角不等式,突顯下列優點。透過相似度期望值ε的設置,可有效地使搜尋運算量收斂,快速地將所有符合條件的節點建立為一個叢集。
如果該參考節點與該目標節點的階層式最長共用子序列長度HLCS符合一相似度條件,叢集化運作模塊210可建立一個鄰邊將該參考節點與該目標節點連結。
在本實施例中,定義了下列相似度條件:
Figure 02_image009
……(5)
公式(5)可理解為,當兩筆活動記錄S和S’的階層式最長共用子序列長度HLCS大於較長活動記錄的一半長度時,則兩筆活動記錄符合該相似度條件。
在圖5中,當叢集化運作模塊210對新節點I和節點J進行比較時,發現新節點I和節點J的階層式最長共用子序列長度HLCS符合該相似度條件,則為新節點I和節點J建立一鄰邊E(I,J),並在該鄰邊上標注該新節點I和節點J的階層式最長共用子序列長度HLCS。當叢集化運作模塊210將搜尋佇列中所有的節點都處理完成後,可能產生多條符合相似度條件的鄰邊E。於是,叢集化運作模塊210將這些鄰邊E的集合記錄為同一叢集。
本實施例所定義的叢集化運作,突顯下列優點。將新節點I代入中離散空間度量樹500進行搜尋的過程,重複利用了資料分析模塊153中的搜尋控制模塊220和230來加速運算。基於離散空間度量樹500的改良結構,可在單一運作中就達成新增節點、查詢節點、以及叢集化的效果。在進一步的實施例中,叢集化運作模塊210也可以為離散空間度量樹500中的每一個節點標記所屬叢集,讓新進的節點找到符合相似度條件的節點後,直接納入對應的所屬叢集中,以節省後續的搜尋運算。由公式(4)和(5)可知,本實施例的叢集化運作,不需要事先設置模板。叢集化運作模塊210會利用階層式編輯距離HED的特性,搭配相似度期望值ε的設定,可自適應地將符合相似度條件的大量活動記錄歸類為叢集。
圖6為圖1中的圖像產生模塊155的功能模塊示意圖。在資料分析模塊153完成資料處理後,產生對應各種可疑事件類別的叢集,儲存在儲存電路147中。圖像產生模塊155進一步將存儲在儲存電路147中的事件叢集做視覺化處理,使資安工作者便於分析與判斷入侵事件。
圖像產生模塊155主要提供一種階層式有向無環圖(Hierarchical DAG, HDAG)的圖像產生運作。在一實施例中,圖像產生模塊155包含了第一偏序對齊運作模塊610,第二偏序對齊運作模塊620,有向無環圖合併模塊630,以及有向無環圖繪製模塊640。圖像產生模塊155接收兩個有向無環圖為輸入值,進行一階層式偏序對齊運作(Hierarchical Partial Order Alignment,HPOA)後,輸出合併後的有向無環圖Gout。合併後的有向無環圖Gout又可迭代地做為下一次階層式偏序對齊運作HPOA的輸入值。依此遞迴,最終可將一事件叢集中的所有活動記錄繪製為一個以多階層結構呈現整體資料的相同特徵和相異特徵的階層式有向無環圖HDAG。
舉例來說,每一事件叢集中包含多個活動記錄。每一筆活動記錄在結構上等效於一個單鏈有向無環圖。為了將一事件叢集中的每筆活動記錄依序加入階層式有向無環圖HDAG中,圖像產生模塊155可依照一特定順序處理該事件叢集中的每個節點。
在本實施例中,該階層式偏序對齊運作包含兩個階段。第一階段是第一偏序對齊運作模塊610執行的第一偏序對齊運作,而第二階段是第二偏序對齊運作模塊620執行的第二偏序對齊運作。
有向無環圖合併模塊630依據該階層式偏序對齊HPOA運作的結果對加入運算的節點進行有條件的合併運作。最後,有向無環圖繪製模塊640將合併運作的結果繪製為階層式有向無環圖HDAG。
在實作時,第一偏序對齊運作模塊610對兩個輸入的有向無環圖(G1, G2)執行第一階段的偏序對齊運作,而第二偏序對齊運作模塊620對第一階段的偏序對齊運作的產物進行第二階段的偏序對齊運作。為簡化說明,在本實施例中,兩個輸入的有向無環圖(G1, G2)分別稱為目標有向無環圖G1與參考有向無環圖G2。
第一偏序對齊運作模塊610將該目標有向無環圖G1與一參考有向無環圖G2進行第一偏序對齊運作,找出目標有向無環圖G1和參考有向無環圖G2中互相對齊的節點資訊,例如一或多組對齊的節點組(g1,g2)。第一偏序對齊運作模塊610進行的第一偏序對齊運作是以詞節為對齊單位而進行。
參考有向無環圖G2可以是來自有向無環圖合併模塊630前一次合併運算產生的有向無環圖Gout。若第一偏序對齊運作模塊610是第一次進行運算,參考有向有環圖G2可以是該事件叢集中的另一筆活動記錄轉換而成的另一個有向無環圖。
傳統的偏序對齊運作,採用最長共用子序列LCS算法來計算兩兩詞節之間的字元替換成本。每一有向無環圖可拆解成從頭端節點走到末端節點的多條路徑P。而偏序對齊運作就是從兩個有向無環圖的所有可能路徑組合(P1,P2)中,找出具有最佳最長共用子序列LCS分數的一對最佳路徑配對
Figure 02_image011
在第一偏序對齊運作模塊610進行第一偏序對齊運作時,是以詞節為最小節點單位,計算句子級別的替換成本。因此,本實施例定義了一種正規化最長共用子序列NLCS來做為度量單位:
Figure 02_image013
……(6)
依據公式(6),當第一偏序對齊運作模塊610從所有可能路徑組合中找出具有最佳最長共用子序列LCS分數的一對最佳路徑配對(P1*,P2*)後,將該最長共用子序列LCS值與最佳路徑配對(P1*,P2*)的長度乘積根值的比值進行正弦反函數操作,得到一個範圍在0到1之間的正規化實數值,做為該最佳路徑配對(P1*,P2*)的正規化最長共用子序列值。從另一方面來理解,兩個路徑P1*和P2*可視為空間中的向量,最長共用子序列LCS可以視為兩個空間向量的內積。為了表達相似度和最長共用子序列LCS的正比關係,公式(6)採用正弦反函數將該兩個空間向量的夾角重新定義為一個0到1之間的正規化數值。
在第一偏序對齊運作中,第一偏序對齊運作模塊610以公式(6)的正規化最長共用子序列NLCS長度做為替換分數的度量單位,找出目標有向無環圖G1和參考有向無環圖G2中所有可能路徑組合中替換分數最高的最佳路徑配對(P1*,P2*)。最佳路徑配對(P1*,P2*)中可能包含多組對齊的節點組(g1,g2)。舉例來說,目標有向無環圖G1中的一個節點g1,經過該第一偏序對齊運作後,和參考有向無環圖G2中的一個節點g2對齊。節點g1和節點g2,可能分別是一個字元等級的有向無環圖、或包含多個字元的詞節。為了找出每一組對齊的節點組(g1,g2)最適當的呈現方式,在本實施例中,還需要進行下一階段的處理。
第二偏序對齊運作模塊620對第一偏序對齊運作模塊610提供的一或多組對齊的節點組(g1,g2)進行第二偏序對齊運作。第二偏序對齊運作是以字元為對齊單位,最終可找出每一組對齊的節點組中的一最佳字元對齊路徑。
在第二偏序對齊運作模塊620對一組對齊的節點組(g1,g2)進行的該第二偏序對齊運作時,首先,第二偏序對齊運作模塊620將第一節點g1和所對齊的一第二節點g2轉換為以字元為節點單位的一第一有向無環子圖和一第二有向無環子圖。接著,第二偏序對齊運作模塊620計算該第一有向無環子圖和該第二有向無環子圖的每一可能路徑配對的最長共用子序列值(LCS)。最後,第二偏序對齊運作模塊620將具有最大的最長共用子序列值的一組路徑配對,判定為該組對齊的節點組的該最佳字元對齊路徑(p1*,p2*)。第二偏序對齊運作模塊620在獲得最佳字元對齊路徑(p1*,p2*)後,將最佳字元對齊路徑(p1*,p2*)的資訊傳送給有向無環圖合併模塊630。
在本實施例中,定義了一個合併條件:
Figure 02_image015
……(7)
為了使最終的階層式有向無環圖HDAG能有效呈現整體資料的相似特徵與相異特徵,在設計階層式有向無環圖HDAG的產生方式時,刻意設下了合併條件。本實施例定義的合併條件是,兩個對齊的節點g1和g2之間的相似度是否滿足一相似度閾值α。如果兩個節點的差異過大,而且沒有根據相似度設定合併條件,則合併後呈現出來的階層式有向無環圖HDAG也會失去辨識度。透過每一組g1和g2的相似度檢查,可以確保合併結果的可讀性。
舉例來說,有向無環圖合併模塊630可利用第二偏序對齊運作模塊620從每一組對齊的節點組中找出的最佳字元對齊路徑,對每一組對齊的節點組進行一合併條件分析運作,以計算每一組對齊的節點組的正規化共用子序列長度後判斷是否符合合併條件。在實作上,有向無環圖合併模塊630依據公式(6)計算該最佳字元對齊路徑(p1*,p2*)的一正規化最長共用子序列值NLCS(p1*,p2*)。如果該正規化最長共用子序列值NLCS(p1*,p2*)大於等於一相似度閾值α,才判定該組對齊的節點組(g1,g2)可以合併。
有向無環圖合併模塊630依據合併條件判斷結果,對目標有向無環圖G1和參考有向無環圖G2的每組對齊節點進行對應的處理,最終將該目標有向無環圖G1與該參考有向無環圖G2合併為一有向無環圖Gout。舉例來說,有向無環圖合併模塊630可將符合公式(7)的合併條件的每一組對齊的節點組合併為一共用節點而取代原對齊的節點組,並將不符合該合併條件的每一組對齊的節點組分別標記為獨立的分支節點。最終,將所有的共用節點與分支節點重組後,將目標有向無環圖G1和參考有向無環圖G2合併而成有向無環圖Gout。
有向無環圖合併模塊630輸出的有向無環圖Gout可回饋至第一偏序對齊運作模塊610,做為下一次階層式偏序對齊運作的參考有向無環圖G2。有向無環圖繪製模塊640可運行繪製功能,將最終產生的有向無環圖Gout透過顯示裝置141顯示為階層式有向無環圖HDAG。在有向無環圖繪製模塊640產生的階層式有向無環圖HDAG的過程中,除了以詞節為節點單位繪製有向無環圖,還進一步在每個節點中,依據該最佳字元對齊路徑,將每個節點繪製為以字元為節點單位的有向無環子圖。
圖6所說明的資料分析模塊153,包含下列優點。由於大部份的活動記錄是由一個主命令詞加上多個參數詞組成,若是直接以句子為單位來進行相似特徵和差異特徵的區分,將會形成極為發散而不具有可讀性的有向無環圖。資料分析模塊153提供了一種二階段式合併運算。第一階段先以詞節為最小節點單位來分析兩個目標有向無環圖G1和參考有向無環圖G2。第二階段再以字元為最小節點單位來各別分析每一組對應的節點。由於詞節本身就是基於有意義的指令單位去解譯出來的,因此分析結果更貼近實際應用的需要。此外,若是將差異過大的詞節硬是合併在一起,最終產出的階層式有向無環圖HDAG也會失去可讀性。因此,資料分析模塊153還進一步提供了一個合併條件分析運作,以確保合併出來的階層式有向無環圖HDAG,在共用節點中的內容具有一定程度以上的相似處。
在進一步衍生的實施例中,資料分析模塊153還可以多次迭代運作。例如將兩個階層式有向無環圖HDAG,以有向無環子圖為最小節點單位做更上位化的合併,形成可隨著不同解析度需要而顯示的多層次有向無環圖。另一方面,在第二偏序對齊運作模塊620中進行合併條件分析運作時所使用的相似度閾值α,可以接受即時調動或彈性客製,使有向無環圖繪製模塊640產生的階層式有向無環圖HDAG呈現出適當尺度的相似特徵,以貼近實際應用的需求。
圖7為本發明的階層式偏序對齊運行從目標有向無環圖710和參考有向無環圖720生成階層式有向無環圖730的實施例。為了更簡易地明白圖6的實施例所產生的效果,以下以圖7說明將兩個目標有向無環圖G1和參考有向無環圖G2合併為一個階層式有向無環圖730的過程。
在圖7中,目標有向無環圖710代表第一個目標有向無環圖G1,而參考有向無環圖720代表第二個參考有向無環圖G2。目標有向無環圖710本身是一筆活動記錄,而該筆活動記錄在圖7中可視為只有單鏈的有向無環圖,包含多個第一節點A1至A6。每個節點對應活動記錄中的一個詞節。同樣的,參考有向無環圖720也可視為是一個包含多個第二節點B1到B6的單鏈有向無環圖。經過第一偏序對齊運作模塊610進行的第一偏序對齊運作,可找出目標有向無環圖710和參考有向無環圖720的最佳對齊路徑。換句話說,可獲得多組對齊資訊702、704、706和708,分別記載目標有向無環圖710和參考有向無環圖720中多組對齊的節點組。接著,第二偏序對齊運作模塊620依據這些對齊資訊702、704、706和708,分別將每一組對齊的節點組進行第二偏序對齊運作。有向無環圖合併模塊630依據第二偏序對齊運作模塊620的運算結果,還進行了一個合併條件分析運作,只合併相似度滿足條件的節點,而不合併相似度過低的節點。接著,將目標有向無環圖710和參考有向無環圖720中可以合併的節點合併為階層式有向無環圖730中的共用節點。而目標有向無環圖710和參考有向無環圖720中不可合併的節點,則對應地成為階層式有向無環圖730中的分支節點。
如圖7所示,對齊資訊702所記載的節點A2和B1,經過第二偏序對齊運作模塊620的第二偏序對齊運作與公式(7)而確認可以合併,於是節點A2和B1中的字元內容被合併為階層式有向無環圖730中的共用節點C1中的字元級別有向無環子圖。同樣地,對齊資訊704所記載的節點A3和B3,經過第二偏序對齊運作模塊620的第二偏序對齊運作與公式(7)而確認符合合併條件,最終成為階層式有向無環圖730中的共用節點C2。如果目標有向無環圖710中的節點A3和B3是完全相同的詞節,則階層式有向無環圖730中的共用節點C2中呈現的是由節點A3或B3合併而成的一個字元級別有向無環子圖。
如果對齊資訊706所記載的第一節點A5和第二節點B4,經過第二偏序對齊運作模塊620的第二偏序對齊運作與公式(7)而判定不符合合併條件,第一節點A5和第二節點B4在階層式有向無環圖730中維持不合併的狀態。至於在第一偏序對齊運作中沒有被對齊的其他節點,例如第一節點A1、第二節點B2、第一節點A4、和第二節點B6,也在階層式有向無環圖730中維持不合併的狀態呈現。
圖7的階層式有向無環圖730,總結來說,是由目標有向無環圖710和參考有向無環圖720進行兩個階段的偏序對齊POA運算加上一次合併條件判斷的形成的結果。在實際應用中,第一偏序對齊運作模塊610、第二偏序對齊運作模塊620和有向無環圖合併模塊630需要進行大量的迭代運算來逐步合併大量的活動記錄。有向無環圖合併模塊630輸出的階層式有向無環圖730可以迭代回第一偏序對齊運作模塊610中,與下一個活動記錄進行合併運算,逐漸累加階層式有向無環圖730中攜帶的資訊量。有向無環圖合併模塊630的最終產物可由有向無環圖繪製模塊640繪製為人眼可見的圖形,以利後續分析。
圖7的實施例可以突顯以下優點。由於階層式有向無環圖730呈現的結構可以總結為代表相似特徵的共用節點,以及代表相異特徵的分支節點。對資安分析人員而言,在視覺上可以獲得很直覺明確的分辨指引,便於查找異常問題。
在進一步的衍生實施例中,有向無環圖繪製模塊640可以不同大小或顏色來呈現各種節點特徵,以便於更有效的突顯異常之處。例如,為某些節點的出現頻率,或者共用節點中的有向無環子圖之間的平均相似度賦予不同的顏色或節點大小。另一方面,有向無環圖繪製模塊640還可提供縮放功能,使階層式有向無環圖730依據不同的解析度需求而呈現不同的細節。
圖8為本發明的階層式偏序對齊運行從事件叢集810生成階層式有向無環圖820的實施例。在實際的應用的情況下,事件叢集810中包含多筆活動記錄,而資料分析模塊153可將事件叢集810中的多筆活動記錄轉換成階層式有向無環圖820。從階層式有向無環圖820中的節點821~824,更能觀察圖6的實施例所描述的兩階段POA運作所產生的功效。
舉例來說,事件叢集810中所有活動記錄的第一個詞節,各有不同,但共同特徵可以看出是「ACDSee*」相關的執行檔名。經過第一偏序對齊運作模塊610到有向無環圖合併模塊630的運算和有向無環圖繪製模塊640的繪製後形成節點821。節點821中包含以字元為最小單位的有向無環子圖,使事件叢集810的多筆活動記錄中的執行檔名異同一目了然。
舉例來說,事件叢集810中所有活動記錄的第二個詞節,是相同的「/edit」。經過第一偏序對齊運作模塊610到有向無環圖合併模塊630的運算,以及有向無環圖繪製模塊640的繪製後,形成了節點822。節點822中包含以「/edit」單獨一詞節形成的單鏈有向無環子圖。
舉例來說,事件叢集810中所有活動記錄的第三個詞節,各有不同,但經過第一偏序對齊運作模塊610到有向無環圖合併模塊630的運算,可以將相似度滿足合併條件的詞節兩兩合併。舉例來說,本實施例可以定義相似度閾值α為0.3,亦即兩個詞節依據公式(7)計算的正規化最長共用子序列NLCS必須大於等於0.3,才可合併。依此原則,有向無環圖合併模塊630最後從事件叢集810產生了節點823和節點824兩個分支。由圖8的節點823所示,「v200」開頭的兩個詞節符合相似度條件,而形成了以字元為節點單位而呈現的有向無環子圖。另一方面,「000」開頭的兩個詞節也彼此相似,經過有向無環圖合併模塊630的處理和有向無環圖繪製模塊640的繪製而形成了節點824,包含一有向無環子圖。
圖8的實施例可以突顯以下優點。由於階層式有向無環圖820呈現的結構可以總結為代表相似特徵的共用節點,以及代表相異特徵的分支節點。對資安分析人員而言,在視覺上可以獲得很直覺明確的分辨指引,便於查找異常問題。另一方面,由於節點821~824是以詞節為單位呈現的節點,若是有新進的活動記錄要與階層式有向無環圖820進行合併運算,只有符合相似度條件的詞節才會被併至既有的節點中,而差異過大的節點會自適應地形成新的分支。因此階層式有向無環圖820在逐漸擴大成長的過程中,也具有特徵分類的作用,使分析人員更易於發現並判斷異常狀況。
圖9為本發明的資安事件診斷系統100的運作流程圖。
在圖9的流程圖中,位於一特定裝置所屬欄位中的流程,即代表由該特定裝置所進行的流程。例如,標記在「運算裝置」欄位中的部分,是由標的網路系統102中的個別運算裝置111~112所進行的流程;標記在「活動記錄匯集裝置」欄位中的部分,是由活動記錄匯集裝置130所進行的流程;而標記在「可疑事件研判裝置」欄位中的部分,則是由可疑事件研判裝置140所進行的流程。
在前述標的網路系統102的日常運作過程中,個別運算裝置會執行所安裝的裝置活動回報程式120,以進行圖9中的流程902至904。為了方便說明起見,以下舉運算裝置111為例來加以說明。
在流程902中,運算裝置111偵測及搜集活動記錄。在流程904中,運算裝置111傳送活動記錄至活動記錄匯集裝置130。
安裝在運算裝置111中的裝置活動回報程式120,可在流程902中利用已知的或客製化的記錄技術,讀取並記錄運算裝置111內的特定非揮發性資料的內容,例如,系統日誌、開機自動啟動項目、執行紀錄、和/或特定類型檔案的檔案詮釋資料(meta data)等等。
例如,在運算裝置111的作業系統是Windows系統的情況下,裝置活動回報程式120可讀取運算裝置111中所儲存的視窗事件日誌(Windows Event Log)、自動啟動登錄檔(Autorun Registry)、排程工作記錄(Schedule Job)、預取快取(Prefetch cache)、應用程式相容性快取(Shimcache和/或Amcache)、和/或.exe/.dll/.sys格式的可移植性可執行檔案(portable executable files,PE files)的檔案詮釋資料等等。
又例如,在運算裝置111的作業系統是Linux系統的情況下,裝置活動回報程式120可讀取運算裝置111中的資料夾「/var/log/」底下的日誌項目、系統與服務管理工具(Systemd)、系統初始化腳本(SysV init script)、排程指令(crontab)、系統初始化程序(Upstart)、.php或.jsp格式的動態網頁(dynamic web pages)、指令執行腳本(shell scripts)、敏感性檔案(sensitive files)、指令歷史記錄(command histories)、系統日誌(syslog)、和/或.so/.ko格式的可執行與可連結格式檔案(Executable and Linkable Format files,ELF files)的檔案詮釋資料等等。
又例如,在運算裝置111的作業系統是macOS系統的情況下,裝置活動回報程式120可讀取運算裝置111中的資料夾「/var/log/」底下的日誌項目、資料夾「/Library/LaunchAgents/」底下的記錄、資料夾「/Library/LaunchDaemons/」底下的記錄、指令執行腳本(shell scripts)、指令歷史記錄(command histories)、和/或Mach物件格式的可執行檔案(Mach object files,Mach-O files)的檔案詮釋資料等等。
除了前述的非揮發性資料以外,裝置活動回報程式120還可在流程902中記錄運算裝置111當時的記憶體內容、和/或網路行為等特定揮發性資料的內容。例如,裝置活動回報程式120可利用網路連線查詢指令「netstat」查詢運算裝置111和外部網路連線的狀況,也可利用各種方式偵測運算裝置111所存取的網路位址(IP address)、以及運算裝置111的網路連接埠(network ports)的運作狀況。
在運作時,裝置活動回報程式120還可利用各種過濾及判斷演算法,對前述與運算裝置111有關的特定非揮發性資料和/或揮發性資料的內容進行初步分析,以從運算裝置111為數眾多的活動歷史記錄中,篩選出可能與駭客入侵活動有關的部分活動記錄做為可疑活動記錄,藉此減少後續需要由活動記錄匯集裝置130以及可疑事件研判裝置140進行處理或分析的資料量。
在實際應用中,裝置活動回報程式120所收集回傳的活動記錄,可能包含與運算裝置111有關的多種類型的檔案執行活動(file execution activity)、檔案產生活動(file creation activity)、檔案編輯活動(file editing activity)、網路存取活動(networking activity)、鍵盤側錄活動(keystroke logging activity)、密碼竊取活動(password stealing activity)、憑證傾印活動(credential dumping activity)、程式碼注入活動(code injection activity)、記憶體區塊修改活動(code manipulation activity)、和/或可執行碼存取活動(executable code accessing activity)等等的歷史記錄。
前述活動記錄的類型僅為形容一般常見的資訊安全威脅型態,並非用於限定實際應用中任何可能的電腦活動記錄型態。
另外,當裝置活動回報程式120捕捉活動記錄時,還可在活動記錄中附加一些輔助資訊,例如時間戳記、相關檔案路徑資訊、或線上登入人員資訊等。
實作上,裝置活動回報程式120可在運算裝置111運作的過程中,即時(real time)進行前述流程902的運作,也可間歇性或週期性地進行前述流程902的運作。
在流程904中,裝置活動回報程式120可透過適當的資料傳輸方式,將與運算裝置111有關的可疑活動記錄、及相應的時間戳記與屬性標籤,傳送給活動記錄匯集裝置130。其他運算裝置112中的裝置活動回報程式120,都可比照前述的方式獨自進行流程902~904的運作。另外,前述運算裝置111~112中的多個裝置活動回報程式120,可在相同的預定時段同步進行前述流程902~904的運作,也可各自在不同的時段獨立進行前述流程902~904的運作。
在流程906中,活動記錄匯集裝置130的通信電路131會透過適當的網路連線(例如,標的網路系統102的內部網路或網際網路),接收標的網路系統102中的多個運算裝置111~112傳來的活動記錄。
在流程908中,活動記錄匯集裝置130的處理電路133會處理接收到的多個可疑活動記錄以產生一回傳資料。例如,處理電路133可對接收到的活動記錄進行資料封裝、壓縮、加密、電子簽章、分割等各種處理,以產生適當格式的回傳資料。
在流程910中,處理電路133會利用通信電路131將回傳資料透過合適的網路(例如,網際網路)傳送給可疑事件研判裝置140。
在流程912中,可疑事件研判裝置140的通信電路143會透過合適的網路(例如,網際網路)接收活動記錄匯集裝置130所產生的回傳資料。
在流程914中,可疑事件研判裝置140的控制電路149會對接收到的回傳資料進行處理,以從回傳資料中獲取與標的網路系統102有關的活動記錄。例如,控制電路149可對回傳資料進行組合、解壓縮、解密、驗證電子簽章等各種處理,以從回傳資料中擷取出前述的活動紀錄。
在流程916中,控制電路149會執行儲存電路147中的資訊安全分析程式150中的資料分析模塊153,將活動記錄轉換為離散空間度量樹的型態而儲存。根據圖2至圖5的實施例,資料分析模塊153所建立的離散空間度量樹是改良自傳統的BK樹,每個節點儲存的是一筆活動記錄,而每一邊緣上的權重係數是利用改良的階層式編輯距離HED來表示。如此有利於處理大量資料並且加速後續運作。
在流程918中,控制電路149會執行儲存電路147中的資訊安全分析程式150中的資料分析模塊153,對離散空間度量樹進行叢集化運作而生成事件叢集。根據圖5的實施例,叢集化運作是以離散空間度量樹為基礎,搭配公式(4)和(5)所定義的條件,使大量的活動記錄自適應地形成多個叢集類別。關於資料分析模塊153的詳細運作流程,將於圖10中介紹。
在流程920中,控制電路149會執行儲存電路147中的資訊安全分析程式150中的圖像產生模塊155,對每一事件叢集進行圖像產生運作,繪製成階層式有向無環圖。根據圖6至8的實施例,圖像產生模塊155可將大量活動記錄有效地轉換成可一目了然地呈現相似特徵和相異特徵的視覺化圖形,做為輔助資安分析人員的有效工具。關於圖像產生模塊155的詳細運作流程,將於圖11中介紹。
以下以圖10搭配圖3至圖5的實施例來說明資料分析模塊153進行叢集化運作的詳細流程。
圖10為本發明的資料分析模塊153的運作流程圖。
在圖10的流程圖中,位於一特定裝置所屬欄位中的流程,即代表由該特定裝置所進行的流程。例如,標記在「叢集化運作模塊」欄位中的部分,是由資料分析模塊153中的叢集化運作模塊210所進行的流程;標記在「階層式相似度分析模塊」欄位中的部分,是由資料分析模塊153中的相似度分析模塊230所進行的流程;而標記在「搜尋控制模塊」欄位中的部分,則是由資料分析模塊153中的搜尋控制模塊220所進行的流程。
在流程1002中,在可疑事件研判裝置140中,由控制電路149執行資料分析模塊153而啟動叢集化運作。資料分析模塊153將一筆新增的活動記錄視為目標節點,並要求叢集化運作模塊210以目標節點為主,開始一個叢集化運作。叢集化運作模塊210於是啟動叢集化運作。
在流程1004中,由搜尋控制模塊220將根節點加入搜尋佇列。如圖3至圖5的實施例所述,叢集化運作的本質是循著離散空間度量樹進行的大量搜尋與條件判斷運作。而搜尋控制模塊220主要功能包含,決定與管理離散空間度量樹中需要搜尋的對象,並利用搜尋佇列,做為遞迴運行的流程依據。
在流程1006中,由叢集化運作模塊210依序從搜尋佇列中讀取一節點指派為參考節點。而依據流程1004,搜尋佇列中的第一個節點就是根節點。換句話說,叢集化運作是一個從根節點開始的搜尋過程。
在流程1008中,由搜尋控制模塊220計算參考節點與目標節點的HED值及階層式最長共用子序列長度HLCS。叢集化運作模塊210在流程中獲取一個參考節點後,將目標節點與參考節點為兩個輸入參數,而要求搜尋控制模塊220進行階層式編輯距離HED和階層式最長共用子序列長度HLCS的運算。如圖4的實施例所介紹的,階層式編輯距離HED代表的是基於改良的正規化編輯距離NED所累加而成的句子級別最佳替換成本值。而階層式編輯距離HED和階層式最長共用子序列長度HLCS具有公式(3)所述的互換性質,可分別應用在後續不同的運作中。舉例來說,在本實施例中,將兩個節點之間的階層式最長共用子序列長度HLCS,簡稱為兩個節點的相似度指標。
在流程1010中,由叢集化運作模塊210判斷相似度指標是否滿足一相似度條件。相似度條件是圖5實施例中的公式(5)所定義,即:
Figure 02_image009
……(5)
如果目標節點和參考節點滿足公式(5),則進行流程1012。反之,則進行流程1014。
在流程1012中,由叢集化運作模塊210建立一鄰邊連結目標節點與參考節點。在本實施例中,鄰邊是指二維空間的描述詞。在資料結構的實作中,鄰邊可以是一組向量或陣列,記載了兩端節點的地址或編號,以及兩端節點的相似度指標,即,階層式最長共用子序列長度HLCS。
在流程1014中,搜尋控制模塊220基於參考節點的所有下游邊緣,決定下個需要搜尋的節點。如圖5的實施例和公式(4)的離散三角不等式所述,搜尋控制模塊220依據參考節點和目標節點之間的階層式編輯距離HED,以及相似度期望值ε,計算一搜尋範圍。
在流程1016中,搜尋控制模塊220依據計算出來的搜尋範圍,將參考節點的所有下游邊緣中,權重係數符合搜尋範圍的邊緣所連接的下游節點加入搜尋佇列。
在流程1018中,叢集化運作模塊210判斷搜尋佇列是否已清空。如果是,則表示搜尋結束,進行流程1020。如果否,則返回流程1006進行下一次搜尋與判斷。
在流程1020中,將流程1012中建立的所有鄰邊集合為一事件叢集。在本實施例中,事件叢集的表現方式和離散空間度量樹略有不同。離散空間度量樹是用來整理大量活動記錄的改良式資料結構,節點與節點之間以「邊緣」連結,目的是便於搜尋、更新與分類。而事件叢集是針對相似度高的多個活動記錄所連立的「鄰邊」集合。最終,叢集化運作模塊210輸出所有鄰邊組成的集合,以代表以目標節點為中心所找到的事件叢集。
在進一步衍生的實施例中,叢集化運作有可能從離散空間度量樹中找不到任何與目標節點相似的對象,使得目標節點成為單獨一個節點的新叢集。更進一步地,離散空間度量樹還可做出改良,例如將每個節點所屬的叢集記錄在節點中。當新節點進入離散空間度量樹並找到可建立鄰邊的節點時,便直接加入該節點所屬的叢集,從而省略後續搜尋過程。或是更進一步地,在進行叢集化運行之前,可預先調整相似度期望值ε的範圍,藉以調整事件叢集的集中程度。在一實施例中,相似度期望值ε可設定為目標節點本身的長度,也就是目標節點中的活動記錄包含的字元數。
以下以圖11說明階層式有向無環圖HDAG的產生過程。
圖11為本發明的圖像產生模塊155的運作流程圖。在圖11的流程圖中,位於一特定裝置所屬欄位中的流程,即代表由該特定裝置所進行的流程。例如,標記在「第一偏序對齊運算模塊」欄位中的部分,是由圖像產生模塊155中的第一偏序對齊運作模塊610所進行的流程;標記在「第二偏序對齊運算模塊」欄位中的部分,是由圖像產生模塊155中的第二偏序對齊運作模塊620所進行的流程;而標記在「有向無環圖合併模塊」欄位中的部分,則是由圖像產生模塊155中的有向無環圖合併模塊630所進行的流程;而標記在「有向無環圖繪製模塊」欄位中的部分,則是由圖像產生模塊155中的有向無環圖繪製模塊640所進行的流程。
如圖6的實施例所述,圖像產生模塊155將大量的活動記錄返覆地代入第一偏序對齊運作模塊610、第二偏序對齊運作模塊620和有向無環圖合併模塊630,最終可透過有向無環圖繪製模塊640繪製出合併完成的階層式有向無環圖HDAG。本實施例的第一偏序對齊運作和第二偏序對齊運作,又可合稱為階層式偏序對齊運作。以下以兩個有向無環圖,目標有向無環圖G1和參考有向無環圖G2為例進行說明。
在流程1102中,第一偏序對齊運作模塊610接收兩個輸入值,目標有向無環圖G1和參考有向無環圖G2。
在流程1104中,第一偏序對齊運作模塊610利用NLCS替換分數算法對有向無環圖G1和G2進行第一偏序對齊運作,找出目標有向無環圖G1和參考有向無環圖G2中互相對齊的節點資訊,包含一或多組對齊的節點組(g1,g2)。第一偏序對齊運作是以詞節為對齊單位而進行。
在流程1106中,將每一對齊節點組(g1,g2)傳送至第二偏序對齊運作模塊620處理。
在流程1108中,第二偏序對齊運作模塊620以傳統的LCS算法為替換分數,對對齊節點組(g1,g2)進行字元等級的偏序對齊,找出對齊節點組(g1,g2)的最佳對齊路徑 (p1*, p2*)。
在流程1110中,有向無環圖合併模塊630依據圖6的實施例和公式(6)計算最佳對齊路徑 (p1*, p2*)的正規化最長共用子序列長度NLCS(p1*,p2*)。
在流程1112中,有向無環圖合併模塊630判斷正規化最長共用子序列長度NLCS(p1*,p2*)是否大於等於相似度閾值α。如果是,進行流程1114。如果否,進行流程1116。
在流程1114中,有向無環圖合併模塊630將對齊的節點組(g1,g2)合併為字元級別的有向無環子圖。更進一步的做法是,有向無環圖合併模塊630將節點組(g1,g2)取代為一共用節點,並在該共用節點中安排呈現由節點組(g1,g2)合併而成的字元級別的有向無環子圖。
在流程1116中,由第二偏序對齊運作模塊620判斷是否完成計算所有由第一偏序對齊運作模塊610傳送而來的對齊節點組(g1,g2)。如果是,進行流程1118。如果否,則返回流程1108。
在流程1118中,有向無環圖繪製模塊640依據有向無環圖合併模塊630對每一對齊節點組的合併判斷結果,在顯示裝置141上繪製階層式有向無環圖HDAG。
需要理解的是,圖11的流程僅為簡化階層式有向無環圖HDAG的生成原理以便於理解。在實際運作中,運算的安排方式不限定是由第一偏序對齊運作模塊610、第二偏序對齊運作模塊620、有向無環圖合併模塊630、有向無環圖繪製模塊640所述的分工方式或運行順序。
在圖2到圖5的實施例中,說明了資料分析模塊153建立多個可疑活動叢集的過程。在圖6到8的實施例中,說明了圖像產生模塊155產生階層式有向無環圖HDAG的過程。而在圖12的實施例中,進一步說明可疑事件研判裝置如何一可疑活動叢集轉換為階層式有向無環圖HDAG。
圖12為本發明的資安事件診斷系統100運行多個階段的流程而產生階層式有向無環圖1250的實施例。
可疑事件研判裝置140從標的網路系統102接收到的各種活動記錄,可表示為圖12中的各種命令串1202,命令串1204和命令串1206。經過資料分析模塊153的實施例所述的叢集化運作,相似度高的活動記錄會逐漸聚集成多個不同的事件叢集,例如圖12中的事件叢集1212、事件叢集1214,和事件叢集1216。以事件叢集1214為例,為了從事件叢集1214生成階層式有向無環圖1250,資訊安全分析程式150可利用控制電路149對事件叢集1214進行一個單一連結聚合分析,建立一導引樹,做為將該事件叢集1214中的每個節點代入圖像產生模塊155的順序。
舉例來說,由於本實施例中的事件叢集1214是基於離散空間度量樹的改良結構,因此可先運行一個最小成生樹算法(minimum spanning tree),依據事件叢集1214生成一最小生成樹1220。最小生成樹1220保留事件叢集1214中的所有節點,但只留下權重係數最小的邊緣。
資訊安全分析程式150接著利用控制電路149對該最小生成樹1220中的兩兩分支進行單一連結聚合分析(Single Linkage Clustering Analysis),由最小生成樹1220的底層往上建立導引樹1230。
單一連結聚合分析是階層式聚合演算法的一種。在傳統的階層式聚合演算法(hierarchical agglomerative algorithm)中,資料是由樹狀結構的底部開始層層聚合。每一筆資料可視為一個群組(cluster)。假設有n筆資料,則這n筆資料視為n個群組,亦即每個群組包含一筆資料。進行步驟大致上包含:1. 將每筆資料視為一個群組Ci;2. 找出所有群組間,距離最接近的兩個群組;3. 合併距離最接近的兩個群組成為一個新的群組;4. 假如目前的群組數目不只一個,則重複步驟二。在傳統的單一連結聚合演算法(single-linkage agglomerative algorithm)中,「距離最接近的兩個群組」的定義,可以定義為不同群組中最接近的兩個節點的編輯距離。在本申請的實施例中,「距離最接近的兩個群組」定義為兩個群組中具有最高階層式最長共用子序列長度HLCS的兩個節點的階層式最長共用子序列長度HLCS。
換句話說,在本實施例中,單一連結聚合分析的群組距離定義如下:
Figure 02_image017
……(8)
其中,X和Y表示兩個群組,而x和y是該兩群組中的節點。公式(8)是基於圖3的實施例和公式(3)所衍生的定義,目的是找出兩個群組中具有最大階層式最長共用子序列長度HLCS的一對節點,並將該最大階層式最長共用子序列長度HLCS定義為該兩個群組X和Y的階層式最長共用子序列長度HLCS。換句話說,從事件叢集1214產生最小生成樹1220的過程,以及進行單一連結聚合分析產生導引樹1230的過程可以參考已知的文獻,但本發明將單一連結聚合分析中的群組距離改為公式(8),使離散空間度量樹的改良功效能延用至階層式有向無環圖HDAG的產生過程。
在圖12中,導引樹1230的結構原理大致上是,將最小生成樹1220中每個節點依照階層式最長共用子序列長度HLCS由高往低的順序,從末端節點往上重組而成。換句話說,導引樹1230可代表事件叢集1214中所有節點的相似度排列順序。圖像產生模塊155所執行的圖像產生運作,會遞迴地循著導引樹1230的末端節點向上遍歷,將事件叢集1214中的活動記錄依照相似度高到低的順序兩兩合併。
舉例來說,在執行圖像產生運作時,圖像產生模塊155循著導引樹1230的末端向上讀取節點,然後執行第一偏序對齊運作模塊610、第二偏序對齊運作模塊620和有向無環圖合併模塊630來合併節點。導引樹1230中的導引節點1232對應目標有向無環圖1242,而導引樹1230中的導引節點1234對應參考有向無環圖1244。因此,圖像產生模塊155執行圖6的階層式偏序對齊運作HPOA,將目標有向無環圖1242和參考有向無環圖1244合併為階層式有向無環圖1250。接著,圖像產生模塊155可依據導引樹1230提供的順序,再將階層式有向無環圖1250與導引節點1236進行階層式偏序對齊運作HPOA。依此逐步將事件叢集1214中的節點資訊合併至階層式有向無環圖1250中。
以下以圖13來總結資訊安全分析程式150中的資料分析模塊153和圖像產生模塊155在實作上的協同運作方式。
圖13為本發明的資料分析模塊153和圖像產生模塊155協同運作的流程圖。
在圖13的流程圖中,位於一特定裝置所屬欄位中的流程,即代表由該特定裝置所進行的流程。例如,標記在「事件分析程式」欄位中的部分,是由資料分析模塊153所進行的流程;標記在「活動記錄匯集裝置」欄位中的部分,是由活動記錄匯集裝置130所進行的流程;而標記在「圖像產生模塊」欄位中的部分,則是由圖像產生模塊155所進行的流程。
在流程1302中,資料分析模塊153利用控制電路149從活動記錄的離散空間度量樹自適應地生成一或多個事件叢集。
在流程1304中,資訊安全分析程式150利用依據每一事件叢集產生最小生成樹。在一實施例中,一個事件叢集對應一個最小生成樹。以下以單一最小生成樹為例進行說明。
在流程1306中,資訊安全分析程式150可利用控制電路149對一最小生成樹進行單一連結聚合分析,建立相似度由大到小的導引樹做為合併順序。
在流程1308中,圖像產生模塊155利用控制電路149依據導引樹所指引的合併順序,將叢集中對應節點逐一合併為階層式有向無環圖。可疑事件研判裝置140可依據該合併順序,對該一或多個事件叢集所對應的多個活動記錄以遞迴方式進行一圖像產生運作,以產生階層式有向無環圖。
在流程1310中,圖像產生模塊155透過顯示裝置141顯示所生成的階層式有向無環圖。
圖14為本發明的資安事件診斷系統100的另一實施例架構圖。
在標的網路系統102中的運算裝置數量不多、或是標的網路系統102的對外網路頻寬非常充足的應用環境中,也可將前述網路安全漏洞診斷系統100中的活動記錄匯集裝置130省略。
例如,圖14為本發明另一實施例的網路安全漏洞診斷系統100簡化後的功能方塊圖。在圖14的實施例中,省略了前述圖1架構中的活動記錄匯集裝置130,而原先由活動記錄匯集裝置130負責進行的流程906~908的運作,則可改由個別的裝置活動回報程式120來進行。換言之,在圖13的網路安全漏洞診斷系統100中,安裝在個別運算裝置中的裝置活動回報程式120,會對多個可疑活動記錄進行處理,以產生回傳資料,並將回傳資料透過合適的網路(例如,網際網路)傳送給可疑事件研判裝置140。
前述有關圖1中的其他元件的連接關係、實施方式、運作方式、以及相關優點等說明,亦適用於圖14的實施例。為簡潔起見,在此不重複敘述。
綜上所述,本發明所提出的電腦程式產品可概略區分為資料分析模塊153和圖像產生模塊155。然而,在進一步衍生的實施例中,資料分析模塊153和圖像產生模塊155未必需要在同一個可疑事件研判裝置140中執行。在更廣義的分散式系統架構下,資料分析模塊153中的叢集化運作模塊210、搜尋控制模塊220和階層式相似度分析模塊230也未必需要在同一個可疑事件研判裝置140中執行。以下以圖15說明在一資安事件診斷系統1500中,日誌分類裝置1510和事件視覺化裝置1520協同運作的實施例。
圖15為本發明的資安事件診斷系統1500的衍生實施例簡化後的功能方塊圖。
資安事件診斷系統1500中的標的網路系統102、活動記錄匯集裝置130和惡意檔案提供裝置160與圖1的實施例相似,具體功能不再贅述。在圖1中,可疑事件研判裝置140可利用控制電路149執行儲存電路147中儲存的資料分析模塊153和圖像產生模塊155,以實現對資安事件的分析與診斷。相對地,在資安事件診斷系統1500中,可疑事件研判裝置140被一日誌分類裝置1510和一事件視覺化裝置1520取代。日誌分類裝置1510可執行一資料分析程式1530而實現如圖10所示的流程。事件視覺化裝置1520可執行一圖像產生程式1540而實現如圖11所示的流程。日誌分類裝置1510和事件視覺化裝置1520可以協同運作如圖13所示的流程,而實現可疑事件研判裝置140的功能。
圖15的日誌分類裝置1510,包含通信裝置1513、輸出裝置1515、儲存電路1517、以及控制電路1519,可自適應地將從一標的網路系統102收集的多個活動記錄叢集化。日誌分類裝置1510可利用通信裝置1513,透過網際網路從活動記錄匯集裝置130或標的網路系統102收集活動記錄。儲存電路1517與圖1的儲存電路147類似,設置成可儲存一資料分析程式1530。控制電路1519耦接通信電路1513和儲存電路1517,設置成可執行資料分析程式1530以實現一自適應數據分類運作,產生用於診斷一標的網路系統是否被入侵或發生異常狀況的一輔助信息。舉例來說,資料分析程式1530可依據該多個活動記錄產生一離散空間度量樹,並對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集。
輸出裝置1515設置為可輸出該一或多個事件叢集,允許資安事件診斷系統1500計算該一或多個事件叢集中多個活動記錄的相似特徵信息與差異特徵信息,做為診斷該標的網路系統102是否被入侵或發生異常狀況的輔助信息。在實作中,日誌分類裝置1510的輸出裝置1515可連接至事件視覺化裝置1520的輸入裝置1525,使日誌分類裝置1510與事件視覺化裝置1520的運算流程無縫銜接。輸出裝置1515和輸入裝置1525之間的連接技術可以採用序列周邊介面(SPI),跨晶片協議(I2C)、通用序列埠(USB)、周邊元件介面(PCI),或已公開的工業標準,以確保相容性和效能。然而,日誌分類裝置1510和事件視覺化裝置1520之間的溝通管道並不限定於此。日誌分類裝置1510和事件視覺化裝置1520也可以直接憑藉通信裝置1513和通信電路1523互相溝通。舉例來說,日誌分類裝置1510可透過通信裝置1513提供網路接入服務,讓事件視覺化裝置1520以結構式查詢語法(SQL)、超文本傳輸協議(HTTP),或其他公開傳輸協議獲得每一事件叢集的多個活動記錄。又或者是,事件視覺化裝置1520可透過通信電路1523提供網路接入服務,接受日誌分類裝置1510執行資料分析程式1530後所輸出的事件叢集和活動記錄。
在本實施例的資安事件診斷系統1500中,資料分析程式1530是儲存在儲存電路1517中的一電腦程式產品,允許日誌分類裝置1510實現一自適應數據分類運作,以產生用於診斷標的網路系統102是否被入侵或發生異常狀況的一輔助信息。可以理解的是,電腦程式產品不限定只能儲存在儲存電路1517中,也可以是儲存在雲端,在需要執行時才被下載至儲存電路1517中。
資料分析程式1530的詳細運作,與圖1的資料分析模塊153類似,可參考圖3、圖4、圖5和圖10的實施例。在日誌分類裝置1510實現自適應數據分類運作時,可使通信裝置1513透過網路從活動記錄匯集裝置130或標的網路系統102接收多個活動記錄。與圖1相似,這些活動記錄是由多個裝置活動回報程式120依據多個運算裝置111~112接收到的命令串所產生的。控制電路1519執行資料分析程式1530後,會依據該多個活動記錄產生如圖5所示的一離散空間度量樹500,並對該離散空間度量樹500進行一叢集化運作,以產生與一或多個可疑事件類別對應的一或多個事件叢集。這些事件叢集可透過通信裝置1513或輸出裝置1515輸出給事件視覺化裝置1520進行後續處理,做為資安事件診斷系統1500診斷該標的網路系統是否被入侵或發生異常狀況的輔助信息。
圖15的事件視覺化裝置1520,包含顯示裝置1521、通信電路1523、輸入裝置1525、儲存電路1527、以及控制電路1529,可依據多個活動記錄產生一或多個有向無環圖,做為資安事件診斷系統1500診斷標的網路系統102是否已受到駭客入侵之依據。在本實施例中,該多個活動記錄屬於由日誌分類裝置1510經過一叢集化運作而輸出的一事件叢集,與一可疑事件類別有關。如前所述,事件視覺化裝置1520可以是藉由通信電路1523或輸入裝置1525從日誌分類裝置1510獲取該事件叢集和該多個活動記錄。儲存電路1527與圖1的儲存電路147類似,設置成可儲存一圖像產生程式1540。控制電路1529耦接該儲存電路1527,設置成可執行圖像產生程式1540,對該多個活動記錄以遞迴方式進行一圖像產生運作以產生一階層式有向無環圖。圖像產生運作的詳細實施例可參考圖6、圖7、圖8,以及圖11的實施例,而通信電路1523和輸入裝置1525的實作方式可對應於日誌分類裝置1510中的通信裝置1513和輸出裝置1515,不再贅述。
顯示裝置1521耦接該控制電路1529,設置為可顯示該階層式有向無環圖,以做為診斷該標的網路系統是否被入侵或發生異常狀況的依據。階層式有向無環圖是一種由多個共用節點與多個分支節點連接而成的階層式結構。其中,該多個活動記錄的相似特徵可被壓縮成一個節點,而該多個活動記錄的差異特徵可以多個分支的方式呈現。換句話說,階層式有向無環圖是一種有效率的大數據呈現方式,便於後續分析程序發現不尋常的入侵跡象。在實作中,輸入裝置1525還可以做為人機介面,允許用戶操作資安事件診斷系統1500,例如調整運作中所使用的參數或閾值,或縮放階層式有向無環圖像的呈現細節。
在本實施例的資安事件診斷系統1500中,圖像產生程式1540是儲存在儲存電路1527中的電腦程式產品,允許事件視覺化裝置1520執行後產生一或多個階層式有向無環圖,做為診斷標的網路系統102是否已受到駭客入侵的依據。然而,可以理解的是,電腦程式產品不限定只能儲存在儲存電路1527中,也可以是儲存在雲端,在需要執行時才被下載至儲存電路1527中。
圖像產生程式1540的詳細運作,與圖1的圖像產生模塊155類似,可參考圖6、圖7、圖8和圖11的實施例。事件視覺化裝置1520可透過通信電路1523或輸入裝置1525從日誌分類裝置1510獲取一事件叢集所包含的多個活動記錄。控制電路1529對該多個活動記錄以遞迴方式進行圖像產生運作以產生一階層式有向無環圖。在該圖像產生運作中,每一活動記錄逐一被解譯為一目標有向無環圖。其中,該目標有向無環圖包含一或多個節點,每個節點代表一個詞節,且每個詞節包含一或多個字元。該圖像產生運作接著將該目標有向無環圖與一參考有向無環圖進行一階層式偏序對齊運作,以獲得每個節點的一合併條件。最後,該階層式偏序對齊運作依據該合併條件,將該目標有向無環圖與該參考有向無環圖合併為階層式有向無環圖。在迭代的過程中,所產生的階層式有向無環圖會被再利用,做為下一次階層式偏序對齊運作的參考有向無環圖。
可以理解的是,活動記錄經過叢集化和視覺化後,有助於初步衡量入侵異常的可能性。因此,現階段所獲得的數據統稱為一種輔助信息。然而,資安事件診斷系統1500還需要基於輔助信息進行進階分析步驟才能確認入侵。至於進階分析步驟的實現方式,可以是人工智慧或工人智慧,不在本發明的限定範圍。
在圖15的資安事件診斷系統1500的實施例中,將圖1所示的可疑事件研判裝置140依照功能區分而改為獨立的日誌分類裝置1510和事件視覺化裝置1520。這種架構至少具有下列優點。資安事件診斷系統1500的效能不受到單一裝置的限制。當數據處理效能的需求隨著數據量而上升時,可增加日誌分類裝置1510和事件視覺化裝置1520的數量,以分散式運算技術來協同運作。此外,日誌分類裝置1510、事件視覺化裝置1520、資料分析程式1530,和圖像產生程式1540可以各自包裝為獨立產品,應用於各種不同領域,不受到本實施例的資安事件診斷系統1500的限制。舉例來說,日誌分類裝置1510所提供的資料分析和叢集化功能,除了可應用在資安領域,也可以應用在基因定序,或自然語言處理程序。事件視覺化裝置1520所提供的視覺化物件產生器,除了可應用在本申請的資安事件診斷系統1500中,也可做為區塊鏈用戶互動界面,或是在人工智慧領域輔助用戶快速理解複雜的大數據關聯性。
在說明書及申請專利範圍中使用了某些詞彙來指稱特定的元件,而本領域內的技術人員可能會用不同的名詞來稱呼同樣的元件。本說明書及申請專利範圍並不以名稱的差異來做為區分元件的方式,而是以元件在功能上的差異來做為區分的基準。在說明書及申請專利範圍中所提及的「包含」爲開放式的用語,應解釋成「包含但不限定於」。另外,「耦接」一詞在此包含任何直接及間接的連接手段。因此,若文中描述第一元件耦接於第二元件,則代表第一元件可通過電性連接或無線傳輸、光學傳輸等信號連接方式而直接地連接於第二元件,或通過其它元件或連接手段間接地電性或信號連接至第二元件。
在說明書中所使用的「和/或」的描述方式,包含所列舉的其中一個項目或多個項目的任意組合。另外,除非說明書中特別指明,否則任何單數格的用語都同時包含複數格的含義。
以上僅為本發明的較佳實施例,凡依本發明請求項所做的等效變化與修改,皆應屬本發明的涵蓋範圍。
100:資安事件診斷系統(security event diagnosis system)
102:標的網路系統(target network system)
111、112:運算裝置(computing device)
113、114:命令串輸入裝置(command line input device)
120:裝置活動回報程式(device activities reporting program)
130:活動記錄匯集裝置(activity records collection device)
131:通信電路(communication circuit)
133:處理電路(processing circuit)
135:儲存電路(storage circuit)
140:可疑事件研判裝置(suspicious event analysis device)
141:顯示裝置(display device)
143:通信電路(communication circuit)
145:輸入裝置(input device)
147:儲存電路(storage circuit)
149:控制電路(control circuit)
150:資訊安全分析程式(security analysis program)
153:資料分析模塊(data analysis module)
155:圖像產生模塊(image generator module)
160:惡意檔案提供裝置(malicious file providing device)
210:叢集化運作模塊(clustering operation module)
220:搜尋控制模塊(search range control module)
230:階層式相似度分析模塊(HED analysis module)
301:詞節解譯模塊(tokenizing module)
303:正規化運算模塊(NED module)
305:替換成本運算模塊(cost calculation module)
307:相似度運算模塊(HLCS calculation module)
410:命令串分析表(command line analysis table)
420:替換成本陣列(substitution cost metrics)
422、424:路徑(minimum cost path)
500:離散空間度量樹(discrete space metrics tree)
610:第一偏序對齊運作模塊(first POA module)
620:第二偏序對齊運作模塊(second POA module)
630:有向無環圖合併模塊(DAG combination module)
640:有向無環圖繪製模塊(DAG rendering module)
710:目標有向無環圖(target DAG)
702、704、706、708:對齊資訊(Alignment Information)
720:參考有向無環圖(reference DAG)
730:階層式有向無環圖(HDAG)
810:事件叢集(event cluster)
820:階層式有向無環圖(HDAG)
821~824:節點(node)
902~918:運作流程(process)
1002~1020:運作流程(process)
1102~1118:運作流程(process)
1202、1204、1206:命令串(command line)
1212、1214、1216:事件叢集(event cluster)
1220:最小生成樹(minimum spanning tree)
1230:導引樹(guiding tree)
1232、1234、1236:導引節點(guiding node)
1242:目標有向無環圖(target DAG)
1244:參考有向無環圖(reference DAG)
1250:階層式有向無環圖(hierarchical DAG)
1302~1310:運作流程(process)
A1~A6:第一節點(first node)
B2~B6:第二節點(second node)
C1~C3:共用節點(common node)
1500:資安事件診斷系統(security event diagnosis system)
1510:日誌分類裝置(log categorization device)
1515:輸出裝置(output device)
1513:通信電路(communication circuit)
1517:儲存電路(storage circuit)
1519:控制電路(control circuit)
1530:資料分析程式(data analysis program)
1520:事件視覺化裝置(event visualization device)
1521:顯示裝置(display device)
1523:通信電路(communication device)
1525:輸入裝置(input device)
1527:儲存電路(storage device)
1529:控制電路(control circuit)
1540:圖像產生程式(image generating program)
圖1為本發明一實施例的資安事件診斷系統簡化後的功能方塊圖。
圖2為圖1中的事件分析程式的功能模塊示意圖。
圖3為圖2中的相似度分析模塊功能模塊示意圖。
圖4為本發明的相似度分析模塊為兩筆活動記錄計算階層式編輯距離HED的實施例。
圖5為離散空間度量樹的實施例以及叢集化運作的實施例。
圖6為圖1中的圖像產生模塊的功能模塊示意圖。
圖7為本發明的階層式偏序對齊運行從目標有向無環圖和參考有向無環圖生成階層式有向無環圖的實施例。
圖8為本發明的階層式偏序對齊運行從事件叢集生成階層式有向無環圖的實施例。
圖9為本發明的資安事件診斷系統的運作流程圖。
圖10為本發明的事件分析程式的運作流程圖。
圖11為本發明的圖像產生模塊的運作流程圖。
圖12為本發明的資安事件診斷系統運行多個階段的流程而產生階層式有向無環圖的實施例。
圖13為本發明的資料分析模塊和圖像產生模塊協同運作的流程圖。
圖14為本發明的資安事件診斷系統的另一實施例簡化後的功能方塊圖。
圖15為本發明的資安事件診斷系統的進一步實施例簡化後的功能方塊圖。
100:資安事件診斷系統
102:標的網路系統
111、112:運算裝置
113、114:命令串輸入裝置
120:裝置活動回報程式
130:活動記錄匯集裝置
131:通信電路
133:處理電路
135:儲存電路
140:可疑事件研判裝置
141:顯示裝置
143:通信電路
145:輸入裝置
147:儲存電路
149:控制電路
150:資訊安全分析程式
153:資料分析模塊
155:圖像產生模塊
160:惡意檔案提供裝置

Claims (10)

  1. 一種資安事件診斷系統(100),用於輔助偵測一標的網路系統(102)是否已受到駭客入侵,該資安事件診斷系統(100)包含: 一活動記錄匯集裝置(130),耦接於該標的網路系統(102),設置成收集與該標的網路系統(102)中的多個運算裝置(111~112)有關的多個活動記錄,並處理該多個活動記錄以產生一回傳資料;以及 一可疑事件研判裝置(140),設置成透過網路接收該活動記錄匯集裝置(130)所產生的該回傳資料,從該回傳資料中獲取該多個活動記錄,依據該多個活動記錄產生一離散空間度量樹,對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別有關的一或多個事件叢集; 其中,該可疑事件研判裝置(140)還設置為可對一事件叢集進行單一連結聚合分析,建立對應該事件叢集的一導引樹,用以指引相似度由高到低的一合併順序; 其中,該可疑事件研判裝置(140)還設置為可依據該合併順序,對該一或多個事件叢集所對應的多個活動記錄進行一圖像產生運作以產生該階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵; 其中,該可疑事件研判裝置(140)包含一顯示裝置(141),設置為可顯示該階層式有向無環圖,以做為診斷該標的網路系統(102)是否被入侵或發生異常狀況的視覺輔助信息; 其中,該離散空間度量樹包含多個節點,每個節點代表一個活動記錄,兩兩節點之間以具有一個權重係數的一個邊緣相連; 其中,該可疑事件研判裝置(140)還設置成,可運行一階層式相似度分析運作,以計算兩個待分析活動記錄之間的一階層式編輯距離; 其中,產生該離散空間度量樹的運作還包含: 對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析活動記錄,進行一階層式相似度分析運作,以產生一階層式編輯距離;以及 將該階層式編輯距離設置為該邊緣的權重係數; 其中,該階層式相似度分析運作包含: 將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節; 計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離,其中該正規化編輯距離是介於0和1之間的數值;以及 依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離。
  2. 如請求項1所述的資安事件診斷系統(100),其另包含: 多個命令串輸入裝置(114),接收用戶輸入的命令串;以及 多個裝置活動回報程式(120),分別儲存在該多個運算裝置(111~112)中,並設置成依據該多個命令串輸入裝置(114)接收到的命令串,產生該多個活動記錄; 其中,建立該導引樹的運作,包含: 依據該事件叢集建立一最小生成樹;以及 對該最小生成樹中的兩兩分支進行單一連結聚合分析(Single Linkage Clustering Analysis),由該最小生成樹的底層往上建立該導引樹; 其中,為每兩個分支進行單一連結聚合分析的運作,包含:利用該階層式相似度分析運作,計算代表每兩個分支的最大階層相似度,做為群組距離; 其中,該階層式相似度分析運作還包含: 計算每一第一詞節與每二詞節的一最長共用子序列值; 計算每一第一詞節與每二詞節的一字元數乘積的根值;以及 依據該最長共用子序列值和該字元數乘積的根值的一比值的一反餘弦函數,計算該正規化編輯距離。
  3. 如請求項2所述的資安事件診斷系統(100),其中,該階層式相似度分析運作還包含: 遍歷該多個第一詞節與該多個第二詞節的所有可能替換組合,找出所有該正規化編輯距離的一加總值最小的一替換組合後,指派該加總值為該兩個待分析活動記錄的該階層式編輯距離;以及 依據該兩個待分析活動記錄的字元數加總,減去該兩個待分析活動記錄的該階層式編輯距離,計算該兩個待分析活動記錄的一相似度指標; 其中,該可疑事件研判裝置(140)設置該邊緣的權重係數時,還包含:利用無條件捨去法或四捨五入法取將該階層式編輯距離轉換為一整數值,做為該邊緣的權重係數;以及 其中,該叢集化運作包含: 從該離散空間度量樹的根節點開始,指派一節點為一參考節點; 將一目標節點和該參考節點對應的待分析活動記錄代入該階層式相似度分析運作,獲得該目標節點和該參考節點的該階層式編輯距離和該相似度指標; 如果該參考節點與該目標節點的該相似度指標符合一相似度條件,建立鄰邊將該參考節點與該目標節點連結; 將該目標節點與該參考節點的該階層式編輯距離加上一相似度期望值,得到一搜尋範圍的上限值; 將該目標節點與該參考節點的該階層式編輯距離減去該相似度期望值,得到該搜尋範圍的下限值; 將與該參考節點連結的多個邊緣中,權重係數符合該搜尋範圍的邊緣所連接的下個節點指派為參考節點,遞迴執行該叢集化運作;以及 將該離散空間度量樹中與該目標節點有鄰邊相連的所有節點標記為同一叢集。
  4. 如請求項2所述的資安事件診斷系統(100),其中,該圖像產生運作包含: 循著該導引樹的末端節點向上遍歷,從該事件叢集中讀出對應的一活動記錄; 將該活動記錄解譯為一目標有向無環圖,包含一或多個節點,每個節點代表一個詞節,每個詞節包含一或多個字元; 將該目標有向無環圖與一參考有向無環圖進行一階層式偏序對齊運作,以獲得每個節點的一合併條件,並依據該合併條件,將該目標有向無環圖與該參考有向無環圖合併為該階層式有向無環圖;以及 將該階層式有向無環圖指派為下一次階層式偏序對齊運作的該參考有向無環圖; 其中,該階層式偏序對齊運作包含: 以詞節為對齊單位,對該目標有向無環圖和該參考有向無環圖進行一第一偏序對齊(POA)運作,找出所有對齊的節點組; 以字元為對齊單位,依序對每一組對齊的節點組進行一第二偏序對齊運作,找出每一組對齊的節點組中的一最佳字元對齊路徑; 利用該最佳字元對齊路徑對每一組對齊的節點組進行一合併條件分析運作,判斷每一組對齊的節點組是否符合該合併條件; 將符合該合併條件的每一組對齊的節點組合併為一共用節點而取代原對齊的節點組; 將不符合該合併條件的每一組對齊的節點組分別標記為一分支節點; 將所有的該共用節點與該分支節點重組繪製為該階層式有向無環圖;以及 依據該最佳字元對齊路徑,將該階層式有向無環圖中的該共用節點繪製為以字元為節點的有向無環子圖。
  5. 如請求項4所述的資安事件診斷系統(100),其中,該第一偏序對齊運作包含: 計算該目標有向無環圖和該參考有向無環圖的每一可能路徑配對的一替換分數;以及 依據該替換分數最高的路徑配對,找出對應的所有對齊的節點組; 其中,為一可能路徑配對計算該替換分數的運作包含,依據該可能路徑配對中的兩個路徑的最長共用子序列值,和字元數乘積的根值的一比值,代入一正弦反函數,以計算該兩個路徑的正規化最長共用子序列值(NLCS); 其中,對一組對齊的節點組進行的該第二偏序對齊運作包含: 將該組對齊的節點組中的一第一節點和所對齊的一第二節點轉換為以字元為節點單位的一第一有向無環子圖和一第二有向無環子圖; 計算該第一有向無環子圖和該第二有向無環子圖的每一可能路徑配對的最長共用子序列值;以及 將具有最大的最長共用子序列值的一組路徑配對,判定為該組對齊的節點組的該最佳字元對齊路徑; 其中,該合併條件分析運作包含: 計算該最佳字元對齊路徑的一正規化最長共用子序列值;以及 如果該正規化最長共用子序列值大於等於一相似度閾值α,判斷該組對齊的節點組符合該合併條件;以及 其中,該正規化最長共用子序列值的計算包含,依據該最佳字元對齊路徑中兩個路徑的最長共用子序列值,和字元數乘積的根值的一比值,代入一正弦反函數計算該兩個路徑的正規化最長共用子序列值。
  6. 一種電腦程式產品(150),允許一可疑事件研判裝置(140)執行一階層式有向無環圖產生運作,以產生一或多個階層式有向無環圖以做為診斷一標的網路系統(102)是否已受到駭客入侵的依據,其中,該可疑事件研判裝置(140)包含一控制電路(149),一顯示裝置(141),及一通信電路(143),該階層式有向無環圖產生運作包含: 利用該通信電路(143)透過網路接收一活動記錄匯集裝置(130)所產生的一回傳資料,從該回傳資料中獲取該多個活動記錄; 利用該控制電路(149)依據該多個活動記錄產生一離散空間度量樹,其中該離散空間度量樹包含多個節點,每個節點代表一個活動記錄,且兩兩節點之間以具有一個權重係數的一個邊緣相連; 利用該控制電路(149)對該離散空間度量樹進行一叢集化運作以產生與一或多個可疑事件類別對應的一或多個事件叢集; 利用該控制電路(149)對該一或多個事件叢集進行一單一連結聚合分析,以建立對應該一或多個事件叢集的一導引樹,其中,該導引樹用以指出相似度由高到低的一合併順序; 利用該控制電路(149)依據該合併順序,對該一或多個事件叢集所對應的多個活動記錄以遞迴方式進行一圖像產生運作,以產生一階層式有向無環圖,其中,該階層式有向無環圖包含多個共用節點與多個分支節點連接而成的階層式結構,以對應代表該多個活動記錄的相似特徵與差異特徵;以及 利用一顯示裝置(141),顯示該階層式有向無環圖,以做為診斷該標的網路系統(102)是否被入侵或發生異常狀況的依據; 其中,產生該離散空間度量樹的運作還包含: 對該離散空間度量樹中的每一邊緣兩端的節點所對應的兩個待分析活動記錄,進行一階層式相似度分析運作,以產生一階層式編輯距離;以及 將該階層式編輯距離設置為該邊緣的權重係數; 其中,該階層式相似度分析運作包含: 將該兩個待分析活動記錄解譯為多個第一詞節和多個第二詞節; 計算該多個第一詞節與該多個第二詞節兩兩之間的一正規化編輯距離(NED),其中該正規化編輯距離是介於0和1之間的數值;以及 依據每一第一詞節與每一第二詞節兩兩之間的該正規化編輯距離,計算該兩個待分析活動記錄的該階層式編輯距離(HED)。
  7. 如請求項6所述的電腦程式產品(150),其中,建立該導引樹的運作,包含: 依據該事件叢集建立一最小生成樹;以及 對該最小生成樹中的兩兩分支進行單一連結聚合分析(Single Linkage Clustering Analysis),由該最小生成樹的底層往上建立該導引樹; 其中,為每兩個分支進行單一連結聚合分析的運作,包含:利用該階層相似度分析運作,計算代表每兩個分支的最大階層相似度,做為群組距離。 其中,該階層式相似度分析運作還包含: 計算每一第一詞節與每二詞節的一最長共用子序列值; 計算每一第一詞節與每二詞節的一字元數乘積的根值;以及 依據該最長共用子序列值和該字元數乘積的根值的一比值的一反餘弦函數,計算該正規化編輯距離。
  8. 如請求項7所述的電腦程式產品(150),其中,該階層式相似度分析運作還包含: 遍歷該多個第一詞節與該多個第二詞節的所有可能替換組合,找出所有該正規化編輯距離的一加總值最小的一替換組合後,指派該加總值為該兩個待分析活動記錄的該階層式編輯距離;以及 依據該兩個待分析活動記錄的字元數加總,減去該兩個待分析活動記錄的該階層式編輯距離,計算該兩個待分析活動記錄的一相似度指標。 其中,產生該離散空間度量樹的運作還包含:在設置該邊緣的權重係數時,利用無條件捨去法或四捨五入法取將該階層式編輯距離轉換為一整數值,做為該邊緣的權重係數;以及 其中,該叢集化運作包含: 從該離散空間度量樹的根節點開始,指派一節點為一參考節點; 將一目標節點和該參考節點對應的待分析活動記錄代入該階層式相似度分析運作,獲得該目標節點和該參考節點的該階層式編輯距離和該相似度指標; 如果該參考節點與該目標節點的該相似度指標符合一相似度條件,建立鄰邊將該參考節點與該目標節點連結; 將該目標節點與該參考節點的該階層式編輯距離加上一相似度期望值,得到一搜尋範圍的上限值; 將該目標節點與該參考節點的該階層式編輯距離減去該相似度期望值,得到該搜尋範圍的下限值; 將與該參考節點連結的多個邊緣中,權重係數符合該搜尋範圍的邊緣所連接的下個節點指派為參考節點,遞迴執行該叢集化運作;以及 將該離散空間度量樹中與該目標節點有鄰邊相連的所有節點標記為同一叢集。
  9. 如請求項8所述的電腦程式產品(150),其中,該圖像產生運作包含: 循著該導引樹的末端節點向上遍歷,從該事件叢集中讀出對應的一活動記錄; 將該活動記錄解譯為一目標有向無環圖,包含一或多個節點,每個節點代表一個詞節,每個詞節包含一或多個字元; 將該目標有向無環圖與一參考有向無環圖進行一階層式偏序對齊運作,以獲得每個節點的一合併條件,並依據該合併條件,將該目標有向無環圖與該參考有向無環圖合併為該階層式有向無環圖;以及 將該階層式有向無環圖指派為下一次階層式偏序對齊運作的該參考有向無環圖; 其中,該階層式偏序對齊運作包含: 以詞節為對齊單位,對該目標有向無環圖和該參考有向無環圖進行一第一偏序對齊運作,找出所有對齊的節點組; 以字元為對齊單位,依序對每一組對齊的節點組進行一第二偏序對齊運作,找出每一組對齊的節點組中的一最佳字元對齊路徑; 利用該最佳字元對齊路徑對每一組對齊的節點組進行一合併條件分析運作,判斷每一組對齊的節點組是否符合該合併條件; 將符合該合併條件的每一組對齊的節點組合併為一共用節點而取代原對齊的節點組; 將不符合該合併條件的每一組對齊的節點組分別標記為一分支節點; 將所有的該共用節點與該分支節點重組繪製為該階層式有向無環圖;以及 依據該最佳字元對齊路徑,將該階層式有向無環圖中的該共用節點繪製為以字元為節點的有向無環子圖。
  10. 如請求項9所述的電腦程式產品(150),其中,該第一偏序對齊運作包含: 計算該目標有向無環圖和該參考有向無環圖的每一可能路徑配對的一替換分數;以及 依據該替換分數最高的路徑配對,找出對應的所有對齊的節點組; 其中,為一可能路徑配對計算該替換分數的運作包含,依據該可能路徑配對中的兩個路徑的最長共用子序列值,和字元數乘積的根值的一比值,代入一正弦反函數計算該兩個路徑的正規化最長共用子序列值; 其中,對一組對齊的節點組進行的該第二偏序對齊運作包含: 將該組對齊的節點組中的一第一節點和所對齊的一第二節點轉換為以字元為節點單位的一第一有向無環子圖和一第二有向無環子圖; 計算該第一有向無環子圖和該第二有向無環子圖的每一可能路徑配對的最長共用子序列值;以及 將具有最大的最長共用子序列值的一組路徑配對,判定為該組對齊的節點組的該最佳字元對齊路徑; 其中,該合併條件分析運作包含: 計算該最佳字元對齊路徑的一正規化最長共用子序列值;以及 如果該正規化最長共用子序列值大於等於一相似度閾值α,判斷該組對齊的節點組符合該合併條件;以及 其中,該正規化最長共用子序列值的計算包含,依據該最佳字元對齊路徑中兩個路徑的最長共用子序列值,和字元數乘積的根值的一比值,代入一正弦反函數計算該兩個路徑的正規化最長共用子序列值。
TW111126131A 2021-07-20 2022-07-12 用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品 TWI814481B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/867,058 US20230022709A1 (en) 2021-07-20 2022-07-18 Information security incident diagnosis system for assisting in intrusion detection and related computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202163223619P 2021-07-20 2021-07-20
US63/223,619 2021-07-20

Publications (2)

Publication Number Publication Date
TW202305632A true TW202305632A (zh) 2023-02-01
TWI814481B TWI814481B (zh) 2023-09-01

Family

ID=86661357

Family Applications (3)

Application Number Title Priority Date Filing Date
TW111126133A TWI801287B (zh) 2021-07-20 2022-07-12 用於產生階層式有向無環圖的事件視覺化裝置與相關的電腦程式產品
TW111126131A TWI814481B (zh) 2021-07-20 2022-07-12 用於輔助入侵偵測的資安事件診斷系統與相關的電腦程式產品
TW111126132A TWI835203B (zh) 2021-07-20 2022-07-12 具有自適應叢集化功能的日誌分類裝置與相關的電腦程式產品

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW111126133A TWI801287B (zh) 2021-07-20 2022-07-12 用於產生階層式有向無環圖的事件視覺化裝置與相關的電腦程式產品

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW111126132A TWI835203B (zh) 2021-07-20 2022-07-12 具有自適應叢集化功能的日誌分類裝置與相關的電腦程式產品

Country Status (1)

Country Link
TW (3) TWI801287B (zh)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9166989B2 (en) * 2006-12-28 2015-10-20 Hewlett-Packard Development Company, L.P. Storing log data efficiently while supporting querying
US9189308B2 (en) * 2010-12-27 2015-11-17 Microsoft Technology Licensing, Llc Predicting, diagnosing, and recovering from application failures based on resource access patterns
US10777301B2 (en) * 2012-07-13 2020-09-15 Pacific Biosciences For California, Inc. Hierarchical genome assembly method using single long insert library
US9898575B2 (en) * 2013-08-21 2018-02-20 Seven Bridges Genomics Inc. Methods and systems for aligning sequences
US20160078365A1 (en) * 2014-03-21 2016-03-17 Philippe Baumard Autonomous detection of incongruous behaviors
US9729671B2 (en) * 2014-10-05 2017-08-08 YScope Inc. Systems and processes for computer log analysis
US10931694B2 (en) * 2017-02-24 2021-02-23 LogRhythm Inc. Processing pipeline for monitoring information systems
TWI691852B (zh) * 2018-07-09 2020-04-21 國立中央大學 用於偵測階層式系統故障之偵錯裝置及偵錯方法、電腦可讀取之記錄媒體及電腦程式產品
CN109359481B (zh) * 2018-10-10 2021-09-14 南京小安信息科技有限公司 一种基于bk树的反碰撞搜索约减方法
CN109344913B (zh) * 2018-10-31 2022-03-08 中国刑事警察学院 一种基于改进MajorClust聚类的网络入侵行为检测方法
CN110020004B (zh) * 2019-02-19 2020-08-07 阿里巴巴集团控股有限公司 一种数据计算方法及引擎
GB2579110A (en) * 2019-05-21 2020-06-10 Oxford Nanopore Tech Ltd Method for determining a consensus sequence of a target polymer
CN110717049B (zh) * 2019-08-29 2020-12-04 四川大学 一种面向文本数据的威胁情报知识图谱构建方法
CN111858530B (zh) * 2020-07-03 2022-08-16 国网福建省电力有限公司信息通信分公司 一种基于海量日志的实时关联分析方法及系统
CN113065130A (zh) * 2021-04-15 2021-07-02 深信服科技股份有限公司 一种日志分类方法及相关装置

Also Published As

Publication number Publication date
TW202305633A (zh) 2023-02-01
TWI801287B (zh) 2023-05-01
TW202306349A (zh) 2023-02-01
TWI835203B (zh) 2024-03-11
TWI814481B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
Ahmed et al. A system call refinement-based enhanced Minimum Redundancy Maximum Relevance method for ransomware early detection
Milosevic et al. Machine learning aided Android malware classification
Cen et al. A probabilistic discriminative model for android malware detection with decompiled source code
TWI703468B (zh) 用於產生可疑事件時序圖的可疑事件研判裝置與相關的電腦程式產品
US20160065534A1 (en) System for correlation of domain names
Tang et al. Dynamic API call sequence visualisation for malware classification
D’Angelo et al. Association rule-based malware classification using common subsequences of API calls
US20140068768A1 (en) Apparatus and Method for Identifying Related Code Variants in Binaries
Zhu et al. Android malware detection based on multi-head squeeze-and-excitation residual network
Elmasry et al. A design of an integrated cloud-based intrusion detection system with third party cloud service
US12081570B2 (en) Classification device with adaptive clustering function and related computer program product
Huang et al. Deep android malware classification with API-based feature graph
Yan et al. Effective detection of mobile malware behavior based on explainable deep neural network
WO2020164272A1 (zh) 上网设备的识别方法、装置及存储介质、计算机设备
Nguyen et al. Detecting repackaged android applications using perceptual hashing
Kumar et al. Machine learning based malware detection in cloud environment using clustering approach
Takahashi et al. Android application analysis using machine learning techniques
Poudyal et al. Malware analytics: Review of data mining, machine learning and big data perspectives
Gao et al. Malware detection by control-flow graph level representation learning with graph isomorphism network
Shu et al. Android malware detection methods based on convolutional neural network: A survey
Yang et al. RecMaL: Rectify the malware family label via hybrid analysis
Yang et al. Android malware detection method based on highly distinguishable static features and DenseNet
Masabo et al. Improvement of malware classification using hybrid feature engineering
US12086241B2 (en) Event visualization device for generating hierarchical directed acyclic graph and related computer program product
Guo et al. A lightweight cross-version binary code similarity detection based on similarity and correlation coefficient features