傳統的網絡安全防護手段主要是通過單點的網絡安全設備,隨著網絡攻擊的方式和手段不斷地變化,大數據和人工智能技術也在最近十年飛速地發展,網絡安全防護也逐漸開始擁抱大數據和人工智能。傳統的安全設備和防護手段容易形成數據孤島,一種設備只能解決某一方面的問題,基于已有特征進行匹配,未將數據進行集中、組合和關聯,缺乏有效的上下文分析,無法進行深度分析,無法發現未知或隱蔽的威脅。通過大數據和人工智能的方法,可以將各種網絡安全相關的數據集中關聯和分析,這是網絡安全分析的長期發展方向。

一、當前存在的問題
網絡安全大數據這塊也經歷了很多年發展,但是在工程實踐中,針對網絡安全問題的防護還是存在很多欠缺的地方,市場這塊也集中在監管類的安全大數據產品,運營類安全大數據市場需求偏少。結合自己對網絡安全大數據的了解,存在以下幾方面的問題:
1.數據對接成本高
涉及到不同廠商、不同設備的數據對接,缺乏統一的數據對接標準和規范,都是歷史遺留的問題,不光是技術升級的成本,還涉及到廠商設備升級的費用問題,畢竟天下沒有免費的午餐,項目本身的協調成本大于技術維護成本。如何通過技術改進,實現快速對接降低成本是需要考慮的。
2.檢測能力普遍不足
目前各大廠商對安全大數據的宣傳是解決未知和隱蔽的高級可持續性威脅,但是基于產品應用的情況來看,很多遠遠滿足不了這個宣傳策略。那問題點在哪里了,站在我思考的角度來看,還是出在數據問題上,目前接入的一些網絡安全設備數據,本質上還是接入的基于特征匹配的部分日志數據,而基于主機、服務器、程序等實體對象操作行為數據和流量數據偏少。應當摒棄過度依賴基于特征匹配的思路,而應當從數據的選擇上就要考慮需要基于原始行為和原始流量的數據進行分析,避免部分特征匹配的數據成為分析的干擾源。
3.業務理解程度不夠
網絡安全大數據產品目前主要還是以相關國家標準進行建設,重點還是停留在合規監管層面,產品研發更多地在按標準依葫蘆畫瓢,以達到國家相關部門的測評為準則,其實國家相關部門出的標準和測試都是基于單點的思路和規則,沒有從整體和全局的角度去系統性測試產品,很多廠商為了應付測試也鉆了空子。正常情況下,應當是和相關部門、企業一起結合實際的網絡安全防護場景進行研究,以攻為守,基于業務需求進行建模,以滿足實用實戰為導向。
4.系統和運營沒有深度結合
很多部門、企業建設了網絡安全大數據相關的系統,僅僅只停留在應對上級主管部門檢查的層面,沒有很好利用系統,沒有專門的網絡安全人員進行運營管理。就好比軍工廠交付武器給軍隊,如何將武器的作用發揮至最大化,如何改進武器適應戰場,還得練兵備戰,與人的意志結合,將武器效能最大化。安全大數據系統也一樣,必須有專業的網絡安全人員進行運營和管理,將系統的作用最大化,提升安全大數據系統練兵備戰的能力。
二、安全大數據的基本過程
安全大數據基本過程包括數據采集、數據接入、數據預處理、數據存儲、數據分析、結果展示,各行各業大數據分析都是這個思路和流程,只是需要處理的問題不一樣,我們面向的是網絡安全大數據這塊。
1.數據采集
數據是基礎,必須接入更多的安全相關數據,安全大數據一方面是要解決基于已知特征的數據分析,更重要方面是要解決未知或隱蔽的威脅,那就要弄清底層邏輯是什么。基于已知特征數據這塊,目前存在一個點就是不同廠商的安全設備的能力不一樣,無法從根本上規避它提供數據的準確性。那有一個重要的核心點就是需要什么樣的數據,從什么方面去挖掘和分析威脅,任何事物都是運動的,我們可以變化中尋求最優解,網絡威脅也一樣。我們應當獲取每個實體最原始的行為數據,從動機和行為入手,不能忽視最合適的數據源。
2.數據接入
需要考慮的是多種數據源接入和時間同步問題,為什么要考慮這個問題,因為有些數據之間有相互關聯,多種數據在時間序列上來看,就形成了一定的可疑數據塊,這就是全局與個體的關系,威脅行為任何時刻都有可能發生,能提前感知就能減少風險。很多廠商在做產品設計的時候,忽略了數據接入的重要性。根據業務場景需求,一定要弄清每種業務場景需要的數據源接入原則,從時間、數據量上要周全考慮,并不是所有業務場景,所有的數據接入都是一致性要求,這個必須要區別對待,具體問題具體分析。
3.數據預處理
需要對接入的數據進行批量、快速處理滿足需求,如何預處理數據,這個需要考慮的點也是要根據業務場景來定義。通過逆向方式分析,以結果為導向,從數據分析和存儲要求進行定義,剔除干擾和多余數據,減少數據分析時系統的開銷。
4.數據存儲
采用基于開源的大數據技術框架,每個公司的技術實現都大同小異,重點需要考慮的是數據的寫入和查詢效率,數據的備份恢復問題。
5.數據分析
大數據分析的前提是要借助流式計算引擎,目前主流廠商都是選擇Flink。數據分析的前提是要有具體的業務場景,再基于業務場景進行業務建模,再根據業務模型確定采用什么技術方案實現業務需求。一般會從普通規則、動態基線、機器學習、深度學習等技術方法去實現,通過普通規則去匹配,也可以運用基線比較方法,也可以使用機器學習和深度學習的方法進行異常行為分析。
下面重點講一下機器學習和深度學習相關的數據分析方法。首先我們理清幾個概念,模型、算法、數據、訓練程序的關系。
模型就是根據數據訓練出來的一段程序,針對某一業務場景需求,系統程序調用模型,輸入數據,得出分析結果。那模型一般如何訓練?那就可以分為系統外訓練和系統內訓練了。
系統外訓練就是與現有系統獨立,互不干涉,有專門的訓練環境,模型訓練好了,導入現有系統升級進行使用,再通過現有系統使用情況進行評估和反饋,不斷地在訓練環境進行訓練,這樣形成一個閉環反饋機制。
系統內訓練就是基于現有系統數據進行訓練,模型訓練好了,系統程序直接進行調用,差不多是個半自動化的過程,同時網絡安全運營人員也可以根據人為的經驗和現有模型的結果不斷地去分析和標記數據,借助人的作用不斷去強化訓練這個模型,這樣系統就包括兩部分功能,一部分是業務使用,一部分是基于現有業務數據在系統內不斷訓練模型,不斷地智能驗證效果,減少人為過多地干預,這樣安全運營人員和系統就深度綁定了,因為安全大數據產品設計過程中,要充分考慮和借助專業的網絡安全人員來訓練模型,說個題外話,網絡安全人員不能脫離人工智能相關的技術。
算法是核心,基于業務場景的分析,解決客戶什么問題,考慮周全之后,確定需要分析的數據源,希望達到的預期效果,選擇合適的人工智能算法,算法也不是可以解決所有問題,它是根據不同的問題有對應的算法,一旦確定了算法,在訓練過程中不能隨便去變更算法,那這樣之前的訓練就白做了。
數據是基礎,往往網絡安全的數據問題是個難點,很多場景很難找到合適的樣本數據,比如說客戶提供一個新場景,自己覺得可以用何種算法來實現,但是樣本數據滿足不了要求。對數據的整合和規范,這個是網絡安全采用人工智能學習的一個難點和未來必須要解決的方向。
訓練程序顧名思義就是訓練模型的程序,這個也不存在技術難點。
6.結果展示
將存儲和分析結果數據如何進行展示,這個也是一個重點,以什么方式傳遞給用戶很關鍵。安全大數據主要是通過機器進行數據分析直接得出結果,還有基于原始數據的結果。一定要基于這兩方面的結果數據進行考慮,因為機器和程序分析的始終無法代替人的大腦思考,況且人腦思考問題和決策也不能保證萬無一失。所以說在產品設計的時候,一定要基于兩方面的考慮:一是要支持原始數據的查詢和統計,用戶根據自己的安全經驗進行分析,就像刑偵人員基于自己的經驗進行辦案一樣,任何辦案技術加持情況下,也離不開偵查員的分析,任何精確制導和火炮打擊情況下,在特定情況下也離不開特種兵的目標引導;二是基于機器和程序分析的結果進行展示和二次分析驗證,機器永遠只是輔助人類進行思考和決策。
三、總結
網絡安全的本質在于對抗,對抗的本質在于攻防兩端能力的較量,在于人性的較量,道高一尺,魔高一丈,魔高一尺,道高一丈,此消彼長,網絡安全永不停步,現在很多產品的設計脫離了攻防對抗的本質,不管是物理隔離的涉密網、互聯網都離不開攻防對抗的思路,應當將紅藍對抗的經驗和數據應用到產品中,進攻是最好的防守,沒有攻防數據的支撐,人工智能在網絡安全分析中的應用也是巧婦難為無米之炊。網絡安全離不開人性研究、攻防對抗、云計算、大數據及人工智能的加持。道阻且長,行則將至,行而不輟,未來可期。