蘆天亮,張 璐,蔡滿春,杜彥輝,劉穎卿
1(中國(guó)人民公安大學(xué) 網(wǎng)絡(luò)空間安全與法治協(xié)同創(chuàng)新中心,北京 100038)
2(中國(guó)人民公安大學(xué) 信息技術(shù)與網(wǎng)絡(luò)安全學(xué)院,北京 100038)
3(中國(guó)移動(dòng)通信有限公司研究院,北京 100053)
shellcode是由攻擊者精心編寫的一段可執(zhí)行的二進(jìn)制指令代碼,一般以網(wǎng)絡(luò)流量等數(shù)據(jù)形式發(fā)送到存在緩沖區(qū)溢出漏洞的目標(biāo)服務(wù)器,通過覆蓋返回地址獲得執(zhí)行權(quán)限,通常是開放遠(yuǎn)程shell端口.shellcode編寫對(duì)于攻擊者技術(shù)水平要求較高,需熟練掌握匯編指令,函數(shù)調(diào)用及進(jìn)程內(nèi)存堆棧結(jié)構(gòu).但隨著Metasploit等滲透測(cè)試工具的出現(xiàn),shellcode可以根據(jù)用戶需求直接定制生成,并且可以進(jìn)行編碼以躲避非法字符或特征碼檢測(cè).根據(jù)檢測(cè)過程中是否執(zhí)行shellcode,將檢測(cè)手段分為靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè).
靜態(tài)檢測(cè)基于反匯編和特征碼匹配等手段,基于特征碼匹配的檢測(cè),對(duì)于已知shellcode樣本非常有效,但對(duì)于未知的或經(jīng)過多態(tài)編碼的shellcode檢測(cè)效果很差.為躲避特征碼檢測(cè)手段,alphanumeric全字母數(shù)字編碼shellcode方法被提出,并采用壓縮方法使其長(zhǎng)度更短[1].Verma N等[2]提出了基于字符串相似度的alphanumeric shellcode檢測(cè)方法.Zhao Ziming等[3]提出基于反匯編指令序列抽取shellcode特征的方法,利用Markov鏈實(shí)現(xiàn)shellcode檢測(cè)和基于支持向量機(jī)識(shí)別shellcode的編碼類型.
動(dòng)態(tài)檢測(cè)是對(duì)shellcode模擬執(zhí)行過程中的行為,包括系統(tǒng)調(diào)用、內(nèi)存讀寫等進(jìn)行監(jiān)控,基于行為特征對(duì)shellcode檢測(cè).shellcode檢測(cè)庫(kù)Libemu可以集成到入侵檢測(cè)系統(tǒng)或蜜罐中,能夠?qū)?nèi)存和CPU進(jìn)行模擬得到指令執(zhí)行流程.Polychronakis M等[4]提出在網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)中嵌入CPU模擬器,基于自修改shellcode解碼過程中頻繁對(duì)自身內(nèi)存讀寫特征進(jìn)行檢測(cè).董鵬程等[5]提取shellcode動(dòng)態(tài)執(zhí)行特征,基于自動(dòng)機(jī)模型實(shí)現(xiàn)檢測(cè)算法,通過分析API調(diào)用序列判定shellcode執(zhí)行功能和攻擊意圖.Gu Boxuan等[6]提出基于內(nèi)存快照的shellcode檢測(cè)方法,利用數(shù)據(jù)輸入前的進(jìn)程快照模擬執(zhí)行并監(jiān)控系統(tǒng)調(diào)用和程序執(zhí)行流程.
為了有效的檢測(cè)shellcode,尤其是對(duì)多態(tài)樣本準(zhǔn)確快速識(shí)別,受生物免疫系統(tǒng)識(shí)別和消滅入侵人體病原體機(jī)理的啟發(fā),本文創(chuàng)新的將免疫理論應(yīng)用于解決shellcode檢測(cè)問題,提出了一種基于免疫理論的靜態(tài)分析和動(dòng)態(tài)分析相結(jié)合的shellcode檢測(cè)算法.檢測(cè)器采用超橢球編碼方式提高非我空間覆蓋率以獲得更好的檢測(cè)效果.
生物免疫系統(tǒng)能夠?qū)θ肭秩梭w的細(xì)菌、病毒等非我物質(zhì)精準(zhǔn)識(shí)別和消滅,是保證人體健康的關(guān)鍵.免疫系統(tǒng)是具有自組織、學(xué)習(xí)記憶和分布式等特征的復(fù)雜自適應(yīng)系統(tǒng).基于生物免疫系統(tǒng)的研究成果,多類人工免疫算法被提出,不斷完善并應(yīng)用于多個(gè)工程領(lǐng)域,主流的免疫算法包括:免疫網(wǎng)絡(luò)、陰性選擇算法、克隆選擇算法和危險(xiǎn)理論等.
鑒于識(shí)別有害物質(zhì)的天然相似性,人工免疫系統(tǒng)被用于解決信息安全領(lǐng)域的多個(gè)問題[7],包括惡意代碼檢測(cè)[8]、入侵檢測(cè)[9]、垃圾郵件檢測(cè)[10]等.本文將人工免疫理論應(yīng)用于shellcode的檢測(cè)問題.
免疫系統(tǒng)需要準(zhǔn)確區(qū)分自我物質(zhì)和非我物質(zhì),這樣才能保證在不破壞自身機(jī)體的前提下識(shí)別和消除病毒等抗原.為避免自身免疫疾病出現(xiàn),未成熟T細(xì)胞在胸腺中經(jīng)歷耐受過程,只有不與自身蛋白質(zhì)匹配的才可成熟并釋放到體液中,否則在胸腺中被消滅.
Forrest S等[11]模擬生物免疫耐受過程,提出了陰性選擇算法,包含檢測(cè)器生成和檢測(cè)兩個(gè)環(huán)節(jié).
1) 生成檢測(cè)器:隨機(jī)產(chǎn)生的不匹配任何自我元素的字符串構(gòu)成集合D;
2) 檢測(cè)過程:用集合D中元素測(cè)試待檢字符串,若匹配則為非我有害數(shù)據(jù).
最初的陰性選擇算法采用二進(jìn)制字符串編碼,基于r連續(xù)位匹配.之后提出實(shí)值向量編碼方式,可利用計(jì)算幾何特性加快算法速度.Gonzalez F等[12]將檢測(cè)器定義為以n維實(shí)值向量為中心,半徑r固定的超球體.為減少檢測(cè)器數(shù)量,Zhou J等[13]提出改進(jìn)的半徑可變超球體模型.Joseph M等[14]提出超橢球模型,通過伸展半軸使檢測(cè)器更加靈活.Joseph M指出,只需一半數(shù)目的超橢球檢測(cè)器即可達(dá)到超球體同樣效果的非我空間覆蓋.因此為了提高檢測(cè)器集合對(duì)非我空間覆蓋率,本文采用超橢球形式對(duì)shellcode檢測(cè)器編碼.
克隆選擇理論揭示了生物免疫系統(tǒng)對(duì)抗原的強(qiáng)化學(xué)習(xí)過程.當(dāng)細(xì)菌或病毒等抗原入侵人體后,能與抗原結(jié)合的淋巴細(xì)胞會(huì)大量繁殖并高頻變異,不斷提高與抗原的親和度.淋巴細(xì)胞的多樣性依賴于細(xì)胞的高頻變異,主要通過隨機(jī)位置的基因修改實(shí)現(xiàn),優(yōu)秀的克隆后代會(huì)被保存下來.當(dāng)相同抗原再次入侵時(shí),記憶B淋巴細(xì)胞能夠快速響應(yīng)保障人體健康.
基于上述原理,De Castro等[15]將克隆選擇理論引入到信息計(jì)算領(lǐng)域,并應(yīng)用于模式識(shí)別和旅行商等多類工程問題.本文利用克隆選擇算法通過對(duì)超橢球檢測(cè)器遺傳變異,獲得性能更優(yōu)的檢測(cè)器后代,提高對(duì)shellcode的識(shí)別效果.
提取shellcode樣本特征,包括基于靜態(tài)反匯編技術(shù)獲得指令助記符序列和基于動(dòng)態(tài)模擬執(zhí)行技術(shù)獲得API函數(shù)調(diào)用序列.基于n-gram模型對(duì)上述兩類序列分解成n長(zhǎng)度的序列片段.基于信息熵對(duì)n-gram片段進(jìn)行篩選,選擇對(duì)shellcode判定貢獻(xiàn)較大的n-gram片段組成特征集合.靜態(tài)和動(dòng)態(tài)特征提取過程如圖1所示.

圖1 靜態(tài)和動(dòng)態(tài)特征提取Fig.1 Static and dynamic features extraction
反匯編技術(shù)在病毒特征碼提取和軟件解密等方面應(yīng)用較多.匯編指令攜帶了shellcode惡意操作的關(guān)鍵信息,利用反匯編技術(shù)將二進(jìn)制shellcode轉(zhuǎn)換為匯編語言.反匯編算法包括線性掃描和遞歸下降,反匯編軟件有IDA、W32Dasm和C32Asm等.
動(dòng)態(tài)分析是檢測(cè)多態(tài)shellcode最有效的手段.無論shellcode如何變形或加密,最終在執(zhí)行過程中都會(huì)調(diào)用系統(tǒng)API函數(shù)來完成特定功能.shellcode實(shí)現(xiàn)的功能主要有開放shell端口、下載文件并執(zhí)行、主動(dòng)連接控制服務(wù)器等.通過掛鉤技術(shù)可以監(jiān)控shellcode調(diào)用API函數(shù)的過程,并可獲得輸入?yún)?shù)和返回值等信息.工具scdbg利用掛鉤技術(shù)HOOK多達(dá)200多個(gè)API,通過模擬可獲得API函數(shù)調(diào)用序列,包括網(wǎng)絡(luò)操作、文件操作、進(jìn)線程操作和動(dòng)態(tài)庫(kù)加載等敏感行為.
n-gram代表連續(xù)n個(gè)單詞構(gòu)成的序列,是自然語言處理中詞匯識(shí)別常用的統(tǒng)計(jì)模型.本文中將n-gram模型用于匯編語言指令序列和API函數(shù)調(diào)用序列特征提取,把匯編指令助記符和API函數(shù)名看成是n-gram模型中的單詞.將大量shellcode樣本和良性樣本靜態(tài)分析和動(dòng)態(tài)分析獲得的序列用于訓(xùn)練語料庫(kù),可以統(tǒng)計(jì)獲得n-gram特征頻度信息,并作為后續(xù)學(xué)習(xí)的特征.
對(duì)匯編指令序列提取靜態(tài)n-gram特征,該特征代表了匯編指令助記符局部語義順序.同理,對(duì)于API函數(shù)調(diào)用序列提取動(dòng)態(tài)n-gram特征,該特征代表了shellcode執(zhí)行時(shí)API函數(shù)調(diào)用的局部語義順序.
靜態(tài)反匯編和模擬執(zhí)行后,從shellcode樣本中提取的某些n-gram特征可能會(huì)出現(xiàn)在良性樣本中.為了保證篩選出的特征對(duì)shellcode識(shí)別更有價(jià)值,采用基于信息熵的特征篩選方法,通過計(jì)算每個(gè)n-gram特征對(duì)shellcode判定的信息增益,篩選出貢獻(xiàn)程度更高的特征.
隨機(jī)變量X的熵值H(X)計(jì)算如下:
(1)
其中,X取值1或0,1表示shellcode樣本,0表示良性樣本.p(X=ai)是隨機(jī)變量X=ai的概率.
定義隨機(jī)變量Y,Y取值1或0,1表示樣本中含有特征f,0表示樣本中不含有特征f.已知變量Y的取值情況下,X的條件熵計(jì)算如下:
(2)
知道Y的取值后對(duì)判斷X的值提供的信息量定義為信息增益IG,計(jì)算公式如下:
IG(X|Y)=H(X|Y)-H(X)
(3)
IG值越大表明特征f對(duì)于區(qū)分shellcode和良性樣本的貢獻(xiàn)價(jià)值越大,即能更好判定樣本是否為shellcode.計(jì)算所有n-gram特征的IG值,選擇前N個(gè)特征組成特征集合F={f1,f2,…,fN}.
采用統(tǒng)一的格式化數(shù)據(jù)對(duì)樣本的特征進(jìn)行實(shí)值編碼,編碼的特征向量為p=(p1,p2,…,pN).每個(gè)樣本對(duì)應(yīng)一個(gè)特征向量,特征向量第i維的取值pi代表特征集合F中特征fi在該樣本的出現(xiàn)的次數(shù).
n維超橢球定義如下:
(x-ω)TΑ(x-ω)=1
(4)
其中,Α是n階實(shí)對(duì)稱正定矩陣,ω是超橢球的中心.
超球體在n個(gè)正交半軸方向上進(jìn)行拉伸可以生成n維超橢球.超橢球檢測(cè)器的體積V代表可覆蓋的非我空間的大小.
V=Ωnl1l2…ln
(5)
其中,l1,l2,…,ln是超橢球n個(gè)半軸,Ωn是n維超球體的體積.
(6)
正定矩陣Α可分解成Α=VΛVT,Α的正交特征向量是矩陣V的列.Λ的對(duì)角元素是與V的特征向量相關(guān)的特征值.
(x-ω)TVΛVT(x-ω)=1
(7)
Λ的對(duì)角元素Λi,i(1≤i≤n)與超橢球半軸li的關(guān)系如下:
(8)
公式(9)用于判斷一個(gè)樣本特征p是否在超橢球檢測(cè)器d的覆蓋范圍內(nèi).如果小于1,則p落在d的范圍內(nèi);如果等于1,則p位于d的球體表面;如果大于1,則p不在d的檢測(cè)范圍內(nèi).
(p-ω)TΑ(p-ω)<1
(9)
如果待檢樣本的特征向量p落在成熟檢測(cè)器d的超橢球內(nèi)部,則判定為shellcode代碼.
基于免疫理論的shellcode檢測(cè)模型包括檢測(cè)器生成和shellcode檢測(cè)兩個(gè)階段,如圖2所示.

圖2 基于免疫理論的shellcode檢測(cè)模型Fig.2 Shellcode detection model based on immune theory
良性樣本經(jīng)過特征提取和編碼后構(gòu)成自我元素集合,未成熟檢測(cè)器來源包括shellcode特征編碼、隨機(jī)生成和克隆變異.基于陰性選擇算法判斷未成熟超橢球檢測(cè)器是否會(huì)識(shí)別自我元素,通過免疫耐受檢驗(yàn)的成為成熟超橢球檢測(cè)器.對(duì)成熟檢測(cè)器克隆和變異,生成更加優(yōu)秀的后代.
檢測(cè)器集合為D={d1,d2,…,dNd},檢測(cè)器總數(shù)為Nd.自我元素集合定義為S={s1,s2,…,sNs},集合中自我元素總數(shù)為Ns.在陰性選擇算法的免疫耐受環(huán)節(jié),如果未成熟超橢球檢測(cè)器覆蓋了自我元素則會(huì)被淘汰,只有經(jīng)過自我集合S中所有元素的檢驗(yàn)才會(huì)成熟,加入到成熟檢測(cè)器集合D中.
免疫系統(tǒng)具有強(qiáng)化學(xué)習(xí)的能力,為了提高超橢球檢測(cè)器的性能,即在同等數(shù)目的情況下,通過對(duì)其幾何形狀的優(yōu)化調(diào)整,使得檢測(cè)器集合對(duì)非我空間的覆蓋率更高.本文對(duì)親和度高的檢測(cè)器進(jìn)行克隆,然后利用變異手段生成更加優(yōu)秀的超橢球檢測(cè)器后代,提高shellcode檢測(cè)效果.
4.4.1 克隆選擇算法
優(yōu)化檢測(cè)器,使其覆蓋更多的非我空間,同時(shí)降低與其他檢測(cè)器的重疊.克隆后代數(shù)目Num(d)與親和度affinity(d)成正比,α為克隆系數(shù),計(jì)算公式如下.
Num(d)=α*affinity(d)
(10)
檢測(cè)器d的親和度affinity(d)計(jì)算公式如下.
affinity(d)=eN(d,A)-c*O(d,D)
(11)
其中,A為非我空間的抗原集合,D為檢測(cè)器集合.N(d,A)代表檢測(cè)器d覆蓋的非我抗原數(shù)目,O(d,D)代表檢測(cè)器d與其他檢測(cè)器重疊空間,c為重疊懲罰因子.
利用2n叉樹對(duì)超橢球重疊空間進(jìn)行近似計(jì)算.定義樹的深度為k,則2n叉樹可將n維空間分割成2nk個(gè)超矩形.對(duì)檢測(cè)器集合D中超橢球覆蓋的超矩形進(jìn)行計(jì)算,得出檢測(cè)器d的重疊空間O(d,D).
4.4.2 超橢球檢測(cè)器遺傳變異
借鑒生物系統(tǒng)遺傳變異的原理,為了生成更高親和度的檢測(cè)器,對(duì)檢測(cè)器克隆后代進(jìn)行變異.對(duì)超橢球檢測(cè)器的遺傳變異滿足兩個(gè)原則:
1)經(jīng)過有限的變異操作,可生成其他任意形狀的超橢球;
2)變異是隨機(jī)的,但變異后的超橢球與變異前的距離不能太遠(yuǎn).
主流的變異策略有:高斯變異、柯西變異和非均勻變異等,本文采用高斯變異.超橢球變異操作主要有三種方式:改變朝向、遷移中心和伸縮半軸.
1)改變朝向

(12)
經(jīng)過多次的上述二維空間的旋轉(zhuǎn)可以實(shí)現(xiàn)超橢球d在n維空間的轉(zhuǎn)向.旋轉(zhuǎn)后的超球體dm分布在原超球體d的方向附近的概率更大.
2) 遷移中心

3)伸縮半軸

shellcode檢測(cè)過程如圖2所示,提取待檢測(cè)樣本的反匯編指令序列和API函數(shù)調(diào)用序列,分片為n-gram特征,基于特征集合F={f1,f2,…,fN}計(jì)算每個(gè)樣本特征值,生成待檢測(cè)樣本的特征向量p=(p1,p2,…,pN).
樣本特征p依次與成熟檢測(cè)器集合中元素匹配.如果(p-ω)TΑ(p-ω)<1,則p落在超橢球檢測(cè)器d的覆蓋范圍內(nèi),樣本被檢測(cè)器d檢測(cè),判定為shellcode樣本.如果通過所有檢測(cè)器的檢測(cè)均未識(shí)別,則判定為良性樣本.
實(shí)驗(yàn)過程中,我們從Metasploit和exploit-db等渠道收集并提取了非編碼shellcode樣本共500個(gè).良性樣本共收集500個(gè),主要來源是exe和dll等可執(zhí)行文件代碼片段以及http等協(xié)議網(wǎng)絡(luò)流量片段,長(zhǎng)度在50-300字節(jié)之間.
使用多態(tài)引擎對(duì)shellcode編碼,包括Clet,ADMmuate,Jempiscodes,TAPioN以及利用Metasploit中msfvenom命令調(diào)用編碼引擎Alpha2,Countdown,JmpcCallAdditive,Pex,Call4_dword_xor和Shikata_ga_nai等生成多態(tài)shellcode樣本.
在shellcode靜態(tài)和動(dòng)態(tài)特征提取方面,本文基于capstone反匯編框架對(duì)shellcode樣本進(jìn)行線性反匯編并獲取指令序列,利用scdbg工具對(duì)shellcode樣本模擬執(zhí)行后獲得API函數(shù)調(diào)用序列.基于matlab軟件完成n-gram特征提取和特征向量計(jì)算,實(shí)現(xiàn)人工免疫過程包括檢測(cè)器生成和克隆變異等算法.
5.2.1 超橢球檢測(cè)器編碼方式優(yōu)勢(shì)分析
將收集到shellcode樣本和良性樣本按照3:2的比例分成免疫訓(xùn)練集合與免疫測(cè)試集合.利用訓(xùn)練集合中的良性樣本生成自我元素集合,提取訓(xùn)練集合中的shellcode樣本特征作為未成熟檢測(cè)器來源之一.
對(duì)比r固定超球體、r可變超球體和超橢球編碼,r固定超球體采用遷移中心的變異策略,r可變超球體采用遷移中心和調(diào)整半徑的變異策略,超橢球采用遷移中心、改變朝向和伸縮半軸的變異策略.下面對(duì)比三種檢測(cè)器編碼方式在對(duì)非我空間覆蓋率即檢測(cè)效果方面的優(yōu)劣.取相同的遺傳變異代數(shù)T=100,對(duì)比檢測(cè)器數(shù)目Nd一樣時(shí),三類編碼檢測(cè)器對(duì)shellcode的檢測(cè)效果.

圖3 不同編碼方式檢測(cè)率對(duì)比Fig.3 Detection rate of different coding
如圖3所示,超橢球檢測(cè)器的檢測(cè)率最高,其次是半徑可變超球體,半徑固定超球體檢測(cè)效果最差.當(dāng)檢測(cè)器數(shù)目較少時(shí)(Nd=200和Nd=400),三者之間的檢測(cè)率差距較大,因?yàn)槌瑱E球檢測(cè)器數(shù)目較少時(shí)仍能通過伸縮半軸和改變朝向等方式實(shí)現(xiàn)非我空間的有效覆蓋.檢測(cè)器數(shù)目Nd較多時(shí)(Nd=1000和Nd=1200),三類檢測(cè)器的檢測(cè)效果趨于接近,說明當(dāng)檢測(cè)器數(shù)目足夠多時(shí)均能對(duì)非我空間實(shí)現(xiàn)較充分的覆蓋.
5.2.2 誤報(bào)率分析
收集的良性樣本包括網(wǎng)絡(luò)流量片段和可執(zhí)行文件片段,采用10次10折交叉驗(yàn)證方法,將數(shù)據(jù)集分成10份,輪流將其中9份作為訓(xùn)練樣本集,1份作為測(cè)試樣本集,重復(fù)10次,這兩類良性樣本的誤報(bào)率結(jié)果如圖4所示.

圖4 誤報(bào)率Fig.4 False positive rate
流量片段的誤報(bào)率明顯小于代碼片段,這是由于exe或dll等可執(zhí)行文件的代碼片段包含匯編指令,并且調(diào)用的API函數(shù)也可能包括連接網(wǎng)絡(luò)、文件操作和啟動(dòng)程序等功能,造成該類良性樣本提取的特征向量與shellcode提取的特征向量比較接近,因此誤報(bào)率相對(duì)較高.
5.2.3 多態(tài)shellcode檢測(cè)效果
對(duì)免疫測(cè)試集合中的200個(gè)shellcode樣本分別使用5.1節(jié)中的10類編碼引擎處理,共生成2000個(gè)多態(tài)shellcode樣本.訓(xùn)練集合仍使用非編碼shellcode樣本.下面分析本文所提出的AIS-SDA檢測(cè)算法與反匯編?kù)o態(tài)分析方法和API調(diào)用序列動(dòng)態(tài)分析方法進(jìn)行比較,測(cè)試結(jié)果如表1和表2所示.

表1 非編碼shellcode檢測(cè)效果Table 1 Detection performance for non-encoded shellcode

表2 多態(tài)shellcode檢測(cè)效果Table 2 Detection performance for polymorphic shellcode
shellcode檢測(cè)是基于漏洞攻擊的網(wǎng)絡(luò)對(duì)抗中迫切需要解決的關(guān)鍵安全問題.目前殺毒軟件和入侵檢測(cè)系統(tǒng)均嵌入了shellcode檢測(cè)功能,能夠在漏洞滲透過程中對(duì)攻擊流量或惡意文件進(jìn)行攔截.但是對(duì)于自修改的多態(tài)shellcode,由于隱藏了靜態(tài)特征碼,該類安全產(chǎn)品檢測(cè)率較低.為了解決不斷翻新的多態(tài)shellcode,受到生物免疫系統(tǒng)準(zhǔn)確識(shí)別入侵病毒的機(jī)理啟發(fā),本文提出了基于動(dòng)態(tài)分析和靜態(tài)分析相結(jié)合的shellcode免疫檢測(cè)算法,實(shí)驗(yàn)結(jié)果表明所提算法具有較好的檢測(cè)效果.
:
[1] Basu A,Mathuria A,Chowdary N.Automatic generation of compact alphanumeric shellcodes for X86[M].Information System Security,Berlin:Springer,2014:399-410.
[2] Verma N,Mishra V,Singh V P.Detection of alphanumeric shellcodes using similarity index[C].Proc of 2014 International Conference on Advances in Computing,Communications and Informatics,2014:1573-1577.
[3] Zhao Zi-ming,Ahn Gail-Joon.Using instruction sequence abstraction for shellcode detection and attribution[C].Proc of 2013 IEEE Conference on Communications and Network Security,2013:323-331.
[4] Polychronakis M,Anagnostakis K G,Markatos E P.Network-level polymorphic shellcode detection using emulation[J].Journal in Computer Virology,2006,4064(4):54-73.
[5] Dong Peng-cheng,Kang Fei,Shu Hui.A dynamic method for detecting and analysising of shellcode[J].Journal of Chinese Computer Systems,2013,34(7):1644-1649.
[6] Gu Bo-xuan,Bai Xiao-le,Yang Zhi-min,et al.Malicious shellcode detection with virtual memory snapshots[C].Proc of the 29th Conference on Information Communications,2010:974-982.
[7] Tan Ying.Artificial immune system:applications in computer security[M].Hoboken,NJ:Wiley-IEEE Computer Society Press,2016.
[8] Brown J,Anwar M,Dozier G.Detection of mobile malware:an artificial immunity approach[C].Proc of 2016 IEEE Symposium on Security & Privacy,2016:74-80.
[9] Rathee G,Bano P,Singh S.Artificial immune system based statistical model for intrusion identification[J].International Journal of Computer Science and Mobile Computing,2015,4(6):170-176.
[10] Idris I,Selamat A,Omatu S.Hybrid email spam detection model with negative selection algorithm and differential evolution[J].Engineering Applications of Artificial Intelligence,2014,28(2):97-110.
[11] Forrest S,Perelson A S,Allen L,et al.Self-nonself discrimination in a computer[C].Proc of 1994 IEEE Symposium on Research in Security and Privacy,1994:202-212.
[12] Gonzalez F,Dasgupta D.Anomaly detection using real-valued negative selection[J].Genetic Programming and Evolvable Machines,2003,4(4):383-403.
[13] Zhou J,Dasgupta D.Real-valued negative selection algorithm with variable-sized detectors[C].Proc of Genetic and Evolutionary Computation-GECCO,2004:287-298.
[14] Shapiro J M,Lamont G B,Peterson G L.An evolutionary algorithm to generate hyper-ellipsoid detectors for negative selection[C].Proc of the 7th Annual Conference on Genetic and Evolutionary Computation,2005:337-344.
[15] De Castro L N,Von Zuben F J.Learning and optimization using the clonal selection principle[J].IEEE Transactions on Evolutionary Computation,2002,6(3):239-251.
附中文參考文獻(xiàn):
[5] 董鵬程,康 緋,舒 輝.一種shellcode動(dòng)態(tài)檢測(cè)與分析技術(shù)[J].小型微型計(jì)算機(jī)系統(tǒng),2013,34(7):1644-1649.