我所理解的未知威脅大數據安全架構
關於大數據安全的架構,先需要回答如下幾個問題:
1、采用什麽大數據工具或大數據生態圈來支撐整個結構
2、我們需要收集什麽樣的數據來分析相關安全問題
3、需要采用什麽樣的AI算法來支撐無特征威脅的分析
4、采用什麽樣的分類、形式來展示相關安全問題
5、怎麽樣對安全問題進行響應以形成相關閉環,進而提升解決安全問題的能力
對於上述問題我是這麽理解的(僅就個人觀點而言):
1、推薦采用基於Spark的大數據生態圈來實施(ELK結構當然也可以,但ElasticSearch本身並沒有類似MapReduce能力;Logstash的單機性能實在堪憂);即使用Flume或自我開發的LogParser作為日誌標準化工具對日誌進行元數據分解,應用Kafka作為日誌傳遞工具,使用Spark RDD進行相關分析,SparkR或MLlib作為機器學習工具,Mesos作為資源調度器,Zookeeper作為HA工具(如果需要的話),HDFS作為最終的處理存儲工具;
2、需要收集PCAP、經分析的網絡元數據(主要為網絡會話信息,包括應用協議信息,如DNS、HTTP/HTTPS、SMTP/IMAP/POP3、SSH、SSL/TLS、Telnet等,特別對於可能存在反彈連接的情況)、IDS/IPS、防火墻(其實已經不太必要)、操作系統自身運行(含端口、進程信息)、服務器數據庫/NoSQL、中間件、防毒網關/軟件(含沙箱執行結果)、其它應用(主要是用戶使用或自研的系統)等等;需建立用戶和終端的對應關系;至於各類系統的漏洞到底是否需要采集,這個可能不一定,因為現在多數都是使用0day進行攻擊,即使掃出了漏洞也未必管用;
3、在Spark中,AI算法主要包含四類:回歸、分類、聚類(無監督)、協同過濾,我認為可能安全問題主要聚焦在分類和聚類上,特別對於聚類而言(不能指望用戶懂的太多,所以無監督的最好),我們只需要知道好和不好的就可以了;舉例而言,可以對於某個終端的行為進行畫像,即對其網絡行為(連入/連出)、系統行為(端口、服務信息)、應用行為(登錄的應用系統及其動作,這個需要采集相關應用系統日誌;郵件收發情況等);
4、至於采用什麽形式來展現安全問題,這個就太多了,具體可參考Splunk相關樣例,但需要註意的是不要讓用戶幹的太多,但對於每個問題還是可以追溯、導出其原始內容,以方便取證(Forensics);
5、當然對於一般安全問題的處理可以使用工單/短信/郵件等形式進行通知、流轉、處理,但在緊急情況下可以直接通過應用網關進行阻斷(確認確實是100%安全問題,為什麽不使用防火墻阻斷,讀者可以想想)。
我所理解的未知威脅大數據安全架構