魏峰
(國(guó)網(wǎng)甘肅省電力公司電力科學(xué)研究院, 甘肅,蘭州 730070)
隨著人類社會(huì)越來(lái)越依賴網(wǎng)絡(luò)空間,網(wǎng)絡(luò)攻擊和網(wǎng)絡(luò)威脅等網(wǎng)絡(luò)惡意行為不斷爆發(fā),越來(lái)越多的大企業(yè)和關(guān)鍵信息設(shè)施相繼被以APT為代表的新型網(wǎng)絡(luò)攻擊[1]侵害,針對(duì)APT攻擊的網(wǎng)絡(luò)防護(hù)技術(shù)已經(jīng)成為各國(guó)信息安全領(lǐng)域的研究焦點(diǎn)。
2012年,沙特阿拉伯的石油行業(yè)遭受到了病毒Shamoon的攻擊。石油巨頭阿美石油公司超過(guò)3萬(wàn)臺(tái)設(shè)備上的數(shù)據(jù)被惡意擦除。2016年,Shamoon病毒變種卷土重來(lái),導(dǎo)致包括沙特阿拉伯民航總局在內(nèi)的6個(gè)重要機(jī)構(gòu)的計(jì)算機(jī)遭受嚴(yán)重破壞。2018年韓國(guó)平昌奧運(yùn)會(huì)期間,主辦方計(jì)算機(jī)系統(tǒng)遭受到了Olympic Destoryer病毒攻擊,直接導(dǎo)致了奧運(yùn)會(huì)網(wǎng)站的服務(wù)中斷,在此次事件中,攻擊者利用和模仿了多個(gè)黑客團(tuán)隊(duì)的特征,迷惑安全人員并誤導(dǎo)其對(duì)攻擊來(lái)源歸屬地的判斷。據(jù)AV-test報(bào)告顯示[2],僅2017年就發(fā)生了15.97萬(wàn)起網(wǎng)絡(luò)安全事事件。然而,超過(guò)44%的受害公司沒(méi)有部署安全運(yùn)營(yíng)中心(SOC)來(lái)監(jiān)控內(nèi)網(wǎng)環(huán)境[3]。專業(yè)從事網(wǎng)絡(luò)安全服務(wù)的火眼公司報(bào)告稱,入侵者被企業(yè)安全人員發(fā)現(xiàn)的平均時(shí)間為101天[4],72%的入侵超過(guò)1個(gè)月未被發(fā)現(xiàn),28%甚至超過(guò)1年。這些現(xiàn)象表明大多數(shù)企業(yè)都無(wú)法及時(shí)察覺(jué)攻擊者對(duì)其網(wǎng)絡(luò)的入侵。
已有的入侵檢測(cè)研究主要關(guān)注基于主機(jī)的數(shù)據(jù)上,因?yàn)楣粽呓?jīng)常通過(guò)利用內(nèi)網(wǎng)主機(jī)作為跳板,獲得有效的登錄憑證在內(nèi)網(wǎng)中橫向滲透。因此,相較于網(wǎng)絡(luò)層流量威脅識(shí)別,主機(jī)層日志數(shù)據(jù)為企業(yè)安全人員提供了更加全面的異常行為和安全威脅信息。從主機(jī)層日志中檢查各種用戶的登錄行為是安全人員的重要工作,并且主機(jī)層日志也是企業(yè)SIEM系統(tǒng)感知網(wǎng)絡(luò)態(tài)勢(shì)的重要數(shù)據(jù)來(lái)源。因此本文決定研究?jī)煞N基于異常的檢測(cè)方法,基于Windows主機(jī)日志來(lái)檢測(cè)內(nèi)網(wǎng)橫向滲透,著重關(guān)注于各類異常登錄事件。
攻擊者在入侵企業(yè)的網(wǎng)絡(luò)后,為了長(zhǎng)時(shí)間不被安全人員發(fā)現(xiàn)并滲透更高級(jí)的目標(biāo)主機(jī),內(nèi)網(wǎng)漫游是攻擊者常常使用的策略。
(1) APT高級(jí)持續(xù)威脅
進(jìn)行內(nèi)網(wǎng)漫游的攻擊者往往十分狡猾,擁有明確的動(dòng)機(jī)和滲透主機(jī)目標(biāo),具備很強(qiáng)的入侵技術(shù)。正如前文所述,F(xiàn)ireEye報(bào)告攻擊者在企業(yè)網(wǎng)絡(luò)中的駐留時(shí)間平均為101天。這種具有長(zhǎng)期隱蔽性的入侵行為被稱為高級(jí)持續(xù)威脅(APT),Chen等人的研究中介紹了APT具備的四個(gè)顯著特征:
① 明確的攻擊目標(biāo)和具體的攻擊目的;
② 有組織的攻擊團(tuán)隊(duì)和資源豐富的情報(bào)庫(kù);
③ 反復(fù)嘗試的長(zhǎng)期滲透活動(dòng);
④ 隱蔽性強(qiáng)的攻擊技術(shù)。
這些可以區(qū)分APT和普通網(wǎng)絡(luò)入侵,能夠幫助安全人員了解攻擊者如何隱蔽地入侵目標(biāo)網(wǎng)絡(luò)。APT攻擊通常針對(duì)特定組織或企業(yè),對(duì)目標(biāo)進(jìn)行全面細(xì)致的偵查,依仗有組織的攻擊團(tuán)隊(duì)和充足的情報(bào)資源,對(duì)目標(biāo)網(wǎng)絡(luò)進(jìn)行長(zhǎng)期且隱蔽地滲透嘗試。因此,APT攻擊是安全人員難以對(duì)付的勁敵,為企業(yè)網(wǎng)絡(luò)安全帶來(lái)嚴(yán)重威脅。
(2) 攻擊生命周期
網(wǎng)絡(luò)安全是攻擊者和防御者之間的貓捉老鼠游戲,防御者長(zhǎng)期以來(lái)被認(rèn)為處于劣勢(shì)地位。直到HUTCHINS E等[5]定義了攻擊者殺鏈模型(attacker kill chain model)的概念,引導(dǎo)了攻擊模型的發(fā)展,通過(guò)對(duì)APT進(jìn)行結(jié)構(gòu)化建模來(lái)幫助進(jìn)行檢測(cè)防御工作。Mandiant攻擊生命周期[6]以稍微不同的方式刻畫了網(wǎng)絡(luò)攻擊的不同階段。與攻擊者殺鏈的連鎖階段不同,Mandiant將網(wǎng)絡(luò)攻擊定義為生命周期[7-9],如圖1所示。攻擊者在最初的入侵階段進(jìn)入目標(biāo)的網(wǎng)絡(luò)環(huán)境并建立立足點(diǎn)。此后,攻擊者繞過(guò)了位于企業(yè)網(wǎng)絡(luò)邊界的防火墻等安防設(shè)備,但內(nèi)網(wǎng)中部署的種種監(jiān)控工具仍有可能檢測(cè)它們。攻擊者隨后采用諸如提權(quán)和內(nèi)網(wǎng)掃描等方法來(lái)擴(kuò)大其入侵范圍。在內(nèi)網(wǎng)中不斷掃描出來(lái)的漏洞和對(duì)入侵環(huán)境的更深入了解使攻擊者可以進(jìn)行內(nèi)網(wǎng)漫游,從而逼近高價(jià)值的信息系統(tǒng)或主機(jī)設(shè)備。
圖1 攻擊生命周期
內(nèi)網(wǎng)漫游為攻擊者提供了對(duì)目標(biāo)網(wǎng)絡(luò)的更深入訪問(wèn)。在大多數(shù)網(wǎng)絡(luò)入侵中,最初都是通過(guò)魚叉式網(wǎng)絡(luò)釣魚來(lái)竊取企業(yè)員工的用戶賬戶。盡管攻擊者依靠竊來(lái)的員工賬戶,就可以在網(wǎng)絡(luò)中立足,但其仍遠(yuǎn)未達(dá)成其任務(wù)目標(biāo),內(nèi)網(wǎng)漫游使攻擊者能夠滲透他們感興趣的目標(biāo)系統(tǒng)。
圖2是在企業(yè)網(wǎng)絡(luò)中檢測(cè)出來(lái)的內(nèi)網(wǎng)漫游攻擊:攻擊者a通過(guò)網(wǎng)絡(luò)連接到內(nèi)網(wǎng)員工計(jì)算機(jī)b,在文件共享服務(wù)器c中存儲(chǔ)了攻擊者要竊取的目標(biāo)機(jī)密文件。機(jī)密文件可由管理員用戶d訪問(wèn),但不能由員工計(jì)算機(jī)b的用戶訪問(wèn)。為了獲得對(duì)這些機(jī)密文件的訪問(wèn)權(quán),攻擊者可以執(zhí)行如圖2中所示的內(nèi)網(wǎng)漫游來(lái)完成其目標(biāo)。攻擊者通過(guò)內(nèi)網(wǎng)漫游獲得對(duì)管理員計(jì)算機(jī)的訪問(wèn)權(quán)限,之后,可以使用這些權(quán)限訪問(wèn)文件共享服務(wù)器上的機(jī)密文件。
圖2 內(nèi)網(wǎng)漫游示意
受公開(kāi)數(shù)據(jù)集的數(shù)量限制,學(xué)術(shù)界對(duì)異常檢測(cè)的研究?jī)A向于基于網(wǎng)絡(luò)特征的檢測(cè)。因此,基于Windows安全事件日志的異常檢測(cè)研究相當(dāng)有限,仍然有學(xué)者致力于對(duì)安全事件記錄進(jìn)行聚類來(lái)推斷模式。Basagoiti等[10]通過(guò)對(duì)四個(gè)不同域控制器的Windows安全事件日志的分析,得出不同服務(wù)器基于頻繁事件的聚類表現(xiàn)出不同的模式。Asanger和Hutchison[11]等關(guān)注Windows登錄事件,他們使用基于全局k 近鄰方法的無(wú)監(jiān)督異常檢測(cè)。在企業(yè)網(wǎng)絡(luò)中,當(dāng)每個(gè)員工都有自己的計(jì)算機(jī)時(shí),在多臺(tái)計(jì)算機(jī)上對(duì)同一用戶進(jìn)行身份驗(yàn)證的情況是十分可疑的,同一IP地址進(jìn)行不同帳戶的身份驗(yàn)證亦是如此,這可能是攻擊者在進(jìn)行密碼猜測(cè)攻擊。
本文基于Windows事件日志來(lái)檢測(cè)內(nèi)網(wǎng)漫游入侵行為,首先收集了一個(gè)子網(wǎng)下全部機(jī)器的Windows事件日志,并檢查全部的登錄事件。我們將一臺(tái)計(jì)算機(jī)到另一臺(tái)計(jì)算機(jī)的登錄行為用鏈?zhǔn)浇Y(jié)構(gòu)儲(chǔ)存,并且標(biāo)記了所有異常事件,尤其是返回到該鏈中先前找到的主機(jī)的連接。如圖3所示,不同主機(jī)之間的連接會(huì)環(huán)回到先前連接過(guò)的主機(jī),這種情況可能代表著攻擊者在內(nèi)網(wǎng)漫游或竊取有用信息后,在網(wǎng)絡(luò)中創(chuàng)建持久性。企業(yè)環(huán)境中的大多數(shù)賬戶都會(huì)約束在預(yù)先定義好的登陸策略里,任何違背此登錄策略的行為都可能代表著攻擊,從Windows事件日志里可以挖掘出違背預(yù)先定義策略的登錄。
圖3 通過(guò)Windows登錄事件推測(cè)內(nèi)網(wǎng)漫游
正如Ahmed等[12]指出,由于缺乏通用的檢測(cè)技術(shù)、無(wú)處不在的噪聲數(shù)據(jù)、缺乏公開(kāi)的數(shù)據(jù)集以及對(duì)用戶合法行為的漂移現(xiàn)象的有效解釋,為異常檢測(cè)研究的開(kāi)展帶來(lái)了挑戰(zhàn)。Li等[13]提出了一種基于操作安全日志的分析框架。他們認(rèn)為“企業(yè)網(wǎng)絡(luò)中的主機(jī)受公司規(guī)定和員工職能的約束,比互聯(lián)網(wǎng)上的主機(jī)相比,企業(yè)內(nèi)網(wǎng)中的主機(jī)往往具有規(guī)律化的行為”,因此不符合預(yù)期、違背規(guī)律的行為都有可能是異常行為。Ahmed等人提出了基于分類、聚類和統(tǒng)計(jì)技術(shù)的網(wǎng)絡(luò)異常行為檢測(cè)。Buczak和Guven[14]使用聚類和統(tǒng)計(jì)技術(shù)檢測(cè)內(nèi)網(wǎng)中橫向滲透的異常行為。入侵行為的網(wǎng)絡(luò)行為在統(tǒng)計(jì)上偏離了正常用戶的網(wǎng)絡(luò)行為,聚類或統(tǒng)計(jì)技術(shù)能夠檢測(cè)到這種異常偏差。
聚類方法的主要優(yōu)點(diǎn)是可以在無(wú)監(jiān)督的情況下工作,不需要預(yù)先定義什么是異常,其主要依賴三個(gè)關(guān)鍵假設(shè)。
(1) 偏離良性數(shù)據(jù)構(gòu)造的聚類的數(shù)據(jù)被視為異常,在基于密度的聚類算法中,這種假設(shè)會(huì)將噪聲視為異常。
(2) 在包含良性和異常數(shù)據(jù)點(diǎn)的聚類中,異常點(diǎn)距離最近的聚類質(zhì)心更遠(yuǎn),因此,基于距離的閾值可以將良性和異常數(shù)據(jù)分開(kāi)。
(3) 當(dāng)數(shù)據(jù)聚集在多個(gè)簇中時(shí),異常點(diǎn)往往屬于更小、更稀疏的簇。因此,良性和異常數(shù)據(jù)簇的分離十分依賴聚類簇大小、密度的參數(shù)設(shè)置。
為了應(yīng)對(duì)APT攻擊并檢測(cè)真實(shí)網(wǎng)絡(luò)的攻擊者,Lee等[15]認(rèn)為需要分析更細(xì)粒度的日志記錄。因此,本文研究Windows事件日志是否可以用于檢測(cè)內(nèi)網(wǎng)安全威脅,尤其是內(nèi)網(wǎng)漫游行為。由于內(nèi)網(wǎng)主機(jī)端有大量的日志數(shù)據(jù),因此本文引入基于機(jī)器學(xué)習(xí)的異常檢測(cè)技術(shù)幫助處理日志。
實(shí)驗(yàn)使用的日志數(shù)據(jù)分兩類:良性數(shù)據(jù)和惡意數(shù)據(jù)。良性數(shù)據(jù)從單位內(nèi)網(wǎng)的36臺(tái)員工計(jì)算機(jī)中收集了60個(gè)Windows日志文件,約185萬(wàn)條事件記錄,總共包含52種事件類型。表1中列舉了出現(xiàn)頻率最高的15種事件和與賬戶登錄相關(guān)的事件。惡意數(shù)據(jù)從紅藍(lán)攻防演練中1臺(tái)紅方使用的入侵計(jì)算機(jī)中收集,含有1個(gè)Windows日志文件,約4萬(wàn)條事件記錄。
表1 頻率最高的15種事件和賬戶登錄事件
(1) 特征選擇
本文設(shè)計(jì)了以下特征選擇方法。首先將具有常量值的屬性刪除,因?yàn)檫@些屬性中不包含有關(guān)記錄的其他信息。具有常量值的屬性包括事件日志名稱和事件通道。因?yàn)楸疚闹皇褂昧税踩录罩荆瑸榱朔乐惯^(guò)擬合,刪除了標(biāo)識(shí)屬性,例如EventRecordID。表2列舉了經(jīng)過(guò)選擇后的特征。
(2) HDBSCAN聚類算法
本文使用Python語(yǔ)言實(shí)現(xiàn)HDBSCAN方法,將最小聚類大小設(shè)置為參數(shù)m,R鄰域內(nèi)最小樣本量設(shè)置為參數(shù)s。換句話說(shuō),當(dāng)一個(gè)點(diǎn)的R鄰域包含至少s個(gè)樣本,并且得到的聚類至少包含m個(gè)點(diǎn),則形成一個(gè)聚類[16]。
本文使用3種方法從無(wú)監(jiān)督的聚類結(jié)果分析惡意樣本:① 從歸類為噪聲的樣本類人工分析是否存在惡意樣本;② 將距聚類質(zhì)心的距離超過(guò)預(yù)定義閾值的樣本標(biāo)記惡意樣本;③ 將含有少量樣本的聚類標(biāo)記為惡意樣本。
表2 經(jīng)過(guò)選擇的特征
對(duì)于第二種方法,其實(shí)分析的是HDBSCAN聚類產(chǎn)生的離群值。這些離群樣本十分異常,遠(yuǎn)離整體樣本,往往自身就很有分析的價(jià)值,因此本文把離群值單獨(dú)作為一類來(lái)分析[17]。
(3) 主成分分類法(PCC)
本文對(duì)訓(xùn)練數(shù)據(jù)采取了主成分分析,保留了數(shù)據(jù)中方差較大的主成分特征?;诖薖CA模型,對(duì)數(shù)據(jù)進(jìn)行擬合,剔除異常值,再對(duì)剩余樣本重新擬合,由此訓(xùn)練的PCA模型是分類預(yù)測(cè)模型的基礎(chǔ),對(duì)測(cè)試集中的數(shù)據(jù)點(diǎn)進(jìn)行預(yù)測(cè)。
為了找到最佳的距離閾值,本文在構(gòu)建ROC曲線時(shí)使用不同的閾值計(jì)算TPR和FPR之間的差異。通過(guò)檢查所有事件日志之間以及與標(biāo)準(zhǔn)偏差有關(guān)的最大差異的平均值,確定基于主成分的分類(PCC)的閾值。
本文收集的單位內(nèi)網(wǎng)Windows日志數(shù)據(jù)集中60個(gè)日志文件含有61 349條登錄事件記錄,平均每臺(tái)計(jì)算機(jī)約有1 000條記錄,其中的60%在預(yù)處理過(guò)程中被過(guò)濾。攻防演練中紅方使用入侵計(jì)算機(jī)日志中含有3 000條登錄時(shí)間記錄,這些記錄將作為惡意樣本[18-19]。圖4、圖5是良性樣本和惡意樣本中不同類型登錄記錄的頻率。
圖4 良性樣本的登錄記錄
圖5 惡意樣本的登錄記錄
我們發(fā)現(xiàn),在惡意樣本和良性樣本中,服務(wù)登錄都是主要登錄事件。惡意樣本和良性樣本最大的區(qū)別在于解鎖計(jì)算機(jī)的登錄次數(shù)。這可以解釋為員工在做其他工作時(shí)鎖定計(jì)算機(jī),從而使計(jì)算機(jī)在無(wú)人值守時(shí)處于非活動(dòng)狀態(tài)。然而,在惡意場(chǎng)景中,攻擊者通常利用內(nèi)網(wǎng)計(jì)算機(jī)執(zhí)行入侵活動(dòng),使用NTLM身份驗(yàn)證建立連接登錄,這種登錄方式不涉及解鎖行為。在使用遠(yuǎn)程桌面協(xié)議(RDP)建立連接時(shí),會(huì)記錄類型10(遠(yuǎn)程交互)和11(緩存交互)的登錄記錄。登錄類型3和9分別表示網(wǎng)絡(luò)登錄使用新憑據(jù)登錄,這兩種登錄方式都涉及域帳戶,而域帳戶可用于內(nèi)網(wǎng)滲透,通過(guò)注冊(cè)者的IP地址或計(jì)算機(jī)名稱來(lái)標(biāo)識(shí)登錄的位置。
我們?cè)谟?xùn)練集和測(cè)試集上進(jìn)行HDBSCAN聚類實(shí)驗(yàn),該算法對(duì)良性記錄和惡意記錄進(jìn)行相互關(guān)聯(lián)的評(píng)估。添加新的點(diǎn)可能會(huì)改變聚類,從而需要重新運(yùn)行聚類算法。在本實(shí)驗(yàn)中,當(dāng)出現(xiàn)一個(gè)包含約5%的可用登錄記錄的最小集群時(shí),我們就將所有給出離群值評(píng)分的記錄歸類為惡意記錄。由圖6可以看出,聚類方法的ROC曲線下的平均面積為0.880,標(biāo)準(zhǔn)偏差為0.034。 離群值高于0的所有記錄都被標(biāo)記為惡意。
圖6 兩種方法的ROC曲線
HDBSCAN聚類方法的平均真陽(yáng)性率為85.63%,平均假陽(yáng)性率為8.29%。真陽(yáng)性率和假陽(yáng)性率的標(biāo)準(zhǔn)差分別為6.99%和4.65%。真陽(yáng)性率最高為97.14%,最低為67.5%,假陽(yáng)性率為0.31%~24.77%。有5種事件日志的FPR高于15%。
根據(jù)圖6中PCC方法的平均ROC曲線,曲線下面積為0.855,可以推斷在TPR為60-65%時(shí),假陽(yáng)性率會(huì)顯著增加。因此,我們選擇3.70倍標(biāo)準(zhǔn)差的保守閾值來(lái)降低假陽(yáng)性率。不同日志之間的理想閾值差別很大,因此我們嘗試了全部最高閾值以選擇這個(gè)保守閾值。PCC方法的平均真陽(yáng)性率為59.81%,標(biāo)準(zhǔn)差為7.54%,平均假陽(yáng)性率為4.70%,標(biāo)準(zhǔn)差為3.31%。真陽(yáng)性率最低為43.14%,最高為72.06%。由于采用了保守的閾值,除3種事件日志外,其余日志的假陽(yáng)性率均低于10%,最低為0.00%,最高為13.95%。
圖6顯示了PCC方法比聚類法獲得了更低TRP。然而,PCC方法的FPR的增長(zhǎng)速度要比HDBSCAN法快很多,在較高的真陽(yáng)性率(TPRs)下,PCC無(wú)法正確區(qū)分良性記錄和惡意記錄。因此,PCC方法的檢測(cè)能力較差。
綜上所述,基于HDBSCAN的聚類能夠獲得更高的TPR,但這必然會(huì)以更多的假陽(yáng)性分類為代價(jià)。然而,由于大多數(shù)被檢查事件日志的FPR小于15%,平均FPR為8.29%,HDNSCAN聚類仍然具有很強(qiáng)的檢測(cè)性能。
隨著攻擊方式的不斷進(jìn)化,入侵檢測(cè)工作的難度越來(lái)越大。為了提高對(duì)APT攻擊行為的檢測(cè),本文將檢測(cè)任務(wù)部署到擁有細(xì)粒度Windows事件日志的員工計(jì)算機(jī)中,并且本文實(shí)驗(yàn)證明了基于單計(jì)算機(jī)的Windows安全事件日志能夠用來(lái)進(jìn)行異常檢測(cè)。本文關(guān)注的視角是攻擊者已經(jīng)繞過(guò)了位于企業(yè)網(wǎng)絡(luò)邊界的防火墻等安防設(shè)備,旨在尋找一種方法檢測(cè)已經(jīng)在企業(yè)內(nèi)網(wǎng)中駐留的入侵行為。入侵檢測(cè)一項(xiàng)艱巨的任務(wù),正如火眼公司報(bào)告所言,攻擊者在受害者網(wǎng)絡(luò)中的平均存活時(shí)間是101天[4]。本文希望提出一種性能更強(qiáng)的檢測(cè)方法來(lái)彌補(bǔ)這一差距。