IoT自動化滲透測試
物聯(lián)網(wǎng)(IoT)是新興技術(shù),是對傳統(tǒng)Internet的擴(kuò)展,它使所有帶有射頻識別(RFID),傳感器或GPS等功能的物體相互連通。
IoT安全問題頻發(fā),但是從攻擊者的角度來看,用來評估物聯(lián)網(wǎng)安全性的方法卻很少。到目前為止,滲透測試已廣泛應(yīng)用于評估傳統(tǒng)的Internet或系統(tǒng)安全性,但通常需要花費(fèi)大量成本和時(shí)間。
下面,我們針對物聯(lián)網(wǎng)的安全問題,提出一種基于BDI模型的滲透測試方法及其自動化,以評估物聯(lián)網(wǎng)的安全性。
1 什么是IoT?
物聯(lián)網(wǎng)(IoT)是1999年由麻省理工學(xué)院(MIT)提出;這段特殊的時(shí)期預(yù)示著重要的新一代信息技術(shù)的出現(xiàn)。物聯(lián)網(wǎng)被認(rèn)為是交易的延伸附加互聯(lián)網(wǎng),便于信息通信傳遞。具有識別位置,跟蹤信息,監(jiān)視射頻識別的數(shù)據(jù)管理(RFID),傳感器或GPS等功能。
根據(jù)現(xiàn)有的文獻(xiàn),物聯(lián)網(wǎng)結(jié)構(gòu)包括三層:應(yīng)用層,網(wǎng)絡(luò)層和感知層。
-
應(yīng)用層為用戶提供在不同的場景中的服務(wù)。
-
網(wǎng)絡(luò)層負(fù)責(zé)信息的傳輸和處理。
-
感知層收集信息并識別對象。(包括各種硬件終端例如RFID,傳感器,GPS等)
目前,物聯(lián)網(wǎng)的使用技術(shù)已應(yīng)用于各種領(lǐng)域,例如智能網(wǎng)格,智能交通,智慧城市,智能家居,智能醫(yī)療保健,體育鍛煉和智能建筑。然而,由于安全事件不斷頻發(fā),引起業(yè)界的廣泛關(guān)注,特別是安全方面。
滲透測試是常見提高安全能力方法之一,通過模擬真實(shí)攻擊來保障安全性。根據(jù)PTES(滲透測試執(zhí)行標(biāo)準(zhǔn)),滲透測試的過程包括交互,信息收集建模,Vul-可行性分析,開發(fā),后期開發(fā)等。滲透測試旨在提高系統(tǒng)的安全性,而不是為了破壞,不會影響目標(biāo)系統(tǒng)的可用性。
越來越多的公司和組織開始利用此方法來識別和解決系統(tǒng)中潛在的漏洞,以防止在未來出現(xiàn)重大紕漏。但是,大部分IoT安全研究都側(cè)重于分析,防御或攻擊特定設(shè)備。
雖然滲透測試是一種非常受歡迎的方法,但是該過程需要花費(fèi)大量的費(fèi)用和時(shí)間。但是,滲透測試自動化可以科學(xué)的提高效率。
2 物聯(lián)網(wǎng)的安全性
與傳統(tǒng)互聯(lián)網(wǎng)相比,物聯(lián)網(wǎng)具有特殊的特征,三層結(jié)構(gòu)會導(dǎo)致更多的漏洞出現(xiàn)。在物聯(lián)網(wǎng)的三層結(jié)構(gòu)中,每一層都有特定的安全性問題,其中一些類似于傳統(tǒng)網(wǎng)絡(luò)。本節(jié)分析每個(gè)人的安全性問題層。
A. 感知層安全
感知層,也稱為識別層或物理層,是從現(xiàn)實(shí)世界中收集信息,通過RFID將這些信息集成到數(shù)字世界中(比如:傳感器,GPS和其他硬件設(shè)備)。感知層中的節(jié)點(diǎn)一般是低功率,計(jì)算能力受限,低存儲空間和重復(fù)使用。
所以,感知層并沒有采用傳統(tǒng)的信息安全解決方案。從每個(gè)感知層網(wǎng)絡(luò)到節(jié)點(diǎn),特定的安全問題會導(dǎo)致更多漏洞和攻擊面出現(xiàn)。例如,節(jié)點(diǎn)是容易遭到竊聽,欺騙,克隆,killing,干擾和屏蔽攻擊等。
B. 網(wǎng)絡(luò)層安全
網(wǎng)絡(luò)層負(fù)責(zé)傳輸應(yīng)用層和感知層之間的信息。網(wǎng)絡(luò)層是各種網(wǎng)絡(luò)架構(gòu)的組合,包括互聯(lián)網(wǎng),移動通信網(wǎng)絡(luò),衛(wèi)星,GSM網(wǎng)絡(luò),GPRS,3G,4G,WIFI網(wǎng)絡(luò)等。
這些網(wǎng)絡(luò)的安全性問題與傳統(tǒng)的相似,容易受到DDoS、中間人、數(shù)據(jù)篡改、數(shù)據(jù)重放和信號干擾等攻擊。此外,混合不同的網(wǎng)絡(luò)架構(gòu)也可能帶來新的安全問題。
C. 應(yīng)用層安全
應(yīng)用層為用戶提供了多種服務(wù),例如:智能電網(wǎng),智能交通,智慧城市,智能家居,智能醫(yī)療保健和智能建筑等。物聯(lián)網(wǎng)可以通過各種平臺訪問,用戶可以通過在不同平臺上的應(yīng)用程序來實(shí)現(xiàn)相應(yīng)的功能。例如:計(jì)算機(jī),移動設(shè)備或智能硬件設(shè)備。
應(yīng)用層(與其他層類似)的安全風(fēng)險(xiǎn)取決于物聯(lián)網(wǎng)場景的攻擊漏洞(例如攻擊緩沖區(qū)溢出,SQL注入,XSS,密碼攻擊和社會工程攻擊)。
3 PENETRATION測試
基于已建立的物聯(lián)網(wǎng)特定安全問題研究和OWASP的物聯(lián)網(wǎng)攻擊項(xiàng)目,我們能夠分析出,傳統(tǒng)物聯(lián)網(wǎng)滲透測試與當(dāng)前物聯(lián)網(wǎng)滲透測試的區(qū)別在于感知層。
我們將物聯(lián)網(wǎng)滲透測試的過程分為四個(gè)階段:
1)信息搜集
2)分析
3)開發(fā)
4)報(bào)告
A.信息收集
初始階段的信息收集是一個(gè)關(guān)鍵步驟,通過探測所有三個(gè)物聯(lián)網(wǎng)結(jié)構(gòu)層(感知、網(wǎng)絡(luò)和應(yīng)用)的信息來確定滲透測試的成功。
1) 感知層:在感知層,收集有關(guān)物理環(huán)境的各種信息,比如節(jié)點(diǎn)的位置、節(jié)點(diǎn)的類型、節(jié)點(diǎn)的范圍、類型連接方式、通信協(xié)議類型、拓?fù)浣Y(jié)構(gòu)節(jié)點(diǎn)、節(jié)點(diǎn)操作系統(tǒng)的類型、節(jié)點(diǎn)的電源、安全機(jī)制、節(jié)點(diǎn)漏洞和傳播協(xié)議漏洞等。
工具示例包括:
? Hardware Bridge API:用于物聯(lián)網(wǎng)滲透測試。
? Nmap:開源免費(fèi)工具,掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端。
? Openvas:開放式漏洞評估系統(tǒng),也可以說它是一個(gè)包含著相關(guān)工具的網(wǎng)絡(luò)掃描器。
? Nessus:目前全世界最多人使用的系統(tǒng)漏洞掃描與分析軟件。
2) 網(wǎng)絡(luò)層:在網(wǎng)絡(luò)層,利用網(wǎng)絡(luò)攻擊工具(如著名的wirelessatck套件、aircack)采集與傳統(tǒng)滲透測試類似的網(wǎng)絡(luò)類型、連接類型、安全機(jī)制、通信類型和傳輸協(xié)議漏洞等信息是非常關(guān)鍵的。
3) 應(yīng)用層:盡管物聯(lián)網(wǎng)被廣泛用于 各種應(yīng)用場景,應(yīng)用層信息收集類似于傳統(tǒng)的信息收集。它是對于收集有關(guān)操作系統(tǒng)類型,端口,服務(wù)信息,訪問控制類型,配置Nmap提供的信息和漏洞信息,vas,Nessus等等。
4) 社會工程信息:用來改善滲透測試性能,社會工程學(xué)信息也需要收集。例如,DNS信息,電子郵件列表,應(yīng)用程序信息等。Dnsenum和Fierce以收集DNS信息而聞名,我們可以通過Harvester收集電子郵件列表。
B.分析
在分析階段,必須對目標(biāo)的相關(guān)信息進(jìn)行組織、分析,隨后識別出目標(biāo)的攻擊路徑,并嘗試獲得目標(biāo)的訪問權(quán)限,通常需要對實(shí)驗(yàn)環(huán)境進(jìn)行有效性檢查。
C.開發(fā)
在此階段,將把分析階段已經(jīng)分析出來的可行的攻擊路徑和規(guī)劃進(jìn)行真正的攻擊。在滲透測試期間,將禁止DDoS攻擊,以確保目標(biāo)的可用性。
1)感知層:感知層物聯(lián)網(wǎng)節(jié)點(diǎn)的特性決定了對感知層的攻擊的方法,是傳統(tǒng)物聯(lián)網(wǎng)滲透測試與傳統(tǒng)物聯(lián)網(wǎng)滲透測試不同的原因。特定攻擊可由硬件橋接API或IoTseeker形成,包括:
? 略讀:非法讀取節(jié)點(diǎn)信息。
? 竊聽:嗅探節(jié)點(diǎn)之間的信息路由器。
? 欺騙:生成偽造的節(jié)點(diǎn)數(shù)據(jù)。
? 克?。?/span>克隆偽節(jié)點(diǎn)。
? 殺死:竊取并破壞節(jié)點(diǎn)。
? 緩沖區(qū)溢出w攻擊節(jié)點(diǎn)。
? 節(jié)點(diǎn)上的訪問控制攻擊:IoTseeker打破了IoT設(shè)備的默認(rèn)密碼。
2) 網(wǎng)絡(luò)層:網(wǎng)絡(luò)層上的攻擊,包括網(wǎng)絡(luò)流量嗅探器,信號重放,信號偽造,并在不同的網(wǎng)絡(luò)通信中劫持信號WIFI,3G,4G,GSM,藍(lán)牙和通過無線攻擊Aircrack-ng等。攻擊的內(nèi)容如下:
? 網(wǎng)絡(luò)流量嗅探器:sniffer之間的信息網(wǎng)絡(luò)。
? 信號重放:重放信息以進(jìn)行攻擊目標(biāo)。
? 假信號:生成信息來進(jìn)行攻擊目標(biāo)。
? 信號劫持:干擾目標(biāo)網(wǎng)絡(luò)并強(qiáng)制將目標(biāo)節(jié)點(diǎn)連接到可控制的偽造網(wǎng)絡(luò)上。
3) 應(yīng)用層:對應(yīng)用層的攻擊與傳統(tǒng)的滲透測試非常相似,包括Web應(yīng)用程序攻擊,軟件緩沖區(qū)溢出攻擊,密碼攻擊等。使用的工具有:
? Metasploit:最受好評的滲透測試框架包括成千上萬的漏洞利用加載。
? W3af:Web應(yīng)用程序攻擊框架。
? John the Ripper:密碼破解。
4)社會工程攻擊:社會工程攻擊是指針對那些缺乏安全意識的普通民眾。假如,員工可以通過向它們啟用對目標(biāo)的訪問特權(quán)并進(jìn)一步的進(jìn)行滲透測試。執(zhí)行此類攻擊的能力需要Setoolkit,它是滲透測試領(lǐng)域最著名的工具,由社會工程攻擊工具組成。
D.報(bào)告
一個(gè)成功的滲透測試模擬會發(fā)現(xiàn)漏洞,其中的細(xì)節(jié)將被處理,并隨后向目標(biāo)所有者報(bào)告,以提高未來的安全性。
通過模擬滲透測試的流程,我們會從中發(fā)現(xiàn)某系統(tǒng)或應(yīng)用平臺的漏洞。通過對流程中的信息進(jìn)行分析評估總結(jié),形成最終的測試報(bào)告,以提高系統(tǒng)的安全性能。
4 BDI模型的自動化
滲透測試的成功需要一套完整的目標(biāo)和計(jì)劃。為了實(shí)現(xiàn)自動化,BDI是解決這一問題的理想模型,因?yàn)樗軌蛟跐B透測試中通過感知和動作與目標(biāo)進(jìn)行交互。
我們可以使用BDI模型為物聯(lián)網(wǎng)滲透測試進(jìn)行建模。BDI模型描述了在滲透測試期間如何選擇與目標(biāo)信息相關(guān)的操作,此過程分為三個(gè)邏輯成分:信念、愿望和意圖。我們的模型遵循Jason解釋器,這個(gè)模型是基于過程推理系統(tǒng)(PRS)。
BDI代理定義為“元組”< Ag,B,D,I,P,A,S >
? Ag是代理名稱;
? B是一個(gè)信念集,代表有關(guān)目標(biāo),并在執(zhí)行操作后將其更新;
? D是一個(gè)愿望集,代表所有選項(xiàng)或可能的滲透測試候選計(jì)劃代理商
? I是一個(gè)意圖集,代表代理商的目標(biāo)或代理商決定執(zhí)行的計(jì)劃。
? P是一個(gè)計(jì)劃集,由可用計(jì)劃組成,每個(gè)計(jì)劃提供有關(guān)如何達(dá)到的信息ve的目標(biāo)。
? A是一個(gè)操作集,其中包括可以執(zhí)行的代理操作。
? S是一個(gè)感知集,它存儲了來自環(huán)境的各種信息。
5 驗(yàn)證
我們通過仿真對物聯(lián)網(wǎng)進(jìn)行自動化滲透測試實(shí)驗(yàn)
我們的模型運(yùn)行在具有2.3 GHz,I5 CPU和8GB的RAM的PC上。如所示,
模擬實(shí)驗(yàn)代表BDI代理和三層物聯(lián)網(wǎng)在Jason中使用內(nèi)部溝通動作,來模擬BDI模型與物聯(lián)網(wǎng)。我們的模型是在AgentSpeak Jason中實(shí)現(xiàn)的,這是一種多代理系統(tǒng)編程語言。
A. 物聯(lián)網(wǎng)目標(biāo)
我們將物聯(lián)網(wǎng)目標(biāo)信息預(yù)先定義為三層,包括服務(wù)和相應(yīng)的漏洞能力,如所示:
該信息存儲在信念集中,三個(gè)物聯(lián)網(wǎng)結(jié)構(gòu)層的仿真需要?jiǎng)?chuàng)建4個(gè)代理,分別表示應(yīng)用層和網(wǎng)絡(luò)層,以及感知層中的兩個(gè)節(jié)點(diǎn)。
網(wǎng)絡(luò)層負(fù)責(zé)應(yīng)用層和感知層之間的信息傳輸此外,為了使場景不確定,我們使用隨機(jī)數(shù)來確定攻擊的結(jié)果。
B. BDI代理
在BDI代理中,特權(quán)的默認(rèn)值是none,初始目標(biāo)是應(yīng)用層中的root特權(quán)或控制IoT。我們在前一節(jié)描述的物聯(lián)網(wǎng)滲透測試的基礎(chǔ)上,預(yù)先定義了對三層代理進(jìn)行信息和攻擊的探測計(jì)劃,例如,BDI代理可以探測操作系統(tǒng)類型、端口、服務(wù)、漏洞信息和網(wǎng)絡(luò)類型,還可以執(zhí)行密碼攻擊、嗅探攻擊,重放攻擊和緩沖溢出攻擊。模擬實(shí)驗(yàn)是由Jason的內(nèi)部動作完成的
Jason代碼如下所示:
+!probe information: true<?.send(agent name, askAll, information type(value)).
+!attack action: true<?.send(agent name, tell, attack action)
C.模擬
通過對應(yīng)用層的失敗攻擊和對網(wǎng)絡(luò)層和感知層的成功攻擊,說明了傳統(tǒng)物聯(lián)網(wǎng)滲透測試系統(tǒng)與當(dāng)前物聯(lián)網(wǎng)滲透測試系統(tǒng)的不同。成功獲得了操作系統(tǒng)類型、端口、服務(wù)、網(wǎng)絡(luò)類型、網(wǎng)絡(luò)安全和漏洞三個(gè)層次的基本信息。
顯示了BDI模型對物聯(lián)網(wǎng)進(jìn)行滲透測試的過程:
此外,BDI代理成功地破解了SSH password,并獲得了用戶權(quán)限。
由于隨機(jī)性較低,無法執(zhí)行本地緩沖區(qū)溢出攻擊以獲取根權(quán)限。由于對每一層之間的信息傳輸缺乏安全保護(hù),BDI代理成功地執(zhí)行了Sniffertack。
可以獲得有關(guān)光傳感器和光控制指令的必要信息,BDI代理收集并存儲在信念集中的信息如圖5所示:
“turn on the light”命令和光傳感器信息在應(yīng)用程序和網(wǎng)絡(luò)層之間傳輸,顯示在網(wǎng)絡(luò)層的信念集中。感知層的基本信息和值包含在圖7所示的應(yīng)用層代理的信念集中:
我們假設(shè)光傳感器的值是40。在感知層,兩個(gè)代理分別代表光和光傳感器,我們的BDI代理可以根據(jù)光傳感器信息和光控制指令執(zhí)行重放攻擊
6 結(jié)論
在本文中,我們首先介紹了物聯(lián)網(wǎng)的概念和滲透測試。其次,我們討論了安全性物聯(lián)網(wǎng)的概念,并描述了其安全功能。我們提出了一種方法來執(zhí)行滲透測試物聯(lián)網(wǎng),引入了特殊的專用tools。然后,進(jìn)行效率上的改善。
我們使用BDI模型來實(shí)現(xiàn)其自動化,最后,我們通過模擬實(shí)驗(yàn)來驗(yàn)證我們的工作。在未來的研究中,我們將擴(kuò)展模型進(jìn)行更多操作并在實(shí)際環(huán)境中進(jìn)行實(shí)驗(yàn)。