陳大文,刑 偉
(江蘇金盾檢測技術有限公司,江蘇 南京 210042)
物聯網一詞最早由Kevin Ashton在1999年提出,其沒有官方定義,事實上不同作者之間的定義差異很大。CASAGRAS將物聯網描述為一種全球網絡基礎設施,通過利用數據捕獲和通信能力將實體和虛擬對象連接起來。這一基礎設施包括現有的和不斷發展的Internet網絡,它將提供具體的客觀識別、傳感器以及連接能力,作為獨立合作服務和應用開發的基礎擁有高度自主的數據捕獲、事件傳輸、網絡連接以及互操作性等特點[1]。
短時間內,物聯網相關技術得到飛躍式發展,物聯網也跨越工業、商業、醫療、汽車以及其他應用迅速進入人們的日常生活。鑒于其對個人、機構及系統的影響范圍甚廣,安全性上升成為所有物聯網系統中最關鍵的組成部分。物聯網網絡的脆弱性往往是在作評估時開發人員要特別關注的最基本元素,而邊緣節點通常是小型低成本的智能設備,人們往往因為其訪問資源有限,從而錯誤地認為邊緣節點不易受到攻擊,而邊緣節點到目前為止還未具備成熟的安全技術。由于物聯網邊緣節點部署的特點,使其很容易被攻擊者接觸并破解,修改其中的固件或代碼,造成物聯網邊緣節點被利用,成為攻擊者發送DDOS攻擊、假冒身份攻擊以及中間人攻擊等的有效途徑。如果要真正重視物聯網節點的安全性,那么物聯網的節點安全也必須與網上銀行賬號登錄類似,其安全性由多個層次來提供。現有的SSL/TLS等網絡加密協議也僅能保護未遭受入侵的邊緣節點與服務器之間的通信通道,無法防止非入網型攻擊,另外物聯網節點運算能力及能源往往被忽視,其較弱的運算能力加上被限制的能源很難執行復雜度高的非對稱或對稱加密算法。因此,需要有一種對能源需求和計算復雜都較低的邊緣節點保護機制。
在物聯網節點保護中,加密算法是最常用的方法。在基于數據加密的保護方法中,同態加密技術和安全多方計算使用最多。Rivest等人于1978年提出同態加密技術,它是一種允許對密文進行操作的加密變換技術[2]。Domingo等人在此基礎上做了進一步改進,改進之后的算法擁有既保證用戶可以對敏感數據進行操作,又不泄露數據的特點。另外,安全多方計算使用SMC臨時密碼組合保護并隱藏RFID的標志[3]。基于密碼機制的安全協議也是物聯網節點保護中常見的方法,主要包括基于Hash函數的方法、重加密方法以及匿名ID方法。其中基于hash函數的方法又分為隨機化hash鎖協議和Hash鏈協議[4]。在上述的保護方案中,大部分要使用到加密算法,但是由于物聯網節點運算能力以及能源都受到一定限制,很難執行復雜度高的非對稱或對稱加密算法。因此,需要設計一種對能源需求和計算復雜度都較低的邊緣節點保護機制。另外,物聯網節點具有趨同性,即大部分節點上運行的代碼和功能都相同,若一個節點被攻擊者發現有利用的漏洞,那么大部分節點都存在有相同的漏洞,攻擊者就能攻擊大部分的物聯網節點。由此本文提出一種基于雙偽隨機序列的物聯網安全蜜罐節點,該節點具有與物聯網中其他節點相同的功能,同時承擔蜜罐功能。一旦其被攻擊者攻擊并利用,則物聯網管理中心會立刻發現該節點被劫持,從而發揮物聯網邊緣節點的安全警戒作用。
隨機數是指一組不能被預測的數字或符號序列,這些數字和序列是完全偶然產生的,即隨機數是客觀世界不確定性的理論抽象[5,6]。隨機數數列分為真隨機數數列和偽隨機數數列兩種,真隨機數數列和偽隨機數列的區別在于真隨機數數列是完全不可預測的,得到它的途徑為放射性衰變、電子設備的熱噪音以及宇宙射線的觸發時間等物理過程,僅僅通過軟件方式是無法獲得的。偽隨機數則是指一組特性接近隨機數特性的數的序列,是可預測的,嚴格意義上講,它并不具有隨機性質,通常用數學公式的方法獲得[7]。由上述比較及相關研究可知,確實的數的序列是偽隨機數的本質,只是其序列周期的長度遠長于所研究的問題集分布序列的長度[8]。
如果一個序列是偽隨機的,那么它至少應具有如下性質。一是偽隨機序列能通過已知的,所有正確的隨機性檢驗,只是看起來隨機,并非真正的隨機。二是不可預測的,也就是說,即使給出產生序列的算法或者硬件設計和以前產生序列的所有知識,也不可能通過計算來預測下一個隨機位是什么值[9-11]。
在面對網絡入侵和攻擊時,蜜罐技術這種網絡防御陷阱技術常常被使用來抵御攻擊[12]。蜜罐系統最主要的功能是對系統中所有的操作和行為進行監視和記錄,通過對系統進行偽裝,使得攻擊者在進入到蜜罐系統后并不會知曉其行為己經處于系統的監視中,然后根據所有攻擊行為分析攻擊方法和攻擊企圖,來保護真實服務資源。通過蜜罐,人們能夠采集針對服務器的攻擊和漏洞,這樣攻擊破壞行為就可以被延緩乃至阻止。蜜罐技術的出現,打破了傳統防御的被動僵局,其具備如下特點。
(1)蜜罐第一個也是最大的一個優勢就是其簡易性。跟其他方法相比,蜜罐中既涉及不到任何特殊的計算,也不需要保存特征數據庫。
(2)蜜罐的第二個優勢就是資源占用率低。其所要做的事情十分簡單,僅僅需要捕獲進入的所有數據,然后對那些嘗試連接的行為進行記錄,并作出響應。
(3)蜜罐第三大優勢就是其采集的數據具有很高的價值。安全防御中最棘手的問題就是如何簡單快速的從成千上萬的數據中篩選出符合自己需求的數據,蜜罐收集的數據多且價值高,很好地解決了安全防護的難題。
蜜罐處理流程如圖1所示,涉及的技術主要包括誘騙技術、數據捕捉技術、數據控制技術以及數據分析技術。其中,誘騙技術是蜜罐技術體系中最為關鍵的核心技術,使入侵者相信存在有價值的、可利用的安全弱點,誘使攻擊者對蜜罐進行掃描、攻擊。數據捕捉技術是指對進出蜜罐的所有活動進行監視和記錄。數據控制技術顧名思義是指控制所有網絡活動的技術。而數據分析技術是指從大量的網絡數據中提取出攻擊行為的特征和模型,這其實是相當困難的,數據分析也是是蜜罐技術中的難點,對捕獲的各種攻擊數據進行融合與挖掘,分析黑客的工具、策略及動機,提取未知攻擊的特征,為研究或管理人員提供實時信息。

圖1 蜜罐處理流程
在本文提出的物聯網安全節點中,應用了一種隱私保護研究領域中基于數據修改的技術,即數據擾動。所謂數據隨機化是指對待分析的原始數據對象加入一些隨機噪聲進行數據擾動,隨機擾動是數據隨機化處理的一種方法,它采用數據隨機化過程修復敏感數據,而從實現對隱私數據的保護。數據擾動簡單而有效的特點使其在與現有其他隱私保護技術的比較中脫穎而出,用來保護敏感數據。通過擾動思想的數據修改技術是對原始數據進行某些方面的修改以實現數據挖掘中敏感數據的隱私保護。
本文提出的物聯網安全蜜罐節點是通過對物聯網節點上傳數據進行擾動來實現的。為了能充分利用蜜罐功能,同時兼顧低計算復雜度與能耗,本文基于上述偽隨機序列,采用雙偽隨機序列對物聯網節點上傳的數據進行擾動。數據擾動具體步驟如圖2所示。

圖2 數據擾動算法流程
其擾動的步驟如下:第一步,預先設定物聯網觀測數據的大小范圍及平均有效數據位數;第二步,物聯網節點通過偽隨機數生成器,生成N個及N+1個隨機數;第三步,使用第一個隨機數取整,將所得整數對平均有效數據位數進行求余;第四步,使用余數m對觀察數據進行擾動,若為負數,則截取觀察數據后m位,并在發送下一個觀察數據之前將其添加到下一個觀察數據尾部,若為正數,則將第二個隨機數變換成純小數,直接添加到當前觀察數據之后;第五步,判斷第四步擾動后生成的數據是否在觀測數據范圍之內,如果否,則返回第二步取N+2和N+3個隨機數,再嘗試擾動。
為了對數據擾動進行恢復,本文提出相對于數據擾動的恢復算法,算法流程如圖3所示。在物聯網管理中心針對各物聯網蜜罐節點保持記錄值,記錄對應蜜罐節點當前隨機序列已生成的隨機數個數N。當收到了蜜罐節點發送來的數據時,執行與擾動算法相反動作來恢復蜜罐節點的發送數據。

圖3 數據擾動恢復算法流程
具體步驟如下:第一步,與上述相同生成N、N+1隨機數;第二步,通過N取整,求余數m,若為正則判斷該數據后N位數是否等于N+1,若為負則將接收的數據去除m位,并結合下一個接收數據判斷是否一致;第三步,如果第二步中判斷為否,則回到第一步生成N+2、N+3隨機數,再次驗證。
蜜罐節點由于需要生成偽隨機序列,因此在部署之前需要先預置兩個數據,并記錄在物聯管理中心,一個是蜜罐節點的ID號,另一個是偽數據數序列的生成種子。其中,節點的ID號用作管理中心區分不同物聯網節點的依據,生成種子用作對蜜罐擾動數據的恢復。由于本文所提的蜜罐節點在功能上與普通的物聯網節點一致,因此可以按一定的比例與正常的節點混合在一起部署。
一旦平臺發現某個蜜罐節點發送的數據擾動恢復失敗,則意味著有可能蜜罐節點被攻擊了或者蜜罐節點出現了故障,此時物聯網管理中心可以對蜜罐節點的擾動數據進一步分析,將當前隨機數生成個數N恢復成0,再一次進行校驗,看是否能通過校驗,如果能通過,則說明蜜罐節點發生了重啟,數據擾動的隨機序列從0開始生成了,蜜罐內的程序應沒有被破壞。
本文所提出來的物聯網蜜罐節點采用了雙隨機序列對觀測數據的擾動,執行的功能與普通的物聯網節點完全一樣,所以攻擊者在眾多的物聯網邊緣節點中很難發現。當攻擊者對其采用與其他節點一樣的同類攻擊時,必然會改寫該節點發送的觀測數據,從而引發物聯網管理中心的擾動數據恢復失敗,從而實現了蜜罐的警戒作用。此外,本文的蜜罐功能只使用到隨機數生成與數據擾動,計算復雜度很低,對于能源方面的需求很小,因此可以充分滿足物聯網邊緣節點的應用需求。