hihttps是首款免費的MQTT物聯網防火牆,同時也是一款web應用防火牆,既支持傳統的WAF的OWASP特徵工程檢查(如SQL注入、XSS、惡意漏洞掃描、密碼暴力破解、CC、DDOS等),也支持機器採集樣本無監督學習,自主對抗,從新定義網絡安全。今天筆者就從物聯網MQTT協議安全的角度,介紹機器學習之樣本採集。git
MQTT是物聯網loT最普遍採用的協議,騰訊百度阿里雲都支持,基礎協議請百度搜索「物聯網防火牆himqtt源碼之MQTT協議分析」。在PUBLISH發佈和主題訂閱SUBSCRIBLE指令中,json是物聯網最經常使用的通訊格式,如:github
{web
"topic": "hihttps/read",json
"payload1": {"user=123’ or 1=’1": 888},安全
"payload2": {"id=456」},服務器
"code": 4200網絡
}機器學習
網絡安全專家一般認爲:MQTT協議攻擊不少是有其特殊的特徵,SQL注入如user=123' or 1='一、XSS攻擊如user=<script>alert(1);</script>等,這類攻擊確實有很是典型的特徵。上面payload1認爲是一個攻擊,那麼payload2呢,確定就沒法判斷了。學習
再進一步,若是物聯網服務器上根本沒有hihttps這個接口,那就是惡意行爲,必定要檢測出來並阻斷。但傳統的方法確定不行了,那麼機器學習將是惟一的辦法。阿里雲
和圖形圖像的機器學習相比,物聯網安全採集樣本的成本是最低的,由於只要把軟件在服務器上運行便可採集,甚至讀取日誌文件,就能夠拿到大量的樣本,而成本幾乎是0。
但物聯網領域黑客攻擊樣本太稀缺了,根本沒法拿完而且突飛猛進,從這個角度也能夠說無監督或者半監督學習,纔是將來物聯網安全的發展方向。下面舉例:
若是從mqtt服務器上hihttps/read 的接口中"payload2": {"id=456」},,採集到的樣本參數大於99.9%都是「?id=數字」這種形態,那麼能夠認爲下面的載荷都視爲攻擊:
"payload2": {"id=456 or 1='1」}
"payload2": {"id=456 =<script>alert(1);</script>」}
"payload2": {"id=456&t=123」}
"payload2": {"id=%&」}
後面兩條,在傳統的waf是不可能檢測的,只有機器學習才能準確檢測出攻擊。因此機器學習的核心是:不是我服務器上的東西,都視爲非法攻擊,這樣有可能阻止未知漏洞和未知攻擊。這樣,物聯網安全的概念和傳統的特徵工程徹底不同了,機器學習從新定義了網絡安全。
一、足夠的隨機化,在不一樣的IP地址之間隨機採集。
二、足夠多的樣本,保證99.99%的正確率,至少須要採集數萬份的樣本。
三、足夠的時間,至少在不一樣的時間段採集3-7天的樣本。
四、儘可能是正常流量,樣本沒有被黑客攻擊污染。
五、完整的數據,樣本包括所有的MQTT 請求頭和body。
因此從日誌裏面來讀取樣本數據是有限的,最好用WAF實際部署方式來採集。對於SSL加密的樣本採集一般用反向代理方式採集,能夠參考hihttps源碼https://github.com/qq4108863
一、如今對物聯網設備攻擊都基於邏輯漏洞進行APT攻擊,就是高級持續威脅,傳統的waf規則很難對付未知漏洞和未知攻擊。
二、讓機器像人同樣學習,具備必定智能自動對抗APT攻擊或許是惟一有效途徑。但黑客技術自己就是人類最頂尖智力的較量,物聯網安全仍然任重而道遠。
三、幸虧hihttps這類免費的物聯網防火牆在機器學習、自主對抗中開了很好一個頭,將來物聯網安全極可能是特徵工程+機器學習共同完成,筆者將在下一篇文章中介紹怎麼從MQTT樣本中提取特徵,自動生成對抗規則,將來物聯網安全必然是AI的天下。