hihttps是一款免費的web應用防火牆,既支持傳統的WAF的OWASP特徵工程檢查(如SQL注入、XSS、惡意漏洞掃描、密碼破解、CC、DDOS等),也支持機器採集樣本無監督學習,自主對抗,從新定義web安全。今天筆者就從web安全的角度,介紹機器學習之樣本採集。html
1、 究竟什麼是web?
網絡安全專家一般認爲:web惡意不少是有其特殊的URL特徵,如
惡意掃描 GET /hihttps?cat ../…/../etc/passwd
SQL注入 GET /hihttps?user=123' or 1='1
XSS GET /hihttps?user=<script>alert(1);</script>a
......這類確實有很是典型的特徵,傳統的waf和規則就能夠防護。linux
那麼下面的URL呢?
GET /hihttps?user=ls123
GET /hihttps?user=%0Als
……準確說,這類網絡安全專家也認爲是正常的請求,或者說沒法辨別是否惡意***。git
問題就來了,像GET /hihttps?user=ls123就必定是正常的請求嗎?不必定。
好比CVE-2019-11043高位漏洞:向Nginx + PHP-FPM的服務器 URL發送 %0a 時,能夠執行任意遠程命令,從而控制整個服務器。也就是說:GET /hihttps?user=%0Als在某些環境就是一條成功的***,而且執行了linux的ls命令;若是服務器沒安裝Nginx+PHP,也能夠認爲是無害的。github
再進一步,若是網站上根本沒有hihttps這個接口,那就是惡意掃描,必定要檢測出來並阻斷。但傳統的方法確定不行了,那麼機器學習將是惟一的辦法。web
2、 機器學習從新定義網絡安全
和圖形圖像的機器學習相比,web安全採集樣本的成本是最低的,由於只要把軟件在服務器上運行便可採集,甚至讀取web日誌文件,就能夠拿到大量的樣本,而成本幾乎是0。
但**樣本太稀缺了,根本沒法拿完而且突飛猛進,從這個角度也能夠說無監督或者半監督學習,纔是將來web安全的發展方向。下面舉例:安全
若是從web服務器上http:// www.hihttps.com/hihttps.html?id=123,採集到的樣本參數大於99.9%都是「?id=數字」這種形態,那麼能夠認爲下面的網址都視爲:
http://www.hihttps.com/hihttps.html?id=123' or 1='1
http:// www.hihttps.com /hihttps.html?id=<script>alert(1);</script>
http:// www.hihttps.com /hihttps.html?id=1234567890&t=123
http:// www.hihttps.com /hihttps.html?id=abc
後面兩條網址,在傳統的waf是不可能檢測的,只有機器學習才能準確檢測出。因此機器學習的核心是:不是我服務器上的東西,都視爲非法,這樣有可能阻止未知漏洞和未知。這樣,web安全的概念和傳統的特徵工程徹底不同了,機器學習從新定義了網絡安全。服務器
3、 樣本採集原則
一、足夠的隨機化,在不一樣的IP地址之間隨機採集。
二、足夠多的樣本,保證99.99%的正確率,至少須要採集數萬份的樣本。
三、足夠的時間,至少在不一樣的時間段採集3-7天的樣本。
四、儘可能是正常流量,樣本沒有被**污染。
五、完整的數據,樣本包括所有的HTTP 請求頭和body。網絡
因此從web日誌裏面來讀取樣本數據是有限的,最好用WAF實際部署方式來採集。對於SSL加密的樣本採集一般用反向代理方式採集,能夠參考hihttps源碼https://github.com/qq4108863
4、總結
一、如今的網絡都基於邏輯漏洞進行APT,傳統的waf規則很難對付未知漏洞和未知。
二、讓機器像人同樣學習,具備必定智能自動對抗APT或許是惟一有效途徑。但***技術自己就是人類最頂尖智力的較量,WEB安全仍然任重而道遠,
三、幸虧hihttps這類免費的應用防火牆在機器學習、自主對抗中開了很好一個頭,將來web安全極可能是特徵工程+機器學習共同完成,筆者將在下一篇文章中介紹怎麼從樣本中提取特徵,自動生成對抗規則,將來WEB安全必然是AI的天下。機器學習