《Web安全之機器學習入門》 前言

前言

t近幾年,人工智慧無疑成為人們口中的熱點話題。先是Google的AlphaGo,後有百度的度秘、無人車,微軟必應搜索推出的小冰也是新聞不斷。這一系列人工智慧產品的推陳出新,令人眼花繚亂,一時間給人的感覺是人工智慧遍地開花。無論人們接受還是不接受,人工智慧都在迅速滲透各行各業。安全作為一個傳統行業,基於規則以及黑白名單的檢測技術已經發展到了一定的瓶頸,而利益驅動的黑產團伙,其技術的發展已經遠遠超乎我們的想像。如何藉助人工智慧的力量,提升安全行業的整體檢測與防護能力,成為各大安全廠商研究的課題。國內安全行業,隨著BAT3以及大量新興的創業企業進入企業安全領域,他們憑藉著自身數據搜集、處理、積累以及人工智慧方面優勢,正在逐漸改變著整個安全行業,安全產品的形態從硬體盒子逐步走向混合模式以及雲端SaaS服務,安全技術從重防禦逐步走向數據以及智能驅動。傳統安全企業也憑藉其強大的安全人才儲備,迅速推進人工智慧在安全產品的落地。

t我在安全這個行業搬了好幾年磚,前五年做大型互聯網公司的企業安全建設,從准入系統到WAF、SIEM、IPS等,基本都開發或者使用過,最近三年一直負責雲安全產品,從抗D、WAF產品到、SIEM、入侵檢測等,使用的技術從規則、黑白名單、模型、沙箱再到機器學習,從單機的OSSIM到Hadoop、Storm、Spark、ELK,也算目睹了安全技術或者更準確的說數據分析處理技術的迅猛發展。我深深感到使用人工智慧技術改變這個行業,不是我們的選擇,而是必經之路。我真正意義上接觸機器學習是2014年底,當時帶領了一個很小的團隊嘗試使用機器學習演算法解決安全問題,磕磕碰碰一直走到現在,變成幾十人的一個產品團隊。本書是我機器學習三部曲的第一部,主要以機器學習常見演算法為主線,以生活中的例子和具體安全場景介紹機器學習常見演算法,定位為機器學習入門書籍,便於大家可以快速上手。全部代碼都在普通PC電腦上可以運行。第二部將重點介紹深度學習,並以具體的十個案例介紹機器學習的應用,定位是面向具有一定機器學習基礎或者致力於使用機器學習解決工作中問題的讀者,全書的重點集中在問題的解決而不是演算法的介紹。由於深度學習通常計算量已經超過了PC的能力,部分代碼需要在伺服器甚至GPU上運行,不過這不影響大家的閱讀與學習。第三部將重點介紹強化學習和對抗網路,並以若干虛構安全產品或者項目介紹如何讓機器真正具備AlphaGo級別的智能。

t本書的第1章概括介紹了機器學習的發展以及互聯網目前的安全形勢。第2章介紹了如何打造自己的機器學習工具箱。第3章概括介紹了機器學習的基本概念。第4章介紹web安全的基礎知識。第5章到第13章介紹淺層機器學習演算法,包括常見的K近鄰、決策樹、樸素貝葉斯、邏輯回歸、支持向量機、K均值、FP-growth與Apriori、隱式馬爾可夫、有向圖。第14章到第17章介紹神經網路以及深度學習中常用的遞歸神經網路和卷積神經網路。每章都會以生活中的例子開頭,讓讀者有一個感性的認識,然後是簡短的基礎知識的介紹,最後是以安全領域的2-3個例子,講解如何使用該演算法解決問題,全書定位是能讓更多的安全愛好者以及信息安全從業者可以了解機器學習,動手使用簡單的機器學習演算法解決實際問題,所以全書盡量避免生硬的說教,能用文字描述的盡量不用冷冰冰的公式,能用圖和代碼說明的盡量不用多餘的文字,正如霍金說言,」多寫1個公式,少一半讀者」,希望反之亦然。具體到機器學習應用於安全領域,遇到的最大問題就是缺乏大量的黑樣本,即所謂的攻擊樣本,尤其相對於大量的正常業務訪問,攻擊行為尤其是成功的攻擊行為是非常少的,這就給機器學習帶來了很大挑戰。本書中很少對不同演算法進行橫向比較,也是因為確實不同場景下不同演算法表現差別很大,很難說深度學習就一定比樸素貝葉斯好,也很難說支持向量機就比不過卷積神經網路,拿某個具體場景進行橫評意義不大,畢竟選擇演算法不像購買SUV,可以拿幾十個參數評頭論足,最後還是需要大家結合實際問題去選擇。

t這裡我要感謝我的家人對我的支持,本來工作就很忙,沒有太多時間處理家務,寫書以後更是花費了我大量的休息時間,我的妻子無條件承擔起了全部家務尤其是照料孩子方面的繁雜事務。我很感謝我的女兒,寫書這段時間幾乎沒有時間陪她玩,她也很懂事的自己玩,我也想用這本書作為她的生日禮物。我還要感謝編輯吳怡對我的支持和鼓勵,讓我可以堅持把這本書寫完。最後還要感謝各位業內好友尤其是我boss對我的支持,排名不分先後:馬傑@百度安全、馮景輝@百度安全、林曉東@百度基礎架構、黃穎@百度IT、李振宇@百度AI、Lenx@百度安全、黃正@百度安全、程岩@京東、郝軼@百度雲、雲鵬@百度無人車、趙林林@微步在線、張宇平@數盟、謝忱@Freebuf、李新@Freebuf、李琦@清華、徐恪@清華、王宇@螞蟻金服、王泯然@螞蟻金服、王龍@螞蟻金服、周濤@啟明星辰、姚志武@借貸寶、劉靜@安天、劉元軍@醫渡雲、廖威@易寶支付、尹毅@sobug、宋文寬@聯想、團長@宜人貸、齊魯@搜狐安全、吳聖@58安全、康宇@新浪安全、幻泉@i春秋、雅馳@i春秋、王慶雙@i春秋、張亞同@i春秋、王禾@微軟、李臻@paloalto、西瓜@四葉草、鄭偉@四葉草、朱利軍@四葉草、土夫子@XSRC、英雄馬@樂視雲、sbilly@360、侯曼@360、高磊@滴滴、高磊@愛加密、高漸離@華為、劉洪善@華為雲、宋柏林@一畝田、張昊@一畝田、張開@安恆、李碩@智聯、阿杜@優信拍、李斌@房多多、李程@搜狗、Tony@京東安全、簡單@京東安全、姚聰@face+、李鳴雷@金山雲,最後我還要感謝我的親密戰友陳燕、康亮亮、蔡奇、哲超、新宇、子奇、月升、王磊、碳基體、劉璇、錢華溝、劉超、王胄、吳梅、馮偵探、馮永校。

t本書面向信息安全從業人員、大專院校計算機相關專業學生以及信息安全愛好者,機器學習愛好者,對於想了解人工智慧的CTO、運維總監、架構師同樣也是一本不錯的科普書籍。如果看完本書,可以讓讀者在工作學習中遇到問題可以想起一到兩種演算法,那麼我覺得就達到效果了,如果可以讓讀者可以像使用printf一樣使用SVM、樸素貝葉斯等演算法,那麼這本書就相當成功了。

t我平時在Freebuf專欄以及i春秋分享企業安全建設以及人工智慧相關經驗與最新話題,同時也運營我的微信公眾號」兜哥帶你學安全」,歡迎大家關注並在線交流。

t本書使用的代碼和數據均在github上發布,對應地址為:

github.com/duoergun0729

t代碼層面任何疑問可以在github上直接反饋。

我的公眾號 "兜哥帶你學安全"


推薦閱讀:

AI老法師教你如何拍照
曝一曝本屆雲棲大會上的智能設計黑馬
有哪些優秀的 AI 資訊來源?
AI+醫療的商業化之路有多遠?
人工智慧的信息局限

TAG:机器学习 | 计算机网络安全 | 人工智能 |