◆陳仲磊 伊鵬 陳祥 雷靖瑋 孫重鑫
基于系統(tǒng)調(diào)用的入侵檢測(cè)技術(shù)研究
◆陳仲磊 伊鵬 陳祥 雷靖瑋 孫重鑫
(中國(guó)人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué) 河南 450002)
如今網(wǎng)絡(luò)攻擊的多樣性與低成本性以及攻擊工具的齊全使得網(wǎng)絡(luò)攻擊日益泛濫。對(duì)于防御者來(lái)說(shuō),遭受一次攻擊的損失是巨大的,防御和攻擊的不對(duì)等使得防御方往往處于被動(dòng)和弱勢(shì)的地位。入侵檢測(cè)技術(shù)通過(guò)模型學(xué)習(xí)勾勒網(wǎng)絡(luò)入侵行為輪廓或正常行為輪廓,從而實(shí)現(xiàn)對(duì)入侵行為的識(shí)別與檢測(cè),實(shí)現(xiàn)對(duì)零日攻擊的檢測(cè)能力。本文是對(duì)基于系統(tǒng)調(diào)用數(shù)據(jù)上的入侵檢測(cè)的綜述性文章,重點(diǎn)介紹了系統(tǒng)調(diào)用數(shù)據(jù)的特征提取方法、入侵檢測(cè)分類模型、應(yīng)用場(chǎng)景,同時(shí)簡(jiǎn)單概括了系統(tǒng)調(diào)用的數(shù)據(jù)集與模型的評(píng)判標(biāo)準(zhǔn)。
系統(tǒng)調(diào)用;異常檢測(cè);入侵檢測(cè)
2021年三月,西班牙警方破獲一起網(wǎng)絡(luò)金融詐騙案,由此揭開(kāi)了一場(chǎng)席卷歐洲的銀行木馬攻擊活動(dòng)。犯罪團(tuán)伙利用名為“FluBot”的安卓惡意軟件偽造電子銀行登錄界面收集受害人電子銀行憑證和信用卡詳細(xì)信息?!癋luBot”具有短信蠕蟲(chóng)機(jī)制,其將包含惡意軟件下載鏈接的短信群發(fā)給受害者的聯(lián)系人列表。2021年5月,美國(guó)主要成品油管道運(yùn)營(yíng)商之一科洛尼爾管道運(yùn)輸公司遭遇黑客攻擊,其導(dǎo)致美國(guó)多個(gè)州和地區(qū)燃油供應(yīng)面臨危機(jī),油價(jià)大漲。傳統(tǒng)的計(jì)算機(jī)安全防護(hù)措施,如防火墻、身份認(rèn)證等措施只能被動(dòng)地進(jìn)行防御,已經(jīng)越來(lái)越滿足不了如今計(jì)算機(jī)和網(wǎng)絡(luò)安全發(fā)展的需要。因此,致力于提前發(fā)現(xiàn)各種攻擊意圖、攻擊行為的入侵檢測(cè)技術(shù)受到個(gè)人、公司與國(guó)家層面的高度重視。
入侵檢測(cè)技術(shù)是網(wǎng)絡(luò)安全領(lǐng)域十分具有挑戰(zhàn)性的任務(wù),有成長(zhǎng)為未來(lái)數(shù)字時(shí)代設(shè)備安全防護(hù)主流技術(shù)的可能。入侵被定義為任何危害計(jì)算機(jī)資源完整性、機(jī)密性或可用性的行為。入侵檢測(cè)則是通過(guò)從網(wǎng)絡(luò)或系統(tǒng)中若干關(guān)鍵點(diǎn)收集信息,并對(duì)這些信息進(jìn)行分析,以判斷網(wǎng)絡(luò)系統(tǒng)中是否存在攻擊的跡象,即入侵行為的發(fā)覺(jué)。
基于系統(tǒng)調(diào)用的主機(jī)入侵檢測(cè)是入侵檢測(cè)的一個(gè)重要分支,其使用進(jìn)程運(yùn)行時(shí)產(chǎn)生的系統(tǒng)調(diào)用追蹤序列作為主要的分析數(shù)據(jù)。系統(tǒng)調(diào)用是主機(jī)系統(tǒng)的內(nèi)核函數(shù),是程序和硬件設(shè)備之間的橋梁。分析進(jìn)程系統(tǒng)調(diào)用數(shù)據(jù)能夠?qū)崿F(xiàn)對(duì)進(jìn)程所有重要活動(dòng)的總體感知,而不是關(guān)注于文件讀取、性能開(kāi)銷、進(jìn)程間通信等單一方面。系統(tǒng)調(diào)用函數(shù)工作在內(nèi)核空間,其對(duì)于進(jìn)程重要活動(dòng)的感知相比于其他將更精確和細(xì)粒度。基于系統(tǒng)調(diào)用的入侵檢測(cè)技術(shù)在數(shù)據(jù)預(yù)處理階段面臨著待分析數(shù)據(jù)冗余度高、數(shù)據(jù)量大、特征不明顯的問(wèn)題,其檢測(cè)模型的誤報(bào)率一直居高不下[1]。
下文在第一部分簡(jiǎn)單介紹了系統(tǒng)調(diào)用和入侵檢測(cè)的背景知識(shí),在第二部分詳細(xì)描述了系統(tǒng)調(diào)用追蹤數(shù)據(jù)的特征提取方法、基于系統(tǒng)調(diào)用的入侵檢測(cè)技術(shù)常用模型和它的應(yīng)用場(chǎng)景。第三部分簡(jiǎn)單介紹了常用的系統(tǒng)調(diào)用數(shù)據(jù)集和基于混淆矩陣的性能評(píng)判標(biāo)準(zhǔn)。最后一部分是對(duì)未來(lái)研究方向的展望。
根據(jù)檢測(cè)分析方法可以將入侵檢測(cè)分為兩類,即異常檢測(cè)和誤用檢測(cè)[2]。
誤用檢測(cè)是基于知識(shí)的檢測(cè)分析方式,它收集非正常操作的行為特征并建立相關(guān)特征庫(kù),當(dāng)檢測(cè)到的用戶或系統(tǒng)行為與記錄相匹配時(shí),即認(rèn)為這是入侵。誤用檢測(cè)具有以下特征:
(1)對(duì)已知的入侵行為進(jìn)行建模;
(2)監(jiān)督學(xué)習(xí)模型更適合用于誤用檢測(cè);
(3)不能夠檢測(cè)未知入侵;
(4)檢測(cè)誤報(bào)率低,且對(duì)已知入侵具有高檢測(cè)準(zhǔn)確率。
異常檢測(cè)則是構(gòu)建用戶的正常行為輪廓,當(dāng)用戶行為與正常行為有較大偏差時(shí)即被認(rèn)為是入侵。異常檢測(cè)具有如下特點(diǎn):
(1)構(gòu)造系統(tǒng)用戶的正常行為輪廓;
(2)半監(jiān)督或無(wú)監(jiān)督學(xué)習(xí)模型更適合用于異常檢測(cè);
(3)對(duì)未知威脅依然具有檢測(cè)能力;
(4)有較高的檢測(cè)誤報(bào)率,分類模型對(duì)檢測(cè)的準(zhǔn)確率影響較大。
入侵檢測(cè)根據(jù)檢測(cè)所用數(shù)據(jù)源可以分為基于主機(jī)的入侵檢測(cè)、基于網(wǎng)絡(luò)的入侵檢測(cè)和基于混合數(shù)據(jù)的入侵檢測(cè)[3-4]?;谥鳈C(jī)的入侵檢測(cè)系統(tǒng)的數(shù)據(jù)來(lái)源主要是操作系統(tǒng)事件日志、應(yīng)用程序事件日志、系統(tǒng)調(diào)用日志、端口調(diào)用數(shù)據(jù)和安全審計(jì)日志等。基于網(wǎng)絡(luò)的入侵檢測(cè)的數(shù)據(jù)來(lái)源則主要是網(wǎng)絡(luò)上的原始數(shù)據(jù)包、數(shù)據(jù)流等?;诰W(wǎng)絡(luò)的入侵檢測(cè)不依賴于主機(jī),提供的是網(wǎng)絡(luò)行為的入侵檢測(cè)。
系統(tǒng)調(diào)用是主機(jī)系統(tǒng)用戶態(tài)到內(nèi)核態(tài)的接口,它并不同于應(yīng)用程序調(diào)用接口(API)。系統(tǒng)調(diào)用數(shù)據(jù)包含系統(tǒng)內(nèi)核特征,能直接反應(yīng)進(jìn)程對(duì)系統(tǒng)內(nèi)核函數(shù)的調(diào)用過(guò)程。其收集于操作系統(tǒng)內(nèi)核,是操作系統(tǒng)最原始和最細(xì)粒度的信息[5],根據(jù)進(jìn)程的系統(tǒng)調(diào)用追蹤序列可以有效構(gòu)建進(jìn)程或程序正?;虍惓P袨檩喞?,從而做到入侵的提早發(fā)現(xiàn)。Forrest在1996年首次提出通過(guò)對(duì)系統(tǒng)調(diào)用數(shù)據(jù)的分析發(fā)現(xiàn)異常并預(yù)警實(shí)現(xiàn)Unix系統(tǒng)的自我防御[6]。此后,基于系統(tǒng)調(diào)用的主機(jī)入侵檢測(cè)技術(shù)逐漸發(fā)展起來(lái)。
系統(tǒng)調(diào)用函數(shù)設(shè)計(jì)的初衷其一是使內(nèi)核態(tài)與用戶態(tài)分隔以保證系統(tǒng)內(nèi)核空間的數(shù)據(jù)安全,其二是為用戶提供系統(tǒng)內(nèi)相關(guān)功能,用戶不必去了解某些功能的底層實(shí)現(xiàn)邏輯,減輕用戶負(fù)擔(dān)[7]。操作系統(tǒng)都是以系統(tǒng)服務(wù)的方式向上層提供服務(wù)的,即對(duì)上層提供本層的功能函數(shù)集合并將本層參數(shù)和函數(shù)進(jìn)行封裝。系統(tǒng)調(diào)用是內(nèi)核態(tài)向用戶態(tài)提供的功能函數(shù),在Windows中主要封裝在NTOSKRNL.dll文件中[8]。下面將系統(tǒng)調(diào)用在Windows系統(tǒng)下的調(diào)用流程作一個(gè)示例。如圖1所示,應(yīng)用程序在主機(jī)上運(yùn)行,為某一功能實(shí)現(xiàn)調(diào)用應(yīng)用程序接口(API)函數(shù),應(yīng)用程序接口函數(shù)內(nèi)封裝相關(guān)的系統(tǒng)調(diào)用請(qǐng)求號(hào)并發(fā)起系統(tǒng)調(diào)用請(qǐng)求,發(fā)起為系統(tǒng)調(diào)用特別開(kāi)放的一個(gè)軟中斷(int 80h)并執(zhí)行系統(tǒng)調(diào)用返回相關(guān)值。在這個(gè)過(guò)程中,應(yīng)用程序及API屬于用戶空間而系統(tǒng)調(diào)用屬于內(nèi)核空間。
圖1 計(jì)算機(jī)調(diào)用系統(tǒng)調(diào)用函數(shù)示意圖
每一個(gè)操作系統(tǒng)的系統(tǒng)調(diào)用數(shù)量都是固定的,因此每一個(gè)系統(tǒng)調(diào)用函數(shù)都有一個(gè)惟一的系統(tǒng)調(diào)用號(hào)。在早期的Linux系統(tǒng)中有兩百多項(xiàng)系統(tǒng)調(diào)用,隨著Linux系統(tǒng)的升級(jí),有些調(diào)用被刪除,更多的系統(tǒng)調(diào)用被添加進(jìn)來(lái),現(xiàn)今Linux內(nèi)核大約有340個(gè)(版本不同,數(shù)量也會(huì)不同)系統(tǒng)調(diào)用函數(shù)供開(kāi)發(fā)者調(diào)用。系統(tǒng)調(diào)用作為內(nèi)核函數(shù)被保存在Linux系統(tǒng)中unistd.h文件或Windows系統(tǒng)下ntoskrnl.exe和ntkrnlpa.exe執(zhí)行文件下,每個(gè)系統(tǒng)調(diào)用函數(shù)有其固定的參數(shù)和返回值,表1介紹了幾個(gè)常用的系統(tǒng)調(diào)用函數(shù)的參數(shù)及其返回值。系統(tǒng)調(diào)用參數(shù)個(gè)數(shù)各不相同,大多數(shù)只有兩三個(gè)參數(shù),最多的有六個(gè)參數(shù),其返回值大多只有一個(gè)。
表1 系統(tǒng)調(diào)用示例
系統(tǒng)調(diào)用名參數(shù)返回值 open2個(gè)參數(shù):文件描述符,文件模式標(biāo)志文件描述符 write3個(gè)參數(shù):文件描述符,文件模式標(biāo)志,寫入字符數(shù)實(shí)際寫入字符數(shù) mmap6個(gè)參數(shù):起始地址、長(zhǎng)度、端口、文件模式標(biāo)志、文件描述符、偏移地址映射區(qū)地址指針
系統(tǒng)調(diào)用的原始追蹤序列包含該進(jìn)程在系統(tǒng)上的絕大部分重要行為,因?yàn)閻阂庑袨橥请[藏在大量的良性行為后,故具有明顯特征的惡意系統(tǒng)調(diào)用序列也往往淹沒(méi)在大量的良性系統(tǒng)調(diào)用序列中。系統(tǒng)調(diào)用數(shù)據(jù)的預(yù)處理對(duì)于其模型的訓(xùn)練和檢測(cè)是十分重要的,應(yīng)該保證其盡可能地篩除冗余數(shù)據(jù)而突出其特征數(shù)據(jù)。現(xiàn)今的主機(jī)入侵檢測(cè)模型檢測(cè)準(zhǔn)確率已經(jīng)有了很大提升,其誤報(bào)率卻居高不下,這將是研究者們面對(duì)的一個(gè)不小的挑戰(zhàn)。
以下將從系統(tǒng)調(diào)用的預(yù)處理、基于系統(tǒng)調(diào)用的入侵檢測(cè)模型、模型應(yīng)用場(chǎng)景三個(gè)部分來(lái)介紹基于系統(tǒng)調(diào)用的入侵檢測(cè)模型現(xiàn)狀。
(1)短序列提取方式
即把較長(zhǎng)的系統(tǒng)調(diào)用跟蹤序列拆分成短序列集合。n-Grams原本是應(yīng)用于文本分類的一種語(yǔ)言模型,其基本思想是將不定長(zhǎng)文本里的內(nèi)容按照字節(jié)進(jìn)行大小為n的滑動(dòng)窗口操作,形成具有上下文依賴關(guān)系的長(zhǎng)度為n的詞組[9]。Warrender和Forrest在1996年提出利用系統(tǒng)調(diào)用序列定義Unix系統(tǒng)進(jìn)程的正常行為[6]。1998年,他們利用系統(tǒng)調(diào)用序列簡(jiǎn)單建立了進(jìn)程的行為輪廓[10]。他們收集sendmail進(jìn)程的系統(tǒng)調(diào)用序列,然后對(duì)每一條追蹤數(shù)據(jù)進(jìn)行滑動(dòng)窗口分割生成系統(tǒng)調(diào)用短序列。這些短序列被加入系統(tǒng)調(diào)用數(shù)據(jù)庫(kù)里,當(dāng)執(zhí)行其他進(jìn)程時(shí)將此進(jìn)程的n-grams序列集在該數(shù)據(jù)庫(kù)里匹配搜索,若無(wú)匹配的序列數(shù)超過(guò)閾值則可認(rèn)為此進(jìn)程非sendmail進(jìn)程。針對(duì)在異常檢測(cè)模型中,使用n-grams算法提取系統(tǒng)調(diào)用短序列時(shí)n該取何值的問(wèn)題,文獻(xiàn)[11]認(rèn)為,6-grams是最合適的,因?yàn)槠淠鼙WC模型檢測(cè)精度同時(shí)又不會(huì)過(guò)多增加模型計(jì)算量。事實(shí)上,在后續(xù)的大量研究中均表明,5-grams與6-grams往往在檢測(cè)精度和模型計(jì)算量的權(quán)衡下是最合適的。另外,當(dāng)提取窗口的滑動(dòng)不是固定步長(zhǎng)而是固定時(shí)間間隔時(shí),其為STIDE(Subsequence Time-Delay Embedding)方式。
2013年,胡建坤博士提出了一種基于語(yǔ)義理論的系統(tǒng)調(diào)用短序列提取方法[12],其核心思想是入侵行為序列往往不能由陽(yáng)性樣本構(gòu)建的正常行為短序列所組成,即入侵行為的系統(tǒng)調(diào)用序列中應(yīng)該具有良性行為系統(tǒng)調(diào)用序列中所沒(méi)有的短序列詞組。在該文獻(xiàn)中,作者將去重后的2-grams序列作為單詞,在正常樣本中使用2-grams單詞組成給定長(zhǎng)度的短序列詞組,自此構(gòu)建了正常序列詞組的字典并以此為初始特征矩陣。在測(cè)試階段,當(dāng)系統(tǒng)調(diào)用追蹤序列進(jìn)入模型時(shí)將被分割成若干個(gè)固定長(zhǎng)度的詞組,然后逐個(gè)檢索字典中的詞組在該追蹤數(shù)據(jù)中的出現(xiàn)次數(shù),形成該系統(tǒng)調(diào)用跟蹤的特征矩陣。此提取方式獲得了很好的檢測(cè)效果,但是巨大的計(jì)算量和煩瑣的步驟在工程應(yīng)用中頗具難度?;诙绦蛄械南到y(tǒng)調(diào)用提取方式只考慮局部上下文關(guān)系或其語(yǔ)義信息,往往數(shù)據(jù)量大,處理煩瑣。
表2 n-grams方法示例
系統(tǒng)調(diào)用序列15223344422 系統(tǒng)調(diào)用名稱sigreturnpipedup2statstatstatpipe 1-grams15,22,33,4,4,4,22 2-grams15 22,22 33,33 4,4 4,4 4,4 22 3-grams15 22 33,22 33 4,33 4 4,4 4 4,4 4 22
(2)頻率特征提取方式
(3)混合提取方式
文獻(xiàn)[16]提出了一種基于概率有向圖的提取方式。在該文獻(xiàn)中,作者將每一個(gè)系統(tǒng)調(diào)用看作一個(gè)狀態(tài),而下一個(gè)系統(tǒng)調(diào)用則是狀態(tài)的改變。作者構(gòu)建了k×k的特征矩陣T,其中T(i,j)表示系統(tǒng)調(diào)用狀態(tài)i向系統(tǒng)調(diào)用狀態(tài)j轉(zhuǎn)變的概率值,概率值由追蹤數(shù)據(jù)中該狀態(tài)轉(zhuǎn)換的頻率得到,k表示此系統(tǒng)的系統(tǒng)調(diào)用函數(shù)數(shù)量。文獻(xiàn)[17]在n-grams短序列的基礎(chǔ)上重點(diǎn)考慮了系統(tǒng)調(diào)用追蹤序列中最多重復(fù)與最少重復(fù)的調(diào)用函數(shù)。文獻(xiàn)[18]則致力于創(chuàng)建一種脫離平臺(tái)的頻率短序列提取方式。其將n-grams短序列的出現(xiàn)頻率作為值構(gòu)建特征向量,忽略掉原本的n-grams短序列,通過(guò)此種方式增強(qiáng)特征矩陣的可遷移性以解決訓(xùn)練樣本不足的問(wèn)題。
文獻(xiàn)[19]提出了兩種判別式特征選擇算法。ADWSC(Absolute difference of weighted system calls)算法針對(duì)每個(gè)系統(tǒng)調(diào)用在樣本里的發(fā)生頻率為它們賦值,頻率越高則代表其越冗余,賦予較低的權(quán)重。RSLPT(Ranked System Calls Using Large Population Test)算法則根據(jù)一個(gè)系統(tǒng)調(diào)用在良性樣本和惡性樣本中出現(xiàn)次數(shù)的不同定義其權(quán)值,次數(shù)差異越大說(shuō)明其對(duì)于區(qū)分良性與惡行越重要,則賦予更高權(quán)值。通過(guò)實(shí)驗(yàn)分析,RSLPT算法更具有可擴(kuò)展性,而ADWSC在檢測(cè)效果上往往會(huì)好一些。
混合提取方式是目前基于系統(tǒng)調(diào)用數(shù)據(jù)做入侵檢測(cè)的主流特征提取方式。其往往可以在保證特征提取有效性的同時(shí),付出較小的計(jì)算和時(shí)間成本。合適的系統(tǒng)調(diào)用提取方式對(duì)模型訓(xùn)練具有重要意義,提取頻率特征的預(yù)處理方式往往更適合于聚類模型,提取短序列特征的預(yù)處理方式則在分類模型中具有較好的表現(xiàn)。
(4)參數(shù)特征
系統(tǒng)調(diào)用函數(shù)的參數(shù)同樣是系統(tǒng)調(diào)用序列的重要特征,對(duì)系統(tǒng)調(diào)用的參數(shù)特征的抓取和學(xué)習(xí)能夠有效降低入侵檢測(cè)模型的誤報(bào)率。但是每個(gè)系統(tǒng)調(diào)用函數(shù)的參數(shù)個(gè)數(shù)、參數(shù)意義都與該函數(shù)密切相關(guān),故很難對(duì)其量化地進(jìn)行分析和處理。Krueger第一次將系統(tǒng)調(diào)用的參數(shù)特征用于入侵檢測(cè)[20]。他們的模型學(xué)習(xí)正常系統(tǒng)調(diào)用參數(shù)的長(zhǎng)度、字節(jié)和結(jié)構(gòu)性特征并期望于模型在檢測(cè)階段能夠發(fā)現(xiàn)系統(tǒng)調(diào)用參數(shù)的異常。事實(shí)上他們?yōu)槊恳粋€(gè)系統(tǒng)調(diào)用構(gòu)建了配置文件,即針對(duì)特定系統(tǒng)調(diào)用設(shè)置參數(shù)字符串長(zhǎng)度、常用單詞和結(jié)構(gòu)性特征,并在訓(xùn)練階段找到違反該設(shè)置次數(shù)的最大閾值。在文獻(xiàn)[21]中,系統(tǒng)調(diào)用序列參數(shù)被作為單個(gè)系統(tǒng)調(diào)用的屬性并以元組形式保存,將原本的系統(tǒng)調(diào)用序列轉(zhuǎn)換為以參數(shù)元組為元素的集合并進(jìn)行聚類分析,通過(guò)算法將聚類后的類別信息抓取并以此為樣本進(jìn)行分類模型的訓(xùn)練和檢測(cè)。
文獻(xiàn)[22]提出了一種新的特征提取方式來(lái)獲得系統(tǒng)調(diào)用的參數(shù)特征以改善深度學(xué)習(xí)模型的入侵檢測(cè)效果。在該文獻(xiàn)中,作者將系統(tǒng)調(diào)用分成了三類,分別是系統(tǒng)調(diào)用相關(guān)參數(shù)、與進(jìn)程相關(guān)的參數(shù)和與時(shí)間相關(guān)的參數(shù)。不同類別的參數(shù)將使用不同的處理方式,系統(tǒng)調(diào)用相關(guān)參數(shù)使用嵌入的方法即將參數(shù)進(jìn)行獨(dú)熱編碼后與嵌入矩陣相乘,而與進(jìn)程相關(guān)的參數(shù)將使用pid與tid號(hào),與時(shí)間相關(guān)的參數(shù)將進(jìn)行編碼。在對(duì)參數(shù)分別處理后,三種類別的參數(shù)將成為同一緯度的向量,系統(tǒng)調(diào)用事件的表達(dá)由處理后的參數(shù)進(jìn)行向量的加法得到。結(jié)合參數(shù)特征可以獲得進(jìn)程間的通信關(guān)系,有助于構(gòu)建進(jìn)程間有向圖和去除數(shù)據(jù)冗余信息。
(1)聚類模型
聚類即將樣本劃分為兩類或多個(gè)類別,其尋找到相對(duì)距離最小的樣本形成一個(gè)集群。2002年,文獻(xiàn)[23]提出使用無(wú)監(jiān)督學(xué)習(xí)框架訓(xùn)練異常檢測(cè)模型,在該文獻(xiàn)中介紹了集群算法、KNN(K最近鄰)算法、單分類SVM算法在異常檢測(cè)的應(yīng)用。文獻(xiàn)[13]在對(duì)ADFA-LD數(shù)據(jù)集的評(píng)測(cè)過(guò)程中通過(guò)K均值聚類和KNN聚類對(duì)該數(shù)據(jù)集進(jìn)行分類,其實(shí)驗(yàn)結(jié)果顯示K均值聚類算法在ADFA-LD數(shù)據(jù)集里表現(xiàn)優(yōu)于KNN算法。文獻(xiàn)[24]對(duì)比了K均值算法、AP(Affinity Progation)算法、層次聚類算法和最大期望值聚類算法用于系統(tǒng)調(diào)用序列的表現(xiàn)。他們?cè)赪indows系統(tǒng)下運(yùn)行病毒樣本收集系統(tǒng)調(diào)用追蹤序列得到系統(tǒng)調(diào)用原始數(shù)據(jù),在預(yù)處理階段原始數(shù)據(jù)去重后使用主成分分析法降維。最大期望值聚類算法在他們的實(shí)驗(yàn)中表現(xiàn)最好,K均值算法和層次聚類算法表現(xiàn)接近。因?yàn)橄到y(tǒng)調(diào)用數(shù)據(jù)的冗余特性,聚類模型在入侵檢測(cè)模型的表現(xiàn)往往不如預(yù)期,其往往作為數(shù)據(jù)集的評(píng)估模型。
(2)貝葉斯分類器
是有監(jiān)督機(jī)器學(xué)習(xí)模型,其基本思想在相關(guān)概率已知的情況下利用誤判損失來(lái)選擇最優(yōu)的類別分類。常見(jiàn)的有樸素貝葉斯分類器、最小代價(jià)貝葉斯分類器、最小風(fēng)險(xiǎn)貝葉斯分類等。文獻(xiàn)[21]抓取系統(tǒng)調(diào)用追蹤數(shù)據(jù)的上下文信息和參數(shù)特征,分兩個(gè)階段完成入侵?jǐn)?shù)據(jù)的檢測(cè)。在第一階段,使用參數(shù)特征對(duì)系統(tǒng)調(diào)用進(jìn)行聚類,獲得進(jìn)程和系統(tǒng)調(diào)用的集群。第二階段則是計(jì)算先驗(yàn)概率矩陣,構(gòu)建樸素貝葉斯分類器得到系統(tǒng)調(diào)用序列的概率分布。得到概率分布后,很容易就可以得到生成某個(gè)序列的概率值,以此設(shè)定閾值進(jìn)行異常分類。此模型在訓(xùn)練階段步驟煩瑣,對(duì)檢測(cè)精度的提升也不大,但是可以獲得進(jìn)程間的聯(lián)系,而不僅僅局限于單個(gè)進(jìn)程。
(3)HMM模型
是經(jīng)典統(tǒng)計(jì)模型,它用來(lái)描述一個(gè)含有隱含狀態(tài)的馬爾可夫過(guò)程。早在2003年便有人將馬爾可夫模型應(yīng)用于系統(tǒng)調(diào)用序列的分析[25]。文獻(xiàn)[26]通過(guò)系統(tǒng)調(diào)用評(píng)估進(jìn)程間的行為距離,對(duì)鏡像攻擊具有較高的檢測(cè)性能。兩個(gè)進(jìn)程的系統(tǒng)調(diào)用序列為可觀察對(duì)象,通過(guò)HMM模型獲得該序列在隱含狀態(tài)下的概率值,將其映射為兩進(jìn)程的行為距離。HMM模型相比于其他模型尤其是深度學(xué)習(xí)模型具有更完善的認(rèn)證理論。
(4)支持向量機(jī)模型
早在2002年,文獻(xiàn)[23]提出三種無(wú)監(jiān)督機(jī)器學(xué)習(xí)模型作為基于系統(tǒng)調(diào)用的分類模型,分別是層次聚類、K近鄰和單分類SVM模型。當(dāng)時(shí)的模型注重于對(duì)特定進(jìn)程的入侵識(shí)別,并不具有普遍的識(shí)別能力。在2013年,謝苗、胡建坤等人使用SVM模型評(píng)估其新建的ADFA-LD數(shù)據(jù)集[27]。他們使用添加頻率特征的n-grams方法構(gòu)建特征矩陣T來(lái)表示一個(gè)進(jìn)程的追蹤數(shù)據(jù)。在特征矩陣T中,T(i,j)表示一個(gè)系統(tǒng)調(diào)用序列號(hào)和該調(diào)用出現(xiàn)頻率的乘積,每一行表示一個(gè)經(jīng)過(guò)乘法處理的n-grams短序列,因?yàn)橹貜?fù)的數(shù)據(jù)沒(méi)有意義,故該n-grams短序列集合經(jīng)過(guò)去重處理。在他們的模型中,使用的是單分類的SVM算法。經(jīng)過(guò)實(shí)驗(yàn),核函數(shù)對(duì)實(shí)驗(yàn)結(jié)果的影響很小且5-grams短序列的檢測(cè)效果是最好的,在20%的誤報(bào)率時(shí)候精確率是70%。單分類SVM算法與多分類SVM算法所不同的是單分類SVM算法是在數(shù)據(jù)和原點(diǎn)間構(gòu)建超平面,且要求超平面與原點(diǎn)呈最大距離。文獻(xiàn)[15]同樣使用單分類SVM模型和ADFA-LD數(shù)據(jù)集,可變長(zhǎng)度的n-grams特征提取方式使得該模型在誤報(bào)率10%的情況下檢測(cè)精度達(dá)到了90%,其檢測(cè)性能大大提升。
(5)極限學(xué)習(xí)機(jī)(ELM)
極限學(xué)習(xí)機(jī)可以看作是一種單隱層前饋神經(jīng),它使用隨機(jī)的輸入層權(quán)值和偏差,通過(guò)誤差函數(shù)訓(xùn)練得到輸出層權(quán)重,其相比于其他的神經(jīng)網(wǎng)絡(luò)具有訓(xùn)練參數(shù)少、學(xué)習(xí)速度快、泛化能力強(qiáng)的優(yōu)點(diǎn)。文獻(xiàn)[12]中,胡建坤博士使用極限學(xué)習(xí)機(jī)作為入侵檢測(cè)分類模型取得了不錯(cuò)的效果。該模型在KDD98數(shù)據(jù)集、UNM數(shù)據(jù)集以及ADFA-LD數(shù)據(jù)集上均能達(dá)到在誤報(bào)率不超過(guò)15%的情況下準(zhǔn)確率超過(guò)85%。ELM模型用時(shí)間和計(jì)算成本換取入侵檢測(cè)準(zhǔn)確率,其不適合實(shí)時(shí)檢測(cè)和大量數(shù)據(jù)同步處理的應(yīng)用場(chǎng)景。
(6)CNN模型
深度卷積網(wǎng)絡(luò)在圖像處理中應(yīng)用廣泛,文獻(xiàn)[28]將系統(tǒng)調(diào)用序列轉(zhuǎn)換為二維圖像,分別訓(xùn)練CNN模型、隨機(jī)森林模型、支持向量機(jī)模型、多層感知機(jī)作為分類器。作者通過(guò)在安卓仿真器里運(yùn)行惡意軟件得到樣本數(shù)據(jù),在該實(shí)驗(yàn)場(chǎng)景中,CNN模型的表現(xiàn)是最佳的。CNN模型處理一維數(shù)據(jù)的效果顯然不如循環(huán)網(wǎng)絡(luò),將一維系統(tǒng)調(diào)用序列升為二維必然改變其原始特征,對(duì)特征的選擇是此類模型所需解決的問(wèn)題。
(7)LSTM、GRU、RNN
循環(huán)神經(jīng)網(wǎng)絡(luò)及其變種具有對(duì)時(shí)間信息的記憶能力,能以很高的效率對(duì)序列的非線性特征進(jìn)行學(xué)習(xí)。文獻(xiàn)[29]對(duì)比了CNN模型、GRU模型、LSTM模型與RNN模型在基于系統(tǒng)調(diào)用入侵檢測(cè)上的表現(xiàn)。在他們的模型中,神經(jīng)網(wǎng)絡(luò)被訓(xùn)練來(lái)預(yù)測(cè)序列中當(dāng)前系統(tǒng)調(diào)用的下一個(gè)系統(tǒng)調(diào)用序號(hào)的概率分布,并利用該概率分布估計(jì)一個(gè)序列的發(fā)生概率。如公式1所示,P(x)表示長(zhǎng)度為l的系統(tǒng)調(diào)用序列發(fā)生概率,該模型將此概率作負(fù)對(duì)數(shù)似然并設(shè)置閾值來(lái)檢測(cè)系統(tǒng)調(diào)用序列的入侵。他們使用ADFA數(shù)據(jù)集并通過(guò)處理保證系統(tǒng)調(diào)用序列具有相同的長(zhǎng)度,在GRU、LSTM模型和CNN+RNN模型中,LSTM模型是表現(xiàn)最好的。LSTM模型能夠?qū)W習(xí)長(zhǎng)期依賴關(guān)系,極適合應(yīng)用于一維序列。事實(shí)證明,LSTM模型應(yīng)用于基于系統(tǒng)調(diào)用序列的入侵檢測(cè)技術(shù)表現(xiàn)優(yōu)于其他的深度學(xué)習(xí)模型。
(8)集成學(xué)習(xí)
集成學(xué)習(xí)的特點(diǎn)是結(jié)合多個(gè)基學(xué)習(xí)器來(lái)完成學(xué)習(xí)任務(wù),按照基學(xué)習(xí)器之間有無(wú)強(qiáng)烈依賴關(guān)系其可以被分為兩類。在系統(tǒng)調(diào)用序列的集成學(xué)習(xí)模型中,基學(xué)習(xí)器往往是并行無(wú)強(qiáng)烈依賴關(guān)系的,以Bagging和隨機(jī)森林為代表。文獻(xiàn)[30]中,作者使用兩個(gè)單層LSTM和一個(gè)雙層LSTM作為基學(xué)習(xí)器構(gòu)成了Bagging集成學(xué)習(xí)模型。系統(tǒng)調(diào)用序列獨(dú)熱編碼后使用嵌入矩陣進(jìn)行數(shù)據(jù)的降維處理。該模型在ADFA、UNM、KDD數(shù)據(jù)集上達(dá)到了0.928的AUC值。隨機(jī)森林是以決策樹(shù)為基學(xué)習(xí)器的集成學(xué)習(xí)模型,其在入侵檢測(cè)方面應(yīng)用廣泛。
(9)注意力機(jī)制
為了克服LSTM模型很難從超過(guò)200的序列中學(xué)習(xí)語(yǔ)義和上下文信息[31],而系統(tǒng)調(diào)用序列長(zhǎng)度往往超過(guò)200的問(wèn)題,文獻(xiàn)[32]在LSTM模型中添加注意力機(jī)制來(lái)改善LSTM模型對(duì)系統(tǒng)調(diào)用時(shí)間信息學(xué)習(xí)不完全的情況。在他們的模型中,首先對(duì)系統(tǒng)調(diào)用進(jìn)行去冗余和切割處理,即去除周期性重復(fù)的短序列并將長(zhǎng)度超過(guò)200的系統(tǒng)調(diào)用序列切割到200以下以達(dá)到LSTM模型的最優(yōu)長(zhǎng)度。在此模型中,出現(xiàn)頻率更高的單詞將被賦予更高的敏感度。
(10)其他深度學(xué)習(xí)模型
深度學(xué)習(xí)模型近來(lái)被廣泛應(yīng)用于圖像識(shí)別、自然語(yǔ)言處理、數(shù)據(jù)生成等領(lǐng)域,在入侵檢測(cè)領(lǐng)域很多模型同樣表現(xiàn)優(yōu)秀。文獻(xiàn)[33]介紹了典型的深度學(xué)習(xí)算法及其在入侵檢測(cè)領(lǐng)域的應(yīng)用,其中大多數(shù)算法同樣適用于基于系統(tǒng)調(diào)用的入侵檢測(cè)模型。自適應(yīng)編碼器、遷移學(xué)習(xí)、元學(xué)習(xí)、生成對(duì)抗網(wǎng)絡(luò)等也可以用來(lái)提高異常檢測(cè)模型效能。
(1)移動(dòng)端
移動(dòng)端應(yīng)用的開(kāi)放性為系統(tǒng)的普及提供了很大的便利,同時(shí)也為移動(dòng)端應(yīng)用網(wǎng)絡(luò)安全埋下了重大的安全隱患。每年大量的惡意軟件對(duì)我們的隱私安全、數(shù)據(jù)安全產(chǎn)生了重大威脅。與常規(guī)入侵檢測(cè)所不同的是,移動(dòng)端應(yīng)用的更新操作和進(jìn)程間通信更為頻繁,且其進(jìn)程的系統(tǒng)調(diào)用序列往往有多個(gè)開(kāi)始點(diǎn)和結(jié)點(diǎn)。文獻(xiàn)[34]提出一種動(dòng)態(tài)分析與靜態(tài)分析相結(jié)合的方法,即針對(duì)軟件樣本靜態(tài)分析該軟件的功能、安裝代碼、調(diào)試環(huán)境,動(dòng)態(tài)分析其系統(tǒng)調(diào)用序列,結(jié)合兩者獲得其風(fēng)險(xiǎn)分?jǐn)?shù)。文獻(xiàn)[16]提出了一種安卓惡意軟件檢測(cè)器并將它命名為Sword。在Sword里,樣本應(yīng)用在安卓仿生器中執(zhí)行,Mokey工具自動(dòng)生成系統(tǒng)事件和用戶事件,隨即系統(tǒng)調(diào)用序列被提取出來(lái)并生成有向圖在決策算法里進(jìn)行判別。文獻(xiàn)[35]提出SysDroid檢測(cè)器,該檢測(cè)器同樣在安卓虛擬機(jī)上安裝應(yīng)用并使用Monkey生成事件。Sysdid的安卓虛擬機(jī)除了安裝樣本應(yīng)用外,還會(huì)再安裝常用的安卓應(yīng)用以檢測(cè)某些惡意軟件針對(duì)其他軟件行為的特定攻擊。在Sysdid中,系統(tǒng)調(diào)用序列使用n-grams方法提取特征,使用邏輯回歸算法、隨機(jī)森林、深度神經(jīng)網(wǎng)絡(luò)等多種學(xué)習(xí)方法作為分類模型。
(2)容器、虛擬機(jī)、云環(huán)境
容器機(jī)制在計(jì)算機(jī)各個(gè)領(lǐng)域均有應(yīng)用,它具有輕量且方便部署的特性。但容器之間共享主機(jī)內(nèi)核,容器之間的隔離是很弱的,因此容器被認(rèn)為應(yīng)該有額外的防護(hù)機(jī)制。且容器的防護(hù)機(jī)制不宜太復(fù)雜,應(yīng)在保證防護(hù)能力的情況下盡可能少地占用系統(tǒng)資源。文獻(xiàn)[36]提出一種針對(duì)容器的加密貨幣挖掘劫持攻擊檢測(cè)系統(tǒng),該系統(tǒng)抓取容器內(nèi)系統(tǒng)調(diào)用數(shù)據(jù)生成特征向量,可實(shí)現(xiàn)對(duì)加密貨幣劫持攻擊的實(shí)時(shí)檢測(cè)。在該文章中,作者評(píng)估了隨機(jī)森林算法、前饋神經(jīng)網(wǎng)絡(luò)、RNN網(wǎng)絡(luò)和XGBoost(eXtreme Gradient Boosting)四種模型在加密貨幣劫持攻擊檢測(cè)上的表現(xiàn)。其結(jié)果是XGBoost模型與隨機(jī)森林表現(xiàn)較其余兩種網(wǎng)絡(luò)表現(xiàn)更好,其檢測(cè)準(zhǔn)確率分別為97%和90%。針對(duì)容器內(nèi)系統(tǒng)調(diào)用序列的追蹤和獲取,文獻(xiàn)[36]使用了sysdig工具。文獻(xiàn)[37]構(gòu)建模型為容器構(gòu)建系統(tǒng)調(diào)用白名單,該容器將被禁止調(diào)用名單以外的系統(tǒng)調(diào)用。虛擬機(jī)管理程序所提供的虛擬機(jī)之間的隔離并不完整,因此虛擬機(jī)應(yīng)防御同一主機(jī)上其他虛擬機(jī)攻擊的能力。文獻(xiàn)[38]提出了一種適用于同一主機(jī)上多個(gè)虛擬機(jī)入侵檢測(cè)的運(yùn)行狀態(tài)追蹤架構(gòu),其依賴于PT(Intel Process Trace)技術(shù)。該架構(gòu)接受來(lái)自PT的數(shù)據(jù)流并將其解碼和凈化,提取到的系統(tǒng)調(diào)用序列被應(yīng)用于基于機(jī)器學(xué)習(xí)的主機(jī)入侵檢測(cè)模型中。云環(huán)境是如今網(wǎng)絡(luò)服務(wù)的基礎(chǔ)環(huán)境,云上虛擬機(jī)可以實(shí)現(xiàn)云上辦公,即有網(wǎng)絡(luò)即可辦公。文獻(xiàn)[39]提出了一種基于云環(huán)境的虛擬機(jī)入侵檢測(cè)模型,其部署在虛擬機(jī)管理軟件上,通過(guò)系統(tǒng)調(diào)用序列檢測(cè)入侵。在該模型里,使用自回歸模型將系統(tǒng)調(diào)用序列分為三類,每一類分別使用不同的分類模型進(jìn)行檢測(cè)。文獻(xiàn)[40]提出了一種在云環(huán)境下的實(shí)時(shí)入侵檢測(cè)模型。
其他場(chǎng)景人們的工作和生活逐漸地依靠于各種各樣的電子產(chǎn)品和網(wǎng)絡(luò)。這使得某些非法團(tuán)體的網(wǎng)絡(luò)攻擊具有明顯的目的性和強(qiáng)大破壞力,利用系統(tǒng)調(diào)用序列訓(xùn)練對(duì)某一類攻擊具有極強(qiáng)檢測(cè)能力的模型是業(yè)界一直在努力的方向。文獻(xiàn)[41]專注于APT攻擊的檢測(cè)和預(yù)防,文獻(xiàn)[42]專注于注入攻擊,而文獻(xiàn)[43]則專注于僵尸網(wǎng)絡(luò)的發(fā)現(xiàn)和阻止。值得注意的是,文獻(xiàn)[44]提出了一種系統(tǒng)調(diào)用注入攻擊方式,此方式能對(duì)大部分的基于系統(tǒng)調(diào)用的入侵檢測(cè)模型造成干擾甚至讓其失效。文獻(xiàn)[45]提出適用于大型公司內(nèi)網(wǎng)的基于系統(tǒng)調(diào)用的進(jìn)程監(jiān)視管理系統(tǒng),其在服務(wù)器上部署LSTM異常檢測(cè)模型,收集內(nèi)網(wǎng)主機(jī)系統(tǒng)調(diào)用數(shù)據(jù)進(jìn)行實(shí)時(shí)的異常檢測(cè)和預(yù)警。文獻(xiàn)[46]提出一種構(gòu)建系統(tǒng)調(diào)用白名單的算法,即針對(duì)特定進(jìn)程構(gòu)建系統(tǒng)調(diào)用白名單以減少其攻擊的可能性和危害。
系統(tǒng)調(diào)用追蹤序列可以使用strace、sysdig等工具收集,有相當(dāng)一部分的基于系統(tǒng)調(diào)用的入侵檢測(cè)研究使用的是研究者個(gè)人收集數(shù)據(jù)。包含系統(tǒng)調(diào)用數(shù)據(jù)的數(shù)據(jù)集簡(jiǎn)單介紹如下,同時(shí)本部分也將對(duì)入侵檢測(cè)模型的性能指標(biāo)做一個(gè)簡(jiǎn)要概括。
(1)DARPA數(shù)據(jù)集[52]
由麻省理工林肯實(shí)驗(yàn)室收集并公開(kāi),是第一個(gè)用于計(jì)算機(jī)網(wǎng)絡(luò)入侵檢測(cè)的數(shù)據(jù)集。DARPA1998、DARPA1999與DARPA2000分別收集于1998、1999、2020年,其中DARPA200新增了DDoS攻擊樣本數(shù)據(jù)。DAPRA數(shù)據(jù)集包含網(wǎng)絡(luò)流量和審計(jì)數(shù)據(jù),其收集于Solaris系統(tǒng)。
(2)UNM數(shù)據(jù)集[53]
是新墨西哥大學(xué)于1998年收集,其攻擊樣本包括緩沖區(qū)溢出、符號(hào)鏈接攻擊、木馬程序、特權(quán)程序等。DPRPA數(shù)據(jù)集與UNM數(shù)據(jù)集均存在年代較為久遠(yuǎn)可能導(dǎo)致其訓(xùn)練模型并不適用于現(xiàn)代網(wǎng)絡(luò)的問(wèn)題。
(3)ADFA數(shù)據(jù)集[54]
由澳大利亞國(guó)防大學(xué)于2013年收集[47],其包含了Linux版本和Windows版本,分別命名為ADFA-LD和ADFA-WD。其樣本中包括密碼爆破攻擊、添加超級(jí)用戶提權(quán)、Java-Meterpreter、Webshell攻擊等。ADFA數(shù)據(jù)集取代DARPA數(shù)據(jù)集成為目前的主流數(shù)據(jù)集。
(4)NGIDS-DS
2016年胡建坤、Haider等人提出了一個(gè)高質(zhì)量數(shù)據(jù)集[48],并將其命名為NGIDS-DS(the next-generation IDS dataset)。他們?cè)赨buntu14.4系統(tǒng)主機(jī)上收集了包含漏洞、蠕蟲(chóng)、掃描攻擊等7類攻擊樣本的系統(tǒng)日志數(shù)據(jù)和流量數(shù)據(jù)。
(5)AWSCTD[55]
文獻(xiàn)[49-50]在2018年提出了AWSCTD數(shù)據(jù)集,該數(shù)據(jù)集收集在Windows系統(tǒng)上執(zhí)行12110個(gè)惡意樣本時(shí)產(chǎn)生的系統(tǒng)調(diào)用信息。此數(shù)據(jù)集在GitHub上開(kāi)源并在文獻(xiàn)[51]構(gòu)建多種深度學(xué)習(xí)模型的評(píng)估中表現(xiàn)良好。
混淆矩陣用來(lái)描述分類模型在已知真實(shí)值的測(cè)試數(shù)據(jù)上的性能,其同樣適用于入檢測(cè)模型的性能評(píng)估。下面將簡(jiǎn)單介紹混淆矩陣的一些術(shù)語(yǔ):
TP(True Positives):真陽(yáng)性,即預(yù)測(cè)為陽(yáng)性實(shí)際也為陽(yáng)性,是正確的預(yù)測(cè)。
TN(True Negatives):真陰性,即預(yù)測(cè)為陰性,實(shí)際也為陰性,是正確的預(yù)測(cè)。
FP(False Positivee):假陽(yáng)性,即預(yù)測(cè)為陽(yáng)性,實(shí)際為陰性,是錯(cuò)誤的預(yù)測(cè)。
FN(False Negatives):假陰性,即預(yù)測(cè)為陰性,實(shí)際為陽(yáng)性,是錯(cuò)誤的預(yù)測(cè)。
ACC(Accuracy):準(zhǔn)確率,總的來(lái)說(shuō)分類器的準(zhǔn)確率。
Recall:召回率,實(shí)際為陽(yáng)性的樣本中被正確識(shí)別所占比例。
Precision:精確率,在被識(shí)別為陽(yáng)性的樣本中,正確識(shí)別所占的比例。
FPR:誤報(bào)率,在所有陰性樣本中,被錯(cuò)誤識(shí)別為陽(yáng)性所占的比例。
ROC曲線:一個(gè)常用圖表,總結(jié)了分類器在所有可能閾值上的性能。通過(guò)閾值改變時(shí)繪制其真陽(yáng)率(召回率)和假陽(yáng)性率(誤報(bào)率)來(lái)生成。
AUC值:即ROC曲線下的面積,其值越大分類器性能越好,取值范圍為0-1之間。
F1score:精確率和召回率的調(diào)和平均值。其值同樣是越大分類器性能越好,取值范圍為0-1之間。
即系統(tǒng)調(diào)用序列預(yù)處理的流水化和規(guī)?;,F(xiàn)今的特征提取方式往往是模型針對(duì)該數(shù)據(jù)集所做的特殊處理和操作,數(shù)據(jù)集收集時(shí)所使用的系統(tǒng)不同、版本不同以及惡意樣本攻擊的復(fù)雜程度都造成了數(shù)據(jù)集之間的不通用。然而,大多數(shù)攻擊的攻擊思路是相同的,并不會(huì)因?yàn)槠涔粝到y(tǒng)的不同產(chǎn)生較大的改變,也因此其行為模式的改變也是很小的,只不過(guò)因?yàn)橥粋€(gè)操作在不同系統(tǒng)里,系統(tǒng)調(diào)用函數(shù)的名稱、號(hào)碼略微不同而已??啥嗥脚_(tái)混用的特征提取方式將把在不同系統(tǒng)、不同版本所收集的數(shù)據(jù)集進(jìn)行整合,這將大大增加模型訓(xùn)練的樣本。將新收集的不同系統(tǒng)的系統(tǒng)調(diào)用序列使用此特征提取方式進(jìn)行預(yù)處理,能夠在同一個(gè)模型下進(jìn)行檢測(cè),實(shí)現(xiàn)了模型在訓(xùn)練和使用上的跨平臺(tái)化。
基于系統(tǒng)調(diào)用序列的異常檢測(cè)模型發(fā)展已久,其檢測(cè)準(zhǔn)確率可以達(dá)到90%以上,但是其誤報(bào)率同時(shí)也居高不下。與深度學(xué)習(xí)技術(shù)的結(jié)合是如今各個(gè)領(lǐng)域研究的熱門。實(shí)踐證明,利用好深度學(xué)習(xí)技術(shù)能有效提升異常檢測(cè)的準(zhǔn)確率并降低其誤報(bào)率,且同樣具有檢測(cè)0day漏洞的能力。異常檢測(cè)與入侵檢測(cè)的結(jié)合也是提升其入侵檢測(cè)效果的有效途徑。
分布式的部署方式某些場(chǎng)景下的入侵檢測(cè)模型應(yīng)具有實(shí)時(shí)檢測(cè)的能力,例如在大型公司內(nèi)網(wǎng)、大型數(shù)據(jù)中心的管理機(jī)組、虛擬主機(jī)網(wǎng)絡(luò)等。分布式的部署方式希望實(shí)現(xiàn)的是整個(gè)網(wǎng)絡(luò)入侵檢測(cè)模型的共同進(jìn)化、共同防御和實(shí)時(shí)報(bào)警。
系統(tǒng)調(diào)用序列是計(jì)算機(jī)底層函數(shù)的集合,對(duì)程序行為的刻畫是最為細(xì)粒度的。某一類特定的攻擊方式,在其行為上將會(huì)出現(xiàn)類似的行為特征。針對(duì)某些具有很大危害的攻擊,例如DDoS攻擊、勒索病毒攻擊、挖礦攻擊等訓(xùn)練特殊模型,長(zhǎng)期部署該模型以完成對(duì)此類攻擊的提前發(fā)現(xiàn)與報(bào)警甚至將攻擊驅(qū)除。
[1]Liu M,Xue Z,Xu X,et al. Host-Based Intrusion Detection System with System Calls:Review and Future Trends[J]. ACM computing surveys,2019,51(5):1-36.
[2]Mishra P,Varadharajan V,Tupakula U,et al. A Detailed Investigation and Analysis of Using Machine Learning Techniques for Intrusion Detection[J]. IEEE Communications surveys and tutorials,2019,21(1):686-728.
[3]Glass-Vanderlan T R,Iannacone M D,Vincent M S,et al. A Survey of Intrusion Detection Systems Leveraging Host Data[J]. 2018.
[4]蹇詩(shī)婕,盧志剛,牡丹,等. 網(wǎng)絡(luò)入侵檢測(cè)技術(shù)綜述[J]. 信息安全學(xué)報(bào),2020.
[5]Ye Y,Li T,Adjeroh D,et al. A Survey on Malware Detection Using Data Mining Techniques[J]. ACM computing surveys,2017,50(3):1-40.
[6]Forrest S,Hofmeyr S A,Somayaji A,et al. A sense of self for UNIX processes[J]. Computer Science,1996.
[7]葛仁北. 系統(tǒng)調(diào)用與操作系統(tǒng)安全[J]. 計(jì)算機(jī)工程與應(yīng)用,2002(19):97-99.
[8]高巖,蔣若江. 主機(jī)防護(hù)系統(tǒng)中系統(tǒng)調(diào)用截獲機(jī)制的實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2003(11):76-80.
[9]Damashek M. Gauging Similarity with n-Grams:Language-Independent Categorization of Text[J]. Science (American Association for the Advancement of Science),1995,267(5199):843-848.
[10]Hofmeyr S A,F(xiàn)orrest S,Somayaji A. Intrusion detection using sequences of system calls[J]. Journal of computer security, 1998,6(3):151-180.
[11]Tan K M C,Maxion R A. "Why 6?" Defining the operational limits of stide,an anomaly-based intrusion detector, Los Alamitos CA,2002[C]. IEEE,2002.
[12]Creech G,Hu J. A Semantic Approach to Host-Based Intrusion Detection Systems Using Contiguousand Discontiguous System Call Patterns[J]. transactions on computers,2012.
[13]Xie M,Hu J,Yu X,et al. Evaluating Host-Based Anomaly Detection Systems:Application of the Frequency-Based Algorithms to ADFA-LD[M]//Cham:Springer International Publishing,2014:542-549.
[14]Jiang G,Chen H,Ungureanu C,et al. Multiresolution Abnormal Trace Detection Using Varied-Length n-Grams and Automata[J]. IEEE transactions on systems, man and cybernetics. Part C,Applications and reviews,2007,37(1):86-97.
[15]Khreich W,Khosravifar B,Hamou-Lhadj A,et al. An anomaly detection system based on variable N-gram features and one-class SVM[J]. Information and software technology,2017,91:186-197.
[16]Bhandari S,Panihar R,Naval S,et al. SWORD: Semantic aWare andrOid malwaRe Detector[J]. Journal of information security and applications,2018,42:46-56.
[17]Haider W,Hu J,Xie M. Towards reliable data feature retrieval and decision engine in host-based anomaly detection systems,2015[C]. IEEE,2015.
[18]Liu Z,Japkowicz N,Wang R, et al. A statistical pattern based feature extraction method on system call traces for anomaly detection[J]. Information and software technology,2020,126:106348.
[19]P V,Zemmari A,Conti M. A machine learning based approach to detect malicious android apps using discriminant system calls[J]. Future generation computer systems,2019,94:333-350.
[20]Kruegel C,Mutz D,Valeur F,et al. On the Detection of Anomalous System Call Arguments[M]//Berlin,Heidelberg: Springer Berlin Heidelberg,2003:326-343.
[21]Koucham O,Rachidi T,Assem N. Host Intrusion Detection using System Call argumented-based clustering combined with bayesian classification:SAI Intelligent Systems Conference 2015,London,UK,2015[C].
[22]Fournier Q,Aloise D,Azhari S V, et al. On Improving Deep Learning Trace Analysis with System Call Arguments[J]. 2021.
[23]Eskin E,Arnold A,Prerau M,et al. A geometric framework for unsupervised anomaly detection[J]. Applaications of Data Mining in Computer Security,2002:77-101.
[24]Ognev R A,Zhukovskii E V,Zegzhda D P. Clustering of Malicious Executable Files Based on the Sequence Analysis of System Calls[J]. Automatic control and computer sciences,2019,53(8):1045-1055.
[25]Cho S,Han S. Two Sophisticated Techniques to Improve HMM-Based Intrusion Detection Systems[M]//Berlin,Heidelberg: Springer Berlin Heidelberg,2003:207-219.
[26]Gao D,Reiter M K,Song D. Behavioral distance measurement using hidden markov models[M]//RAID. 2006.
[27]Xie M,Hu J,Slay J. Evaluating host-based anomaly detection systems:Application of the one-class SVM algorithm to ADFA-LD,2014[C]. IEEE,2014.
[28]Casolare R,De Dominicis C,Iadarola G,et al. Dynamic Mobile Malware Detection through system call-based image representation[J]. Journal of Wireless Mobile Networks, Ubiquitous Computing,and Dependable Applications,2021.
[29]Chawla A,Lee B,F(xiàn)allon S,et al. Host Based Intrusion Detection System with Combined CNN/RNN Model[M]//Cham: Springer International Publishing,2019:149-158.
[30]Kim G,Yi H,Lee J,et al. LSTM-Based System-Call Language Modeling and Robust Ensemble Method for Designing Host-Based Intrusion Detection Systems[J]. 2016.
[31]Khandelwal U,He H,Qi P,et al. Sharp Nearby,F(xiàn)uzzy Far Away:How Neural Language Models Use Context[J]. 2018.
[32]Xie W,Xu S,Zou S,et al. A System-call Behavior Language System for Malware Detection Using A Sensitivity-based LSTM Model,2020[C]. ACM,2020.
[33]R V,KP S,Alazab M,et al. a comprehensive tutorial and survey of applications of deep learning for cyber security[J]. computer science,2020.
[34]Saleh M F. malware detection model based on classifying system calls and code attributes:a proof of concept[J]. Electronic Security and Digital Forensics,2019.
[35]Ananya A,Aswathy A,Amal T R,et al. SysDroid:a dynamic ML-based android malware analyzer using system call traces[J]. Cluster computing,2020,23(4):2789-2808.
[36]Karn R R,Kudva P,Huang H. Cryptomining Detection in Container Clouds Using System Calls and Explainable Machine Learning[J]. transactions on parallel and distribution systems,2021.
[37]Wang X,Shen Q,Luo W,et al. RSDS:Getting System Call Whitelist for Container Through Dynamic and Static Analysis: 13th Intermational Conference on Cloud Computing,2020[C]. IEEE,2020.
[38]Seo J,Bang I,You J,et al. SBGen:A Framework to Efficiently Supply Runtime Information for a Learning-Based HIDS for Multiple Virtual Machines[J]. IEEE access,2020,8:225356-225369.
[39]Besharati E,Naderan M,Namjoo E. LR-HIDS:logistic regression host-based intrusion detection system for cloud envirmonents[J]. Journal of Ambient Intelligence and Humanized Computing,2018.
[40]Gupta S,Gupta S,Kumar P,et al. An Immediate System Call Sequence Based Approach for Detecting Malicious Program Executions in Cloud Environment[J]. Wireless personal communications,2015,81(1):405-425.
[41]Han W,Xue J,Wang Y,et al. APTMalInsight:Identify and cognize APT malware based on system call information and ontology knowledge framework[J]. Information sciences,2021,546:633-664.
[42]Zhang L,Morin B,Baudry B,et al. Maximizing Error Injection Realism for Chaos Engineering with System Calls[J]. IEEE transactions on dependable and secure computing,2021:1.
[43]Costa V G T D,Junior S B,Miani R S,et al. mobile botnets detection based on maching learning over system calls[J]. Security and Networks,2019,14(2).
[44]Zhang L,Morin B,Baudry B,et al. Maximizing Error Injection Realism for Chaos Engineering with System Calls[J]. IEEE transactions on dependable and secure computing,2021:1.
[45]Dymshits M,Myara B,Tolpin D. Process Monitoring on Sequences of System Call Count Vectors[J]. 2017.
[46]Pailoor S,Wang X,Shacham H,et al. Automated policy synthesis for system call sandboxing[J]. Proceedings of ACM on programming languages,2020,4(OOPSLA):1-26.
[47]Creech G,Member S,Hu J. generation of a new IDS Test dateset time:to retire the KDD collection:Wireless Communications and Networking Conference(WCNC), 2013[C].
[48]Haider W,Hu J,Slay J,et al. Generating realistic intrusion detection system dataset based on fuzzy qualitative modeling[J]. Journal of network and computer applications,2017,87:185-192.
[49]?eponis D,Goranin N. Towards a Robust Method of Dataset Generation of Malicious Activity for Anomaly-Based HIDS Training and Presentation of AWSCTD Dataset[J]. Baltic Journal of Modern Computing,2018,6(3).
[50]Haider W,Creech G,Xie Y,et al. Windows Based Data Sets for Evaluation of Robustness of Host Based Intrusion Detection Systems(IDS)to Zero-Day and Stealth Attacks[J]. Future internet,2016,8(4):29.
[51]Ceponis D,Goranin N. Evaluation of Deep Learning Methds Efficiency for Malicious and Benign System Calls Classification on the AWSCTD[J]. Security and Communication Networks,2019.
[52]https://archive.ll.mit.edu/ideval/docs/index.html.
[53]https://www.cs.unm.edu/~immsec/systemcalls.htm.
[54]https://research.unsw.edu.au/projects/adfa-ids-datasets.
[55]https://github.com/DjPasco/AWSCTD_Data.
廣東省重點(diǎn)領(lǐng)域研發(fā)計(jì)劃(2018B010113001);國(guó)家自然科學(xué)基金項(xiàng)目(62176264)