0
本文作者: 李勤 | 2016-11-24 21:32 |
世界上最可怕的網(wǎng)絡“間諜”恐怕要屬“APT 攻擊”,潛伏數(shù)年、甚至數(shù)十年,默默偷取關鍵數(shù)據(jù),它可能不為錢、不為利,但就是為了搞垮你。
聽上去實在是又賤、又狠的一種黑客攻擊。
趙雨婷,是第一個登上SyScan 360 安全會議演講臺的女講師。她是360追日團隊中的一員,面對 APT 攻擊,這個團隊希望像夸父追日一樣,一直堅持不懈地進行追擊。
關于 APT 攻擊,趙雨婷揭示了一些關于它的秘密。
最近一起重要的 APT 攻擊當屬11月曝光的蔓靈花 APT 行動。
美國網(wǎng)絡安全公司 Forcepoint 發(fā)布了一篇報告,該報告主要披露了巴基斯坦政府官員最近遭到了來源不明的網(wǎng)絡間諜活動。該報告描述了攻擊者使用了魚叉郵件以及利用系統(tǒng)漏洞等方式,在受害者計算機中植入了定制的 AndroRAT,意圖竊取敏感信息和資料。Forcepoint 研究人員認為該組織與 BITTER 相關,而且可能還不止發(fā)起了這一起攻擊事件。BITTER 攻擊始于2013年11月,且多年來一直未被檢測到,目前攻擊者背景尚未明確。相關 APP 信息包括提供關于印度和巴基斯坦之間的爭議地區(qū)新聞的 Kashmir News 等。
趙雨婷及團隊成員發(fā)現(xiàn),這起看上去和我們沒有一毛錢關系的蔓靈花 APT 行動其實也悄悄潛伏在中國地區(qū),受影響單位主要涉及政府、電力和工業(yè)相關單位,可怕的是,該組織至今依然處于活躍狀態(tài)。
最近一年來,和蔓靈花 APT 行動一樣“蜚聲中外”的,還有下面這些:
還好,通過對 APT 攻擊的行動特征分析,人們已經(jīng)知道它們的一些行為模式,這正是揪出這個“間諜”的第一步。趙雨婷說,
APT 攻擊一般不會停歇,有一些可能會因為被安全廠商披露,導致過去的攻擊手段失效,而選擇暫時銷聲匿跡,但只要被攻擊的目標還存在價值,這個攻擊就會依然持續(xù)。另外有一些情況是,攻擊者在發(fā)動某一次攻擊時,已經(jīng)達到了預期目標,攻擊組織可能會選擇暫時性蟄伏,但其目的是為了下一次攻擊養(yǎng)精蓄銳。
其次,APT 組織是否會對一個目標發(fā)動攻擊,并不取決于這個目標本身系統(tǒng)安全強弱的防護程度,而主要取決于目標是否有價值。即使,被攻擊目標的本身系統(tǒng)防御非常強,只要這個目標存在價值,APT攻擊組織也會不計成本對它進行攻擊。
真是不到黃河心不死!
再者,APT 攻擊者還會擁有大量的 0day (零日漏洞)資源,可以發(fā)動針對性攻擊。它具有有高度隱蔽性,可以持續(xù)數(shù)年,甚至數(shù)十年不被發(fā)現(xiàn)。APT 攻擊組織方發(fā)動攻擊不以直接獲取利益為目的,更傾向于竊取敏感數(shù)據(jù)和破壞基礎設施建設。
趙雨婷分析,近年來還發(fā)現(xiàn) APT 攻擊逐漸轉向跨平臺攻擊。比如,蔓靈花 APT 行動就同時對 windows 和 安卓平臺進行了攻擊。
我們認為,在未來 APT 攻擊中,針對傳統(tǒng) PC 的攻擊將會減少,針對移動設備、物聯(lián)網(wǎng)設備,甚至工業(yè)控制設備的攻擊將會持續(xù)性增加。
這是 APT 攻擊鏈的關鍵環(huán)節(jié)。攻擊者從偵查目標,制作攻擊工具,傳遞攻擊工具,利用被攻擊目標的漏洞或者弱點來進行突防,拿下全線運行工具,后期遠端的維護這個工具,到最后達到了長期控制目標的目的。針對這種現(xiàn)在日益廣泛的高級攻擊,威脅情報存在于整個攻擊的各個環(huán)節(jié)。
所謂威脅情報,就是 APT 將可能在這些環(huán)節(jié)露出蛛絲馬跡,安全人員如果能夠發(fā)現(xiàn),就能抓到其中最關鍵的“線頭”,順藤摸瓜指日可待。
在攻防斗爭史中,安全人員曾認為漏洞是唯一能威脅企業(yè)安全的途徑,事實上,漏洞只是其中之一。釣魚郵件、員工利用社交網(wǎng)絡泄露的個人信息、黑客撞庫產(chǎn)生的密碼等都可能是 APT 攻擊潛伏進來的鑰匙。
雖然 APT 攻擊“安靜而又危害極大”,在攻防較量中,安全人員也在一步一步搜集攻擊者暴露的信息。
能夠觀察到的行為,也是威脅情報當中最基本的信息。比如,用戶網(wǎng)絡數(shù)據(jù)異常,網(wǎng)絡系統(tǒng)遭到了破壞等,其次是威脅的特征指標,這些特征可以用來判斷用戶是否真的遭受了這個威脅的攻擊,包括威脅處理的條件,威脅可能造成的影響,威脅的有效時間和測試方法等。
對事件的描述,主要包括事件發(fā)生的時間、位置、事件的日志等。然后是技術手法,從手段、技術、過程三個緯度,對安全事件進行了較為全面的描述,一般包括惡意攻擊的行為,惡意攻擊者采用的工具和整個工具的攻擊鏈,對漏洞造成的影響等。還有受害者和被攻擊目標的信息,一般包括被攻擊系統(tǒng)的基本信息,在 APT 攻擊中,通常會針對不同系統(tǒng)定制不同的攻擊策略,以及可能在這個攻擊中被利用的漏洞信息等。
最后是攻擊者的信息,只有到這個層次上,安全人員才會考慮關注攻擊者的動機——他為什么要發(fā)起這次攻擊?攻擊的發(fā)起方到底是誰?
趙雨婷說,
我們結合自己的研究經(jīng)驗對威脅情報也有細化的解讀——威脅情報是一種基于證據(jù)的描述威脅的一組關聯(lián)的信息,通常包括威脅相關的環(huán)境信息,采用的手法機制,指標影響等。更細化一下,就會指具體的攻擊組織,惡意域名。這里的惡意域名通常是遠控的 IOC,惡意文件的 HASH 和 URL 以及威脅指標之間的關聯(lián)性,時間緯度上攻擊手法的變化。這些匯總在一起會形高級威脅情報。除此之外,我們所關注的情報,還包括傳統(tǒng)威脅種類的擴充,包括木馬遠控,僵尸網(wǎng)絡,間諜軟件,Web后門等。
按照趙雨婷給出的機器學習在威脅情報中的模型,機器學習三個基本元素分別是任務、經(jīng)驗、性能。任務利用機器學習來處理威脅情報,對經(jīng)驗 E 的選擇會直接影響最后流程產(chǎn)出的效果,所以在擇經(jīng)驗 E 時需要考慮以下幾點:
第一,選取的經(jīng)驗是否能為系統(tǒng)的決策提供直接或者間接的反饋;
第二,機器學習的決策要自主性,主要是指機器學習要能通過對自身的評估、估計、規(guī)劃來做出最終的決策,盡量不要受到人工控制;
第三,訓練的樣例是否盡可能接近真實世界的實例分布,只有選取的樣例更接近真實數(shù)據(jù)時,整個流程的性能才會非常高,也就是說,性能 P 通過這種相似性來衡量;
之所以要有這么一套看上去十分復雜的流程,是為了利用機器學習來處理威脅情報,檢測并識別出 APT 攻擊中的惡意載荷,提高 APT 攻擊威脅感知系統(tǒng)的效率與精確性,讓安全研究人員能更快實現(xiàn) APT 攻擊的發(fā)現(xiàn)和溯源。
手把手教你“海底撈針”
那么,到底機器學習是如何幫助甄別威脅情報,從茫茫數(shù)據(jù)大海中撈取一根有用的針?
這里需要介紹一下背景。
機器學習分為兩類:監(jiān)督學習和無監(jiān)督學習。很多機器學習的問題都是在解決類別歸屬的問題,也就是給定一些數(shù)據(jù),要判定每條數(shù)據(jù)是屬于哪些類,或者是這條數(shù)據(jù)可以和哪些其他的數(shù)據(jù)歸為一類,如果一上來就直接對輸入的數(shù)據(jù)進行建模,通過數(shù)據(jù)內在的屬性和聯(lián)系讓機器自動分類,這就屬于無監(jiān)督學習。
如果一開始就知道了本身數(shù)據(jù)的類別,并且給其中一部分數(shù)據(jù)打上了標簽,通過對這些已經(jīng)標好類別的數(shù)據(jù)進行歸納總結,然后得出數(shù)據(jù)到類別的映射函數(shù),再用映射函數(shù)對剩余的數(shù)據(jù)進行分類,這種就屬于監(jiān)督學習。
趙雨婷指出——無監(jiān)督學習是機器學習未來發(fā)展的一個趨勢,但是基于目前的技術水平,她和團隊還是更傾向采用監(jiān)督學習來處理威脅情報,畢竟技術層面上來看更成熟。
采用監(jiān)督學習的一般過程是:首先是準備訓練數(shù)據(jù),從訓練數(shù)據(jù)中抽取所需要的特征向量,把特征向量及對應的標記一起放到學習算法中,訓練得出一個預測模型,再用相同的特征選取方法,作用于新測試數(shù)據(jù),得到用于測試的特征向量。最后使用預測模型對這些帶特征向量進行預測,并得到最終結果。
簡單而言,處理過程就是特征抽取、篩選、訓練和驗證。在特征抽取與篩選部分,首先準備訓練數(shù)據(jù),即一切可以收集到的真實準確的數(shù)據(jù),都可以嘗試拿來作為威脅情報處理流程的輸入數(shù)據(jù)。在這些大數(shù)據(jù)中抽取所需要的特征,即特征抽取,將原始數(shù)據(jù)逐條轉化為特征向量,會得到初始向量集。然后就可以對初始特征集進行一次特征篩選,篩選出想要的高效特征,形成特征向量。數(shù)據(jù)特征的抽取與篩選,主要是為了達到提升模型的目的。如果選取了過多特征,就會浪費服務器資源。如果選取了一些不良特征,就會大大影響模型的精確度。
在訓練生成模型的過程中,趙雨婷和團隊會從兩方面入手:一方面是樣本的相關靜態(tài)特征,另一方面是一切能夠觀察到的動態(tài)行為。
以 PE 文件為例,會先做一個特征抽取,抽取 PE 文件的一些靜態(tài)特征。比如,文件描述、可執(zhí)行代碼靜態(tài)數(shù)據(jù),簽名附件等,形成初始的特征集后,對它進行降維,即特征轉化,最后重復上面的這個過程,對模型進行驗證。在訓練過程中一個比較重要的點是——要維護自己的訓練樣本,這些訓練樣本統(tǒng)稱為訓練集,我們的訓練集通常由人工鑒定和算法結合選取出來,訓練集的好壞直接影響了最終模型的效率。
預測模型還需進行檢測和驗證,以保證性能是高效和準確的。在模型檢測過程中,趙雨婷及團隊會采取留一驗證和交叉驗證結合使用的方法。
留一驗證是什么?舉個栗子!
比如,在現(xiàn)有的 APT 樣本事件樣本集中,抽取一個 APT 事件不參與模型訓練,等模型生成后用模型來掃描這個 APT 事件,檢驗相關的威脅情報掃描結果。
交叉驗證就是多次使用留一驗證,保證每次不參與訓練的事件都不一樣,這樣是為了保證每一條可以用到的數(shù)據(jù)都參與了模型驗證和訓練的過程,會使優(yōu)化后的模型更加可信。
在實驗室階段,這些方法通常用于檢測模型的有效性,在這套流程正式上線前,我們會選擇設置一個壓力池。壓力池中有很多數(shù)據(jù),在上線前會對池子里的所有數(shù)據(jù)進行掃描,然后對掃描結果進行評估,如果這個掃描的結果符合我們的預期效果這個流程才會正式上線。
雖然利用機器學習來挖掘高級威脅情報目前效果不錯,但是趙雨婷告訴雷鋒網(wǎng),還有一個瓶頸——如何要在時間緯度上實現(xiàn)交叉驗證。
如何在實現(xiàn)這個緯度以后還能保證這套流程的高效與精確性,是我們接下來研究的重點。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。