DefPloreX:大規模電子犯罪鑑識用的機器學習工具

資安產業都很喜歡收集資料,研究人員也不例外。有了更多資料,就能夠對特定威脅所發表的聲明更有信心。但是大量資料也需要更多的資源進行處理,要從高度非結構化的資料中提取有意義和有用的資訊是相當困難的。結果往往就是必須進行手動分析,迫使資安專家(如調查員、滲透測試工程師、逆向工程師、分析師)必須透過繁瑣且重複的操作過程來處理資料。

我們開發了一套基於開放原始碼資料庫的彈性工具能夠有效地分析數百萬筆被置換(defaced)網頁。它也可以被用在一般攻擊所產生的網頁。這套工具稱為DefPloreX(來自“Defacement eXplorer”),結合了機器學習和視覺化技術將非結構化資料轉化成有意義的高階描述。將來自資安事件、入侵、攻擊和漏洞的即時資料有效地處理和濃縮成可瀏覽的物件,適用於高效率的大規模電子犯罪鑑識和調查。

DefPloreX可以輸入包含了待分析網路事件後設資料紀錄(如網址)的純文字檔案(如CSV檔),用headless瀏覽器(無使用者介面的瀏覽器)瀏覽其資源,從置換網頁提取特徵,將產生的資料儲存到Elastic索引。分散式的headless瀏覽器及大規模的資料處理操作都是透過Celery(分散式任務協作的實際上標準)來協調。DefPloreX使用眾多Python資料分析技術和工具來建立資料的離線視圖(view),可以更易於分析和探索。

DefPloreX最有趣的地方是會自動將相似的置換網頁分群,並將網路攻擊事件組成攻擊活動。整個過程只需傳遞資料一次,我們所用的群集技術在本質上是進行平行處理而不受限於記憶體。DefPloreX提供文字和網頁兩種使用者介面,可以用簡單語言查詢以用在調查和鑑識上。因為它是基於Elastic Search,DefPloreX所產生的資料可以輕易地跟其他系統整合。

使用案例

下面是分析師如何利用DefPloreX來調查一起被稱為“Operation France”(在Twitter上使用“#opfrance”)攻擊活動的例子。這起攻擊活動是由網路穆斯林激進分子所運作,目的是支持激進伊斯蘭主義。

如圖1所示,該攻擊活動在4年間(2013-2016)攻擊了1,313個網站,主要是針對法國網域(圖2)。DefPloreX揭示了攻擊分子的組成以及攻擊所用的置換範本(圖3)。一些成員明確表示支持由伊斯蘭極端分子(如恐怖主義)對法國進行的攻擊(圖4)。

圖1-4、攻擊活動Operation France(#opfrance)的調查範例(點擊放大)

公開發表

DefPloreX支援以下分析操作:

  • 輸入和輸出一般資料給Elastic索引
  • 使用各種屬性來完善索引
  • 以自動平行處理方式存取網頁來提取數值及視覺特徵呈現,捕捉HTML頁面結構和呈現外觀
  • 後製處理數字和視覺特徵來提取描述每個網頁的緊湊表示(compact presentation)。我們將這稱為“bucket”
  • 使用緊湊表示來重新調整原始網頁,將它們分組成相似網頁群集
  • 執行Elastic索引的通用瀏覽和查詢。

 

下圖為DefPloreX架構:

圖5、DefPloreX功能概述

 

我們想從每個網頁中收集同一個故事的兩面:網頁的“靜態”視圖(如非解釋資源、腳本、文字),和同一網頁的“動態”視圖(如用DOM修改的渲染頁面等)。DefPloreX完整版可以提取網址、電子郵件地址、社群網路暱稱帳號、主題標籤、圖像、檔案後設資料、摘要文字和其他資訊。這份資料擷取了置換網頁的主要特徵。

圖6、從網址收集的資料

 

我們的做法是將找出相關置換網頁(如駭客激進主義活動)當作一種典型的資料採礦問題。我們假設這些頁面有重複出現和相似的特徵讓我們可以捕捉和分群。比方說,我們假設同一個攻擊者會重複使用相同的網頁片段(儘管會有微小的變化)在同一波攻擊活動中。我們透過分析每個頁面(靜態和動態視圖)所取得的資料中提取數字和分類特徵來捕捉這些資訊。

圖7、從每個網址取得的特徵

 

DefPloreX還有一個功能稱為“資料裝桶(data bucketing)”,我們用來取得每筆記錄的緊湊表示。接著用這緊湊表示來進行快速分群。在我們的例子中,一筆記錄是一個置換網頁,但這方法可以應用到其他領域。當使用在數值特徵時,這個裝桶(bucketing)功能代表用一組有限分類值(即低、中、高)來表示一個實數(任意範圍)。

 

Elastic Search本身支援轉換數值到分類值所需的統計原語(如百分位數)。如果它應用到原本為類別的特徵(如網頁使用的字元編碼),這裝桶(bucketing)功能代表現有的所有編碼(如“windows-1250”,“iso-*”),還有常用在編碼上的地理區域(如歐洲、西里爾文、希臘文)。同樣也可以用在語言、頂級網域等等。

 

網頁介面是用React開發,用Flask編寫的輕量REST API來裝桶(bucketing)。網頁介面基本上是超級強化的電子試算表,智慧型分頁在某種意義上可以讓它擴展到任意筆的記錄。網頁介面的主要任務是瀏覽集群和記錄。比方說,要找出相同(小範圍)組網路犯罪分子所進行的網頁置換攻擊,我們會查詢DefPloreX來顯示出最多包含十個攻擊者的群組和檢查每個群組的時間表,來發現週期性模式或活動尖峰,找出協同攻擊。

 

在這些操作中,DefPloreX能夠在不犧牲效能的前提下最少化記憶體的使用。DefPloreX可以在普通的筆記型電腦上運作的很好,但如果有更多運算資源時也可以加以擴展。

 

圖8-11、DefPloreX使用範例(點擊放大)

 

公開發表

 

如同我們今年7月27日在拉斯維加斯Black USA Arsenal上的談話,我們用FreeBSD授權在Github上發表了部分的DefPloreX。發表的工具包括一個用於大規模Elasticsearch記錄運算的框架程式庫。我們的投影片可以這此取得。

 

@原文出處:DefPloreX: A Machine-Learning Toolkit for Large-scale eCrime Forensics 作者:趨勢科技資深威脅研究員(Marco Balduzzi和Federico Maggi)