基于被動DNS流量分析的大規模IoT設備識別系統
一. 引言
隨著智能家居的普及,物聯網設備的數量也在增加。但是,由于物聯網設備的開發商和供應商往往會忽略基本的安全機制,導致越來越多大規模網絡攻擊事件都與物聯網設備有關。這不僅危及用戶的安全,也給互聯網帶來了極大的安全威脅。目前,網絡空間測繪系統使用主動探測技術來掃描整個IPv4空間,并通過獲取banner或其他指紋來識別網絡服務和暴露的物聯網設備。然而,這種主動探測技術無法識別隱藏在NAT防火墻設備之后的IoT設備,同時,當IoT設備被分配到IPv6地址時,主動探測也面臨挑戰。
本文介紹一篇來自IEEE European Symposium on Security and Privacy(EuroS&P)的會議論文《IoTFinder: Efficient Large-Scale Identification of IoT Devices via Passive DNS Traffic Analysis》,該論文解決了上述問題,作者設計了一種用于可大規模被動識別設備的IoTFinder系統,通過對分布式被動DNS進行數據收集,可識別位于NAT(或其他中間設備,如防火墻)之后或分配IPv6地址的IoT設備。接著,使用基于機器學習的系統準確識別各種各樣的IoT設備類型及其設備型號。
二. IoTFinder系統設計
2.1
系統概述
如圖1,作者設計了一個大型物聯網實驗室,包括多個語音助手、攝像頭、體溫計等53個來自不同廠商的活躍物聯網設備。通過收集智能設備的DNS流量,包括每個設備發送和接收的所有流量作為數據集。

圖1 IoT流量收集設置
如圖2所示,表示24小時內的部分IoT設備查詢域名情況,橫軸為時間,縱軸表示每個IoT設備查詢的域名,圓點表示DNS查詢的次數。可以看出,不同于單一域名,物聯網設備發出的DNS查詢的域名組合和相關頻率往往會有特定的頻率。基于該發現,作者建立一組可區分行為指紋,該指紋可以識別不同的物聯網設備型號,且與客戶端的DNS行為匹配時不太可能觸發大量誤報。因此,利用上述發現構建了可以自動學習的基于DNS的IoT指紋的系統,而不需要對設備可能查詢的域名格式進行轉換來生成過濾規則,從而減少誤報。

圖2 24小時內的IoT設備的域名查詢情況
IoTFinder系統如圖3所示,作者提出了一種將IoT設備識別與文檔檢索相似的方法,即將IoT設備的DNS行為轉換為TF-IDF特征向量表示,然后計算IoT設備與普通設備之間的相似性(例如余弦相似度)。通過這種方法,可以檢索出與已知設備相似的IoT設備。

圖3 基于DNS請求日志的IoT指紋學習與匹配技術
2.2
基于DNS的IoT指紋學習
通過分析某一段時間內IoT設備的DNS查詢來對設備進行識別。為了對IoT設備進行建模,將T(l)劃分為長度為w的不重疊的時間窗口,則時間窗口個數N(w)表示為

IoT設備在T(l)時間內查詢m(k)個不同域名q(kj)的查詢次數Q(k)表示為

IoT設備Q(k)查詢的域名q(kj)在任意長度w的時間窗口內至少查詢一次的概率p(kj)表示為:

那么,IoT設備Q(k)的統計指紋則可以表示為:

時間離散化過程是一種將時間劃分為離散間隔或“窗口”的方法,用來解決IoT設備之間查詢頻率的變化。這一點很重要,因為物聯網設備的查詢頻率可能會受到其位置或所連接的網絡基礎設施等因素的影響。通過將時間劃分為窗口,可以比較不同物聯網設備的查詢頻率,更好地近似它們的真實行為。
IoT設備查詢的每個域名的逆文檔頻率(IDF)用于評估每個域名在全球DNS查詢中“流行度”,定義如下:

其中,N(c)表示在T(p)時間內至少查詢一個IoT域名的總的客戶端數量。IDF越高,說明域名在所有客戶端中越不常見,其特異性就越高,表示更有機會匹配到一個IoT設備,可用于提高物聯網指紋匹配的準確性。
最后,在學習階段可獲得IoT的統計指紋如下:IoT域名查詢頻率、用于計算P(k)的時間窗口w,每個域名的IDF以及每個設備的最大容忍誤報率φ計算的檢測閾值θ。
2.3
基于DNS的IoT指紋匹配
作者通過IoT設備的統計指紋P(k)與客戶端C(i)在時間窗T(t)中收集的DNS流量進行匹
配,進而實現基于DNS流量的IoT指紋匹配,分為以下3個步驟。
1. 計算指紋在時間T(k)內IoT設備Q(k)的TF-IDF向量ψ(k),公式如下

2. 計算客戶端C(i)的TF-IDF向量。假定C(i)在T(t)時間內查詢不同域名d(ij)及其發生頻率f(ij),則客戶端C(i)的TF-IDF向量表示為

3. 計算IoT設備的TF-IDF與客戶端C(i)之間的相似性s(ψ(k), Γ(i)),這里使用余弦相似度,表示為

其中,Γ(i)為C(i)映射到ψ(k)的向量空間得到新的TF-IDF向量,計算如下

在得到兩個跨度相同的向量空間ψ(k)和Γ(i),如果匹配值s(ψ(k),Γ(i))大于等于閾值θ(k),則C(i)的DNS數據行為與IoT設備Q(k)匹配。
三. IoTFinder系統評估
3.1
數據集介紹
實驗用了4個不同的數據集,包括IoTDNS、PDNS、LDNS和PIoTDNS,數據集在不同
時間收集,用于訓練和測試統計物聯網指紋,簡要介紹如下:
1. IoTDNS(IoT Lab Trace Dataset):IoTDNS數據集包含由53個不同的活躍物聯網設備生成的DNS流量,如圖1所示。
2. PDNS(Passive DNS Traces):PDNS數據集包含了從一個美國的大型互聯網服務提供商(ISP)獲取的匿名的被動DNS跟蹤數據,該數據集能夠查看散布在美國地區超過4000萬臺互聯網連接設備(包括物聯網設備)每天發出的域名查詢。該數據集用于野外通用設備中的查詢頻率(IDF計算),并估計每個學習到的統計指紋的物聯網設備的總體。
3. LDNS(Labeled DNS Traces):LDNS數據集包含了從一個美國的大型大學校園網絡中獲取的帶標簽的被動DNS跟蹤數據,包含了超過54000臺通用非物聯網設備的日常數據,平均計數分布如表1所示。
表1 非物聯網設備每日平均計數

4. TPIoTDNS(Third-Party IoT Device Traffic):TPIoTDNS數據集包含由第三方實體收集的網絡跟蹤數據。
3.2
設備指紋學習評估
作者通過分析DNS查詢來學習IoT設備的特征指紋,并評估了每個設備指紋在識別未來的流量時的性能。如圖4所示,通過計算和分析每個設備分類器的ROC曲線下面積,來表示每個設備指紋的性能,圖中給出20個不同訓練集和測試集的pAUC分布,藍色方塊為pAUC中位數,該方法的平均pAUC達到了99.9%,遠高于其他方法的平均水平,這表明該方法在識別IoT設備方面更加準確。

圖4 設備指紋準確性評估
3.3
NAT環境中IoT設備的指紋檢測評估
實驗評估了當IoT設備的流量與來自其他設備的混合流量時,學習得到設備指紋檢測 IoT設備的能力。通過模擬一個有NAT的網絡環境,其中有100多臺設備共享同一個IP地址。然后,將經過訓練的物聯網指紋與該模擬流量進行匹配,并測量正確檢測到的設備數量以及誤報和漏報的數量。結果表明,即使在這種具有挑戰性的情況下,對于52臺物聯網設備,指紋能夠檢測出中的多達40臺,并且沒有誤報。這證明了該方法在真實網絡環境中檢測物聯網設備的有效性。
3.4
第三方IoT設備的檢測評估
針對第三方數據集TPIoTDNS數據集,實驗用IoTFinder檢測第三方數據集中的物聯網設備,通過對比實驗數據,研究人員發現除了一個蘋果電視盒,IoTFinder準確地檢測到了其他所有的IoT設備。研究人員進一步調查了這個問題,發現在混合的IoT和非IoT流量中,有些設備更難檢測到,這可能是模型沒有匹配到蘋果電視盒的原因。實驗結果表明,IoTFinder在檢測IoT設備方面表現出色,除了在混合流量中檢測到某些設備困難的情況。
3.5
IoTFinder檢測效率評估
圖5展示了在某個美國大型互聯網服務提供商的DNS流量上部署IoTFinder工具后匹配模型的前20個最受歡迎的設備的分布。實驗結果表明,使用基于Apache Spark的實現可以提高IoTFinder的效率,并能夠快速匹配IoT指紋。通過這種設置,指紋在超過4000萬ISP客戶的DNS流量上部署需要大約72分鐘。

圖5 某個美國ISP網絡上的IoT設備分布(Top 20)
四. 總結
本文介紹了IoTFinde系統,一個用于大規模被動識別IoT設備的高效檢測系統。它利用分布式被動DNS數據收集和基于機器學習的方法,能夠準確識別大量不同類型的IoT設備。但是,由于DNS的緩存效果可能會壓縮設備的查詢頻率,所以IoTFinder系統無法識別一個域名系統后有多少相同的設備,而對于主動探測來說,往往很容易得到。因此,在越來越多的IoT設備暴露下,主被動探測結合往往是資產探測的更好 的方式。