本申請要求于2014年5月12日遞交、發明人為Cruz Mota等、題為“VOTING STRATEGY OPTIMIZATION USING DISTRIBUTED CLASSIFIERS(使用分布式分類器的投票策略優化)”的美國專利申請No.14/275,344的優先權,該申請的內容通過引用被合并于此。
技術領域
本公開總體涉及計算機網絡,并且更具體地,涉及通過網絡內分布的分類器來對所使用的投票處理進行優化。
背景技術:
低功率有損網絡(Low power and Lossy Network,LLN)(例如,傳感器網絡)具有大量應用,例如,智能網格和智慧城市。LLN面臨各種挑戰,例如,有損鏈路、低帶寬、電池操作、設備的低存儲和/或處理能力等。變化的環境狀況也可能影響設備通信。例如,物理阻礙(例如,附近樹木的樹葉密度的變化、門的開啟和關閉等)、(例如,來自其他無線網絡或設備的)干擾方面的變化、介質的傳播特性(例如,溫度或濕度變化等)等也對LLN提出嚴峻挑戰。
在LLN的情景中尤為關注的一種網絡攻擊是拒絕服務(DoS)攻擊。通常,DoS攻擊通過嘗試耗盡服務的可用資源(例如,帶寬、存儲器等)來操作,從而阻止合法業務使用這些資源。DoS攻擊還可以是分布式的,從而隱藏攻擊的存在。例如,分布式DoS(DDoS)攻擊可以涉及多個發送惡意請求的攻擊者,從而更難以區分攻擊是何時進行的。
附圖說明
本文的實施例可以通過結合附圖參照下文的描述進行更好的理解,其中,相似的參考標號指示等同地或功能上類似的要素,其中:
圖1示出了示例通信網絡;
圖2示出了示例網絡設備/節點;
圖3示出了示例消息;
圖4示出了圖1的通信網絡中的示例有向非循環圖(DAG);
圖5A-5B示出了檢測和報告潛在的網絡攻擊的示例;
圖6A-6D示出了使用分布式投票進行攻擊檢測的示例;
圖7A-7E示出了對分布式投票處理的優化的示例;
圖8A-8D示出了對分布式投票處理的再優化的示例;
圖9示出了投票性能作為投票者數目的函數的示例;
圖10示出了用于優化網絡內的分布式投票機制的示例簡化過程;以及
圖11示出了用于使用一組優化的投票分類器來執行本地投票的示例簡化過程。
具體實施方式
概述
根據本公開的一個或多個實施例,標識驗證數據集合的投票優化請求被發送至多個網絡節點。從多個網絡節點接收投票優化數據,其中通過使用驗證數據集合來運行分類器,從而生成該投票優化數據。隨后基于投票優化數據來從這些分類器中選擇一個或多個投票分類器的集合。隨后將該選擇通知給一個或多個網絡節點,該一個或多個網絡節點托管所選擇的一個或多個投票分類器的集合中的投票分類器。
描述
計算機網絡是在地理上分布的節點的集合,這些節點通過分段和通信鏈路進行互連,以在端節點(例如,個人計算機和工作站或其他設備(例如,傳感器等))之間傳輸數據。從局域網(LAN)到廣域網(WAN)的范圍內的許多類型的網絡是可用的。LAN通常通過位于大致相同的物理位置(例如,建筑物或校園)的專用私有通信鏈路來連接節點。另一方面,WAN一般通過長距離通信鏈路(例如,公共載波電話線、光學光路、同步光網絡(SONET)、同步數字體系(SDH)鏈路或諸如IEEE 61334、IEEE P1901.2等的電線通信(PLC))來連接地理上分散的節點。此外,移動Ad-Hoc網絡(MANET)是一種無線ad-hoc網絡,其一般被認為是由無線鏈路連接的移動路由器(以及相關聯的主機)的自配置網絡,它們的聯合形成了任意的拓撲結構。
具體地,智能對象網絡(例如,傳感器網絡)是具有空間分布的自主設備(例如,傳感器、致動器等)的特定類型的網絡,這些自主設備以合作的方式監控不同位置處的物理或環境狀況,例如,能量/電力消耗、資源消耗(例如,對于高級的測量儀器或“AMI”應用而言,水/氣等)、溫度、壓力、振動、聲音、輻射、運動、污染等。其他類型的智能對象包括例如負責開啟/關閉引擎或執行任何其他動作的致動器。傳感器網絡(一種類型的智能對象網絡)是典型的共享介質網絡,例如,無線或PLC網絡。也就是說,除了一個或多個傳感器,傳感器網絡中的每個傳感器設備(節點)一般可以裝備有無線電收發機或其他通信端口(例如,PLC、微控制器以及諸如電池之類的能量源)。通常,智能對象網絡被看作現場區域網絡(FAN)、鄰居區域網絡(NAN)、個人區域網絡(PAN)等。一般地,智能對象節點(例如,傳感器)上的大小和成本約束導致對諸如能量、存儲器、計算速度以及帶寬之類的資源的相應約束。
圖1是示例計算機網絡100的示意性框圖,其說明性地包括通過各種通信方法進行互連的節點/設備110(例如,如所示出的標簽,“根”、“11”、“12”...“45”以及下面圖2中所描述的)。例如,鏈路105可以是有線鏈路或共享介質(例如,無線鏈路、PLC鏈路等),其中,諸如路由器、傳感器、計算機之類的某些節點110可以例如基于距離、信號強度、當前的操作狀態、位置等與其他節點110進行通信。說明性的根節點(例如,FAN的現場區域路由器(FAR))可以通過WAN 130與局部網絡互連,其可以容納一個或多個其他相關的設備,例如,管理設備或服務器150(例如,網絡管理服務器(NMS)、動態主機配置協議(DHCP)服務器、約束應用協議(CoAP)服務器等)。本領域技術人員明白,任意數目的節點、設備、鏈路等可以用于計算機網絡,并且本文所示出的視圖是出于簡化的目的。另外,本領域技術人員還將理解,盡管網絡以某一方向示出,尤其具有“根”節點,但網絡100僅僅是一示例說明,其不意欲限制本公開。
數據分組140(例如,流量和/或消息)可以使用預定義的網絡通信協議(例如,某些已知的有線協議、無線協議(例如,IEEE標準802.15.4、WiFi、藍牙()等)、PLC協議、或其他適當地共享介質協議)在計算機網絡100的節點/設備之間進行交換。在該上下文中,協議包括定義節點彼此如何交互的一組規則。
圖2是可以被用于本文所描述的一個或多個實施例的示例節點/設備200(例如,如上面圖1所示的任意節點或設備)的示意性框圖。該設備可以包括通過系統總線250互聯的一個或多個網絡接口210(例如,有線、無線、PLC等)、至少一個處理器220和存儲器240以及電源260(例如,電池、外接電源等)。
(一個或多個)網絡接口210包含用于通過耦合至網絡100的鏈路105來傳輸數據的機械電路、電學電路以及信令電路。網絡接口可以被配置為使用各種不同的通信協議來發送和/或接收數據。還應當注意,這些節點可以具有兩種不同類型的網絡連接210(例如,無線連接和有線/物理連接),并且此處的視圖僅出于說明的目的。另外,盡管網絡接口210被示出為與電源260分離,但對于PLC(其中,PLC信號可以被耦合到饋入電源的電力線),網絡接口210可以通過電源260進行通信,或者可以是電源的整體組件。
存儲器240包括多個存儲位置,這些存儲位置可由處理器220和網絡接口210尋址,并且用于存儲與本文所描述的實施例相關聯的數據結構和軟件程序。應當注意,某些設備可能具有有限的存儲器或者沒有存儲器(例如,沒有用于存儲除了在設備和相關聯的緩存上操作的程序/處理之外的存儲器)。處理器220可以包括適用于運行軟件程序和操縱數據結構245的硬件元件或硬件邏輯。操作系統242尤其通過調用支持在設備上運行的服務和/或軟件處理的操作來在功能上組織設備,其中,操作系統242的一部分通常駐留在存儲器240中并且由處理器來運行。如本文所描述的,這些軟件處理和/或服務可以包括路由處理/服務244和說明性的“學習機器”處理248,其可以根據網絡100內的特定節點/設備而配置有從智能學習機器算法到僅與智能學習機器進行通信的范圍內的功能。還應注意,盡管學習機器處理248被示出為在集中式存儲器240中,但替代的實施例可將該處理具體地在網絡接口210內操作。
其他處理器和存儲器類型(包括各種計算機可讀介質)可以被用來存儲和運行涉及本文所描述的技術的程序指令,這對本領域技術人員而言是顯而易見的。另外,盡管該描述闡述了各種處理,但明確預期各種處理可以被實現為被配置來根據本文的技術(例如,根據類似處理的功能)進行操作的模塊。另外,盡管已單獨地示出了這些處理,但本領域技術人員將理解,這些處理可以是其他處理內的例程或模塊。
路由處理(服務)244包含由處理器220運行的計算機可執行指令,以執行由一個或多個路由協議(例如,本領域技術人員將理解的先應式路由協議和反應式路由協議)所提供的功能。這些功能可以在有能力的設備上被配置為對路由/轉發表(數據結構245)進行管理,路由/轉發表例如包含用來做出路由/轉發決策的數據。具體地,在先應式路由中,在計算到網絡中任意目的地的路由之前發現并且已知連接,例如,諸如開放最短路徑優先(OSPF)、或中間系統到中間系統(ISIS)、或最優鏈路狀態路由(OLSR)之類的鏈路狀態路由。在另一方面,反應式路由發現鄰居(即,不具有網絡拓撲結構的先驗知識),并且響應于到目的地所需的路由,向網絡發送路由請求以確定哪個鄰居節點可以用來到達所期望的目的地。示例反應式路由協議可以包括Ad-hoc按需距離矢量(AODV)、動態源路由(DSR)、動態MANET按需路由(DYMO)等。應當注意,在不能或未被配置來存儲路由條目的設備上,路由處理244可以僅包括提供源路由技術所必需的機制。也就是說,對于源路由,網絡中的其他設備可以確切地告訴具有較少能力的設備將分組發送至哪里,并且具有較少能力的設備簡單地按照指導來轉發分組。
學習機器處理248包含由處理器220運行的計算機可執行指令,以執行諸如攻擊檢測和報告之類的各種功能。一般地,機器學習涉及如下技術的設計和開發:將經驗數據(例如,網絡統計信息和性能指示符)作為輸入,并且識別這些數據中的復雜模式。機器學習技術中的一種非常常見的模式是使用底層模型M,給定輸入的數據,該模型M的參數被優化為最小化與M相關聯的成本函數。例如,在分類的上下文中,模型M可以是直線,其將數據分成兩個等級以使得M=a*x+b*y+c,并且成本函數將是錯誤分類的點的數目。學習處理隨后通過調整參數a、b、c進行操作,以使得錯誤分類的點的數目最小。在該優化階段之后(或學習階段),模型M可以易于用來對新的數據點進行分類。通常,M是統計模型,并且給定輸入的數據,成本函數與M的似然成反比。
如上所述,學習機器(LM)是依賴于一個或多個機器學習處理的計算實體,該一個或多個機器學習處理用于執行學習機器尚未被明確編程來執行的任務。具體地,LM能夠調整其行為來適應其環境。在LLN的情景中,并且更一般地在IoT(或萬聯網(Internet of Everything,IoE))的情景中,該能力將非常重要,因為網絡將面對變化的狀況和需求,并且網絡對于網絡運營商的有效管理而言將變得太大。
人工神經網絡(ANN)是一種機器學習技術,所開發的該技術的底層數學模型受如下理論的啟發:智力活動主要包括互連神經元之間的電化學活性。ANN是由有向加權鏈路連接的計算單元(神經元)的集合。通過將神經元執行的操作和這些鏈路所適用的權重進行組合,ANN能夠針對輸入的數據執行高度非線性操作。對ANN的興趣的方面不在于其能針對輸入生成高度非線性輸出,而在于這些ANN能夠通過訓練處理進行學習以再生成預定義行為。相應地,ANN可以被訓練來標識網絡行為中的偏差,這些偏差可以指示網絡攻擊的存在(例如,分組丟失、鏈路延遲、請求數目等方面的變化)。
低功耗有損網絡(LLN)(例如,某些傳感器網絡)可以用于許多應用中,例如,“智能網格”和“智慧城市”。LLN中存在許多挑戰,例如:
1)鏈路一般是有損耗的,從而導致分組遞送率/比率(PDR)可能由于各種干擾源而顯著變化,例如,十分影響誤比特率(BER);
2)鏈路一般是低帶寬的,從而使得與低速率數據流量相比,控制平面流量通常可能受限并且可忽略;
3)存在需要指定一組鏈路和節點度量的多個用例,其中該組鏈路和節點度量中的一些是動態的,因而需要特定的平滑函數以避免路由的不穩定性,從而大幅消耗帶寬和能量;
4)一些應用可能需要約束路由,例如以建立將避免非加密的鏈路、節點以低能量運行的路由路徑;
5)網絡的規模可能變得很大,例如,幾千至幾百萬節點的數量級;以及
6)節點可能被約束為具有低存儲、降低的處理能力、低電源(例如,電池)。
換言之,LLN是路由器及其互連均被約束的一類網絡:LLN路由器通常在約束(例如,處理功率、存儲器和/或能量(電池))下進行操作,并且其互連說明性地由高損耗速率、低數據速率和/或不穩定性來表征。LLN包括從幾十個到幾千甚至幾百萬個LLN路由器的任何事物,并且支持點到點流量(在LLN內的設備之間)、點到多流量(從中央控制點到LLN內的設備的子集)以及多點到點流量(從LLN內的設備到中央控制點)。
LLN的示例實現方式是“物聯網”網絡。寬松地,術語“物聯網”或“IoT”可以由本領域技術人員用于指代唯一可標識的對象(事物)及其在基于網絡的架構中的虛擬表示。具體地,互聯網演進的下一前沿是不僅僅連接計算機和通信設備的能力,還有連接一般“對象”(例如,燈、裝置、交通工具、HVAC(采暖、通風和空調)、窗戶和窗簾以及百葉窗、門、鎖等)的能力。“物聯網”因而一般指代諸如傳感器和致動器之類的對象(例如,智能對象)通過計算機網絡(例如,IP)進行互連,其中,計算機網絡可以是公共互聯網或私有網絡。這樣的設備已在工業中使用了數十載,通常以非IP或私有協議的形式使用,這些非IP或私有協議通過協議轉換網關的方式而連接到IP網絡。隨著諸如智能網格、智慧城市、以及建筑和工業自動化以及汽車(例如,其能夠互連用于感知像功率質量、輪胎壓力和溫度之類的事物的上百萬的對象并且能夠致動引擎和燈)之類的大量應用的出現,擴展適用于這些網絡的IP協議極為重要。
在由Winter等提出的題為“RPL:IPv6Routing Protocol for Low Power and Lossy Networks(RPL:用于低功率有損網絡的IPv6路由協議)”的互聯網工程任務組(IETF)提議標準,請求注解(RFC)6550(2012年3月)中規定的示例協議提供了支持從LLN內的設備到中央控制點(例如,一般地,LLN邊界路由器(LBR)或“根節點/設備”)的多點到點(MP2P)流量以及從中央控制點到LLN內的設備的點到多點(P2MP)流量(還有點到點或“P2P”流量)。RPL(發音為“ripple”)一般可以被描述為距離矢量路由協議,其除了定義限制控制流量、支持修護等的一組特征之外,還建立用于路由流量/分組140的有向非循環圖(DAG)。應當注意,如本領域技術人員可以理解的,RPL還支持多拓撲路由(MTR)的概念,借此,可以根據單獨的需求來建立多個DAG以承載流量。
DAG是具有某一屬性的有向圖,該屬性使得所有的邊(和/或頂點)以期望不存在循環(回路)的方式來導向。所有的邊被包含在指向一個或多個根節點(例如,“簇首(clusterhead)”或“匯集點(sink)”)并且在該一個或多個根節點處終止的路徑中,通常用來互連具有較大基礎設施(例如,互聯網、廣域網、或其他域)的DAG的設備。此外,面向目的地的DAG(Destination Oriented DAG,DODAG)是生根于單個目的地的DAG,即,在沒有向外的邊的單個DAG根處。DAG內的特定節點的“雙親”是該特定節點在去往DAG根的路徑上的直接繼承者,以使得雙親具有比特定節點自身低的“等級”,其中,節點的等級標識了節點相對于DAG根的位置(例如,節點離根越遠,則該節點的等級越高)。而且,在某些實施例中,DAG內的節點的兄弟姐妹可以被定義為DAG內位于同一等級處的任何鄰近的節點。應注意,兄弟姐妹不一定共享同一雙親,并且兄弟姐妹之間的路由一般不是DAG的一部分,因為不存在轉發進度(它們的等級是相同的)。還應注意,樹是一種DAG,其中,DAG中的每個設備/節點一般具有一個雙親或一個優選雙親。
DAG一般可以基于目標函數(OF)(例如,通過DAG處理)來建立。目標函數的角色一般用來規定如何建立DAG的規則(例如,雙親的數目、備用雙親,等等)。
此外,可以通過路由協議來通告一個或多個度量/約束,從而優化DAG。另外,路由協議允許包括用來計算約束路徑的一組可選的約束,例如,如果鏈路或節點不滿足所要求的約束,則當計算最佳路徑時將其從候選列表中“修剪掉”。(替代地,可以從OF中分離出這些約束和度量。)此外,路由協議可以包括定義主機或一組主機(例如,作為數據收集點進行服務的主機,或者提供到外部基礎設施的連接的網關)的“目標”,其中,DAG的主要目標在于使得DAG內的設備能夠達到該目標。在節點不能符合目標函數或者不理解或不支持所通告的度量的情形中,該節點可被配置為作為葉子節點來加入DAG。如本文所使用的,各種度量、約束、策略等被認為是“DAG參數”。
說明性地,用來選擇路徑(例如,優選的雙親)的示例度量可以包括成本、延遲、時延、帶寬、預期傳輸計數(ETX)等,而可以施加到路由選擇的示例約束可以包括各種可靠性閾值、對電池操作的限制、多徑分集、帶寬需求、傳輸類型(例如,有線、無線等)。OF可以提供定義負載均衡要求的規則,例如,所選擇的雙親的數目(例如,單雙親樹或多雙親DAG)。應當注意,可以在如下IETF RFC中獲得如何路由度量和約束的示例,該IETF RFC由Vasseur等提出,其題為“Routing Metrics used for Path Calculation in Low Power and Lossy Networks(對低功率有損網絡中用于路徑計算的度量進行路由)”<RFC 6551>(2012年3月的版本)。而且,示例OF(例如,缺省OF)可以在如下IETF RFC中找到,該IETF RFC由Thubert提出,其題為“RPL Objective Function 0(RPL目標函數0)”<RFC 6552>(2012年3月的版本),以及由O.Gnawali提出,其題為“The Minimum Rank Objective Function with Hysteresis(具有遲滯的最低等級目標函數)”<RFC 6719>(2012年12月的版本)。
建立DAG可以使用發現機制來建立網絡的邏輯表示,并且使用路由分發來建立網絡內的狀態,從而使得路由器知道如何將分組轉發至其最終目的地。應當注意,“路由器”指的是可以轉發流量以及生成流量的設備,而“主機”指的是能夠生成流量但不能轉發流量的設備。另外,“葉子”一般可以被用來描述被一個或多個路由器連接到DAG,但不能自己將在DAG上接收的流量轉發至DAG上的另一路由器的非路由器。當建立DAG時,可以在網絡內的設備之間發送用于發現和路由分發的控制消息。
根據說明性的RPL協議,DODAG信息對象(DIO)是一種DAG發現消息,該DAG發現消息攜帶允許節點進行如下操作的信息:發現RPL實例(RPL Instance)、獲悉其配置參數、選擇DODAG雙親集合、以及維護向上路由拓撲。此外,目的地通告對象(DAO)是一種DAG發現回復消息,該DAG發現回復消息沿著DODAG向上傳遞目的地信息,以使得DODAG根(和其他中間節點)能夠配設向下的路由。DAO消息包括用來標識目的地的前綴信息、用來記錄路由(支持源路由)的能力、以及用來確定特定通告的新鮮度的信息。應當注意,“向上”或“上行”路徑是從葉子節點引導至DAG根的方向的路由,例如,跟隨DAG內的邊的導向。相反地,“向下”或“下行”路徑是從DAG根引導至葉子節點的方向的路由,例如,一般與DAG內的向上消息的方向相反。
一般地,DAG發現請求(例如,DIO)消息被從DAG的(一個或多個)根設備向下發送至葉子,從而告知每個繼承接收設備如何到達根設備(也就是說,從哪個方向接收該請求一般便是根的方向)。相應地,在去往根設備的向上方向上創建DAG。DAG發現回復(例如,DAO)然后可以被從葉子返回至(一個或多個)根設備(除非不必要,例如,僅針對UP流),從而以另一方向告知每個繼承接收設備針對向下路由如何到達葉子。能夠維護路由狀態的節點可以在發送DAO消息之前將它們所接收的DAO消息中的路由進行聚合。然而,不能維護路由狀態的節點可以附加下一跳的雙親地址。DAO消息隨后被直接發送到DODAG根,該DODAG根轉而可以建立拓撲并且本地計算去往該DODAG中的所有節點的向下路由。在不能存儲向下路由狀態的DAG的區域上使用源路由技術,這使得這樣的節點是可達的。此外,RPL還指定了被稱為DIS(DODAG信息征集)消息的消息,該消息在特定的環境下被發送以發現DAG鄰居并且加入DAG或恢復連接。
圖3示出了示例簡化控制消息格式300,當建立DAG時,該示例簡化控制消息格式300可被用于發現和路由分發,該示例簡化控制消息格式300例如可以是DIO、DAO、或DIS消息。消息300說明性地包括具有一個或多個字段312的頭部310,其中字段312標識消息類型(例如,RPL控制消息)和指示具體消息類型的具體代碼(例如,DIO、DAO、或DIS)。該消息的主體/有效負荷320內可以是用來回復相關信息的多個字段。具體地,這些字段可以包括各個標記/比特位321、序列號322、等級值323、實例ID 324、DODAG ID 325以及其他字段,每個字段可由本領域技術人員詳細理解。而且,對于DAO消息,除了其他之外(例如,用于ACK的DAO序列等),還可以包括用于目的地前綴326的額外字段和運送信息字段327。對于任何類型的消息300,一個或多個額外的子選項字段328可以被用來提供消息300內的額外的或定制的信息。例如,目標代碼點(OCP)子選項字段可以在DIO內用來攜帶具體目標函數(OF),該OF指定用于建立相關聯的DAG。替代地,子選項字段328可以被用來攜帶消息300內的某些其他信息,例如,指示、請求、性能、列表、通知等,本文例如可以在一個或多個類型長度值(TLV)字段中來描述這些信息。
圖4示出了例如可以通過上面所描述的技術在圖1的網絡100內建立的示例簡化DAG。例如,可以針對每個節點來選定某些鏈路105以與特定雙親進行通信(因而反之,與孩子(如果存在)進行通信)。這些選定的鏈路形成DAG 410(如粗線所示),其從根節點延伸到一個或多個葉子節點(沒有孩子的節點)。流量/分組140(圖1所示)然后可以以向上至根的方向或向下至葉子節點的方向來穿過DAG 410,如本文具體描述的。
如上所述,LLN通常在可用資源方面是受限的,并且趨向于比其他形式的網絡更動態,從而在嘗試檢測DoS和其他形式的網絡攻擊時具有許多挑戰。具體地,可用于給定網絡節點的有限的計算資源可以防止該節點托管成熟的學習機器處理。在一些情形中,該節點可以簡單地將觀察數據輸出到由具有更多資源的設備(例如,FAR)托管的學習機器。然而,這樣做也增加了網絡中的流量開銷,這可能影響LLN中的性能。
根據各種實施例,輕量級學習機器分類器可以被分布給網絡節點以用于攻擊檢測。一般地,分類器指的是可操作來將一組標簽中的某一標簽與一組輸入數據進行關聯的機器學習處理。例如,分類器可以將標簽(例如,“攻擊”或“無攻擊”)應用到一組給定的網絡度量(例如,流量速率等)。所分布的分類器可以被認為是“輕量級”的,這是因為它們可能以更低性能的折中而具有比成熟的分類器更低的計算要求。為了改善攻擊檢測,與分布式的輕量級分類器相比,具有更多資源的中央計算設備(例如,FAR、NMS等)可以運行更大計算強度的分類器。在分布式分類器檢測到攻擊的情形中,該分布式分類器可以向中央設備提供數據以驗證結果和/或發起對抗。然而,由于分布式分類器的性能可能相對較低,因此這也意味著可能存在較大量的誤報被報告給中央分類器。
現在參照圖5A-5B,示出了網絡100內被檢測到并且被報告的網絡攻擊的示例。假設針對示例性目的,輕量級分類器被分布到網絡100中的各個節點,并且具有更大權力的分類器被FAR運行。如圖5A所示,攻擊節點/設備可以啟動以節點31為目標的攻擊。該攻擊的結果是,節點31上的輕量級分類器可以基于所觀察的信息的特征集合(例如,發送成功率、接收成功率等)來檢測該攻擊,如圖5B中所示。作為響應,節點31可以生成警報508并且將其發送至監管設備(例如,FAR),以使用具有更大權力的分類器對該攻擊進行核實和/或采取矯正措施。替代地,或者除了向FAR發送警報,節點31可以向網絡100中的其他節點廣播警報,以發起矯正措施。然而,在警報508是誤報的情形中,這意味著網絡100內會產生不需要的流量,這可能已經限制了可用的帶寬。
為了減少誤報的數目,可以在網絡100內實現投票機制,從而在通知監管設備之前對所檢測到的攻擊進行驗證。例如,如圖6A-6D所示,示出了分布式投票機制,其中,特定節點發起投票處理以在采取進一步措施(例如,向FAR發送警報,對其他節點發送警報等)之前對攻擊進行確認。在各個實施例中,參與投票處理的節點可以位于網絡中的任何位置(例如,投票者可以是鄰居節點、非鄰居節點、或者甚至是被連接到不同FAR/根的節點)。在檢測到攻擊之后,節點31可以向一組經授權的投票者發送投票請求602,如圖6A所示。作為響應,這些投票者可以使用其自己的本地分類器來確定是否存在攻擊,如圖6B所示。這樣的投票可以基于投票者自己的觀察或者基于來自投票請求602中所包括的節點31的觀察數據。如圖6C所示,投票者隨后用投票604來響應節點31。節點31然后使用投票604來確定所檢測到的攻擊是否確認存在,如圖6D所示。如果是,則節點31向FAR發送警報或者采取其他措施。根據各個實施例,這樣的投票機制還可以被優化以確定哪些投票者應該參與投票,從而減少投票所產生的網絡開銷。為了進一步減少誤報的變化,還可以針對如何達成共識進行優化(例如,通過為確認發生設置投票的閾值數等)。
使用分布式分類器的投票策略優化
本文的技術針對分布在網絡中的分類器之間的給定分類問題,提供了用于計算最優投票策略的機制。在一些方面,托管可能感興趣的分類器的網絡節點/設備被請求來將其分類器應用到已知的驗證集合(例如,包括已知的地面實況(ground-truth)的一組驗證數據)。隨后可以收集對該驗證集合的分類結果,并且由用于計算最優投票策略(例如,哪些節點/分類器要參與投票以及這些分類器之間達成一致的最小值)的優化處理來使用。例如,可以通過最小化或最大化受制于一個或多個約束的目標函數來確定最優投票策略。在其他方面,一旦計算出最優投票策略,則所涉及的分類器可以被上傳到發起投票優化處理的設備,從而允許本地投票。優化后在投票處理中所交換的信息量可能減少,從而使得該方法適于諸如IoT之類的應用。
具體地,根據下面將詳細描述的本公開的一個或多個實施例,標識驗證數據集合的投票優化請求被發送至多個網絡節點。從多個網絡節點接收投票優化數據,其中通過使用驗證數據集合來運行分類器,從而生成該投票優化數據。隨后基于投票優化數據來從這些分類器中選擇一個或多個投票分類器的集合。隨后將該選擇通知給托管一個或多個所選擇的投票分類器的集合中的投票分類器的一個或多個網絡節點。
說明性地,本文所描述的技術例如可以根據學習機器處理248通過硬件、軟件和/或固件來執行,其中,學習機器處理248可以包含由處理器220(或接口210的獨立處理器)運行的計算機可執行指令以(例如,結合路由處理244)執行與本文所描述的技術有關的功能。例如,本文的技術可以被作為對常規協議的擴展,例如,對各種PLC協議或無線通信協議的擴展,由此,本文的技術可相應地由本領域所理解的運行這些協議的類似組件來處理。
引入下面的術語來協助理解本文的技術:
·LCE(i):第i個學習分類實體(LCE)。一般地,LCE指代托管學習機器分類器(例如,用于攻擊檢測的分類器)的網絡設備。任何數目的不同類型的網絡設備(例如,路由器、交換機、數據中心、或能夠執行分類任務的任何其他的計算設備)可以作為LCE進行部署。
·C(i,j):由LCE(i)托管的第j個分類器。換言之,LCE(i)可以托管多個分類器。在各種實施例中,在特定LCE和/或不同LCE之間的分類器類型(例如,ANN、SVM等)可以不同。
·L(i,j):C(i,j)的標簽(例如,輸出類別)的集合。例如,L(i,j)={″攻擊″,″正常″}是可用于攻擊檢測的一種可能的標簽集合。
·V:針對集合中的每個樣本具有已知標簽的特定驗證集合的唯一標識符。
·C(V):要應用于V的約束。例如,一個約束可以指明:僅考慮來自驗證集合的在給定時間段內得到的樣本。在另一示例中,某一約束可以指明:僅應考慮驗證集合中的在給定日期之后得到的樣本。
·N:優選用于投票的一組分類器。例如,N={C(k,l),C(P,q),C(t,r)}是可被指定為最優的一組可能的分類器。
·k:所計算的最優共識。換言之,k可以是投票計數閾值,該投票計數閾值可能在達到投票者之間的共識之前便達到。例如,如果,k=2,則至少兩個分類器可以同意存在共識(例如,檢測到攻擊)。應當注意,k可以最小為1且最大為集合N的大小(即,1<=k<=|N|)。
操作上,本文所公開的技術可以涉及執行如下功能中的任何功能或所有功能。首先,LCE可以向其他LCE發送分類問題的特性和這些LCE應該將其(一個或多個)分類器應用于的驗證集合的特性。然后,具有滿足請求(例如,分類和驗證特征)的驗證集合和分類器的所有LCE可以將其(一個或多個)分類器應用于該驗證集合,并且將結果發送回請求LCE。利用所收集的結果,請求LCE然后可以基于優化標準(例如,一池分類器執行多少正確分類)來計算最優投票策略。然后對托管根據所計算的最優投票策略而被選擇參與投票的分類器的LCE進行聯系,并且在一些實施例中,可以請求這些LCE將其分類器發送至啟動優化的LCE。在接收到所有分類器之后,請求投票優化的LCE能夠本地應用所計算的最優投票策略,從而減少用于實施投票的流量。替代地,遠程分類器也可被用于參與投票。
-發起投票優化-
使得LCE(i)為使用其本地分類器C(i,j)來面對分類問題的LCE。為了改善LCE(i)僅應用C(i,j)所獲得的結果,LCE(i)可以通過向其他LCE發送請求來請求投票優化。一般地,優化請求可以包括分類問題的特性和可用來確定一組最優的投票分類器的驗證集合的特性。
在一個實施例中,投票優化請求可作為IPv4或IPv6單播消息被發送至NMS。例如,如圖7A所示,節點31可以向NSM 150發送投票優化請求702。轉而,NMS隨后可以與LCE進行聯系,這些LCE托管適合所指明的分類問題并且能夠使用所指明的驗證集合的分類器。在這樣的實現方式中,LCE可以向NMS注冊:LCE本地可獲得哪些分類器,以及哪些數據集合可用于LCE。
在另一實施例中,投票優化請求可以被發送至已知的多播群組,該多播群組包括網絡中所有可用的LCE。例如,如圖7B中所示,節點31可替代地將投票優化請求702直接多播至其他已知的LCE。可以在注冊處理期間,通過將分類器信息包括在CoAP消息內來構建這樣的多播群組。如果未已知,則也可以從NMS、網絡控制器或其他網絡設備中獲取多播群組地址。
投票優化請求702可以包括以下類型長度值(TLV)中的任意一個或全部:
·L(i,j):投票優化請求可以指明接收LCE上的分類器可以提供的一組標簽(例如,輸出類別)。例如,L(i,j)={″攻擊″,″正常″}是可用于攻擊檢測的一種可能的標簽集合。
·V:投票優化請求還可以指示請求接收LCE應用的驗證集合。一般地,V可以是唯一標識接收器可以使用的驗證集合的標識符,因為所有接收機可能已經能夠本地訪問相同的驗證集合。可選地,如果出于相同的原因,接收機不能本地訪問驗證集合,則LCE(i)可以選擇向該接收機發送整個驗證集合。
·C(V):在一些情形中,投票優化請求還可以包括要被應用到驗證集合的一組約束。例如,優化請求可以包括如下約束中的任意約束:“僅使用驗證集合中小于1天之前收集到的樣本”,“僅使用來自具有多于某一流量值的節點的樣本”,“僅使用來自利用電池進行工作的節點的樣本”等。在另一實施例中,如果發送整個驗證集合而不是僅發送標識符,則可以直接對發送優化請求的LCE實施這樣的過濾,從而降低帶寬消耗。
一旦接收到投票優化請求,則每個接收LCE(k)可以檢查其是否具有滿足所請求的條件(例如,是否滿足L(k,l)=L(i,j))的分類器C(k,l)。接收LCE(k)還可以確定其是否能夠訪問優化請求中所指明的驗證集合。在一個實施例中,該訪問可以是對LCE(k)的存儲器進行本地訪問。在另一實施例中,LCE(k)可以與NMS或網絡控制器進行聯系,并且請求訪問所指明的驗證集合。如果這兩個條件都不滿足,則LCE(k)可以用優化拒絕消息(例如,IPv4或IPv6消息)來響應請求LCE。在另一實施例中,沒有來自LCE(k)的確認可被請求LCE認為是否定回復。
如果LCE具有滿足優化請求的分類器,并且能夠訪問所請求的驗證集合,則LCE可以執行所請求的分類。換言之,LCE可以將其本地的(一個或多個)分類器C(k,l)應用到驗證集合V中的每個樣本(例如,滿足優化請求的分類器)。如果優化請求包括對驗證集合的約束,則LCE可以在應用其(一個或多個)分類器之前首先將這些約束應用到驗證集合。例如,如圖7C所示,如果可能的話,每個接收LCE可以使用其本地分類器來估計驗證集合。
一旦LCE使用其本地分類器完成其對驗證集合的估計,則這些LCE可以向請求LCE發送回結果以作為投票優化數據。例如,如圖7D所示,投票優化數據708可以被發送回請求了該優化的節點31。投票優化數據708可以包括如下TLV中的任意一項或全部:
·所使用的分類器C(k,l)的ID:在一些情形中,所返回的投票優化數據可以包括響應LCE針對驗證數據所使用的每個分類器的唯一標識符。
·L(k,l):投票優化數據還可以包括通過將分類C(k,l)器應用到完整的驗證集合V或所約束的驗證集合而獲得的輸出(例如,標簽)。應當注意,這些輸出(其為針對每個樣本所獲得的標簽)可易于壓縮。
·針對每個樣本的置信度量:在一些情形中,優化數據還可以包括與驗證集合中的每一樣本的分類器C(k,l)的輸出相關聯的置信度量。
·針對C(k,l)的性能測量:在一些情形中,優化數據還可以包括綜合置信度或所應用的分類器的性能度量。例如,性能值可以是分類器的查全率(recall)和/或分類器的精度。
在另一實施例中,除了或者代替投票優化數據,給定LCE可以選擇將其一個或多個本地分類器發送至請求LCE。例如,假設響應LCE具有滿足優化請求中的條件的分類器C(k,l),但不能夠訪問驗證請求。在這一情形中,響應LCE可以選擇將分類器C(k,l)發送至請求LCE。在該情形中,請求LCE可以將分類器C(k,l)本地應用于驗證集合,從而獲得投票優化數據。應當注意,在所有投票被請求LCE(例如,使用不同的分類器)本地執行的情形中,分類器C(k,l)此時已經駐留在請求LCE中。因此,將不需要針對該分類器的進一步的請求。
-投票優化-
在接收到投票優化數據(例如,由分布式分類器針對驗證集合生成的結果)之后,請求LCE確定針對其分類器問題的最優投票策略。在響應LCE發送其本地分類器來代替分類器的結果的情形中,請求LCE可以通過將接收到的分類器應用到驗證集合來獲得相應的優化數據。例如,如圖7E所示,節點31可以基于從分布式LCE接收到的投票優化數據708,來確定達成共識的一組最優的投票者和/或最優的閾值。
在各個實施例中,可以通過優化處理來計算最優投票策略,其中該優化處理將所收集的分布式分類器的全部結果(例如,優化數據)作為輸入,并且將一組最優的分類器(N)和/或最優的投票共識值(k)作為輸出。這些最優值可以針對預定義的最優性準則來進行優化。這種準則例如可以用來最大化適當分類的樣本數目、最大化特定等級的適當分類的樣本數目、最小化針對特定參數的分類性能變化、最小化預定義的加權誤差度量等。
投票優化可以被設備看作是離散優化問題,該離散優化問題試圖最大化或最小化受制于一個或多個約束的目標函數,并且其中所涉及的所有變量僅采用自然值。出于說明的目的,使得f_V(k,N)為這樣的函數,該函數在考慮分類器集合N中的至少k個分類器達成共識的情況下,來對驗證集合V中正確分類的樣本數目進行計數。例如,假設k=2,N={C(i,j),C(k,l),C(m,n)},并且V中特定樣本的正確標簽為“攻擊”。在這種情形中,N中的至少兩個分類器可以將樣本標記為“攻擊”,以使共識正確。如果是這樣,則f_V(k’N)將遞增正確分類的樣本的數目。否則,針對特定樣本所達成的共識將被該函數忽略。在各個實施例中,這種函數可以被看作是離散優化問題,該離散優化問題試圖最大化受制于如下兩個條件的f_V(k,N):
1)N可以是可用分類器的整個集合的子集;以及
2)k可以滿足:1<=k<=|N|。
換言之,符合條件的投票者的數目以及用于達成共識的投票計數閾值可以通過優化問題而減小,同時仍確保正確投票結果的數目是最大的。
-集中式投票-
一旦LCE(i)已經計算了N(可以參與投票的分類器集合),則LCE(i)可以與托管所選擇的分類器之一的每個LCE進行聯系。例如,請求LCE可以將分類器請求發送至托管N中的一個或多個分類器的每個LCE。例如,如圖8A所示,假設節點21、32和42托管由節點31選作投票者的分類器。在這種情形中,節點31可以將分類器請求802發送至所選擇的節點。在一個實施例中,分類器請求802可以是IPv4或IPv6消息,該IPv4或IPv6消息標識了從LCE請求的一個或多個分類器。例如,分類器請求802可以包括集合{C(k,l),C(k,r)},該集合標識了所托管的分類器。
響應于接收分類器請求,如果請求LCE(i)被授予訪問(一個或多個)本地分類器,則LCE可以回復分類器授予消息804。在一個實施例中,分類器授予消息804包括(一個或多個)所請求的分類器,從而允許請求LCE繼續執行集中式投票。換言之,在接收到分類器授予消息804之后,被選擇進行投票的分類器可以被請求LCE本地運行。例如,如果特定分類器是基于ANN的,則分類器授予消息可以包括神經元之間的鏈路的權重、神經元的激活函數、以及這些激活函數所需的任何參數。有利之處在于,與分布式投票相比,在請求LCE處本地執行所有投票減少了網絡開銷,但代價是該LCE需要使用額外資源。如果達成共識,則LCE可以發起矯正措施或生成警報,例如,圖5B中所示的警報508。
在一些情形中,LCE可以拒絕將其分類器發送至請求LCE和/或可以使用分布式投票處理。例如,置信度問題、策略引擎中定義的策略或其他這樣的因素可以防止LCE授予訪問(一個或多個)所請求的分類器的權限。在這樣的情形中,拒絕LCE可以向請求LCE發送通知,該通知標識了沒有授權訪問權限的(一個或多個)分類器。一旦接收到拒絕,請求LCE可以選擇將所限制的(一個或多個)分類器(例如,通過計算新的最優投票策略)從投票中排除。在一些實施例中,即使在分類器不被發送至請求LCE的情形中,仍可使用分布式投票機制。例如,請求LCE仍可采用分布式投票機制,例如,如圖6A-6D所示,其中,投票分類器被分布式LCE本地運行,并且結果被發送回發起LCE。
在一些實施例中,在任何LCE將所選擇的分類器更新為投票者時,可以將此通知給請求LCE。例如,請求LCE可以在分類器請求802中設置參數,該參數請求對任何相關的分類器更新的通知。在這樣的情形中,接收該請求的LCE可以將請求LCE添加到訂閱列表中。每當本地分類器被更新,LCE則可以向每個訂閱的LCE發送其新的分類器的詳情(在該情形中,消息中包括適當的原因代碼)。例如,如圖8C所示,假設節點21對節點31用于投票的分類器進行托管,并且該分類器已被更新。在這樣的情形中,節點21可以向節點31發送更新通知806,該更新通知806包括新的分類器的詳情。在一些實現方式中,更新通知806可以具有與分類器授予消息804相同的格式(例如,通知806可以包括更新后的分類器)。
如圖8D所示,被通知以分類器更新的LCE可以決定是否基于新的分類器來對投票處理進行再優化。例如,如果更新后的分類器被提供給節點31,則節點31可以針對驗證集合來檢查其性能,并且甚至可以重新計算k和N的最優值。
現在參照圖9,示出了投票性能作為投票者數目的函數的示例曲線圖900。如圖所示,在投票數、集體投票的查全率以及源自集體投票的誤報百分比之間存在折中。例如,隨著投票數增加,誤報的整體百分比將下降。相反地,集體投票的查全率也隨著投票數的增加而下降。相應地,可以做出折中以使得該處理的查全率處于閾值以上。例如,假設90%或更大的查全率是可接受的。在這樣的情形中,將投票數從1增加到7還顯示誤報百分比從23%下降到5%。
圖10根據本文所描述的一個或多個實施例示出了用于優化網絡內的分布式投票機制的示例簡化過程。過程1000可以開始于步驟1005,并且繼續到步驟1010,該步驟1010處,如上面更詳細的描述,請求LCE發送一個或多個投票優化請求。一般地,這樣的請求包括關于要經由投票來解決的分類問題的數據以及要用于投票優化處理的數據的驗證集合。例如,投票優化請求可以指明由特定分類器使用的標簽集合并且標識了要被其他LCE使用的驗證數據集合(例如,數據的完成集合或受制于一個或多個約束的驗證數據集合)。在一個實施例中,優化請求被發送至中央設備(例如,NMS)并且被轉發至任意其他符合條件的LCE/節點。在另一實施例中,這些請求被直接發送至其他LCE。
在步驟1015處,從接收優化請求的其他LCE接收投票優化數據,如上面更詳細的描述。這樣的優化數據可以部分基于如下判斷:響應LCE是否具有符合優化請求的分類器以及該請求中所指示的驗證數據是否可獲得。如果兩個條件均滿足,則響應LCE可以對驗證數據使用其符合條件的(一個或多個)分類器。分類的結果然后可以被包括在投票優化數據中,該投票優化數據被返回至請求LCE。例如,優化數據可以標識(一個或多個)分類器、由該(一個或多個)分類器獲得的結果和/或關于分類器或結果的性能測量。
在步驟1020處,對投票者進行選擇,如上文更加詳細的描述。在一些實施例中,可以從所接收的優化數據中指示的分類器中選擇一組最優投票者。例如,目標函數可以被優化為選擇能夠對驗證數據中的樣本正確分類最多次的一組投票者/分類器。在一些實施例中,投票計數閾值還可以被優化為目標函數的一部分。換言之,優化可以包含確認如下內容:最大化正確結果的數目的最小投票者集合,以及達成產生最佳性能的共識的最優閾值。
在步驟1025處,通知被發送至對被選作投票者的分類器進行托管的節點,如上文所詳述的。例如,分類器請求可以被發送至請求訪問所選擇的分類器的其他LCE。在一個實施例中,其他LCE可以通過將所選擇的分類器發送回請求LCE來響應。請求LCE然后可以使用這些分類器來執行本地投票。在另一實施例中,也可采用分布式投票機制,在該情形中,分類器請求要求其他LCE訪問所選擇的分類器。過程1025然后在步驟1030處結束。
圖11根據本文所描述的一個或多個實施例,示出了使用一組最優的投票分類器來執行本地投票的示例簡化過程。過程1100可以開始于步驟1105處,并且繼續到步驟1110,在步驟1110處,如上面更詳細的描述,特定分類器被標識為投票處理中的最優投票者。例如,如上面在過程1000中所描述的,可以從網絡中分布的一組分類器中標識出一組最優投票分類器。這樣的投票者可以被用來核實特定分類器的成果,例如,對網絡攻擊的檢測。在一些實施例中,最優投票計數閾值也可以與該組投票者/分類器相關聯。如果投票數處于閾值處或者高于閾值,則原始分類被驗證有效。然而,如果投票數低于閾值,則原始分類可以被認為是誤報。
在步驟1115處,可以從另一網絡節點接收投票分類器,如上文更加詳細的描述。例如,響應于確定位于其他網絡節點的最優投票分類器池,設備可以從這些其他節點請求相應的分類器。一般地,所接收的分類器可以包括將遠程分類器復制到本地設備所需的任何數據(例如,參數、輸入特征、標簽等)。例如,如果特定分類器是基于ANN的,則所接收的數據可以包括神經元之間的鏈路的權重、神經元的激活函數、以及這些激活函數所需的任何參數。
在步驟1120處,如上面更加詳細的描述,可以使用所接收的分類器來進行本地投票。可以執行本地投票例如來驗證特定分類器所得到的結論。應當注意,通過執行本地投票,分類器可以使用本地觀察數據,從而降低投票處理的網絡使用(例如,與執行分布式投票相比)。如果投票驗證存在攻擊,則本地設備可以發起進一步措施,例如,向一個或多個其他設備發送警報、做出路徑更改等。過程1100然后在步驟1125處結束。
應當注意,盡管過程1000-1100中的某些步驟如上所述是可選的,但圖10-圖11中所示出的步驟僅僅是用于說明的示例,并且可以根據需要包括或排除某些其他步驟。另外,盡管步驟的特定順序被示出,但該順序僅僅是說明性的,并且可以在不背離本文的實施例的范圍的情況下來使用對步驟的任意合適的安排。而且,盡管過程1000-1100被單獨描述,但來自每個過程的某些步驟可以被包括在彼此的過程中,并且這些過程不意為互相排斥。
因此,本文所描述的技術提供了對特定分類問題的最優投票策略的計算,例如將網絡流量分類為正常或指示攻擊。實際上,投票分類器作為元分類器,該元分類器可以相對于單個分類器而產生提高的性能。此外,可以使用具有相同輸出標簽(例如,正常或攻擊)、并且可以具有或者可以不具有相同輸入特征的不同類型的分類器(例如,ANN、SVM、Bayesian等)來進行投票。可以本地執行這樣的投票,從而降低特定節點對網絡的使用,或者可以采用分布式的方式來執行這樣的投票,從而降低該節點的資源需求。
盡管已經示出并且描述了提供對網絡攻擊的檢測進行驗證的說明性實施例,但應當理解,在本文的實施例的精神和范圍內,可以做出各種其他的適應和修改。例如,盡管本文的技術主要針對攻擊檢測分類器進行描述,但本文的技術也可以被用來對與攻擊檢測有關的不同分類標簽(例如,與其他網絡狀況有關的標簽)進行投票。另外,盡管本文的技術主要在LLN的上下文中進行描述,但本文的技術可以更普遍地適用于任何形式的計算機網絡,例如,企業網絡。
前面的描述針對具體實施例。然而,顯而易見的是,可以對所描述的實施例做出其他變化和修改,從而實現其優勢中的一些優勢或全部優勢。例如,應當明確預期,本文所描述的部件和/或元件可以被實現為軟件,該軟件被存儲于具有在計算機、硬件、固件或其組合上運行的程序指令的有形(非暫態)計算機可讀介質(例如,盤/CD/RAM/EEPROM/等)。因此,本說明書只通過示例的方式進行,而非以其他方式限制本文的實施例的范圍。因此,所附權利要求的目的在于覆蓋進入本文的實施例的真實精神和范圍內的所有這樣的變化或修改。