開源流量分析系統 Apache Spot 概述(轉)


原文地址http://blog.nsfocus.net/apache-spot/

Apache Spot 是一個基於網絡流量和數據包分析,通過獨特的機器學習方法,發現潛在安全威脅和未知網絡攻擊能力的開源方案。Apache Spot 利用開源且被優化過的解碼器接入二進制網絡流量數據和數據包,利用機器學習的方法(主要是LDA 算法)從網絡流量中分離出可疑流量,以及特征化獨特的網絡流量行為。經過上下文增強、噪聲過濾、白名單和啟發式算法等等一系列手段,最終產生少量且准確的安全威脅事件呈現給用戶。

 

1. Apache Spot 是什么?

Apache Spot 是一個基於網絡流量和數據包分析,通過獨特的機器學習方法,發現潛在安全威脅和未知網絡攻擊能力的開源方案。目前Apache Spot 已支持對Netflow、sflow、DNS、Proxy 的網絡流量分析,主要依靠HDFS、Hive 提供存儲能力,Spark提供計算能力,基於LDA 算法提供無監督式機器學習能力,最終依賴Jupyter 提供圖形化交互能力。

該項目由Intel 和Cloudera 向Apache 基金會貢獻,目前尚處於孵化階段,最新發布版本為Apache Spot 1.0。

2. Apache Spot 能做什么?

Apache Spot 采集的數據包括網絡流量、DNS 和Proxy數據包,其中網絡流量又划分為外部流量(Perimeter Flows)和內部流量(Internal Flows)。利用這些數據可以做到:

外部流量

  • 隱蔽掃描識別Stealthy Scanning
  • 旁路攻擊檢測Side-Channel Data Escapes
  • 反射攻擊檢測Reflection Attacks
  • 異常數據流發現Unusual Data Flows
  • 信標行為發現Beaconing

外部流量+ DNS

  • DNS隧道檢測DNS Tunneling
  • DNS隱蔽信道識別Convert DNS Channels
  • 內部DNS探測Internal DNS Recon

外部流量+ DNS + Proxy

  • 跨站腳本攻擊檢測Cross site scripting(XSS)
  • C&C主機發現Command and Control
  • URL混淆檢測URLobfuscation
  • 異常的POST數據發現Unusual Data POSTs

外部流量+ DNS + Proxy + 內部流量

  • 橫向移動檢測Lateral Movement
  • 完整的威脅可見性Complete Threat Visibility

3. Apache Spot 是怎么做的?

Apache Spot 利用開源且被優化過的解碼器接入二進制網絡流量數據和數據包,利用機器學習的方法(主要是LDA 算法)從網絡流量中分離出可疑流量,以及特征化獨特的網絡流量行為。經過上下文增強、噪聲過濾、白名單和啟發式算法等等一系列手段,最終產生少量且准確的安全威脅事件呈現給用戶。

4. Apache Spot 關鍵特性

  • 識別可疑DNS數據包(Suspicious DNS Packets)

利用深度包檢測技術(Deep-packet Inspection)對DNS流量進行畫像,經過可視化、正則化以及模式匹配處理,向安全分析師呈現出DNS流量數據中最有可能是威脅的部分。

  • 威脅應急響應(Threat Incident and Response)

給定一個IP地址,Apache Spot能夠將跟該IP相關的所有數據按時間序列整合在一起,便於運維人員對威脅事件進行響應。

  • 可疑網絡連接發現(Suspicious Connects)

通過機器學習的方法對在網絡上進行通信的機器及其通信模式建立相應的模型,數十條原始數據在經過一系列處理后,僅剩余幾百條,這些剩余的數據就是最有可能是威脅的部分。

  • 故事板(Storyboard)

安全分析師對威脅事件完成調查后,可以通過故事板去表現事件的來龍去脈,也就是說在故事板中,我們可以了解到攻擊者是什么時候攻入系統的?都拿下了哪些機器?怎么拿下的?

  • 開放數據模型(Open Data Models)

為了讓威脅檢測模型的開發過程更加簡單高效,保證個人、企業、社區輸出的檢測模型的兼容性,Apache Spot 對網絡、終端、用戶等相關數據進行了標准化定義,規范了這些數據在邏輯層以及物理層的形態。簡而言之,開放數據模型保障了不同的開發者在用同一種“語言”在進行威脅檢測模型的開發。

  • 協作(Collaboration)

Apache Spot 平台運行於Hadoop大數據平台之上,通過其定義的開放數據模型,使得個人、企業、社區開發者的產出可以無縫銜接。正如攻擊者可以利用其它攻擊者制作的攻擊工具一樣,防護方也能夠使用其它防護者制作的防護工具。

5. Apache Spot 系統介紹

5.1 系統架構

Apache Spot項目使用Hadoop大數據生態的各種組件構建其數據分析平台。從數據采集、預處理到存儲,從數據分析、結果呈現到交互操作,還集成了大量的開源軟件來構建平台的能力。

5.2組件視圖

  • spot-setup 系統配置、初始化
  • spot-ingest 數據采集
  • spot-ml 機器學習數據分析
  • spot-oa 用戶交互界面

5.3數據流視圖

下圖詳細呈現了Apache Spot整個平台的主要數據流,數據從數據源(左上)起始,先經過數據采集器進行解析處理,而后由流式處理組件完成入庫,存儲到HDFS中。之后,機器學習組件負責對數據進行分析計算,並將計算結果入庫存儲。分析結果最終通過用戶界面呈現出來(右下)。

5.4 服務視圖

上圖是Apache Spot推薦的集群部署下,各個節點上部署的服務。其中:

Master節點作為大數據平台的主節點,主要負責提供數據存儲、檢索及資源管理服務;

Cloudera Manager節點作為大數據平台的管理節點,也是Apache Spot平台的管理入口;

Worker節點作為大數據平台的計算節點,主要負責提供數據分析能力;

Edge節點作為大數據平台的數據采集節點,主要負責從網絡環境中采集數據。

6. Apache Spot 組件介紹

6.1 配置組件Spot-Setup

Spot-Setup包含一系列腳本,分別用於初始化系統HDFS 中的文件路徑和Hive 數據表結構,以及初始化系統配置。

6.2 數據采集組件Spot-Ingest

6.2.1 架構視圖

6.2.2 內部模塊

  • Spot-Collector

該模塊負責在后台監控文件系統指定路徑下,由網絡工具產生的新文件,或者先前產生的已有數據文件,通過指定解析工具(如nfdump,tshark)轉換為可讀格式,並以原始格式存儲到HDFS 用於取證,以avro-parquet 格式存儲到Hive 中以做SQL 檢索。

其中:

文件> 1MB 的將文件名稱和在HDFS中的存儲路徑交給kafka;

文件< 1MB 的將其Data Event 交給Kafka,之后由Spark Streaming處理(當前版本中僅Proxy 數據由Spark Streaming 處理)。

  • Kafka

Kafka負責存儲由Collector 采集到的數據,以供Spot Workers 解析處理。每個數據采集實例都會創建一個新的Topic,當前版本包含三個采集實例,分別是Flow, DNS, Proxy。每個Topic 的 Partition 數量取決於Spot Worker 的數量。

  • Spot Workers

Sport Worker 運行在后台,從指定的Topic 的Partitions, 以及Hive 表中讀取、解析數據,並將結果存儲到Hive 中,以供Spot-ml 組件讀取消費。

當前版本中存在兩種類型的Spot Worker:

A:Python 多線程實現,通過預置的解析器處理數據;

B:Spark-Streaming Workers 實現,通過Spark-Streaming Context 從kafka 中讀取並處理數據。

6.3 機器學習組件Spot-ML

Spot-ML負責從采集到的netflow、dns、proxy 數據中分析可疑連接,通過對一系列網絡事件的分析來生成最不可能和最可疑的事件列表。它利用主體建模(Topic Model)來發現正常和異常的網絡行為;將關聯到某個IP 的日志集合視作一個文檔,利用LDA (Latent Dirichlet Allocation ) 算法從中發現隱藏的語義結構。Spot-ML 為每個IP 地址的網絡行為建立概率模型,每一條網絡日志都會被該模型進行評分,將其中得分較低的網絡事件標記為“可疑”以作進一步分析。

LDA算法是一個用於離散數據建模分析的生成概率模型,基於三層貝葉斯模型,適用於分析類似語料庫的數據。在該模型中,文檔中的每個單詞均由一組潛在的主題混合而成。利用聚合、離散手段將網絡流量中每一條網絡日志轉換為一個個單詞。通過這種方法,可以將文檔關聯到IP 地址,單詞關聯到網絡日志(網絡日志可關聯到某個IP),主題關聯到網絡活動畫像。

6.4 交互組件Spot-OA

Spot-OA基於IPython、D3JS、jQuery、Bootstrap、ReactJS技術向用戶提供數據處理、轉換以及數據可視化的能力。當前版本主要通過Suspicious、Threat Investigation、Story Board 三個視圖頁面提供針對Flow、DNS、Proxy 事件的可視化分析能力。此外,通過Ingest Summary Notebook 視圖頁面,提供了解指定時間段內數據采集情況的能力。

6.4.1 Suspicious 簡介

Suspicious視圖頁面用於呈現Spot-ML 發現的可疑活動,主要由四個面板組成。

Suspicious面板以數據列表的形式展現Spot-ML 發現的可疑活動;Network View 面板以可視化的形式表現這些可疑活動;Details 面板用於挖掘某個可疑活動更為細節的信息。Notebook  面板提供一種專家能力,通過人為介入的方式修正或改善機器學習模型。

Netflow Suspicious:

DNS Suspicious:

Proxy Suspicious:

6.4.2 Threat Investigation 簡介

Threat Investigation 視圖頁面是分析結果展示在Storyboard 之前的最后一步,安全分析師在這個頁面對即將展示的分析結果進行最后一步核查。

暫無截圖!

6.4.3 Storyboard 簡介

Storyboard視圖頁面用於呈現系統最終的分析結果,供用戶掌握高風險的安全威脅事件以及更進一步的信息。

Netflow Story Board:

DNS Story Board:

Proxy Story Board:

6.4.4 Ingest Summary 簡介

Ingest Summary 用於了解系統的數據采集情況,可以查看采集的數據類型在指定時間段的數據量分布詳情。

7. Apache Spot 環境&部署

7.1 基礎環境

  • CDH 5.7+
  • Spark 2.1.0
  • YARN
  • Hive
  • IMPALA
  • KAFKA
  • SPARK(YARN)
  • Zookeeper

7.2 Docker 部署

下載鏡像:

啟動鏡像:

訪問地址:

http://localhost:8889/files/ui/flow/suspicious.html#date=2016-07-08

7.3 單機部署

Apache Spot 項目1.0 版本的成熟度還比較低,部署過程中需要人工安裝、編譯、配置若干基礎組件,才能保證Spot 組件的正常運行。又因為Spot 當前的說明文檔不夠完善,對依賴的組件版本缺乏明確的說明,導致在部署過程中會浪費一些時間。

部署安裝的大致流程為:

  1. Hadoop大數據環境部署
  2. Spot-setup初始化配置
  3. Spot-Ingest組件配置數據采集
  4. Spot-Ml組件編譯、部署
  5. Spot-OA組件構建、部署

7.4 集群部署

Apache Spot 各組件推薦部署位置,結合5.4 服務視圖查看:

Component Node
spot-setup Edge Server (Gateway)
spot-ingest Edge Server (Gateway)
spot-ml YARN Node Manager
spot-oa Node with Cloudera Manager

8. Apache Spot 數據采集

8.1 Proxy 數據采集

將Spot-Ingest 組件部署到Proxy 服務器上,通過編輯數據采集組件配置文件($SPOT_INGEST_HOME/ingest_conf.json)指定待采集Proxy 服務器的日志路徑來完成Proxy 數據的采集。

8.2 Flow 數據采集

Spot-Ingest依賴spot-nfdump 解析流量數據包,可通過nfdump 工具包中的nfcapd 將接受netflow 數據並保存到指定的文件。

nfcapd 接收流量的方式示例:

注:綠盟IPS 可產生netflow 流量數據,在【系統】-> 【系統配置】—> 【NETFLOW配置】頁面配置接收流量的地址即可。

8.3 DNS 數據采集

Spot-Ingest依賴tshark 解析DNS 數據包。

使用tshark 抓取DNS 數據包保存為pcap 文件示例:

使用tcpdump 抓取DNS 數據包保存為pcap 文件示例:

 

參考鏈接

1.Apache Spot Homepage

2.Apache Spot Docker Homepage

3.Apache Spot Open Data Model 1

4.Apache Spot Open Data model 2

5.Splunk Common Information Model

 

文章分類: 安全分享 
文章關鍵詞: Apache Spot流量分析流量分析工具網絡流量分析 
轉載請注明:“轉自綠盟科技博客”: 原文鏈接.
文章收錄:
Post navigation

One thought on “開源流量分析系統 Apache Spot 概述”


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM