您當前的位置:首頁 > 收藏

大資料安全分析漫談

作者:由 666 發表于 收藏時間:2019-01-04

前言

寫這篇文章有三個原因,一是在工作中一直艱難地摸索著這塊也曾寫過一篇很粗略的

大資料之安全漫談

(想繼續吐槽);二是看到了阿里的招聘廣告-

一起來聊聊這個新職位:大資料安全分析師

;三是整個2015的RSA會議 Intelligence Data-Driven 出境率太高了,於是想談談。

大資料安全,顧名思義,用大資料技術解決安全問題。核心——

解決安全問題

,手段——

大資料技術

我們從核心出發,安全問題抽象來說就是

攻擊與防禦

,接下來明確

防禦物件

是什麼?

攻擊目的

是什麼?

攻擊手段

是怎樣的?

攻擊者

的特徵?一句話——搞清楚誰為了什麼目的透過什麼手段攻擊了誰。

比如說防禦物件有

企業內部安全

,有對外發布

產品安全

,同時防禦物件又決定了不同的攻擊目的與攻擊手段,有企業入侵,有對產品本身的攻擊(比如說軟體破解,遊戲外掛,訂單欺詐),有對產品使用者的攻擊(比如利用支付漏洞竊取使用者財產),同樣發起攻擊的攻擊者們特徵又是迥異的,有無特定目的批次散彈攻擊,有靠接單掙錢的賞金駭客,有外掛作坊等等。

在明確了的問題後,接下來就是確定解決問題的方法,傳統方法的缺陷是什麼?大資料技術解決問題的優勢又是什麼?比如說WAF系統中,傳統的檢測機制——基於簽名庫(黑名單),缺陷是對未知漏洞(0day) 不可感知。解決方案——基於異常(白名單),如何鑑定異常——機器學習(學習正常的行為模式),如何對大量資料鑑定異常——大資料技術支撐下的機器學習。

在這一過程,我們需要具備領域知識(安全知識),資料科學知識(資料分析知識,機器學習,文字分析,視覺化),大資料知識(資料收集,資料儲存,資料傳輸,資料分散式計算),程式設計知識。

路漫漫其修遠兮,吾將死磕到底…

大資料安全分析漫談

本文就以企業入侵檢測日誌分析為場景來談談大資料安全。

一、安全領域

大資料安全分析最容易走偏的就是過度強調資料計算平臺(大資料),演算法(機器學習),而失去了本心,忽略了我們使用這一技術的目的,以入侵檢測為例,我們希望日誌分析達到以下目的:

大資料安全分析漫談

如何感知威脅,我們可以先對攻擊者進行畫像,攻擊手段進行建模。

1. 攻擊者畫像

大資料安全分析漫談

這裡是非常粗略的分類,實際上我們可以用關係圖(社交網挖掘)的方式將攻擊者關聯起來,對取證抓壞人也是有效果的。

2. 攻擊手段建模

相信喜歡擼paper、ppt的人對Attack Models、 Attack Trees、 Kill Chain這三個術語特別熟悉,特別是看過2013年後的各大安全會議文件後,其實說的都是攻擊行為建模。

(1) 滲透模型

大資料安全分析漫談

(2)普通攻擊模型

大資料安全分析漫談

(3)攻擊模型(升級版)

大資料安全分析漫談

注意以上攻擊手段只是高度精煉的攻擊環節,實際的攻擊檢測中,我們需要儘可能

精確的還原入侵場景

(包括對應的正常場景是怎樣的),從入侵場景中提煉關鍵環節,從而檢測出異常的攻擊行為。

在熟悉了殺生鏈(kill chain)後,接下來要做的就是在構成鏈的每個環節進行狙擊,注意越往後成本越高。而每個階段的操作必然會雁過留痕,這些痕跡,就是我們進行資料分析的資料來源,

知道對什麼資料進行分析是最最重要的

(資料量要恰到好處,要多到足夠支撐資料分析與取證,要少到篩選掉噪音資料)。

二、資料科學

在明確了我們要解決的問題,接下來我們來普及一下資料分析的基本流程:

大資料安全分析漫談

從上圖可以看出,傳統的資料分析在模型選擇上都僅僅用了0——規則,1——統計分析,設定基線,依靠閾值的方法。

資料分析與領域知識是緊密耦合的,千萬不要誤入套用演算法的誤區,要進行

基於行為建模

(攻擊行為,正常行為)的資料分析,可以從

單點分析

(單條資料的深度分析,例如分析單條HTTP請求是否是攻擊請求),

簡單的關聯分析

(例如分析一個session下,多條HTTP請求的關聯關係,是否為掃描器行為,是否有嘗試繞過WAF的操作,是否符合攻擊鏈的關鍵步驟),

複雜的關聯分析

(例如Web日誌,資料庫日誌,作業系統日誌的聯動分析,例如SQL注入寫馬攻擊中HTTP請求對應的資料庫操作,主機操作)來逐步深入分析,當攻擊場景很複雜的時候,我們可以考慮從結果出發的方式來回溯,這些技巧都取決於領域知識。

下面列舉一些傳統的關聯技巧:

1。

規則關聯

If the system sees an EVENT E1 where E1。eventType=portscan followed by an event E2 where E2。srcip=E1。srcip and E2。dstip = E1。dstip and E2。eventType = fw。reject then doSomething

2。

漏洞關聯

:將漏洞掃描資料和實時事件資料結合起來,以便幫助減少假陽性 false positive

e。g。 如果IDS檢測到了埠掃描,可以對網路進行例行的漏洞掃描,來驗證問題中的主機是否真的打開了個埠,是否容易遭到攻擊

3。

指紋關聯

4。

反埠關聯

if (event E1。dstport != (Known_Open_Ports on event E1。dstip)) then doSomething

5。

關聯列表關聯

: 外部情報列表,例如攻擊者列表

http://www。

dshield。org/

6. 環境關聯

e。g。如何知道公司的假期安排,可以使用這一資訊,在每個人都不上班的時候發現內部資源的訪問。

休假時間表 業務時間 假日計劃 內部資源訪問許可權 重複的網路“事件”例如漏洞掃描 計劃的系統、資料儲存備份等 維護安排,例如作業系統補丁等

常見的關聯搜尋模式

x次登入失敗後有一次登入成功 建立非管理員賬戶之後進行許可權提升 VPN使用者在工作時間內/外登入,並向網路之外傳輸更多的資料 網路上的一臺主機開始攻擊或者探查網路上的其他主機 在很接近的時間內X次嘗試訪問使用者沒有許可權的共享/檔案/目錄等 從同一個工作站以多個使用者名稱登入 在多個系統上有多個防病毒軟體失效 攻擊DMZ系統,隨後有出站連線 攻擊DMZ系統,隨後在同一個系統上更改配置 在幾分鐘內有許多Web 404,401 500和其他web錯誤碼

以上都是單靠領域知識感知威脅,領域知識的缺陷是太依賴於專家知識了,而專家知識是有限的,這個時候機器學習就可以發揮長度了,例如

理工渣眼中的HMM及安全應用

即使是使用機器學習也仍離不開安全領域知識,有安全領域背景的人在資料預處理階段、feature選擇階段會事半功倍,比如對訪問日誌進行白名單建模時,從訪問日誌中篩選出異常日誌(攻擊日誌、不存在的日誌、伺服器錯誤日誌),需要安全領域知識(知道什麼是攻擊)、web伺服器知識(知道什麼是異常,url重寫)進行資料清理;比如

HMM web安全檢測

feature的選擇,我們知道攻擊注入點在哪裡,就不需要進行運氣流的feature選擇、降維處理。

機器學習雖然能彌補單靠領域知識分析的缺陷,但由於其存在準確率的問題而不能直接在線上應用,只存在於運維離線的環境下。或許是演算法需要最佳化,但個人認為能解決當前方法不能解決的問題就是很大的進步了,比如說能發現一個0 day。我想當電燈剛發明出來的時候,也是絕對沒有蠟燭好用,也希望架構師們不要單一的靠準確率這個唯一的標準來評價機器學習的結果。

在知道了如何進行資料分析後,接下來的就是如何在資料量巨大的情況下進行分析。玩單機指令碼的年代要一去不返了,分散式需要搞起。

三、大資料技術

我們要使用的大資料技術的核心其實就是是分散式儲存與分散式計算,當然能利用已有的資料預處理介面,演算法介面也是很有幫助的。

以下是一個完整的大資料分析架構圖:

大資料安全分析漫談

得出這個架構,也走了不少彎路,最開始由於不瞭解ElasticSearch的特性,採用的是直接使用ElasticSearch對資料來源進行分析與結果儲存,ElasticSearch全文索引的設計決定了ta不適合頻繁寫操作並且會很誇張的擴大資料量,所以最後引入了更適合及時讀寫操作的HBase資料庫來做持久化儲存,同時增加了演算法層這塊,只在ElasticSearch離儲存最終結果。

大資料有著龐大的生態圈,較之機器學習(人工智慧,深度學習)的發展,資料儲存、資料計算方面簡直是突飛猛進,為演算法的發展提供了良好的支撐,當然學習的成本也非常高。以下是入門的一些文章:

萬事具備,就差第四個能力——程式設計,這是將想法落實的能力,否則都是鏡花水月。不是有一句老話嗎?“Talk is cheap, show me the code”。

四、程式設計

對於戰鬥力負5的渣,程式設計方面的心得是在太多了,每天都有新發現,這裡就說說經驗之談吧。

1。 語言選擇

先使用Python或者R去做小資料量(樣本資料)的分析,然後使用Java實現分散式演算法(在大資料的生態圈中,為了避免不必要的麻煩還是用原生語言Java好)。

2。 日誌格式問題

日誌處理中,輸入日誌的格式會直接影響模型執行時間,特別是採用正則的方式對文字格式的輸入進行解析會極度消耗時間,所以在模型運算時需要先對日誌進行序列化處理,Protocol Buffer就是很好的選擇,但千萬注意jar包的版本哦。

結語

大資料安全涉及的內容非常深入,每個方面都是幾本厚厚的書,這裡只是非常淺顯的漫談,給大家一幅平面的框架圖,期待更多的資料科學(資料分析,機器學習,大資料處理)領域的人進入這個行業,或者安全行業的人開拓自己在資料分析方面的深度,大資料安全將發展的更好,不僅僅是叫好不叫座了。

(我寫

理工渣眼中的HMM及安全應用

那篇文章時,有讀者留言,為啥你也搞大資料,希望這篇文章能答疑)

最後一句,實踐出真知,開練吧!

參考

《日誌管理與分析權威指南》

《大資料日知錄架構與演算法》

標簽: 攻擊  日誌  資料  資料分析  知識