Kate Li (Taiwan)的部落格

首頁

機器學習在安全攻防的實踐

作者 iacona 時間 2020-03-12
all

閱讀:2661

TechWorld 2017的圓桌論壇中我們討論了機器學習在網路安全的應用,那機器學習在安全攻防的具體實踐有哪些呢?如何利用機器學習對安全事件進行回溯及預警?機器學習、全流量威脅分析、攻擊鏈、時序關聯這些熱點詞你都懂嗎?讀完這篇文章你就離老司機不遠了!

文字不過癮?直接點擊文末視頻連結近距離感受機器學習的神秘魔力吧!

網路安全現狀及發展方向

機器學習在流量分析方面的實踐

高級威脅的檢測之道

Gartner在今年提了一個詞就是關於一種新的網路流量分析的解決方案。

網路流量分析解決方案,通過監控網路流量、連接和對象,找出惡意的行為迹象。那些正在尋求基於網絡的方法,來識別繞過周邊安全性的高級攻擊的企業應該考慮使用流量分析科技來幫助識別、管理和分類這些事件。

——2017資訊安全的頂級科技,Gartner

這種分析的方法是通過網路流量連接和對象找出惡意的行為。雖然也是通過流量,但是跟以前我們通過流量抓取、規則匹配的管道是完全不一樣的。這種管道來識別繞過周邊安全,以及我們所謂的不管是防火牆還是IDS周邊防護的一些檢測的高級的行為。

綠盟科技在去年底做了一個項目,這個項目今年也正在進行一個產品化,就是通過全流量威脅分析來檢測和發現惡意行為。這裡有幾個方面數據的來源,比如說規則,包括現在的情報,還有一些沙箱檢測,我們把這些和我們之間的流量的數據作一個融合,對較長時間跨度的海量網路流量進行回溯和挖掘。

全流量威脅分析方案

全流量威脅分析方案,是針對現時APT分析發現困難的問題。運用大資料處理的相關科技,提供對較長時間跨度的海量網路流量數據進行挖掘分析的能力;結合機器學習、規則檢測、沙箱檢測、情報分析等多種威脅檢測手段,依據攻擊鏈模型對威脅行為進行關聯,構建出一套較為完善的APT檢測體系,使得較大時間跨度的APT攻擊檢測成為可能。

流量威脅分析過程

流量威脅的分析過程如下:首先對於網絡做監測,監測完了以後把所有的流量輸入規則引擎,一個是規則,還有一個是沙箱,這兩個是應用比較多的管道。中間有個很重要的環節就是流量的原數據,相當於把流量的原數據包括流量的一些包頭等等都截取出來,中間有一些關於占流量的內容除掉以後,把包頭和原數據存下來,存下來以後再結合攻擊鏈的行為,通過我們的大資料分析平臺,做相應的一些運算,獲得整個攻擊的回溯或者是往後的推測。

在這個方案裡面,我們通過規則引擎和沙箱進行流量解析和未知威脅檢測後,把流量彙聚到我們大資料分析的平臺。另外這個平臺也可以接入威脅情報。

通過這些管道綜合進我們的大資料分析平臺裡面,來獲取這種异常的分析,並且能够做到相應的接入內容的檢索。我們可以通過這種流量的原數據做回溯,比如以前發生過什麼,以及對我現在的主機造成了哪些影響。通過這種管道,對我們之前的基於規則管道的安全防護是一個很好的補充。

基於DNS數據實現僵屍網路發現

現在有一種非常流行的僵屍網路——Domain Flux類型僵屍網路,通過DGA算灋根據一個種子不斷自動生成新的功能變數名稱,功能變數名稱的生命週期通常很短,當攻擊者要發動攻擊時,提前為C&C主機註冊功能變數名稱,等待肉雞連接。而我們如果是通過以前的規則的管道,很難快速形成一些規則去監測這些內容。但是如果推動機器學習的管道,我們通過流量數據的抓取以後,把這種僵屍網路的特性做一些相應的總結。比如說功能變數名稱奇葩、不好發音、長度不合理等等。我們有了這些表現的特性以後,形成剛才所說的機器學習裡面很重要的特徵內容。根據這些特徵內容,機器學習可以根據相應的算灋去匹配,來挖掘出僵屍網路。

機器學習發現蠕蟲傳播行為

我們也是通過這種管道發現了蠕蟲的傳播行為。現在蠕蟲的一般行為也很簡單,無外乎就是隨機埠掃描,掃描完了以後發現你開了相應的埠,然後就去植入相應的一些後門等等。這是蠕蟲的管道。

但是針對這種蠕蟲的管道,原來只能應用一些專門的規則,針對某一類特定的蠕蟲的一些規則。而通過機器學習的方法,我們首先可以形成一些特性,像剛才說的蠕蟲傳播的特性,比如說放射性的傳播,特定的埠、相同的一些發送的數据包。把這些也做相應的特徵選取,最後再由些反覆運算式的算灋,來發現這種僵屍網路的傳播。

機器學習發現隱蔽通道

有一些經常用DNS來做隱蔽通道的傳播。因為大家知道DNS的數據我們一般不做控制。所以通過DNS數據你就可以傳播很多資訊。所以對攻擊者來說,DNS是一個很好的管道,DNS的遞迴解析體系保證了通道的穩定和傳輸的可靠性,且防火牆基本不攔截DNS數据包。

我們來做相應的解析以後,發現隨機注册的功能變數名稱,包括隨機功能變數名稱傳輸的一些數據等等。這些資訊也就形成了相應的一些檢測特性。包括功能變數名稱的長度,TTL的時長。根據這些檢測特徵性就能够很好地檢測出這一種隱蔽行道。採用這種管道,是開始基於流量抓取的一些特徵所實現不了的。而採用機器學習的方法就能够很容易的實現。

機器學習在日誌分析方面的實踐

傳統日誌分析之殤

傳統的日誌基本上都是單點的。比如IDS日誌、漏掃設備日誌、防火牆日誌以及其他網路設備在資料傳輸過程中形成的一些日誌。出現問題只能一個一個單點排查,效率極低。

基於攻擊鏈的安全分析

網絡攻擊是分階段發生,並可以通過在每個階段建立有效的防禦機制中斷攻擊行為。

——洛克希德.馬丁

剛才我們看到各種分析的方法,或者是一些安全事件的點。不管是偵查階段、工具準備階段還是攻擊利用、安裝後門等等階段,我們看到的都是一個一個事件的點。而通過這種攻擊鏈分析的方法,通過以下七步,可以對一些事件做一個歸類。通過這種歸類以後,能够形成一些特性。

攻擊鏈為駭客攻擊行為的分析,提供了有效的理論支撐。

事件理解模型

攻擊鏈方法可能能够對我們做安全事件的分析產生一個比較有意義的管道。但是這裡面有一個很重要的科技點,就是在於對事件的理解。現在各類廠商,不管是綠盟,或者其他友商,都會有事件爆發出來。事件爆發出來以後,就會對日誌的分析產生非常大的困難。這個困難在於我們如何理解這些事件,只有理解這些事件才能進行剛才說的下一步推理。

而關於事件的理解,我們這裡做了一個事件理解模型,分成了三步。

第一,基於時間視窗老化合併。在一個固定的時間週期內,把產生的安全事件做一個基於時間的歸併,這叫一個時間視窗的老化。

第二,基於情報的事件可信度分析。基於情報對這些歸併的事件進行分析,產生事件的可信度。

第三,基於事件知識庫的事件理解。

時序關聯分析

有了事件的理解以後,接下來一步很關鍵,是關於時序關聯。所謂時序關聯,我們舉個很簡單的例子。早上6點,小明在操場,一般來說早上6點在操場不是跑步,就是鍛煉。再說複雜一點,比如說中午或者是下午3點,小明在辦公室,這又是幹嘛?在辦公室,那肯定是上班。比如說週末3點在家,在家幹嘛呢?那在家可能是在看電視,也可能在休息等等。而這種時候,就產生了一個推理的過程。我們可以根據時間、天氣、愛好等等,推理出幾種行為,這就是時序分析。

攻擊時序分析——數據特徵化

在這種時序分析下,我們如何進行安全數據特徵化呢?比如說我有了一些攻擊的特徵和一些日誌、一些事件。然後我再通過一些場景,比如說時間的約束,如A事件只能在B事件之後發生,把這種時序產生出一些安全場景,來描述某一個拓撲攻擊的過程,這就是安全的時序。

機器學習實踐——攻擊過程歸納

通過安全時序的管道,我們可以形成攻擊過程的歸類。所謂攻擊過程的歸類,就是按照七步的方法。先是偵查行動,比如攻擊前先要做一些掃描,做一些探測的行為。接著,如果發現漏洞,就需要POC工具,或者是改造一些惡意檔案。接著就需要植入一些木馬,然後再利用漏洞等等。相當於基於攻擊時序形成一系列的方法。通過這種時序方法來對安全事件進行安全告警,形成一些規避方案,或者是對有效的攻擊事件畫出一個攻擊行為來。

攻擊過程分析

具體事件的分析方法:比如說某一天我收到了一堆的攻擊日誌,有前天的、昨天的、今天的,形成一些告警的事件。然後通過攻擊鏈七步法,對每一個行為做匹配。例如,5月3號做了一個埠掃描,它是屬於偵查的。5月6號做了破解,把這些行為畫出一個攻擊時序。

實際安全場景分析

有了時序以後,就可以形成一個攻擊場景。駭客什麼時候入侵,然後他做了一些什麼事,比如掃描、暴力破解、提權、植入木馬等等。植入了木馬以後,後面產生了一些惡意攻擊事件,不管是僵屍網路或者是DDOS的攻擊等等。

機器學習實踐——攻防場景預警及回溯

然後基於機器學習,對於某一時間點發生的事件,我們就可以對未來可能發生的事件進行預警。另外一個比較重要的實踐是回溯。找到某一些事件究竟對我產生了哪些影響,從而能對未來的事件作出更好的預警。

未來——威脅預警與智慧“反”攻擊鏈

未來,能够實現基於攻擊場景的推理,預測未來的安全事件。此外,基於事件處置庫進行智慧折開,對應到不同設備,下發對應策略,全方位進行防護處置。

現場視頻連結