一. 引言
無論在網際網路還是內網場景中,對資產的準確識別一直是一個老生常談的問題。但實際上隨著物聯網相關技術的不斷髮展,有越來越多新的裝置型別出現在我們的網路中,所以說資產識別是一個進行時的問題,需要持續關注才能很好的解決。《物聯網資產識別方法研究綜述》和《物聯網資產的6個特徵》分別介紹了物聯網資產相關的識別方法和開放HTTP服務的物聯網資產的一些特徵。本文介紹我們基於物聯網資產的先驗知識,做了一些物聯網資產發現的實踐工作。
二. 暴露的物聯網資產的特徵
找到暴露的物聯網資產不是容易的事情,原因在於網際網路上的暴露資產數量巨大、型別繁多,而物聯網資產碎片化程度非常嚴重。因而,發現物聯網資產的第一步是從暴露在網際網路上的各類資產中找到物聯網裝置的特徵,形成先驗知識。
2.1 暴露在網際網路的各類資產型別
透過網路空間搜尋引擎,我們可以快速的知道,全世界大約有多少資產和伺服器暴露在網際網路上。那麼具體都會有什麼型別的資產和服務暴露在網際網路上呢?
我們具體一些例子:
個人/企業網站或服務
個人/企業使用公網IP部署的網站或服務。
電商類服務
淘寶、京東等B2B、B2C、C2C的電商網站。
搜尋類服務
百度、谷歌、豆瓣、知乎等搜尋類服務網站。
資料庫服務
MySQL、MongoDB、ES、Redis等資料庫服務。
網路安全裝置
WAF、防火牆、VPN等網路安全裝置
IDC/家庭寬頻
IDC主機和家庭寬頻出口地址開放的服務
此外,物聯網相關的資產有:
物聯網/工業控制系統或服務
印表機、攝像頭、智慧家居等物聯網裝置或服務,還有工業控制系統服務
城市基礎設施
智慧交通、智慧城市、充電樁等城市基礎設施系統
上述部分物聯網資產可參見圖1所示。
其他服務
圖1. 一些網際網路上暴露資產類別
當然,上述提到的是網際網路上暴露數量比較多的資產類別,但絕不僅僅是提到的這幾類,這裡就不一一列舉了。
2.2 暴露物聯網資產的特徵
物聯網裝置和傳統的PC或伺服器暴露情況不太一樣,因為物聯網裝置一般會成批次的暴露在網際網路上,比如某廠商某型號的攝像頭會重複部署到網際網路上,這些裝置Banner幾乎完全一樣的,所以可以利用這樣聚集性的特點來發現物聯網裝置。
考慮到網際網路上暴露的資產數量和種類繁多,所以我們首先想到的是透過一些物聯網特徵形成先驗知識來減少處理的資料量,從而實現快速發現物聯網資產。
透過分析2.1中的各類物聯網資產,我們發現物聯網資產的特徵主要分為以下幾類:
裝置型別
物聯網裝置型別關鍵詞。比如Camera、Router、Smart Home等。
廠商名稱
物聯網裝置廠商列表可以透過搜尋引擎上搜尋獲得。比如TP-Link、Broadlink等。
Web伺服器
服務類網站常用的Nginx、Apache等作為Web伺服器,而物聯網裝置常用嵌入式web伺服器,比如Boa、thttpd、GoAhead等。
作業系統
常見的物聯網作業系統。比如OpenWRT、Android Things、ConTIk等。
協議
物聯網裝置服務常用協議型別。比如:ONVIF、UPnP、RTSP、HTTP等。
三. 物聯網資產發現實踐
本文主要使用物聯閘道器鍵詞、Web伺服器、作業系統、協議等特徵作為先驗知識來篩選資料,然後再對篩選得到高置信度物聯網裝置的Banner中的高頻片語進行統計,透過對高頻的片語對應的資產標記處理,實現快速發現物聯網資產類別。
3.1 識別流程
當我們已經有了物聯網裝置先驗知識,再從篩選後的資料中來標記物聯網資產就容易多了。資產發現具體分為以下幾個步驟:
1. 根據不同協議採集網際網路上存活的資產資料;
2. 使用物聯網先驗知識對全部資產進行過濾,得到高置信度物聯網資產資料;
3. 對篩選得到的資產Banner中的詞頻進行統計;
4. 對詞頻排序得到高頻詞列表,並將Banner含有該詞彙的資產資訊放到一個類別中;
5. 對逐個類別進行處理,標記出物聯網資產。
圖2. 基於物聯網先驗知識的資產識別流程
3.2 標記舉例
使用國內開放HTTP服務的資產資料作為標記資料集,以UPnP[張1] [D2] 作為物聯網資產先驗知識,篩選後共有5726個資產服務含有該字串。其中含有UPnP的高頻片語列表如下圖所示。
圖3. 含有UPnP詞頻降序列表
其中包含Server: Linux/2.x UPnP/1.0 Avtech/1.0資產最多,那我們接下來看看這一類中是什麼資產,下圖給出了這個類別中的部分資產記錄,從HTTP Title欄位都是“::: Login :::”可以近一步確定是一類資產。
圖4. 包含Server: Linux/2.x UPnP/1.0 Avtech/1.0的資產列表
訪問其中一個Web頁面,看到了下圖中的登入頁面,從這個頁面中的描述“Any time & Any where IP Surveillance for Your Life”就可以確定這是個網路攝像頭。而且AVTECH是臺灣的攝像頭廠商(升泰科技),所以就可以輸出一條物聯網指紋,指紋:Server: Linux/2.x UPnP/1.0 Avtech/1.0 廠商:AVTECH 裝置型別:網路攝像頭。至此一條物聯網資產標記完成。
圖5. 裝置的服務頁面
3.3 識別效果
我們嘗試標記了50個物聯閘道器鍵詞,透過對國內的開放HTTP的資產資料分析,共發現了112條物聯網指紋,13個裝置型別,涉及40個廠商,當然還意外發現了若干物聯網蜜罐。相對於純人工標記的方法,基於先驗知識的標記物聯網資產的方法大大縮小了標記的投入產出比,物聯網資產發現效果還是十分明顯的。
四. 總結
本文介紹了一種基於先驗知識的物聯網資產標記方法,從實際的標記情況來看,這種方式確實可以提升標記效率,但是該方法也有許多不足之處。其一,先驗知識收集的再好,也不會覆蓋全部的物聯網資產,並且也不能發現新出現的物聯網資產;其二,因為基於先驗知的標記方法屬於“Pick”模式,就是找我們關注的物聯網資產,所以從全域性來看,這種方法標記的覆蓋度和進度都是不可知的。
針對這些問題,下一篇我會介紹一種透過“涸澤而漁”思路來標記物聯網資產方法[lw3] ,《資產標記方法研究【二】:基於機器學習的物聯網資產標記方法》敬請期待!