倪明濤 趙 波 吳福生 樊佩茹
1(武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院 武漢 430072) 2(空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室(武漢大學(xué)) 武漢 430072) 3 (樂山師范學(xué)院計(jì)算機(jī)科學(xué)學(xué)院 四川樂山 614000) (nmt@whu.edu.cn)
物聯(lián)網(wǎng)(Internet of things, IoT)概念由國際電信聯(lián)盟于2005年11月在消息世界峰會(huì)上正式提出.隨著傳感網(wǎng)、云計(jì)算、微芯片等技術(shù)不斷的發(fā)展,物聯(lián)網(wǎng)產(chǎn)業(yè)也迅速發(fā)展壯大[1].專家估計(jì),到2020年,物聯(lián)網(wǎng)設(shè)備的數(shù)量會(huì)達(dá)到300億臺(tái)[2],物聯(lián)網(wǎng)的全球市場規(guī)模將會(huì)達(dá)到7.1萬億美元[3].
隨著物聯(lián)網(wǎng)逐步應(yīng)用到各個(gè)領(lǐng)域,物聯(lián)網(wǎng)設(shè)備端的安全問題日益凸顯.物聯(lián)網(wǎng)是物理設(shè)備彼此連接的網(wǎng)絡(luò),這些物理設(shè)備由各種微處理芯片和片上系統(tǒng)(system on chip, SoC)組成.與傳統(tǒng)的計(jì)算機(jī)相比,物聯(lián)網(wǎng)設(shè)備具有功耗低、尺寸小、資源受限等特點(diǎn),這些特性使得物聯(lián)網(wǎng)設(shè)備更加難以編程和交互,也導(dǎo)致了物聯(lián)網(wǎng)設(shè)備在安全上的先天不足.如何對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行保護(hù),使其免受各種攻擊和侵害,成為當(dāng)前物聯(lián)網(wǎng)安全的一個(gè)關(guān)鍵問題.
盡管物聯(lián)網(wǎng)設(shè)備品種繁多,硬件架構(gòu)千差萬別,但其程序、控制結(jié)構(gòu)等與傳統(tǒng)計(jì)算機(jī)系統(tǒng)相似.因此,為了對(duì)物聯(lián)網(wǎng)設(shè)備進(jìn)行保護(hù),研究者借用傳統(tǒng)計(jì)算機(jī)系統(tǒng)的的入侵檢測方法,提出了相應(yīng)的解決方案.文獻(xiàn)[4]通過對(duì)不同安全區(qū)域的流量特征進(jìn)行提取,在不需要解析具體協(xié)議的情況下,發(fā)現(xiàn)物聯(lián)網(wǎng)設(shè)備中的異常流量;文獻(xiàn)[5]從物聯(lián)網(wǎng)設(shè)備的通訊協(xié)議入手,采用成熟的協(xié)議格式和狀態(tài)分析技術(shù),對(duì)報(bào)文中協(xié)議狀態(tài)的變化進(jìn)行監(jiān)測,達(dá)到對(duì)異常行為檢測的目的;文獻(xiàn)[6]通過在物聯(lián)網(wǎng)設(shè)備底層中加入系統(tǒng)軟件,對(duì)運(yùn)行于設(shè)備中的程序進(jìn)行監(jiān)控,對(duì)軟件的正常和異常行為進(jìn)行刻畫,判斷程序狀態(tài)轉(zhuǎn)移的趨勢,監(jiān)控操作序列等方法檢測異常行為.但是,這些傳統(tǒng)的基于入侵檢測的安全機(jī)制在應(yīng)用于物聯(lián)網(wǎng)設(shè)備時(shí)存在局限性,主要問題有3個(gè)方面:
1) 針對(duì)物聯(lián)網(wǎng)設(shè)備的攻擊手段越來越高明,采用緩慢滲透的入侵攻擊流量稀少[7],傳統(tǒng)的基于流量特征的異常檢測機(jī)制在物聯(lián)網(wǎng)場景下難以從稀疏的樣本中提取有效的流量特征,從而導(dǎo)致檢測失效;
2) 由于物聯(lián)網(wǎng)設(shè)備的專有性,很多通信協(xié)議采用私有或加密的方式,針對(duì)報(bào)文協(xié)議的分析在此種場景中則無能為力;
3) 物聯(lián)網(wǎng)設(shè)備的資源有限,運(yùn)行的系統(tǒng)千差萬別,甚至不少程序運(yùn)行于無操作系統(tǒng)的“裸”設(shè)備上,且對(duì)實(shí)時(shí)性的要求較高,這些特性導(dǎo)致很難在這些設(shè)備中部署殺毒軟件或監(jiān)控軟件.
針對(duì)上述問題,本文提出了一種基于芯片輻射的物聯(lián)網(wǎng)設(shè)備異常檢測方案(chip radio emission based anomaly detection, CREBAD),主要貢獻(xiàn)有3個(gè)方面:
1) 提出了一種基于芯片輻射能量序列檢測方法,通過分析給定時(shí)間窗口的輻射能量序列,判斷其是否為異常行為,無需在物聯(lián)網(wǎng)設(shè)備中額外部署檢測軟件,不依賴于對(duì)網(wǎng)絡(luò)流量的分析;
2) 提出了一種無侵入式的檢測方式,基于芯片在工作時(shí)輻射能量的物理特征,具有普適性,不依賴于硬件架構(gòu),也不受限于操作系統(tǒng),且物聯(lián)網(wǎng)設(shè)備對(duì)檢測過程不可預(yù)知、不可篡改、不可抵賴;
3) 利用一類支持向量機(jī)(one-class SVM, OCSVM)對(duì)異常值敏感的特性,能夠在只有一類正常訓(xùn)練數(shù)據(jù)集的前提下,對(duì)無法預(yù)測的異常行為序列進(jìn)行有效檢測.
常見的物聯(lián)網(wǎng)設(shè)備異常檢測方案,從檢測層次來劃分,可分為網(wǎng)絡(luò)層、軟件層和物理硬件層.
在網(wǎng)絡(luò)層,文獻(xiàn)[8]提出了一種使用異常方法的僵尸網(wǎng)絡(luò)檢測方案.作者認(rèn)為,僵尸網(wǎng)絡(luò)會(huì)導(dǎo)致6LoWPAN傳感器節(jié)點(diǎn)流量的意外變化.所提出的解決方案計(jì)算3個(gè)度量的平均值以組成正常行為配置文件:TCP控制字段、數(shù)據(jù)包長度和每個(gè)傳感器的連接數(shù)之和.然后,系統(tǒng)會(huì)監(jiān)視網(wǎng)絡(luò)流量,并在任何節(jié)點(diǎn)的度量標(biāo)準(zhǔn)違反計(jì)算的平均值時(shí)發(fā)出警報(bào).文獻(xiàn)[9]介紹了一種物聯(lián)網(wǎng)分布式內(nèi)部異常檢測系統(tǒng),其原理是通過監(jiān)視單跳鄰居節(jié)點(diǎn)的特性(如分組大小和數(shù)據(jù)速率)來查找網(wǎng)絡(luò)中的任何差異;文獻(xiàn)[10]介紹了一種入侵檢測系統(tǒng),旨在檢測物聯(lián)網(wǎng)設(shè)備中的蟲洞攻擊.作者假設(shè),蠕蟲攻擊總是在系統(tǒng)中出現(xiàn)癥狀,例如隧道兩端交換大量的控制報(bào)文,或者攻擊成功后形成大量的鄰居.使用這個(gè)邏輯,作者提出了3種算法來檢測網(wǎng)絡(luò)中的這種異常情況.根據(jù)他們的實(shí)驗(yàn),該系統(tǒng)在蟲洞檢測方面達(dá)到了94%的正確率,在檢測到攻擊者和攻擊方面達(dá)到了87%.盡管這些系統(tǒng)都達(dá)到了較好的效果,但它們都依賴于特定的場合和假設(shè),缺乏通用性.
在軟件層,有研究者從體系結(jié)構(gòu)、配置文件、規(guī)則制定等角度提出了解決方案.如文獻(xiàn)[11]提出了一個(gè)無線異常檢測的架構(gòu).該架構(gòu)應(yīng)用計(jì)算智能算法來構(gòu)建網(wǎng)絡(luò)設(shè)備的正常行為配置文件.對(duì)于分配給設(shè)備的每個(gè)不同的IP地址,都會(huì)有一個(gè)不同的正常行為配置文件.但這種架構(gòu)不適合部署在低端物聯(lián)網(wǎng)設(shè)備中.Summerville等人[12]開發(fā)了一種旨在在資源受限的物聯(lián)網(wǎng)設(shè)備上運(yùn)行的深度包異常檢測軟件.作者認(rèn)為,小型IoT設(shè)備使用少量且相對(duì)簡單的協(xié)議,導(dǎo)致網(wǎng)絡(luò)負(fù)載高度相似.基于這個(gè)想法,他們使用一種稱為比特模式匹配的技術(shù)來執(zhí)行特征選擇.網(wǎng)絡(luò)有效載荷被視為一個(gè)字節(jié)序列,特征選擇是對(duì)重疊的字節(jié)元組進(jìn)行操作.最終利用這些字節(jié)序列進(jìn)行模式匹配,從而檢測出系統(tǒng)的網(wǎng)絡(luò)異常行為.
在軟件層面,還有基于“規(guī)范”的檢測方法,規(guī)范是定義預(yù)期的一組規(guī)則和閾值.當(dāng)物聯(lián)網(wǎng)設(shè)備行為偏離規(guī)范定義時(shí),基于預(yù)先設(shè)定的規(guī)范,就能檢測到異常.如Le等人[13]提出了一種基于規(guī)范的方法,重點(diǎn)是檢測針對(duì)低功耗和有損網(wǎng)絡(luò)路由協(xié)議(routing protocol for low-power and lossy network, RPL)的攻擊.他們?cè)谟邢逘顟B(tài)機(jī)中指定了RPL行為,用于監(jiān)視網(wǎng)絡(luò)并檢測惡意行為.作者使用仿真跟蹤文件為RPL協(xié)議生成有限狀態(tài)機(jī).這個(gè)配置文件被轉(zhuǎn)換成一套應(yīng)用于從網(wǎng)絡(luò)節(jié)點(diǎn)檢查監(jiān)控?cái)?shù)據(jù)的規(guī)則.根據(jù)他們的實(shí)驗(yàn),準(zhǔn)確率在某些情況下可以達(dá)到100%,但不可回避的是,該方案讓原系統(tǒng)增加了6.3%的能量開銷.Misra等人[14]提出了一種防止IoT中間件從分布式拒絕服務(wù)(distributed denial of service, DDoS)攻擊的方法.為了檢測攻擊,指定每個(gè)中間件層的最大容量.當(dāng)對(duì)圖層的請(qǐng)求數(shù)量超過指定的閾值時(shí),系統(tǒng)會(huì)生成警報(bào).Amaral等人[15]提出了另一個(gè)基于規(guī)范的異常檢測系統(tǒng),允許網(wǎng)絡(luò)管理員創(chuàng)建攻擊檢測規(guī)則.當(dāng)違反這些規(guī)則時(shí),檢測系統(tǒng)向事件管理系統(tǒng)(event management system, EMS)發(fā)送警報(bào).EMS運(yùn)行在沒有資源約束的節(jié)點(diǎn)上,以關(guān)聯(lián)網(wǎng)絡(luò)中不同節(jié)點(diǎn)的警報(bào).這些方法在很大程度上取決于網(wǎng)絡(luò)管理員的專業(yè)知識(shí),這是基于規(guī)范的方法的一個(gè)特點(diǎn).錯(cuò)誤的規(guī)則可能導(dǎo)致過多的誤報(bào)和漏報(bào),對(duì)網(wǎng)絡(luò)安全構(gòu)成更大的風(fēng)險(xiǎn).
軟件方式的異常檢測具有很大的靈活性,能夠隨著系統(tǒng)的變化做出適應(yīng)性的修改.但軟件方式面臨一些無法回避的問題:物聯(lián)網(wǎng)設(shè)備往往是無人值守的,攻擊者攻破設(shè)備后,第1步就是關(guān)閉這些監(jiān)測軟件,從而導(dǎo)致所有后續(xù)的異常檢測失效.更重要的是,很多物聯(lián)網(wǎng)設(shè)備對(duì)實(shí)時(shí)性要求很高,部署檢測系統(tǒng)會(huì)降低實(shí)時(shí)性,這種軟件的檢測方式在很多場合是無法滿足需求的.
在硬件檢測層面上,Lee等人[16]假設(shè)能耗是分析節(jié)點(diǎn)行為的一個(gè)參數(shù).他們定義了網(wǎng)狀路由方案和路由節(jié)點(diǎn)方案的常規(guī)能耗模型,然后,每個(gè)節(jié)點(diǎn)以0.5 s的采樣率監(jiān)測其能量消耗.當(dāng)能耗偏離期望值時(shí),檢測系統(tǒng)將該節(jié)點(diǎn)分類為惡意節(jié)點(diǎn),并將其從路由表中刪除.作者聲稱這是一個(gè)輕量級(jí)的方法,專門為低端物聯(lián)網(wǎng)設(shè)備設(shè)計(jì).但是,僅僅基于能耗閾值的偏離就對(duì)系統(tǒng)的行為認(rèn)定為異常,具有很大的誤判性,不具有說服力.Xiao等人[17]提出了一種基于功率的可編程邏輯控制器(programmable logic controllers, PLC)異常檢測方案.其基本思想是通過分析其功耗來檢測PLC中的惡意軟件執(zhí)行情況,作者通過在PLC電源回路中串聯(lián)一個(gè)分流電阻來實(shí)現(xiàn)功率的測量.為了分析功率變化,作者從功率跡中提取一個(gè)判別特征集,然后訓(xùn)練一個(gè)具有正常樣本特征的長短期記憶(long short-term memory, LSTM)神經(jīng)網(wǎng)絡(luò)來預(yù)測正常樣本的下一個(gè)時(shí)間步長.最后,通過比較預(yù)測樣本和實(shí)際樣本來識(shí)別異常樣本.該方案理論上適合任何物聯(lián)網(wǎng)系統(tǒng),但依賴于分流電阻的能耗測量,需要對(duì)電源部分做適當(dāng)?shù)男薷?,在很多低功耗物?lián)網(wǎng)設(shè)備上難以有效地對(duì)電流進(jìn)行監(jiān)測.同時(shí)加入的分流電阻也會(huì)增加系統(tǒng)的能量開銷.
本文提出的CREBAD也是基于硬件層的檢測方案,但與前面提及的系統(tǒng)不同的是,本方案不需要對(duì)系統(tǒng)進(jìn)行任何的修改,測量的是芯片工作時(shí)對(duì)外輻射的無線電波,任何現(xiàn)代芯片在工作時(shí)都會(huì)向外輻射電磁波信號(hào),具有普遍性.
為了達(dá)到入侵物聯(lián)網(wǎng)設(shè)備的目的,我們假設(shè)攻擊者有3種能力:
1) 攻擊者可以通過網(wǎng)絡(luò)入侵到受害設(shè)備,并對(duì)系統(tǒng)的固件或軟件進(jìn)行非法修改;
2) 攻擊者修改代碼的目的之一是為了對(duì)系統(tǒng)進(jìn)行破壞,因此系統(tǒng)原有的軟件防護(hù)措施會(huì)被對(duì)手關(guān)閉甚至移除;
3) 攻擊者侵入物聯(lián)網(wǎng)設(shè)備后,會(huì)運(yùn)行修改后的程序,用以達(dá)到對(duì)機(jī)密數(shù)據(jù)進(jìn)行竊取和偽造,對(duì)連接的外設(shè)進(jìn)行非法控制和破壞的目的.
由于物聯(lián)網(wǎng)設(shè)備的硬件特性,與傳統(tǒng)計(jì)算機(jī)系統(tǒng)相比,運(yùn)行的軟件相對(duì)簡單,行為模式也較為固定.因此,我們認(rèn)為:運(yùn)行于物聯(lián)網(wǎng)設(shè)備中的“正?!避浖男袨槭强深A(yù)期的,其樣本是可以獲取和訓(xùn)練的;運(yùn)行于物聯(lián)網(wǎng)設(shè)備中的“異?!避浖男袨槭遣豢深A(yù)期的,其樣本是無法預(yù)先獲取的.同時(shí),由于物聯(lián)網(wǎng)設(shè)備被對(duì)手非法修改,系統(tǒng)的行為會(huì)發(fā)生改變,這些軟件行為的改變,必然會(huì)引發(fā)芯片輻射能量的相應(yīng)變化.并且,芯片輻射屬于物理特性,對(duì)手無法對(duì)這種特性進(jìn)行篡改,更無法消除異常行為導(dǎo)致的輻射變化.
CREBAD基于芯片工作時(shí)向外輻射的能量特征,利用一類支持向量機(jī)算法,構(gòu)建異常檢測方案.該方案在數(shù)據(jù)采集階段利用時(shí)間窗口對(duì)輻射能量建立時(shí)間序列,然后利用遺傳算法和近似熵理論對(duì)序列特征進(jìn)行提取和構(gòu)造,最后通過降維的方式選擇關(guān)鍵特征.在模型的訓(xùn)練與檢測階段,利用一類支持向量機(jī)對(duì)異常值(奇異性)敏感的特點(diǎn),識(shí)別出異常行為.
在本節(jié)中,我們將先介紹基于芯片輻射異常檢測的可行性,然后給出整體構(gòu)建方案,最后給出特征提取、選擇和樣本訓(xùn)練、檢測的理論基礎(chǔ).
CREBAD的核心思想是通過側(cè)信道的方法來采集芯片內(nèi)部的工作狀態(tài).通常,側(cè)信道方法往往用于攻擊場合,如Li等人[18]的研究工作表明,在廣泛使用的視頻監(jiān)控設(shè)備中,存在著側(cè)信道信息的泄露,即使視頻流被加密,也可以通過視頻差分編碼中的時(shí)間冗余來探測信息.利用這種側(cè)信道信息的泄露,攻擊者可以僅通過對(duì)加密視頻流的流量大小進(jìn)行測量,從而推斷用戶的日常生活行為.受到該思想的啟發(fā),我們利用物聯(lián)網(wǎng)設(shè)備在工作時(shí),其主芯片會(huì)向外輻射電磁波信號(hào)這一物理特性(側(cè)信道信息),并利用這種物理側(cè)信道信息對(duì)目標(biāo)設(shè)備中的異常行為進(jìn)行檢測.其主要原理是:當(dāng)物聯(lián)網(wǎng)設(shè)備在工作時(shí),所有的程序指令都會(huì)在主芯片的CPU中執(zhí)行,不同的任務(wù)或程序執(zhí)行會(huì)引起CPU負(fù)載的變化,從而導(dǎo)致芯片向外輻射的信號(hào)也會(huì)發(fā)生相應(yīng)的改變.為了驗(yàn)證這種想法,我們?cè)谝豢罨贏theros 9331芯片的工業(yè)數(shù)據(jù)采集器上進(jìn)行了簡單的實(shí)驗(yàn).設(shè)備中分別運(yùn)行3個(gè)不同的任務(wù),任務(wù)1在1 s之內(nèi)采集下位機(jī)的各種運(yùn)行狀態(tài),并將數(shù)據(jù)上傳到服務(wù)器,暫停一秒鐘后繼續(xù)開始下次采集和上傳;任務(wù)2與任務(wù)1類似,只是暫停時(shí)間延長,變成了4 s;任務(wù)3進(jìn)行密集運(yùn)算,實(shí)時(shí)統(tǒng)計(jì)系統(tǒng)所有運(yùn)行數(shù)據(jù),并將數(shù)據(jù)壓縮打包,每次持續(xù)時(shí)間大概為4 s,暫停時(shí)間約為1 s.從圖1中可以看出,每個(gè)程序在執(zhí)行時(shí),芯片向外輻射的頻譜信號(hào)都不相同.初步研究結(jié)果為我們進(jìn)行更大規(guī)模、更細(xì)致的研究奠定了基礎(chǔ).
Fig. 1 Spectrum signals corresponding to different tasks圖1 不同任務(wù)對(duì)應(yīng)的頻譜信號(hào)
CREBAD的整體檢測框架如圖2所示,包括數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、特征提取與選擇和訓(xùn)練與預(yù)測模塊.
Fig. 2 CREBAD framework圖2 CREBAD整體框架圖
部署在主芯片附近的近場探頭負(fù)責(zé)收集其工作時(shí)的電磁輻射,這種裝置是完全無侵入式的,對(duì)原有設(shè)備不會(huì)造成任何影響.采集到的原始信號(hào)通過數(shù)字示波器進(jìn)行信號(hào)放大和模數(shù)轉(zhuǎn)換,轉(zhuǎn)變成時(shí)域信號(hào).在數(shù)據(jù)預(yù)處理階段,我們對(duì)時(shí)域信號(hào)進(jìn)行相關(guān)處理,包括對(duì)信號(hào)進(jìn)行平滑處理、消除噪聲等.隨后,我們對(duì)時(shí)域信號(hào)進(jìn)行快速傅立葉變換得到頻域信號(hào),分別從時(shí)域和頻域中提取各種特征.芯片輻射的信號(hào)特征頻譜非常豐富,數(shù)據(jù)維度高,為了實(shí)現(xiàn)更好地分類和降低訓(xùn)練復(fù)雜度,我們使用遺傳算法對(duì)特征進(jìn)行降維.由于沒有異常樣本,只能用正樣本進(jìn)行訓(xùn)練來預(yù)測異常樣本.我們選擇一類支持向量機(jī)來進(jìn)行異常檢測.
為了有效區(qū)分正常信號(hào)和異常信號(hào),我們必須構(gòu)建正確的特征集,包括原始特征提取和特征選擇.本文將捕獲到的時(shí)域信號(hào)按照5 s的窗口大小進(jìn)行分段,稱為一個(gè)樣本.由于每一個(gè)樣本含有豐富的信號(hào)特征,無法直接用于特征訓(xùn)練,因此,對(duì)原始信號(hào)進(jìn)行特征提取和選擇操作變得尤為重要.本文首先利用遺傳算法對(duì)頻域特征進(jìn)行了有效的提取和降維,然后利用近似熵理論提取了表征異常信號(hào)的熵值,最后和其他5個(gè)關(guān)鍵特征一起構(gòu)建成最終的特征樣本集用于后續(xù)的訓(xùn)練與預(yù)測工作.
在轉(zhuǎn)換后的頻譜信號(hào)中,存在大量的無關(guān)和冗余特征,這些特征會(huì)嚴(yán)重降低學(xué)習(xí)模型的準(zhǔn)確性,導(dǎo)致學(xué)習(xí)速度下降.如果直接將這些高維特征用于訓(xùn)練,將會(huì)造成計(jì)算上的“維度災(zāi)難”.當(dāng)數(shù)據(jù)集中包含的特征數(shù)量巨大時(shí),特征子集選擇是緩解這種問題的有效方法.遺傳算法(genetic algorithm, GA)由于在求解組合問題中的優(yōu)異特性,使其成為一種日益流行的特征子集選擇工具.遺傳算法是受自然選擇和遺傳規(guī)律啟發(fā)的自適應(yīng)啟發(fā)式搜索算法,于20世紀(jì)70年代初由文獻(xiàn)[19]提出.傳統(tǒng)的基于梯度的優(yōu)化算法通過迭代改進(jìn)單個(gè)解決方案,以此在多維優(yōu)化表面中搜索最佳點(diǎn),但該算法在初始猜測時(shí)可能陷入局部最優(yōu)而導(dǎo)致結(jié)果失真.遺傳算法比傳統(tǒng)算法更有可能定位全局最優(yōu)點(diǎn),這對(duì)于高維度空間的特征搜索是非常有效的.
遺傳算法從個(gè)體的初始種群開始,每個(gè)個(gè)體代表一個(gè)給定優(yōu)化問題的可能解決方案,并且在連續(xù)的迭代中向一組更優(yōu)或適合的個(gè)體演化.個(gè)體由固定長度的連續(xù)或不連續(xù)的字符串(通常是位串)組成,類似于DNA中的染色體.進(jìn)化過程由3個(gè)基本操作控制:選擇、交叉和變異.選擇過程模仿了自然界適者生存.根據(jù)對(duì)問題解決方案的優(yōu)劣,為總體中的每個(gè)個(gè)體或染色體分配適應(yīng)度值(基于適應(yīng)度函數(shù)).基于適應(yīng)度分?jǐn)?shù),遺傳算法從當(dāng)前種群中挑選出一些父母的最佳個(gè)體,并允許他們將基因遺傳給下一代.交叉算法用以讓2個(gè)父母交換基因,形成稱為子代的新個(gè)體.一部分新的個(gè)體是通過變異來創(chuàng)造的,這涉及到父母基因的隨機(jī)修飾,并有助于維持種群的多樣性.
在信號(hào)處理中,頻域是描述信號(hào)頻率特征的坐標(biāo)系統(tǒng),通常用于分析信號(hào)特征,頻譜圖反映了信號(hào)的頻率和幅度之間的關(guān)系.圖3顯示了快速傅立葉變換(FFT)之后的4個(gè)信號(hào)A,B,C和D的頻譜圖.從圖3中可以看出,當(dāng)頻率處于某一特定區(qū)域時(shí),每個(gè)等級(jí)都會(huì)出現(xiàn)顯著的變化,如虛線框(紅色)中的振幅.但是,也有部分的振幅很難區(qū)分,如位于中部點(diǎn)畫線(綠色)區(qū)域.遺傳算法的全局最優(yōu)特性,使其適合在頻譜中搜索一組適合分類的特征.
Fig. 3 Feature extraction based on the frequency domain圖3 基于頻域的特征提取
本文的主要目標(biāo)之一是要在頻譜空間中獲取多個(gè)有顯著辨識(shí)能力的頻域特征.我們借鑒了文獻(xiàn)[20]提出的特征選擇算法,描述如下:
算法1. 關(guān)鍵頻率特征提取算法.
輸入:對(duì)時(shí)間序列X應(yīng)用快速傅立葉變換后獲得長度為m的序列Y;
輸出:關(guān)鍵頻率特征集合.
①InitPopulatoinSet(Y);
② while criterion not satisfied
③calcFitnessVal();
④ while crossover not complete
⑤selFilterStrings();
⑥doCrossover();
⑦doMutation();
⑧LocalSearchOperation();
⑨ end while
⑩doReplacement();
步驟1.InitPopulationSet()初始化具有f個(gè)特征的集合F、k個(gè)突出特征的子集K以及p個(gè)字符串的總體集合P.每個(gè)字符串的長度 |p| 等于原始特征f的數(shù)量.然后通過基因值1和0對(duì)群體的字符串進(jìn)行編碼.每個(gè)字符串中所需數(shù)量的特征k由子集大小決定.
步驟3.calcFitnessVal()使用前饋神經(jīng)網(wǎng)絡(luò)(feed-forward NN)訓(xùn)練模型計(jì)算P中每個(gè)字符串p的適應(yīng)度值.通過組合特定串的相關(guān)性信息以及NN的分類精度百分比來確定每個(gè)串p即子集的適應(yīng)度.
步驟6.doCrossover()依次對(duì)每個(gè)字符串p執(zhí)行標(biāo)準(zhǔn)交叉操作.使用預(yù)定義的交叉概率進(jìn)行標(biāo)準(zhǔn)的基于等級(jí)的選擇過程,然后選擇可能的過濾器串.
步驟7.doMutation() 對(duì)新生成的后代進(jìn)行標(biāo)準(zhǔn)變異操作.每個(gè)字符串的每一位都遵循預(yù)定義的變異概率.
步驟8.LocalSearchOperation()對(duì)所有新產(chǎn)生的后代依次進(jìn)行局部搜索操作,以重新調(diào)整1 b的數(shù)量.通過一般和特殊的特征可以修復(fù)和改進(jìn)子集的質(zhì)量.然后檢查交叉操作的進(jìn)度,以確定是否完成了所有可能的選定字符串組合.如果未完成,則轉(zhuǎn)至步驟4.
步驟10.doReplacement()將P中最低排列的字符串替換為整個(gè)生成的后續(xù)字符.
在該算法中,本地搜索操作(local search opera-tion, LSO)將給定數(shù)據(jù)集的特殊和一般特征提供給新生成的后代,這是整個(gè)算法的關(guān)鍵.為了在算法中實(shí)施LSO,我們分別用特征分組、后代分割和后代改進(jìn)3個(gè)步驟來實(shí)現(xiàn).第1步只需要執(zhí)行一次,最后一步由2個(gè)主要的操作符Add和Del完成.Add操作符為所生成的后代插入所需數(shù)量的特征,Del運(yùn)算符從生成的后代中移除所需數(shù)量的現(xiàn)有特征.詳細(xì)說明如下:
1) 特征分組.分組的目標(biāo)是為了找出特征之間的關(guān)系,以便該算法可以將不同的信息特征分布到新生成的后代中.算法使用皮爾遜積矩相關(guān)系數(shù)來衡量一個(gè)給定的訓(xùn)練集的不同特征之間的相關(guān)性.2個(gè)頻率i和j之間的相關(guān)系數(shù)ci j為
(1)
(2)
此后,算法根據(jù)其相關(guān)值按升序排列所有特征.為了創(chuàng)建2組特征,算法嘗試將原始特征集合等分成2組:不相似組D和相似組S,2組中的第1個(gè)特征是其中最明顯的特征,最后一個(gè)特征是其中最相似的特征.
2) 后代分割.這一步涉及到分割新生成的后代.該算法將1 b的數(shù)目與新產(chǎn)生的后代進(jìn)行區(qū)分,并以特征數(shù)量的形式放入子組X中.然后將X的每個(gè)元素與D和S的元素進(jìn)行比較.再次嘗試分割X為Xd和Xs,并根據(jù)其相關(guān)值按升序重新排列Xd和Xs的所有特征.
3) 后代改進(jìn).比較Xd和Xs的當(dāng)前長度,Add操作符在每個(gè)添加步驟中使用D或S組向Xd或Xs添加一個(gè)不同的特征,而Del操作符只刪除與Xd或Xs相似的特征,而不考慮每個(gè)刪除步驟中的D或S組.Add運(yùn)算符會(huì)根據(jù)不同數(shù)量的不同順序依次使用2個(gè)組的特征.最后,Xd和Xs中可用的特征在特定子代中由二進(jìn)制數(shù)字1編碼而其余基因被賦值為0,以獲得最終改良的后代.通過不斷迭代,最終得到能夠顯著標(biāo)識(shí)時(shí)間序列的關(guān)鍵頻域特征.
由于異常樣本的不確定性,提取關(guān)鍵頻域的特征還不足以有效地區(qū)分異常行為.因此,本研究還提取了近似熵(approximate entropy,ApEn)作為另外一個(gè)重要的特征維度.
近似熵用來衡量時(shí)間序列的規(guī)律性或復(fù)雜度[21].它被定義為對(duì)數(shù)似然性,即在下一次遞增比較中,相互靠近的特定長度的模式的運(yùn)行將保持接近.與高度不規(guī)則或隨機(jī)的時(shí)間序列相比,確定性時(shí)間序列預(yù)計(jì)具有更小的ApEn值,這意味著其模式具有更高的被相似測量值跟隨的概率.另一方面,對(duì)于隨機(jī)時(shí)間序列,隨著時(shí)間的推移,模式不太可能保持彼此接近.
為了計(jì)算時(shí)間序列yi(i=1,2,…,N)的ApEn值,首先必須使用時(shí)間延遲方法構(gòu)造嵌入空間中的狀態(tài)向量Rm:
(3)
其中,m和τ分別是嵌入維數(shù)和時(shí)間延遲.2個(gè)狀態(tài)向量之間的距離可以定義為它們相應(yīng)元素的最大差異:
d(x(i),x(j))=
(4)
然后,狀態(tài)向量和所有剩余的向量之間的相似度被計(jì)算為
(5)
其中,θ(x)是標(biāo)準(zhǔn)的Heavyside函數(shù),當(dāng)x>0時(shí),θ(x)=1,否則θ(x)=0;r是矢量比較距離.最后,我們定義Φm(r)為
(6)
對(duì)于固定的m,r和τ,ApEn可以計(jì)算為
ApEn(m,r,τ,N)=Φm(r)-Φm+1(r).
(7)
Fig. 4 Approximate entropy of different signals圖4 不同信號(hào)的近似熵
圖4顯示了3個(gè)測試信號(hào),每個(gè)信號(hào)由1 000個(gè)樣本組成.第1個(gè)信號(hào)是2個(gè)正弦波疊加在一起構(gòu)成的;第2個(gè)信號(hào)是某一個(gè)異常行為序列期間采集獲取的;第3個(gè)信號(hào)是一個(gè)正態(tài)分布的隨機(jī)噪聲序列.得到的近似熵分別為0.08,0.47和1.63.正如預(yù)期的那樣,第1個(gè)信號(hào)的近似熵最低且最接近于零,因?yàn)樗?個(gè)確定的正弦波信號(hào)疊加而成,而正態(tài)分布噪聲的近似熵是最大的.用近似熵作為衡量可預(yù)測性的指標(biāo),這意味著第1個(gè)信號(hào)比第3個(gè)信號(hào)更容易預(yù)測,這是顯而易見的.第2個(gè)信號(hào)是半確定性的,雖然比第1個(gè)信號(hào)更難預(yù)測,但比第3個(gè)信號(hào)更可預(yù)測.作為第2個(gè)測試,我們采用相同的測試信號(hào)并隨機(jī)化序列中樣本的順序.這樣的變化對(duì)香農(nóng)熵的計(jì)算沒有任何影響,但由此產(chǎn)生的近似熵分別變?yōu)?.51,1.58和1.65,這表明由于樣本的隨機(jī)化,前2個(gè)信號(hào)的可預(yù)測性已經(jīng)完全丟失.因此,近似熵能夠比較準(zhǔn)確地度量時(shí)間序列的復(fù)雜度,適合作為本研究的一個(gè)重要的樣本特征.
有了以上特征后,如果能結(jié)合一些經(jīng)典的度量特征,將會(huì)進(jìn)一步提升訓(xùn)練的準(zhǔn)確性.因此,本文又對(duì)原始的信號(hào)進(jìn)行離散小波變換,分解成幾個(gè)子信號(hào),每個(gè)子信號(hào)代表不同頻段的原始信號(hào).然后,針對(duì)每個(gè)子信號(hào)計(jì)算5個(gè)用于信號(hào)分析的經(jīng)典度量值.這些是從時(shí)間、統(tǒng)計(jì)和信息論中選出來揭示最重要的信號(hào)特征.S是長度為n的時(shí)間序列樣本,Si是第i個(gè)樣本.
信號(hào)幅度的均值μ:
(8)
信號(hào)的標(biāo)準(zhǔn)偏差:
(9)
信號(hào)的平均瞬時(shí)能量:
(10)
信號(hào)的曲線長度(樣本之間垂直線段的長度之和,它提供了時(shí)間和頻率特征的度量).
(11)
信號(hào)的偏度(衡量數(shù)據(jù)分布的不對(duì)稱性)
(12)
最后,本研究結(jié)合前面遺傳算法提取的關(guān)鍵頻域特征和近似熵ApEn,與均值μ、標(biāo)準(zhǔn)差σ、平均瞬時(shí)能量ε、曲線長度λ、偏度ζ一起作為特征訓(xùn)練數(shù)據(jù)集.
一類支持向量機(jī)是一種流行的異常(離群點(diǎn))檢測算法,廣泛應(yīng)用在文檔分類、機(jī)器故障檢測等場合.受到一般SVM分類器的啟發(fā),Sch?lkopf等人[22]提出了一類支持向量機(jī)OCSVM.它的目的是找到一個(gè)超平面,將訓(xùn)練的一類實(shí)例與期望空間F的原點(diǎn)分離開來;然后,這個(gè)超平面被用來通過確定實(shí)例屬于哪個(gè)類來檢測測試實(shí)例的異常值.
(13)
(w·Φ(xi))≥ρ-ξi,ξi≥0,i=1,2,…,l,
其中,w是與超平面正交的矢量;ξ=[ξ1,ξ2,…,ξl]是松弛變量的向量,用于懲罰被拒絕的實(shí)例;ρ表示邊界(超平面與原點(diǎn)的距離).
(14)
測試實(shí)例z在f(z)為正時(shí)被接受,當(dāng)f(z)為負(fù)時(shí)被拒絕.接受表示測試實(shí)例z被認(rèn)為與訓(xùn)練數(shù)據(jù)集相似;拒絕表示它離開訓(xùn)練數(shù)據(jù)(離群),被認(rèn)為是異常值.
在一類支持向量機(jī)模型中,有一些參數(shù)影響訓(xùn)練數(shù)據(jù)集的決策邊界(decision boundary).如高斯核的多項(xiàng)式內(nèi)核的程度和寬度參數(shù)控制所得到的決策邊界的靈活性.當(dāng)使用高斯核函數(shù)時(shí),如果參數(shù)γ的寬度較小,則SVM模型失去非線性冪,且決策邊界趨于平滑;如果γ很大,那么SVM模型的決策邊界往往對(duì)訓(xùn)練數(shù)據(jù)非常敏感,缺乏正則化.因此,確定考慮分類性能的適當(dāng)參數(shù)非常重要,本文將在后續(xù)實(shí)驗(yàn)中對(duì)該參數(shù)進(jìn)行討論.
圖5為本文的實(shí)驗(yàn)場景,由工業(yè)采集器JC9331、近場探頭、虛擬示波器和臺(tái)式機(jī)組成.近場探頭放置在被測物聯(lián)網(wǎng)設(shè)備主芯片上方,用以采集芯片在工作時(shí)向外輻射的電磁波.采集到的模擬信號(hào)通過屏蔽線傳送到虛擬示波器,然后通過虛擬示波器進(jìn)行模數(shù)轉(zhuǎn)換,將采集到的時(shí)間序列信號(hào)發(fā)送到臺(tái)式機(jī).最后,臺(tái)式機(jī)負(fù)責(zé)對(duì)信號(hào)進(jìn)行變換、濾波、特征提取和訓(xùn)練預(yù)測.
Fig. 5 Experiment platform of CREBAD圖5 CREBAD實(shí)驗(yàn)場景
本文從4個(gè)基本值構(gòu)建了4個(gè)度量指標(biāo)來評(píng)估CREBAD方案.4個(gè)基本值分別是:真陽性(true positive,TP)、真陰性(true negative,TN)、誤報(bào)數(shù)(false positive,FP)和漏報(bào)數(shù)(false negative,FN).度量指標(biāo)分別是:準(zhǔn)確度(Accuracy)、精準(zhǔn)度(Precision)、誤報(bào)率(FalseAlarm)和相關(guān)系數(shù)(correlation coefficient,Cor).計(jì)算為
(17)
Cor=(TP×TN-FP×FN)[(TP+FN)×
(TP+FP)×(TN+FP)×(TN+FN)].
(18)
準(zhǔn)確度是樣本總數(shù)中正確標(biāo)記樣本數(shù)量的百分比,準(zhǔn)確度越高,分類性能越好.該指標(biāo)反映了分類器對(duì)整個(gè)樣本的判定能力(將正的判定為正,負(fù)的判定為負(fù)).
相關(guān)系數(shù)是預(yù)測值如何與實(shí)際數(shù)據(jù)相關(guān)的度量.其范圍從-1~1,其中1的相關(guān)系數(shù)對(duì)應(yīng)于完美匹配期望值的預(yù)測,0的相關(guān)系數(shù)對(duì)應(yīng)于隨機(jī)猜測(毫無預(yù)測性可言).
在本節(jié)中,我們進(jìn)行3個(gè)實(shí)驗(yàn)來驗(yàn)證提出的CREBAD檢測方案的可行性和高效性.其中,訓(xùn)練樣本和正常測試樣本來自3.1節(jié)中描述的3個(gè)任務(wù).對(duì)每個(gè)任務(wù),我們分別采集了300個(gè)樣本用于訓(xùn)練,另外300個(gè)樣本用于測試.異常樣本來自一次網(wǎng)絡(luò)攻擊事件,總共采集了200個(gè)樣本.
實(shí)驗(yàn)1是通過改變?chǔ)玫娜≈捣秶袛嗥淙『沃禃r(shí)能夠達(dá)到最合適的檢測率和誤報(bào)率.使用高斯核的OCSVM模型的決策邊界由參數(shù)γ控制.圖6顯示了不同γ值下決策邊界的變化.當(dāng)γ=1時(shí),模型幾乎失去了檢測異常的能力,因?yàn)樗鼘⒄?shù)據(jù)劃分得過于寬泛.隨著γ的增加,決策邊界逐漸變得緊致.當(dāng)γ=50時(shí),模型能夠檢測到所有的未知異常,但由于正常的數(shù)據(jù)收縮得過于狹窄,導(dǎo)致具有較高的誤報(bào)率.因此,綜合考慮檢測率和誤報(bào)率,將γ的取值設(shè)置為10是比較合適的.
Fig. 6 The impact of γ value on decision boundary圖6 γ值對(duì)決策邊界的影響
實(shí)驗(yàn)2是通過與其他常用異常檢測算法的對(duì)比來判定OCSVM的可行性.本實(shí)驗(yàn)選取了隨機(jī)森林(random forest)和局部異常因子(local outlier frac-tions, LOF)兩種常用的異常檢測算法,與本文提出的OCSVM算法進(jìn)行比較,結(jié)果如表1所示:
Table1ComparisonBetweenOCSVMandOtherAnomalyDetectionAlgorithms
表1 OCSVM與其他異常檢測算法的比較結(jié)果
通過比較發(fā)現(xiàn),隨機(jī)森林算法和OCSVM的準(zhǔn)確性相當(dāng),但是其誤報(bào)率偏高(17.1%),不適合用在本文的異常檢測算法中.同樣,LOF的誤報(bào)率高達(dá)60%,且相關(guān)系數(shù)為0,這表明,LOF算法完全不能用在本文的環(huán)境中.
實(shí)驗(yàn)3中我們選取了不同的窗口時(shí)間tw做對(duì)比實(shí)驗(yàn),如表2所示.
從結(jié)果可以看出,當(dāng)tw=1 s時(shí),由于樣本數(shù)據(jù)太少,無法進(jìn)行有效的檢測,隨著tw的增加,實(shí)驗(yàn)結(jié)果逐漸好轉(zhuǎn),但當(dāng)tw>5 s后,我們發(fā)現(xiàn),結(jié)果并沒有出現(xiàn)明顯的變化,這說明,隨著窗口時(shí)間的增加,樣本數(shù)目隨之增長,過多的樣本數(shù)目雖然能夠更加準(zhǔn)確的描述樣本的特征,但同時(shí)也會(huì)引入更多的噪聲干擾數(shù)據(jù),兩者相互抵消,除了增加額外的訓(xùn)練時(shí)間外,對(duì)實(shí)驗(yàn)的結(jié)果并無實(shí)質(zhì)性的提高.因此,選取5 s的窗口時(shí)間是比較合理的.圖7給出了準(zhǔn)確率和誤報(bào)率隨窗口時(shí)間變化的趨勢圖.
Table 2 Comparison Between Different Window Time表2 不同窗口時(shí)間的比較
Fig. 7 Window time on the detection results圖7 窗口時(shí)間對(duì)檢測結(jié)果的影響
針對(duì)物聯(lián)網(wǎng)設(shè)備異常檢測問題,本文提出了一種基于芯片輻射的異常檢測方案CREBAD.方案的新穎之處在于:將原本用于側(cè)信道攻擊的芯片輻射信號(hào),轉(zhuǎn)用到異常檢測領(lǐng)域.利用芯片輻射信號(hào)與工作任務(wù)相關(guān)的物理特性,構(gòu)建了CREBAD方案.首先,利用近場探頭對(duì)芯片輻射信號(hào)進(jìn)行采集,隨后,采集到的信號(hào)經(jīng)過相關(guān)變換,提煉出頻域特征.為了對(duì)復(fù)雜的頻域特征進(jìn)行降維,本文通過遺傳算法、近似熵理論對(duì)特征進(jìn)行了選擇和優(yōu)化.最后,利用一類支持向量機(jī)具有對(duì)異常值敏感的特性,采用該算法對(duì)樣本數(shù)據(jù)進(jìn)行訓(xùn)練和預(yù)測.最后的實(shí)驗(yàn)結(jié)果表明,與常見的隨機(jī)森林、LOF等異常檢測算法相比,本算法檢測精度高誤報(bào)率低.由于芯片輻射的物理特性普遍存在于各種架構(gòu)的物聯(lián)網(wǎng)設(shè)備中,因此,本方案具有較好的適應(yīng)性,適合在設(shè)備種類繁多的物聯(lián)網(wǎng)系統(tǒng)中進(jìn)行部署和推廣.