技術(shù)領(lǐng)域
本公開一般地涉及計算機網(wǎng)絡(luò),更具體地涉及使用分布式投票機制來執(zhí)行攻擊檢測。
背景技術(shù):
低功耗且有損網(wǎng)絡(luò)(LLN)(例如,傳感器網(wǎng)絡(luò))具有大量的應(yīng)用(諸如,智能電網(wǎng)和智能城市)。LLN呈現(xiàn)出各種挑戰(zhàn)(例如,有損鏈路、低帶寬、電池操作、低存儲器和/或設(shè)備的處理能力等)。改變環(huán)境條件還可能影響設(shè)備通信。例如,物理障礙(諸如,附近樹木的樹葉密度的改變、開門和關(guān)門等)、(諸如,來自其它無線網(wǎng)絡(luò)或設(shè)備的)干擾的改變、介質(zhì)的傳播特性(諸如,溫度或濕度的改變等)等等還呈現(xiàn)了對LLN的獨特的挑戰(zhàn)。
在LLN情境下特別關(guān)注的一種類型的網(wǎng)絡(luò)攻擊是拒絕服務(wù)(DoS)攻擊。通常,DoS攻擊通過試圖耗盡可用的服務(wù)資源(例如帶寬、存儲器等)來進行操作,從而防止合理的流量使用該資源。DoS攻擊還可以是分布式的以對存在攻擊進行隱藏。例如,分布式DoS(DDoS)攻擊可以涉及多個發(fā)送惡意請求的攻擊者,使得當攻擊進行時更難進行區(qū)分。
附圖說明
本文中的實施例可以通過結(jié)合附圖參考以下描述而被更好地理解,其中,相似標號指示相同或功能上相似的元件,其中:
圖1示出了示例通信網(wǎng)絡(luò);
圖2示出了示例網(wǎng)絡(luò)設(shè)備/節(jié)點;
圖3示出了示例消息;
圖4示出了圖1的通信網(wǎng)絡(luò)中的示例有向非循環(huán)圖(DAG);
圖5A-5B示出了檢測并報告可能的網(wǎng)絡(luò)攻擊的示例;
圖6A-6E示出了使用分布式投票的攻擊檢測的示例;
圖7示出了用于使用分布式投票來檢測攻擊的示例簡化過程;并且
圖8示出了參與用于攻擊檢測的分布式投票的示例簡化過程。
具體實施方式
概述
根據(jù)本公開的一個或多個實施例,第一網(wǎng)絡(luò)設(shè)備通過執(zhí)行分類器來檢測可能的網(wǎng)絡(luò)攻擊。分類器被配置為基于輸入特征集來從多個標簽中選擇標簽。第一網(wǎng)絡(luò)設(shè)備將投票請求發(fā)送到多個相鄰的網(wǎng)絡(luò)設(shè)備。投票請求標識可能的網(wǎng)絡(luò)攻擊。特定的相鄰網(wǎng)絡(luò)設(shè)備確定本地分類器的輸入特征,并且使用本地分類器來生成關(guān)于可能的網(wǎng)絡(luò)攻擊的投票。第一網(wǎng)絡(luò)設(shè)備從相鄰網(wǎng)絡(luò)設(shè)備中的一個或多個來接收關(guān)于可能的網(wǎng)絡(luò)攻擊的投票。然后,第一網(wǎng)絡(luò)設(shè)備確認存在網(wǎng)絡(luò)攻擊,并生成攻擊已經(jīng)被檢測的警報。
根據(jù)各種實施例,網(wǎng)絡(luò)節(jié)點從相鄰節(jié)點接收指示了可能的網(wǎng)絡(luò)攻擊的投票請求。網(wǎng)絡(luò)節(jié)點基于投票請求來確定被用作分類器輸入的特征值集。網(wǎng)絡(luò)節(jié)點還通過使用特征值集作為分類器輸入來確定是否存在可能的網(wǎng)絡(luò)攻擊。網(wǎng)絡(luò)節(jié)點還將指示可能的網(wǎng)絡(luò)攻擊是否被確定為存在的投票發(fā)送到相鄰節(jié)點。
詳細說明
計算機網(wǎng)絡(luò)是由通信鏈路互連的節(jié)點和用于在末端節(jié)點(例如,個人計算機和工作站,或者諸如傳感器等之類的其他設(shè)備)之間傳輸數(shù)據(jù)的區(qū)段的地理上分布式集合。許多網(wǎng)絡(luò)類型是可用的,范圍從局域網(wǎng)(LAN)到廣域網(wǎng)(WAN)。LAN通常通過專用的私有通信鏈路來連接位于相同的一般物理位置(例如,建筑或校園)中的節(jié)點。另一方面,WAN通常通過長距離通信鏈路(例如,公用運營商電話線、光學光路、同步光學網(wǎng)絡(luò)(SONET)、同步數(shù)字體系(SDH)鏈路或電力線通信(PLC)(諸如IEEE 61334、IEEE P1901.2及其他))來連接地理上分散的節(jié)點。此外,移動Ad-Hoc網(wǎng)絡(luò)(MANET)是一種無線ad-hoc網(wǎng)絡(luò),其一般地被認為是由無線鏈路連接的移動路由器(和相關(guān)聯(lián)的主機)的自配置的網(wǎng)絡(luò),其聯(lián)合形成了任意拓撲。
具體地,智能對象網(wǎng)絡(luò)(例如,傳感器網(wǎng)絡(luò))是特定類型的網(wǎng)絡(luò),該網(wǎng)絡(luò)具有空間上分布式的自主設(shè)備(例如,傳感器、制動器等),該空間上分布式的自主設(shè)備以合作的方式來對不同位置處的物理或環(huán)境條件,例如,諸如能量/功率消耗、資源消耗(諸如用于高級計量基礎(chǔ)設(shè)施或“AMI”應(yīng)用的水/氣等)、溫度、壓力、振動、聲音、輻射、運動、污染等進行監(jiān)控。其他類型的智能對象包括,例如負責打開/關(guān)斷發(fā)動機或執(zhí)行任意其他動作的制動器。傳感器網(wǎng)絡(luò)(一種類型的智能對象網(wǎng)絡(luò))通常是共享介質(zhì)網(wǎng)絡(luò)(例如,無線網(wǎng)絡(luò)或PLC網(wǎng)絡(luò))。就是說,除了一個或多個傳感器,傳感器網(wǎng)絡(luò)中的每個傳感器設(shè)備(節(jié)點)可以一般地被裝備有無線電收發(fā)機或其他通信端口(例如,PLC、微控制器和諸如電池之類的能量來源。智能對象網(wǎng)絡(luò)經(jīng)常被認為是場域網(wǎng)(FAN)、鄰域網(wǎng)(NAN)、個人局域網(wǎng)(PAN)等。一般地,智能對象節(jié)點(例如,傳感器)上的尺寸和成本約束導致相應(yīng)的資源(諸如,能量、存儲器、計算速度和帶寬)上的約束。
圖1是示例計算機網(wǎng)絡(luò)100的示意框圖,該示例計算機網(wǎng)絡(luò)100示意性地包括由各種通信方法互連的節(jié)點/設(shè)備110(例如,如以下圖2中所示出和描述的,被稱為“根”、“11”、“12”…“45”)。例如,鏈路105可以是有線鏈路或共享介質(zhì)(諸如,無線鏈路、PLC鏈路等),其中,某些節(jié)點110(例如,諸如路由器、傳感器、計算機等)可以(例如,基于距離、信號強度、當前操作狀態(tài)、位置等來)與其他節(jié)點110進行通信。示意性的根節(jié)點(例如,F(xiàn)AN的場區(qū)域路由器(FAR))可以將局域網(wǎng)與WAN 130進行互連,該WAN 130可以容納一個或多個其他相關(guān)的設(shè)備(例如,諸如網(wǎng)絡(luò)管理服務(wù)器(NMS)、動態(tài)主機配置協(xié)議(DHCP)服務(wù)器、約束應(yīng)用協(xié)議(CoAP)服務(wù)器等之類的管理設(shè)備或服務(wù)器150)。本領(lǐng)域技術(shù)人員將知道,任意數(shù)量的節(jié)點、設(shè)備、鏈路等可以被用于計算機網(wǎng)絡(luò),并且本文中所示出的視圖是為了簡單起見。此外,本領(lǐng)域技術(shù)人員還將知道,盡管網(wǎng)絡(luò)以某一方向(具體地,用“根”節(jié)點)被示出,但網(wǎng)絡(luò)100只是不意圖限制本公開的示例圖示。
數(shù)據(jù)分組140(例如,流量和/或消息)可以使用預定義的網(wǎng)絡(luò)通信協(xié)議(諸如,某些已知的有線協(xié)議、無線協(xié)議(例如,IEEE Std.802.15.4、WiFi、藍牙等)、PLC協(xié)議或者合適情況下的其他共享介質(zhì)協(xié)議)來在計算機網(wǎng)絡(luò)100的節(jié)點/設(shè)備間進行交換。在該情況下,協(xié)議包括定義了節(jié)點如何彼此間進行交互的規(guī)則集。
圖2是可以被用以本文中所描述的一個或多個實施例(例如,如以上圖1中所示的任意節(jié)點或設(shè)備)的示例節(jié)點/設(shè)備200的示意框圖。設(shè)備可以包括由系統(tǒng)總線250互連的一個或多個網(wǎng)絡(luò)接口210(例如,有線的、無線的、PLC等)、至少一個處理器220和存儲器240、以及電源260(例如,電池、插件等)。
(一個或多個)網(wǎng)絡(luò)接口210包含用于通過耦合到網(wǎng)絡(luò)100的鏈路105來傳輸數(shù)據(jù)的機械線路、電子電路和信令電路。網(wǎng)絡(luò)接口可以被配置為使用各種不同的通信協(xié)議來發(fā)送和/或接收數(shù)據(jù)。還注意到,節(jié)點可以具有兩種不同類型的網(wǎng)絡(luò)連接210(例如,無線連接和有線/物理連接),并且本文中的視圖只是用于圖示。此外,盡管網(wǎng)絡(luò)接口210從電源260中單獨被示出,但針對PLC(其中,PLC信號可以被耦合到注入電源的功率線)的網(wǎng)絡(luò)接口210可以通過電源260進行通信,或者可以是電源的完整組件。
存儲器240包括多個可由處理器220和網(wǎng)絡(luò)接口210尋址的存儲位置以用于存儲與本文中所描述的實施例相關(guān)聯(lián)的軟件程序和數(shù)據(jù)結(jié)構(gòu)。注意到,某些設(shè)備可能具有有限的存儲器或者沒有存儲器(例如,沒有除了用于在設(shè)備和相關(guān)聯(lián)的緩存上進行操作的程序/處理的存儲器之外的用于存儲的存儲器)。處理器220可以包括適應(yīng)于執(zhí)行軟件程序和操縱數(shù)據(jù)結(jié)構(gòu)245的硬件元件或硬件邏輯。操作系統(tǒng)242(其某些部分通常位于存儲器240中并且由處理器執(zhí)行),通過(除了其他之外)調(diào)用支持設(shè)備上執(zhí)行的軟件處理和/或服務(wù)來對設(shè)備進行功能組織。這些軟件處理和/或服務(wù)可以包括路由處理/服務(wù)244和示意性的“學習機”處理248,該軟件處理和/或服務(wù)可以如本文中所描述的那樣,基于網(wǎng)絡(luò)100內(nèi)特定的節(jié)點/設(shè)備而被配置有范圍從智能學習機處理到只與智能學習機進行通信的功能。還注意到,盡管學習機處理248在中央存儲器240中被示出,但替換的實施例提供了該處理被特別地操作于網(wǎng)絡(luò)接口210內(nèi)。
對本領(lǐng)域的技術(shù)人員將顯而易見的是,其他處理器和存儲器類型(包括各種計算機可讀介質(zhì))可以被用于存儲和執(zhí)行適于本文中所描述技術(shù)的程序指令。此外,盡管說明書示出了各種處理,但明確地認識到各種處理可以被實施為模塊,該模塊被配置為根據(jù)本文中的技術(shù)(例如,根據(jù)相似處理的功能)進行操作。此外,盡管處理已經(jīng)單獨被示出,但本領(lǐng)域的技術(shù)人員將認識到處理可以是其他處理內(nèi)的例程或模塊。
路由處理(服務(wù))244包含由處理器220執(zhí)行的計算機可執(zhí)行指令以執(zhí)行由一個或多個路由協(xié)議(例如,如本領(lǐng)域技術(shù)人員將知道的,主動或反應(yīng)的路由協(xié)議)提供的功能。這些功能可以在有能力的設(shè)備上被配置為對(例如,包含用于做出路由/轉(zhuǎn)發(fā)決定的數(shù)據(jù)的)路由/轉(zhuǎn)發(fā)表(數(shù)據(jù)結(jié)構(gòu)245)進行管理。具體地,在主動路由中,連通性在對到網(wǎng)絡(luò)中任意目的地的路徑(例如,鏈路狀態(tài)路由(諸如,開放式最短路徑優(yōu)先(OSPF)或中間系統(tǒng)到中間系統(tǒng)(ISIS))或者最優(yōu)鏈路狀態(tài)路由(OLSR))進行計算之前被發(fā)現(xiàn)并且是已知的。另一方面,反應(yīng)的路由發(fā)現(xiàn)鄰居(即,不具有網(wǎng)絡(luò)拓撲的先驗知識),并且響應(yīng)于到目的地所需要的路由來將路由請求發(fā)送到網(wǎng)絡(luò)中以確定其相鄰節(jié)點可以被用于到達所期望的目的地。示例反應(yīng)路由協(xié)議可以包括Ad-hoc按需式距離向量(AODV)、動態(tài)源路由(DSR)、動態(tài)MANET按需式路由(DYMO)等。注意到,在沒有能力或者未被配置為存儲路由條目的設(shè)備上,路由處理244可以單獨包括提供對于源路由技術(shù)必要的機制。就是說,針對源路由,網(wǎng)絡(luò)中的其他設(shè)備可以將分組精確地發(fā)送到何處告知給較少能力的設(shè)備,并且較少能力的設(shè)備只轉(zhuǎn)發(fā)被定向的分組。
學習機處理248包含由處理器220執(zhí)行的計算機可執(zhí)行指令以執(zhí)行各種功能(例如,攻擊檢測并進行報告)。一般地,機器學習涉及技術(shù)的設(shè)計和開發(fā),該技術(shù)將輸入看作是經(jīng)驗數(shù)據(jù)(例如,網(wǎng)絡(luò)統(tǒng)計和性能指標)并識別出這些數(shù)據(jù)中的復雜模式。在機器學習技術(shù)中的一個非常常見的模式是使用下層模型M,該下層模型M的參數(shù)被優(yōu)化以用于在給定輸入數(shù)據(jù)的情況下,將與M相關(guān)聯(lián)的成本函數(shù)最小化。例如,在分類的情境下,模型M可以是將數(shù)據(jù)分成兩級的直線,以使得M=a*x+b*y+c并且成本函數(shù)將是誤分類的點的數(shù)量。然后,學習處理通過調(diào)整參數(shù)a、b、c來進行操作,以使得誤分類的點的數(shù)量最小。在該優(yōu)化階段(或?qū)W習階段)之后,模型M可以被非常容易地用于對新的數(shù)據(jù)點進行分類。M通常是統(tǒng)計模型,并且成本函數(shù)在給定輸入數(shù)據(jù)的情況下,反比于M的可能性。
還如以上所標注的,學習機(LM)是基于一個或多個機器學習處理以用于執(zhí)行該一個或多個機器學習處理未被明確地編程以執(zhí)行的任務(wù)的計算實體。具體地,LM能夠針對其環(huán)境對其行為進行調(diào)整。在LLN的情境下,更具體地在IoT(或萬聯(lián)網(wǎng),IoE)的情境下,由于網(wǎng)絡(luò)將面臨變化的條件和需求,并且網(wǎng)絡(luò)將變得太大以致于網(wǎng)絡(luò)操作者不能有效地進行管理,因此該能力將是非常重要的。
人工神經(jīng)網(wǎng)絡(luò)(ANN)一種類型的機器學習技術(shù),其下層數(shù)學模型由假設(shè)(即,精神活動主要包括在互連的神經(jīng)元之間的電化學活動)啟發(fā)而被開發(fā)。ANN是由定向加權(quán)鏈路連接的計算單元(神經(jīng)元)的集。通過將由神經(jīng)元執(zhí)行的操作和由鏈路應(yīng)用的權(quán)重進行結(jié)合,ANN能夠?qū)斎霐?shù)據(jù)執(zhí)行高度非線性的操作。盡管ANN感興趣的方面不是其可以生成對輸入的高度非線性的輸出,但ANN可以通過訓練處理來獲悉復制預定義的行為。因此,ANN可以被訓練以標識網(wǎng)絡(luò)行為中的差異,該差異能夠指示存在網(wǎng)絡(luò)攻擊(例如,數(shù)據(jù)包丟失、鏈路延遲、請求的數(shù)量等的改變)。
低功耗且有損網(wǎng)絡(luò)(LLN)(例如,某些傳感器網(wǎng)絡(luò))可以被用于大量的應(yīng)用(諸如,用于“智能電網(wǎng)”和“智能城市”)。在LLN中已經(jīng)呈現(xiàn)出多個挑戰(zhàn),例如:
1)鏈路一般是有損的,以使得分組傳送速率/比率(PDR)可以由于(例如,極大地影響誤碼率(BER)的)各種干擾源而顯著地變化;
2)鏈路一般是低帶寬的,以使得控制平面流量對比于低速率的數(shù)據(jù)流量一般必須是有界和可忽略的。
3)存在多個需要指定鏈路集和節(jié)點度量的使用情況,由于某些使用情況是動態(tài)的,因此需要專用的圓滑函數(shù)以避免路由的不穩(wěn)定性、相當大的消耗(draining)帶寬和能量;
4)例如,某些應(yīng)用可以需要約束路由以建立路由路徑,該路由路徑將避免未加密的鏈路、以低能量運行的節(jié)點等;
5)網(wǎng)絡(luò)的規(guī)??梢宰兊梅浅4螅绱蠹s幾千到幾百萬個節(jié)點;并且
6)節(jié)點可以被約束于低的存儲器、減小的處理能力、低的電源(例如電池)。
換言之,LLN是一類網(wǎng)絡(luò),在該網(wǎng)絡(luò)中路由器和其互連都被約束:LLN路由器通常帶有約束(例如,處理功率、存儲器和/或能量(電池))進行操作,并且示意性地其互連特征在于高損失率、低數(shù)據(jù)率和/或不穩(wěn)定性。LLN包括從幾打直到上千或者甚至上百萬LLN路由器中的任意路由器,并且支持(LLN內(nèi)部設(shè)備之間的)點對點流量、(從中央控制點到LLN內(nèi)部設(shè)備的子集的)點對多點流量和(從LLN內(nèi)部設(shè)備到中央控制點的)多點對點流量。
LLN的示例實現(xiàn)方式是“物聯(lián)網(wǎng)(Internet of Things)”網(wǎng)絡(luò)。不嚴謹?shù)?,術(shù)語“物聯(lián)網(wǎng)”或“IoT”可以被本領(lǐng)域的技術(shù)人員用于指代基于網(wǎng)絡(luò)的架構(gòu)中的唯一標識的對象(事物)和其虛擬表示。具體地,互聯(lián)網(wǎng)演進中的下一個前沿不只是連接計算機和通信設(shè)備的能力,而是一般地連接“對象”(例如光、家用電器、交通工具、HVAC(加熱、通風和空調(diào))、窗和遮光簾以及百葉窗、門、鎖等)的能力。因此,“物聯(lián)網(wǎng)”一般地指代計算機網(wǎng)絡(luò)上的對象(例如,智能對象,諸如傳感器和制動器)的互連(例如,IP),該計算機網(wǎng)絡(luò)可以是公共互聯(lián)網(wǎng)或私人網(wǎng)絡(luò)。這些設(shè)備通常以非IP或私有協(xié)議的形式被用于工業(yè)中幾十年,該設(shè)備通過協(xié)議轉(zhuǎn)換網(wǎng)關(guān)被連接到IP網(wǎng)絡(luò)。隨著出現(xiàn)大量的應(yīng)用(諸如智能電網(wǎng)、智能城市和建筑與工業(yè)自動化以及汽車)(例如,該應(yīng)用可以互連上百萬對象以用于感應(yīng)類似電能質(zhì)量、輪胎壓力和溫度之類的事物,并且該應(yīng)用可以開動發(fā)動機和光),對用于這些網(wǎng)絡(luò)的IP協(xié)議組進行擴展已經(jīng)變得極為重要。
示例性協(xié)議(其在互聯(lián)網(wǎng)工程任務(wù)組(IETF)提出標準請求注釋(RFC)6550中被詳細說明、題為“RPL:用于低功耗且有損網(wǎng)絡(luò)的IPv6路由協(xié)議”、作者Winter等(2012年三月))提供了一種機制,該機制支持(從LLN內(nèi)部設(shè)備向中央控制點(諸如,一般地LLN邊界路由器(LBR)或“根節(jié)點/設(shè)備”)的)多點對點(MP2P)流量和(從中央控制點到LLN內(nèi)部設(shè)備的)點對多點(P2MP)流量(以及還支持點對點或“P2P”流量)。RPL(發(fā)音為“ripple(波紋)”)可以一般地被描述為距離向量路由協(xié)議,其除了定義限制控制流量、支持修補等的特征集,還構(gòu)建用于路由流量/分組140的有向非循環(huán)圖(DAG)。顯而易見地,如本領(lǐng)域技術(shù)人員可以認識到的,RPL還支持多拓撲路由(MTR)的概念,由此多個DAG可以根據(jù)個人需求被構(gòu)建以承載流量。
DAG是具有某種屬性的有向圖,該屬性為所有邊緣(和/或頂點)以假定不存在周期(環(huán))的方式被定向。所有邊緣被包含在定向到并且終止于一個或多個根節(jié)點(例如,多軸頭或水槽(sink))的路徑中,并經(jīng)常將DAG設(shè)備與較大的基礎(chǔ)設(shè)施(諸如互聯(lián)網(wǎng)、廣域網(wǎng)或其他域)互連。此外,面向目的地的DAG(DODAG)是植根于單個目的地的DAG,即,植根于不具有輸出邊緣的單個DAG根處。DAG內(nèi)的特定節(jié)點的“父親(parent)”是向DAG根的路徑上的特定節(jié)點的直接繼承人,以使得父親具有比特定的節(jié)點本身更低的“等級”,其中節(jié)點的等級指示了節(jié)點針對DAG根的位置(例如,節(jié)點離根越遠,該節(jié)點的等級越高)。此外,在某些實施例中,DAG內(nèi)的節(jié)點的兄弟(sibling)可以被定義為位于DAG內(nèi)相同等級處的任意相鄰的節(jié)點。注意到,兄弟姐妹不必共享共同的父親,并且一般地,兄弟姐妹之間的路由由于沒有前向進展(其等級相同),因此其不是DAG的一部分。還注意到,樹是一種DAG,其中一般地,DAG中的每個設(shè)備/節(jié)點具有一個父親或一個優(yōu)選的父親。
一般地,DAG可以基于目標函數(shù)(OF)而被(例如,DAG處理)構(gòu)建。一般地,目標函數(shù)的作用是指定關(guān)于如何構(gòu)建DAG的規(guī)則(例如,父親的數(shù)目、備份父親等)。
此外,一個或多個度量/約束可以由路由協(xié)議進行通告以再次優(yōu)化DAG。此外,路由協(xié)議允許包括約束的可選集以計算所約束的路徑,例如,如果鏈路或節(jié)點不滿足所要求的約束,則當計算最佳路徑時將該鏈路或節(jié)點從候選列表中“剪除(pruned)”。(替換地,約束和度量可以被從OF中分離。)此外,路由協(xié)議可以包括定義了主機或主機集(例如,作為數(shù)據(jù)收集點的主機或者向外部基礎(chǔ)設(shè)施提供連通性的網(wǎng)關(guān))的“目標(goal)”,其中,DAG的主要目的是在DAG內(nèi)具有能夠達到目標的設(shè)備。在該情況下,其中,節(jié)點不能夠遵照目標函數(shù)或者不理解或支持所通告的度量,該節(jié)點可以被配置為作為葉節(jié)點加入DAG。如本文中所使用的,各種度量、約束、策略等被認為是“DAG參數(shù)”。
示意性地,被用于對路徑(例如,優(yōu)選的父親)進行選擇的示例度量可以包括開銷、延遲、延時、帶寬、期望傳輸數(shù)(ETX)等,而可以根據(jù)路由選擇進行放置的示例約束可以包括各種可靠性閾值、電池操作上的限制、多路徑多樣性、帶寬需求、傳輸類型(例如,有線的、無線的等)。OF可以提供定義負載均衡要求的規(guī)則(例如,多個所選擇的父親(諸如,單父親樹或多父親DAG))。顯而易見地,針對路由度量和約束可以如何被獲得的示例可以在(題為“用于在低功耗且有損網(wǎng)絡(luò)中進行路徑計算的路由度量”<RFC 6551>、作者Vasseur等(2012年3月版)的)IETF RFC中被發(fā)現(xiàn)。此外,示例OF(例如,默認的OF)可以在(題為“RPL目標函數(shù)0”<RFC 6552>、作者Thubert(2012年3月版)和題為“具有遲滯現(xiàn)象的最低等級目標函數(shù)”<RFC 6719>、作者O.Gnawali等(2012年9月版)的)IETF RFC中被發(fā)現(xiàn)。
構(gòu)建DAG可以使用發(fā)現(xiàn)機制來構(gòu)建網(wǎng)絡(luò)的邏輯表示,以及使用路由傳播來在網(wǎng)絡(luò)內(nèi)建立狀態(tài),以使得路由器知道如何將分組轉(zhuǎn)發(fā)到其最終的目的地。注意到,“路由器”指代可以轉(zhuǎn)發(fā)和生成流量的設(shè)備,而“主機”指代可以生成但不轉(zhuǎn)發(fā)流量的設(shè)備。此外,“葉(leaf)”可以一般地被用于對被一個或多個路由器連接到DAG的非路由器進行描述,但其本身不能將在DAG上接收的流量轉(zhuǎn)發(fā)到DAG上的另一路由器??刂葡⒖梢栽诋敇?gòu)建DAG時,在網(wǎng)絡(luò)內(nèi)的設(shè)備間進行傳輸以用于發(fā)現(xiàn)和路由傳播。
根據(jù)示意性的RPL協(xié)議,DODAG信息對象(DIO)是一種類型的DAG發(fā)現(xiàn)消息,該DAG發(fā)現(xiàn)消息對允許節(jié)點發(fā)現(xiàn)RPL實例、獲悉其配置參數(shù)、選擇DODAG父親集并維持向上的路由拓撲的信息進行載送。此外,目的地通告對象(DAO)是一種類型的DAG發(fā)現(xiàn)答復消息,該DAG發(fā)現(xiàn)答復消息沿著DODAG向上傳送目的地信息,以使得DODAG根(和其他中間節(jié)點)可以提供向下的路由。DAO消息包括標識目的地的前綴信息、記錄支持源路由的路徑的能力以及確定特定通告的新鮮度的信息。顯而易見地,“向上(upward)”或“上行(up)”路徑是以從葉節(jié)點向DAG根的方向進行引導的路由(例如,沿著DAG內(nèi)邊沿的方向)。相反地,“向下(downward)”或“下行(down)”路徑是以從DAG根向葉節(jié)點的方向進行引導的路由(例如,一般沿著與DAG內(nèi)的向上消息的相反方向進行)。
一般地,DAG發(fā)現(xiàn)請求(例如,DIO)消息被從DAG的(一個或多個)根設(shè)備向下傳輸?shù)饺~設(shè)備,通知每個連續(xù)的接收設(shè)備如何到達根設(shè)備(就是說,請求被接收的地方一般地是根的方向)。因此,DAG以向根設(shè)備的向上的方向被創(chuàng)建。DAG發(fā)現(xiàn)答復(例如,DAO)然后可以被從葉設(shè)備返回到(一個或多個)根設(shè)備(除非不必要的情況,例如只針對UP流),通知其他方向中的每個連續(xù)的接收設(shè)備如何到達向下路由的葉設(shè)備。能夠維持路由狀態(tài)的節(jié)點可以根據(jù)DAO消息聚集路由,該節(jié)點在發(fā)送DAO消息之前接收該路由。然而,不能夠維持路由狀態(tài)的節(jié)點可以附接下一跳父親地址。DAO消息然后被直接發(fā)送到DODAG根,該DODAG根進而可以構(gòu)建拓撲并且對到DODAG中所有節(jié)點的向下的路由本地進行計算。然后,使用源路由技術(shù)可在DAG區(qū)域上獲得這些節(jié)點,該DAG區(qū)域不能存儲向下的路由狀態(tài)。此外,PRL還指定被稱為DIS(DODAG信息征求(solicitation))的消息,其在特定的情況下被發(fā)送以便發(fā)現(xiàn)DAG鄰居并加入DAG或恢復連通性。
圖3示出了示例簡化控制消息格式300,該示例簡化控制消息格式300可以在當構(gòu)建DAG時被用于發(fā)現(xiàn)和路由傳播(例如,如DIO、DAO或DIS消息)。消息300示意性地包括具有一個或多個字段312的報頭310,該一個或多個字段312標識了消息的類型(例如,RPL控制消息)和(指示消息(例如,DIO、DAO或DIS)的具體類型的)具體代碼。在消息的體/有效負載320內(nèi)可以是被用于轉(zhuǎn)播相關(guān)信息的多個字段。具體地,字段可以包括各種標記/比特321、序列號322、等級值323、實例ID324、DODAG ID 325和其他字段,每一個都可以是如本領(lǐng)域技術(shù)人員所更詳細認識的那樣。此外,針對DAO消息,除了別的(例如,用于ACK的DAO序列等)之外,還可以包括額外的目的地前綴字段326和傳輸信息字段327。針對任意類型的消息300,一個或多個額外的子選項字段328可以被用于在消息300內(nèi)提供額外或定制的信息。例如,目標代碼點(OCP)子選項字段可以在DIO內(nèi)被用于載送代碼,該代碼指定被用于構(gòu)建相關(guān)聯(lián)的DAG的特定的目標函數(shù)(OF)。替換地,子選項字段328可以被用于載送消息300內(nèi)的某些其他信息(例如,如可以在本文中(諸如,一個或多個類型長度值(TLV)字段中)所描述的指示、請求、能力、列表、通知等)。
圖4示出了示例簡化DAG,該示例簡化DAG可以(例如,通過以上所描述的技術(shù))在圖1的網(wǎng)絡(luò)100內(nèi)被創(chuàng)建。例如,某些鏈路105可以針對每個節(jié)點進行選擇以與特定的父親進行通信(并且因此,如果存在子節(jié)點,則相反地與子節(jié)點進行通信)。這些所選擇的鏈路形成了從根節(jié)點向一個或多個葉節(jié)點(沒有子女的節(jié)點)延伸的DAG 410(如粗線所示)。流量/分組140(圖1中所示)然后可以如本文中所具體描述的那樣以向根節(jié)點的向上的方向或者向葉節(jié)點的向下的方向來遍歷DAG 410。
如以上所標注的,LLN根據(jù)可用資源通常是有限的并且傾向于比其他的網(wǎng)絡(luò)形式更動態(tài),這導致當試圖檢測DoS和其他形式的網(wǎng)絡(luò)攻擊時存在多個挑戰(zhàn)。具體地,可用于給定網(wǎng)絡(luò)節(jié)點的有限的計算資源可以阻止節(jié)點托管更強大的學習機處理。在一些情況下,節(jié)點可以只將觀測數(shù)據(jù)輸出到由具有更多資源的設(shè)備(例如,F(xiàn)AR)托管的學習機。然而,這么做還增加了網(wǎng)絡(luò)中的流量開銷,這可能影響LLN中的性能。
根據(jù)各種實施例,輕量級的學習機分類器可以被分布到網(wǎng)絡(luò)節(jié)點為了攻擊檢測。一般地,分類器指代可操作為將來自標簽集中的標簽與到輸入數(shù)據(jù)集的標簽相關(guān)聯(lián)的機器學習處理。例如,分類器可以將標簽(諸如,“攻擊”或“非攻擊”)應(yīng)用到給定的網(wǎng)絡(luò)度量(諸如,流量速率等)集。分布式的分類器由于可以具有比成熟的(full-fledged)分類器更低的計算要求(以更低的性能作為折衷),因此其可以被認為是“輕量級的”。為了改善攻擊檢測,具有更多資源的中央計算設(shè)備(例如,F(xiàn)AR、NMS等)可以執(zhí)行相比于分布式輕量級的分類器計算上更密集的分類器。在分布式分類器檢測攻擊的情況下,其可以向中央設(shè)備提供數(shù)據(jù)以驗證結(jié)果和/或以發(fā)起對策。然而,由于分布式分類器的性能可能是相對低的,因此這也意味著可能存在大量報導到中央分類器的誤報。
現(xiàn)在參考圖5A-5B,示出了在網(wǎng)絡(luò)100內(nèi)被檢測并被報導的網(wǎng)絡(luò)攻擊的示例。假定出于示意性的目的,輕量級的分類器被分布到網(wǎng)絡(luò)100中的各種節(jié)點,并且更大功率的分類器由FAR執(zhí)行。如圖5A中所示,攻擊節(jié)點/設(shè)備可以以節(jié)點31為目標開始攻擊。由于該攻擊,節(jié)點31上的輕量級分類器可以基于所觀測的信息(例如,發(fā)送成功率、接收成功率等)的特征集來檢測攻擊,如圖5B中所示。相應(yīng)地,節(jié)點31可以生成警告508并將其發(fā)送到監(jiān)視設(shè)備(例如,F(xiàn)AR)以使用更強大的分類器來驗證攻擊和/或采取改善措施。然而,在警報508是誤報的情況下,這意味著網(wǎng)絡(luò)100內(nèi)不必要的流量,該誤報可能已經(jīng)限制了可用于合法流量的帶寬。
針對攻擊檢測的分布式投票
本文中的技術(shù)提供了檢測網(wǎng)絡(luò)攻擊的投票機制,該投票機制在警告中央設(shè)備之前,憑借網(wǎng)絡(luò)節(jié)點來在其相鄰的設(shè)備間發(fā)起投票。這限制了被發(fā)送到(例如,在FAR中托管的)更高層分類器的警報的數(shù)量,從而減少了用于報告的網(wǎng)絡(luò)資源的使用、避免了可能的不必要的緩解動作并且還允許進行更快的檢測和緩解。在一些方面,節(jié)點(其本地分類器檢測攻擊)可以將廣播消息(可能具有動態(tài)計算的存活時間(TTL)值)發(fā)送到其物理范圍中的所有節(jié)點,因此觸發(fā)投票過程。每一個鄰居可以使用其自己的本地分類器來檢測觸發(fā)的節(jié)點實際上是否被攻擊,并且送回結(jié)果。然后,觸發(fā)的節(jié)點基于所接收的結(jié)果來決定是否將警報發(fā)送到LLN路由器,或者可能發(fā)送到網(wǎng)絡(luò)中的所有節(jié)點。
特別地,根據(jù)下面所詳細描述的本公開的一個或多個實施例,網(wǎng)絡(luò)節(jié)點從相鄰節(jié)點接收指示了可能的網(wǎng)絡(luò)攻擊的投票請求。網(wǎng)絡(luò)節(jié)點基于投票請求來確定被用作分類器輸入的特征值集。網(wǎng)絡(luò)節(jié)點還通過使用特征值集作為分類器輸入來確定是否存在可能的網(wǎng)絡(luò)攻擊。網(wǎng)絡(luò)節(jié)點還將指示可能的網(wǎng)絡(luò)攻擊是否被確定為存在的投票發(fā)送到相鄰節(jié)點。
示意性地,本文中所描述的技術(shù)可以由硬件、軟件和/或固件執(zhí)行,例如根據(jù)學習機處理248來執(zhí)行,其可以包含由處理器220(或接口210的獨立處理器)執(zhí)行的計算機可執(zhí)行指令以(例如,結(jié)合路由處理244來)執(zhí)行與本文中所描述的技術(shù)相關(guān)的功能。例如,本文中的技術(shù)可以被視為傳統(tǒng)協(xié)議(諸如各種PLC協(xié)議或無線通信協(xié)議)的擴展,并且因此,可以相應(yīng)地由本領(lǐng)域技術(shù)人員所理解的執(zhí)行那些協(xié)議的相似組件進行處理。
操作上,LLN中的節(jié)點可以與其相鄰的節(jié)點一起發(fā)起投票處理以便在將警報發(fā)送到中央分類器或其他設(shè)備之前本地檢測網(wǎng)絡(luò)攻擊。在一些實現(xiàn)方式中,每個網(wǎng)絡(luò)節(jié)點可以執(zhí)行其自己的本地分類器以檢測網(wǎng)絡(luò)攻擊,該自己的本地分類器對所觀測的網(wǎng)絡(luò)行為(例如,分類器的輸入特征)連續(xù)地進行監(jiān)控。
在各種實施例中,檢測攻擊的節(jié)點可以通過將投票請求發(fā)送到相鄰的節(jié)點來在其相鄰的節(jié)點間發(fā)起投票。例如,如圖6A中所示,由節(jié)點31執(zhí)行的學習機分類器可以確定網(wǎng)絡(luò)攻擊可能在進行中。相應(yīng)地,節(jié)點31可以將投票請求602發(fā)送到其相鄰節(jié)點的分類器以驗證所檢測的攻擊。在一個實施例中,投票請求602可以是包含下面所述的一個或多個的第2層廣播消息(例如,IEEE 802.15.4,PLC PI 901.2):
1)分類結(jié)果--在各種情況下,由分類器返回的行為類可以被包括在投票請求中。例如,節(jié)點31可以包括投票請求602內(nèi)的標簽(“攻擊”)。在一些實施例中,分類結(jié)果還可以包括用于分類的相關(guān)聯(lián)的置信指數(shù)。例如,如果分類器是最大似然分類器,則置信度量可以是似然度量。該類型的分類器將每個類與統(tǒng)計模型相關(guān)聯(lián)。根據(jù)每個模型,輸入觀測值的條件概率(例如,其可能性)然后被計算,并且該觀察值歸因于具有最大概率的類/標簽。
2)所安裝的分類器的說明--在一些實現(xiàn)方式中,檢測攻擊的分類器的說明可以被包括在投票請求中。例如,投票請求可以指示分類器是否是ANN、支持向量機(SVM)等。說明還可以包括被分類器使用的輸入特征的列表。顯而易見地,在每個節(jié)點執(zhí)行相同類型的分類器的實現(xiàn)方式中,該字段可能被遺漏(這可能經(jīng)常是當所有節(jié)點屬于相同WPAN的情況)。
3)(一個或多個)觸發(fā)分類的向量特征--為了驗證所檢測的攻擊,投票請求還可以包括被發(fā)起分類器用于檢測攻擊的輸入特征和輸入特征值。例如,向量可以包括所接收的信號強度指示(RSSI)值、接收(RX)成功率或者可以被用于檢測存在網(wǎng)絡(luò)攻擊的任意其他觀測值。
4)TTL值--在一些實施例中,投票請求還可以包括投票者應(yīng)該執(zhí)行投票/分類的所指示的時間。
投票請求消息可以被發(fā)送到被攻擊節(jié)點的物理范圍內(nèi)的所有節(jié)點,并且被其接收。注意到,在IEEE 802.15.4鏈路層具有跳頻的情況下,廣播安排被加密。因此,使用廣播安排(其只對認證的節(jié)點是可用的)允許使得實際上受到攻擊的節(jié)點平坦以與其鄰居進行通信。其他策略可以通過使用不同的頻率來發(fā)送多份鏈路層廣播消息來請求投票,以便增加其他節(jié)點成功地接收消息的可能性。
如以上所標注的,對于由FAR動態(tài)計算的有限TTL,可以根據(jù)其網(wǎng)絡(luò)的物理拓撲的知識來發(fā)送投票請求消息。事實上,如果FAR確定了存在相距K跳的M節(jié)點(該M節(jié)點能夠檢測對節(jié)點N的攻擊),則投票請求消息可以使用廣播鏈路層地址進行發(fā)送,但是其中IP TTL=K,以便避免不必要的帶寬消耗。
在另一實施例中,F(xiàn)AR的干預可以基于以下假設(shè)通過簡單地使得節(jié)點不轉(zhuǎn)發(fā)所接收的投票請求而被避免,該假設(shè)為目標節(jié)點的物理范圍中的所有節(jié)點將仍然接收消息,而不需要其他節(jié)點轉(zhuǎn)發(fā)請求(例如,多路傳輸可以被用于應(yīng)付損耗)。注意到,該機制將投票節(jié)點集限制為發(fā)送者的物理范圍中的那些節(jié)點。
為了圖示,發(fā)送投票請求的節(jié)點在本文中被稱為“目標節(jié)點”,并且接收該請求的節(jié)點在本文中被稱為“相鄰節(jié)點”。例如,在圖6A的配置中,節(jié)點31是目標節(jié)點,并且節(jié)點21、32、41和42是其相鄰節(jié)點。
每個接收投票請求的相鄰節(jié)點可以通過使用其自己的本地分類器來執(zhí)行本地檢測嘗試。例如,可以檢測多節(jié)點攻擊是否在進行中以及節(jié)點本身是否遭到攻擊。如果本地分類器也檢測攻擊,則節(jié)點進而可以通過將投票請求發(fā)送到其自己的鄰居來發(fā)起其自己的投票過程。在一個實施例中,這些消息可以在隨機本地計時器超時之后被發(fā)送以避免L2請求消息的不可取的尖峰(spike)。
除了執(zhí)行其自己的攻擊檢測,接收投票請求的節(jié)點還可以使用其本地分類器來對由其他設(shè)備得到的結(jié)論進行投票。具體地,如圖6B中所示,接收投票請求的相鄰節(jié)點可以確定其本地分類器的特征向量以用于投票。在這方面,可能存在兩種可能性。在一種情況下,相鄰節(jié)點可以基于目標節(jié)點自己所感知到的行為來評估目標節(jié)點的特征集(例如,投票節(jié)點可以使用目標節(jié)點自己的觀察值作為用于投票的特征向量)。在其他情況下,然而,相鄰節(jié)點可能不能評估目標節(jié)點的所有特征(例如,在投票請求中指定的特征)。
以下示例示出了一種情況,該情況下相鄰節(jié)點能夠在投票期間使用其自己的觀察值作為特征向量。假定節(jié)點31的分類器基于度量(例如,RSSI值和RX成功率)來檢測干擾攻擊。在該情況下,相鄰節(jié)點(例如,節(jié)點21)將能夠評估與目標節(jié)點(例如,節(jié)點31)相關(guān)聯(lián)的RSSI和RX成功率。例如,RSSI可以基于包括在確認(ACK)消息中的前向RSSI統(tǒng)計進行估計。相似地,RX成功率可以基于從相鄰節(jié)點到目標節(jié)點的成功傳輸?shù)臄?shù)量(例如,從節(jié)點21到節(jié)點31的成功傳輸?shù)臄?shù)量)進行估計。在一些情況下,相鄰節(jié)點還可以通過觀測鄰居流量來收集關(guān)于其他節(jié)點的成功傳輸?shù)慕y(tǒng)計。例如,在一些情況下,節(jié)點21可以通過對兩個節(jié)點之間的流量進行竊聽來收集關(guān)于節(jié)點31和節(jié)點32之間的成功傳輸?shù)男畔ⅰH绫疚闹兴褂玫?,“外部可觀測的”特征指代關(guān)于目標節(jié)點的那些特征,該特征可以由相鄰節(jié)點獨立地進行觀測或估計。
以下示例示出了一種情況,該情況下特征可以不是外部可觀測的。具體地,假定被目標節(jié)點用于檢測攻擊的特征中的一個是傳輸(TX)成功率值。例如,假定由節(jié)點31檢測的攻擊部分地基于其TX成功率而被標識。在該情況下,投票請求602可以將TX成功率指示為被用于檢測攻擊的特征中的一個。然而,顯然地,相鄰節(jié)點將不能夠估計目標節(jié)點的該特征。具體地,相鄰節(jié)點可以由目標節(jié)點檢測成功傳輸,但該目標節(jié)點不能檢測傳輸故障(例如,該目標節(jié)點將檢測關(guān)于自己方面的RX故障,但其不能將該故障歸因于特定的節(jié)點),除非該節(jié)點對由目標節(jié)點發(fā)送的流量和相應(yīng)的確認進行觀察。
根據(jù)各種實施例,相鄰節(jié)點可以基于投票請求中的特征是否是外部可觀測的來使用不同的特征向量。在一個實施例中,如果投票請求中的所有特征都是外部可觀測的,則相鄰節(jié)點可以估計目標節(jié)點的特征向量并且將其用作目標節(jié)點本地分類器的輸入。然而,如果投票請求中的特征不是外部可觀測的,則相鄰節(jié)點可以替代地使用包括在由目標節(jié)點提供的投票請求中的特征的值。
針對外部可觀測的特征的值可以或者可以不被包括在投票請求中。例如,目標節(jié)點經(jīng)??梢园ū挥糜跈z測攻擊的所有特征的特征值。在另一示例中,如果特征的類型是應(yīng)該是外部可觀測的類型,則目標節(jié)點可以只包括特征的標識符而非特征的值。例如,投票請求可以指示RSSI值被用作檢測攻擊的輸入特征,但可以不包括實際的RSSI值。
在一些實施例中,每個節(jié)點可以托管兩個分類器:第一分類器(其被用于檢測節(jié)點本身是否遭到攻擊)和第二分類器(其被用于決定相鄰節(jié)點(例如,出于參加投票的目的))。隨后,第一分類器可以只將外部可觀測的特征作為輸入。在該實施例中,如果相鄰節(jié)點檢測到異常,則其可以獨立地將單播警報發(fā)送到目標鄰居(例如,首先不必用投票請求進行請求)。進而,目標/鄰居可以通過廣播投票請求來進行響應(yīng)。此外,通過發(fā)布誤警報來避免消耗帶寬,該方法允許對網(wǎng)絡(luò)已經(jīng)可用的本地信息被利用。因此,F(xiàn)AR不需要為了獲取該信息而生成額外的流量。
一旦相鄰節(jié)點已經(jīng)(例如,或者使用其自己的觀測值或者使用由目標節(jié)點給其提供的觀測值來)執(zhí)行其自己的關(guān)于目標節(jié)點的分類,則相鄰節(jié)點可以向目標節(jié)點回復投票結(jié)果消息。例如,如圖6D中所示,相鄰節(jié)點2l、32和41-42可以將投票消息604向回發(fā)送到目標節(jié)點31。在802.15.4無線電層被使用的情況下,攻擊者可以在廣播時隙內(nèi)發(fā)送該消息以避免干擾。針對抗干擾傳送的其他機制可以被用在不同鏈路層技術(shù)的情況下。例如,在PLC情況下,只對被認證的節(jié)點可用的色調(diào)映射(tone map)可以被用于傳輸投票以避免干擾。
在各種實施例中,投票消息604可以包括下面所述的一個或多個:
1)分類結(jié)果--在一些情況下,相鄰節(jié)點可以將其自身分類的結(jié)果包括在投票消息內(nèi)。例如,相鄰節(jié)點可以指示目標節(jié)點的特征數(shù)據(jù)是否被認為是“正?!被颉肮簟?。在一個實施例中,分類結(jié)果可以只是一個確認,該確認是關(guān)于目標節(jié)點的分類是否已經(jīng)被驗證(例如,目標節(jié)點檢測攻擊并且相應(yīng)的鄰居回復是或否)。在一些實現(xiàn)方式中,分類結(jié)果還可以包括置信指數(shù),該置信指數(shù)對相鄰節(jié)點在其分類結(jié)果中具有多少信任值進行量化。
2)所使用的分類方法--投票鄰居還可以包括關(guān)于投票鄰居如何得出其投票的投票響應(yīng)信息。例如,投票響應(yīng)可以指示相鄰節(jié)點是否使用外部可觀測的特征或者是否使用由目標節(jié)點提供的特征值。如果外部可觀測的特征被使用,則特征值的向量還可以被包括在投票消息中。投票消息還可以包括被用于生成投票的分類器類型的指示(例如,如果不同類型的分類器貫穿網(wǎng)絡(luò)進行部署)。
3)缺乏資源指示器--在一些情況下,投票節(jié)點可能不具有充足的用以生成投票的資源。在該情況下,投票回復消息可以包括投票者不能夠完成投票處理的指示。在其他實施例中,相鄰節(jié)點可以只是忽略投票請求而不是回復該指示器。
4)缺乏信息指示器--在一些情況下,投票節(jié)點可能不具有足夠的用以參與投票的信息。例如,如果相鄰節(jié)點不具有充足的外部可觀測的特征值集,或者如果在投票請求中所指示的特征與其本地分類器不兼容,則相鄰節(jié)點可能不能夠參與投票。在其他實施例中,相鄰節(jié)點可以只是忽略投票請求而不是回復該指示器。
在將投票請求發(fā)送到相鄰節(jié)點之后,目標節(jié)點可以配備(arm)計時器并且等待將從其鄰居接收的投票消息。當該計時器超時時,目標節(jié)點將使用在計時器超時之前被接收的投票來做出關(guān)于攻擊是否正在發(fā)生的決定。例如,如圖6E中所示,目標節(jié)點31可以確定其相鄰節(jié)點是否已經(jīng)通過投票處理確認了所檢測的攻擊。
許多不同的方法可以被目標節(jié)點采取以確定投票結(jié)果。在一個實施例中,目標節(jié)點可以使用簡單的閾值機制(例如,如果N個節(jié)點的至少M個輸出也檢測到攻擊,則攻擊被確認)。在另一實施例中,目標節(jié)點可以使用與每個投票相關(guān)聯(lián)的置信指數(shù)以確定投票結(jié)果。例如,如果最大可能性的分類器被投票節(jié)點使用,則全局攻擊的可能性可以由目標節(jié)點基于包括在投票消息中的信息進行估計。該計算還可以包括由節(jié)點的本地分類器產(chǎn)生的結(jié)果。在另一情況下,不同的權(quán)重可以被分配給不同的投票,并且被用于確定投票結(jié)果。例如,來自使用其自己的觀測值(諸如,外部可觀測的特征)進行投票的節(jié)點的票數(shù),可以以不同于來自使用在由目標節(jié)點自己輸出的特征向量中的值的節(jié)點的票數(shù)被加權(quán)。
如果所檢測的攻擊已經(jīng)使用外部可觀測的特征或者使用從目標節(jié)點輸出的特征進行確認,則目標節(jié)點然后可以繼續(xù)警告更高級別的設(shè)備(例如FAR)。例如,如果節(jié)點31的相鄰節(jié)點確認了所檢測的攻擊,則節(jié)點31可以如圖5B中所示繼續(xù)將警報508發(fā)送到FAR。在該情況下,警報508可以包括任意或全部信息(其包括在由目標節(jié)點接收的投票消息中)。該信息然后可以被FAR本地的更強大的分類器用于進一步驗證檢測。在另一實施例中,目標節(jié)點可以將廣播消息發(fā)送到網(wǎng)絡(luò)中的所有節(jié)點以對節(jié)點遭到攻擊進行報導。接收該消息的任意節(jié)點然后可以決定是否發(fā)起攻擊緩解。
圖7根據(jù)本文中所描述的一個或多個實施例,示出了用于使用分布式投票來檢測網(wǎng)絡(luò)攻擊的示例簡化過程。過程700可以開始于步驟705并繼續(xù)到步驟710,其中如以上所更詳細描述的,網(wǎng)絡(luò)設(shè)備檢測可能的網(wǎng)絡(luò)攻擊。在一個實施例中,網(wǎng)絡(luò)設(shè)備通過執(zhí)行機器學習分類器(例如,ANN、SVM等)來檢測可能的攻擊。如以上所標注的,該分類器可以一般地通過將來自多個標簽中的標簽應(yīng)用到輸入特征值的集來進行操作。該特征值可以包括,但不限于,RSSI數(shù)據(jù)、RX成功值、TX成功值、帶寬使用測量、不同網(wǎng)絡(luò)請求的測量、其組合以及可以指示存在網(wǎng)絡(luò)攻擊的任意其他測量。
在步驟715,檢測攻擊的網(wǎng)絡(luò)設(shè)備可以如以上所更詳細描述的那樣將投票請求發(fā)送到其相鄰節(jié)點。在一個實施例中,例如,網(wǎng)絡(luò)設(shè)備可以將作為廣播消息的投票請求發(fā)送到其相鄰節(jié)點。投票請求可以一般地包括被相鄰節(jié)點需要的任意信息以確定發(fā)送投票請求的設(shè)備是否正在被攻擊。例如,投票請求可以包括下面所述的任意或全部:在步驟710中被請求設(shè)備用于檢測攻擊的一個或多個輸入特征集(例如,RSSI、TX成功等)、被請求設(shè)備用于檢測攻擊的輸入特征的值、由請求設(shè)備得出的分類結(jié)果(例如,應(yīng)用于輸入特征的標簽)、被請求設(shè)備使用的分類器類型(例如,分類器是否基于ANN等)、或者其他該類信息。
在步驟720,請求設(shè)備如以上所詳述的那樣從相鄰節(jié)點接收投票。在一個實施例中,投票中的一個或多個可以由特定的相鄰節(jié)點使用包括在投票請求中的輸入特征值的集來產(chǎn)生。換言之,相鄰設(shè)備可以使用來自請求設(shè)備的數(shù)據(jù)來執(zhí)行其自己的本地分類器以生成投票。在另一實施例中,投票中的一個或多個可以使用由相鄰節(jié)點所觀測的輸入特征集的值來生成。換言之,特定的相鄰節(jié)點可以使用其自己外部可觀測的關(guān)于請求節(jié)點的信息來執(zhí)行其自己的分類。所返回的投票可以包括任意信息,該任意信息可以被請求設(shè)備用于計算投票并對相鄰節(jié)點做出其他判斷。例如,來自相鄰節(jié)點的投票可以包括下面所述的任意或全部:由相鄰節(jié)點得出的結(jié)論(諸如,由本地分類器生成的實際標簽、“是或否”確認等)、關(guān)于相鄰節(jié)點如何得出分類的信息(諸如,外部可觀測的數(shù)據(jù)是否被使用、包括在投票請求中的特征值是否被使用、被執(zhí)行的分類器的類型等)、與結(jié)論相關(guān)聯(lián)的置信度等等。
在步驟725,請求設(shè)備如以上所更詳細的那樣基于所接收的投票來確認存在攻擊。在一個實施例中,請求設(shè)備可以開啟時間周期結(jié)束的本地計時器,在該時間周期期間的投票可以被計數(shù)(例如,在計時器超時之后接收的投票可以被忽略)。各種技術(shù)可以被用于確認存在攻擊。例如,請求設(shè)備可以使用多數(shù)投票、全數(shù)投票、加權(quán)投票(例如,如果可用,則投票可以基于其相關(guān)聯(lián)的置信值進行加權(quán))、或者以任意其他方式來確定所檢測的攻擊是否被相鄰設(shè)備確認。
在步驟730,請求設(shè)備如以上所更詳細突出的那樣來生成攻擊已被檢測的警報。在一些實施例中,由設(shè)備執(zhí)行的分類器可以是輕量級的分類器,該輕量級的分類器使用更少的資源,和/或具有比位于監(jiān)視設(shè)備(諸如,F(xiàn)AR或NMS)上的更強大的分類器更低的性能。在該情況下,警報可以被發(fā)送到監(jiān)視設(shè)備以用于進一步的驗證和/或改善措施。例如,警報還可以包括下面所述的任意或全部:攻擊已被檢測的指示、關(guān)于結(jié)論如何被得出的信息(諸如,哪些節(jié)點參與投票、哪些輸入特征被投票者使用、哪些值被投票者使用等)、和/或可以被監(jiān)視設(shè)備用于確認存在攻擊的任意其他信息。在另一實施例中,警報可以貫穿網(wǎng)絡(luò)進行廣播。例如,相鄰設(shè)備中的一個或多個可以響應(yīng)于接收警報來制定改善措施。過程700然后結(jié)束于步驟735。
圖8根據(jù)本文中所描述的一個或多個實施例,示出了針對參與攻擊檢測的分布式投票的示例簡化過程。過程800可以開始于步驟805并繼續(xù)到步驟810,其中如以上所更詳細描述的,投票請求被從鄰居設(shè)備接收。如以上所標注的,投票請求可以響應(yīng)于檢測存在網(wǎng)絡(luò)攻擊(例如,DoS攻擊)的鄰居設(shè)備而被發(fā)送。一般地,如以上還標注的,投票請求可以包括任意信息(例如,被用于檢測攻擊的輸入特征、輸入特征的值等),接收設(shè)備需要該任意信息以做出其自己的關(guān)于是否存在對發(fā)送設(shè)備的攻擊的確定。
在步驟815,用以評估的特征集如以上所詳述的那樣被確定。在一個實施例中,接收設(shè)備可以對被包括在投票請求中的特征和/或被包括在投票請求中的標簽進行分析,以確定接收設(shè)備是否可以使用其自己的觀測數(shù)據(jù)來得出獨立的結(jié)論(例如,外部可觀測的數(shù)據(jù)是否可以被使用)。在另一實施例中,所確定的特征集中的一些或全部可以包括特征值(其被包括在所接收的投票請求中)。
在步驟820,特征集如以上所突出的那樣被用于確定實際上是否存在攻擊。一旦接收設(shè)備已經(jīng)確定了對哪個特征值(例如,其自己的觀測值或者請求設(shè)備的觀測值)進行分析,則接收設(shè)備使用這些值作為其自己本地分類器的輸入,以產(chǎn)生投票。例如,如果請求設(shè)備基于不能被接收設(shè)備觀測的因素進行檢測,則接收設(shè)備可以使用來自投票請求的值作為其自己本地分類器的輸入,以產(chǎn)生投票。在另一示例中,如果接收設(shè)備自己具有用以做出決定的充足的觀測值,則其觀測數(shù)據(jù)可以被用作其本地分類器的輸入。
在步驟825,投票如以上所更詳細描述的那樣被生成并被發(fā)送到發(fā)送投票請求的相鄰設(shè)備。該投票可以包括:關(guān)于由投票者得出的結(jié)論的信息(例如,確認或者否認存在攻擊)、關(guān)于結(jié)論如何被得出的信息(例如,使用其自己的觀測值或者請求設(shè)備的觀測值、關(guān)于其本地分類器的細節(jié)等)、或者與結(jié)論相關(guān)聯(lián)的置信值。該投票然后可以被請求節(jié)點用于確定所檢測的攻擊實際上是否存在或者是否是誤報。過程800然后結(jié)束于步驟830。
應(yīng)該注意到,盡管過程700-800內(nèi)的某些步驟如以上所描述的那樣可以是可選的,但圖7-8中所示的步驟只是用于圖示的示例,并且某些其他步驟可以根據(jù)需要被包括或排除。此外,盡管步驟的特定順序被示出,但該順序只是示意性的,并且步驟的任意適當?shù)陌才趴梢栽诓幻撾x本文中實施例范圍的情況下被使用。此外,盡管過程700-800單獨被描述,但來自每個過程的某些步驟可以在過程彼此間進行合并,并且過程不旨在是互相排斥的。
因此,本文中所描述的技術(shù)通過使用投票處理來將由相鄰節(jié)點托管的分類器的輸出進行結(jié)合來為單個分類器所獲得的攻擊檢測提供性能改善。投票處理的最終結(jié)果可以導致較少的誤報,從而避免了由于誤報(例如,用以警告FAR)而產(chǎn)生不必要的流量。此外,由于本文中的技術(shù)允許相鄰節(jié)點利用本地可用的數(shù)據(jù)(FAR將需要以其他方式將該數(shù)據(jù)明確地提取(例如,用以驗證攻擊)),因此進一步減小了網(wǎng)絡(luò)中帶寬的使用。
盡管示意性實施例已經(jīng)被示出和描述(該示意性實施例提供了對網(wǎng)絡(luò)攻擊的檢測進行驗證),但應(yīng)該理解,各種其他的適應(yīng)和修改可以在本文中實施例的精神和范圍內(nèi)被做出。例如,盡管本文中的技術(shù)主要針對攻擊-檢測分類器進行描述,但本文中的技術(shù)還可以被用于對不同的分類標簽進行投票,該分類標簽(諸如,與其他網(wǎng)絡(luò)條件相關(guān)的標簽)與攻擊檢測不相關(guān)。此外,盡管本文中的技術(shù)主要在LLN的情境下進行描述,但本文中的技術(shù)可以更一般地被應(yīng)用于任意形式的計算機網(wǎng)絡(luò)(例如,企業(yè)網(wǎng)絡(luò))。
以上說明書是針對具體的實施例。然而顯而易見的是,可以針對所描述的實施例做出其他改變和修改,并獲得其優(yōu)點中的一些或全部。例如,將明確地認識到,本文中所描述的組件和/或元件可以作為存儲在有形的(非暫態(tài)的)計算機可讀介質(zhì)(例如,磁盤/CD/RAM/EEPROM等)上的軟件而被實現(xiàn),其具有在計算機、硬件、固件或其組合上執(zhí)行的程序指令。因此,該說明書只以示例的方式示出并且不以其他方式限制本文中實施例的范圍。因此,所附權(quán)利要求的目的是為了覆蓋進入本文中實施例的真正精神和范圍內(nèi)的所有這些改變和修改。