閱讀707 返回首頁    go 技術社區[雲棲]


《數據驅動安全:數據安全分析、可視化和儀表盤》一3.5 回到具體問題

本節書摘來異步社區《數據驅動安全:數據安全分析、可視化和儀表盤》一書中的第3章 ,第3.5節,[美]傑·雅克布(Jay Jacobs)鮑布·魯迪斯(Bob Rudis) 著 薛傑 王占一 張卓 胡開勇 蔣夢颺 趙爽 譯, 更多章節內容可以訪問雲棲社區“異步社區”公眾號查看。

3.5 回到具體問題

考慮AlienVault信譽數據的問題和主要用例:將信譽數據導入SEIM或入侵檢測係統/入侵防禦係統(Intrusion Detection System/Intrusion Prevention System,IDS/IPS)來警示應急響應小組成員或錄入/阻止惡意活動。如何進行設置使信譽數據的總覽結果影響SIEM的配置,以確保產生最少數量的“瑣碎”的警報?
讓我們通過下麵的問題將上述問題轉化為更實際的問題:“信譽數據庫中的哪個節點代表了潛在的真正威脅?”
AlienVault同時包含Risk和Reliability字段是有原因的,你應該能夠使用這些屬性將節點分為兩類:1)你真正關心的節點,2)其他內容。“真正關心”的定義可能有些主觀,但是,想依賴258 626個節點中的一個來檢測到所有的活動並生成警報是不現實的。必須生成優先分流或優先級,該過程最好基於數據的統計分析和證據來生成分流和優先級,而不是僅單獨利用專家係統或突發奇想。
你可以通過對比Risk和Reliability因子發現哪些節點需要引起注意。關聯表是一種特定變量的多元頻率分布的表格視圖,可以幫助你完成這項工作。換句話說,關聯表可以顯示兩個變量之間的關係。在建立關聯表後,你可以從數據和圖形的結果發現AlienVault節點在哪裏“聚集”。
程序清單3-19的R代碼的輸出結果顯示在圖3-8中,該圖以分級和尺寸、顏色定量表示的形式展現了關聯表的輸出。而程序清單3-20的Python代碼用於生成一個標準的熱度圖(見圖3-9),該熱度圖隻依靠顏色來表示數量。(熱度圖是一種圖形表示,它將包含在矩陣中的各個數值表示為顏色。參考https://en.wikipedia.org/wiki/Heat_map獲得更多信息。)結合上述兩個因子,很明顯數據集的值集中在[2,2]附近,這是一種偏差的標誌。
程序清單3-19
image

程序清單3-20
image
image

有趣的是,你可以確定你所看到的現象是否是偶然,或者發現它們的潛在意義。盡管你需要做一些高級統計或使用Fisher準確度檢驗,但不要覺得麻煩。如果你假設Risk和Reliability的所有值都是等概率出現會怎麼樣?分級圖是什麼樣?你應該想到在係統和數據收集過程中存在一些因素,導致一些組合結果出現的概率會比較大。但是它們和當前數據差別有多大呢?
你可以使用sample()函數生成正態分布的隨機樣本,如[1,7]和[1,10],然後利用這些隨機樣本構建一個關聯表。多次運行將得到不同的隨機表。每次運行稱為隨機過程的實現(realization)。


image

圖3-9 風險(Risk)/可靠性(Reliability)關聯表熱度圖(Python)
程序清單3-21中的R代碼生成了圖3-10中的分級圖,該圖說明了兩個內容。第一,你可以用少量的代碼製作精美的隨機方塊。第二,確實存在一些因素使節點趨向於較低的Risk和Reliability類(也就是趨向於0)。這可能是因為數據隻具有低風險性和可靠性,或者采樣方法或評分係統誤導了數據的分布。
程序清單3-21
image

圖3-10 風險(Risk)/可靠性(Reliability)無偏估計圖(R)
現在將你的注意力轉移到Type變量,看看是否能在Risk和Reliability的評級結果間建立關係。仔細觀察Type變量,你會發現一些條目的內容已經超出了“類型”給它們定義的範圍,這些內容由分號分隔(如共有215個Scanning Host; Malicious Host值)。因為你想看到這些類型的比較,這些組合類型不應該和其他類型混在一起。因此,不需要解析出多類型的節點,你應該把它們歸為一個Multiples類以便表示它們被賦予了多種類型的屬性。現在,你可以生成一個三路關聯表。在坐標係中加入Type列觀察其對結果的影響。
程序清單3-22中的R代碼生成了圖3-11中的三路關聯表點陣圖,你可以對比在Risk和Reliability分類中Type產生的影響。相應的Python代碼在程序清單3-23中,用柱狀圖表示了三路關聯表(見圖3-12)。
程序清單3-22

image


image

程序清單3-23
image


image

相較於文字,圖形更有說服力。這個結果包含了Scanning Hosts中的234 000個數據點(大約90%的項被分類為“Scanning Hosts”)。這個類別很大,並且它的低風險掩蓋了其他類別的風險。將其從Type因子中移除並重新生成圖像。這並不是說Scanning Hosts類不重要,而是通過這種方法找出你真正關心的項。你並不關心低風險和可靠評級的節點。所以應該剝離它們然後觀察掩蓋在Scanning Hosts下的數據關係。我們繼續程序清單3-22和程序清單3-23中的例子,在程序清單3-24和程序清單3-25中生成新的結果圖,參見圖3-13(R的點陣圖)和圖3-14(Python的柱狀圖)。
程序清單3-24
image


image

程序清單3-25
image

image

現在你就要得到一些結果。在圖3-13中,你會發現Malware domain類的風險評級在2到3之間,可靠性集以2為中心向外蔓延。你也可以觀察其他類型的圖形結果,包括圖3-14,但是現在你需要重新生成移除了Malware domain後的圖形。另外,看起來Malware distribution沒有產生任何風險,你可以從剩餘的類中過濾掉它(在程序清單3-26和3-27中)以觀察最終結果圖3-15(R的點陣圖)和圖3-16(Python柱狀圖)。

image

程序清單3-26
image
image

image

image

image

通過最後的篩選,你已經將原來的列表減少到不到6%,而且合理地找到了真正關心的節點。如果想一步降低範圍,可以過濾掉Reliability與Risk的一些組合。或者,也可從已經被過濾掉的類別中選取一部分重新觀察。
這裏簡單的解析與分割數據並沒有展示出哪些變量是最重要的,隻是幫你了解這些數據的關係和出現的頻率。因為90%的數據是Scanning Hosts,也許你隻想篩選出風險不大於2的主機。這個分析隻是幫你定位能產生更高警報優先級的節點,你仍然可以將其他類型節點捕捉到低優先級或者信息日誌中。
因為AlienVault每小時更新這個列表,你可以在將新的版本導入到安全工具之前創建一個腳本來進行過濾。然後,你可以保持節點過濾的百分比作為潛在調整規則所需的百分比。此外,你應該考慮在半頻率(semi-frequent)下實現這種探索分析。這將幫助你確定是否需要重新考慮到底由什麼構成特殊節點。

最後更新:2017-06-21 18:02:43

  上一篇:go  數據驅動安全:數據安全分析、可視化和儀表盤》一3.6 本章小結
  下一篇:go  《數據驅動安全:數據安全分析、可視化和儀表盤》一3.4 探索數據