顧孔希:尊敬的各位嘉賓下午好!我是顧孔希,名字可能大家不太熟悉,我藝名叫做雞子,我在滴滴安全部負責系統安全,負責安全技術系統建設,是壓力比較大的工作,包括PPT也沒有時間寫,當然我們壓力比較大,挑戰比較大,歡迎大家對滴滴感興趣可以私下聊一聊。今天主要三塊,安全檢測能力是什么、滴滴安全檢測能力歷程、對未來理解什么樣。
一、安全檢測能力是什么?
我們覺得企業安全檢測不是一個點上的東西,不是補一個漏洞就做好的事情,企業安全是體系化的對抗。體系化主要四個能力的建設:第一運營能力,貫徹整個安全建設中間,下面有三個技術能力做,分別防護能力、檢測能力、處理能力,我今天講的主要處理能力。在我們看來安全檢測幾個層次,設各種坎,我們用什么手段攻擊我們,我們用什么手段防御他。我們分析這些人怎么攻擊我的。大家闡述安全是不斷提高對抗的過程,消除它的獲利。
今天講的安全檢測能力是第二層面事情,分析攻擊過程,把攻擊手段封鎖住。什么是安全檢測能力?我們公司認為安全檢測能力是數據加各種模型等于安全檢測能力,大家看我在后邊打了一個問號,我不太認同。所有安全事件都會在數據中,我們常說安全建設有木桶原理,同時攻擊者有一樣對應的原理在,不管用什么手段攻擊,總會數據里邊留下一點痕跡,我們做安全檢測能力一定拿到所有的數據
我跟負責安全檢測事件相應能力人聊,對于他說安全檢測能力高效安全檢測能力閉環,高效不光指速度,還有準確率,有很高的準確率和很快的相應速度。還有我自己的看法,我是2014年到滴滴,那會兒CNM有點預熱,不是把公司各種安全設備集中一個平臺上去,我更多理解把各種各樣日志集中同一個平臺上去,通過關聯分析把所有日志打通,包括去年2015年業界熱詞,也離不開關聯分析,把各個緯度數據拉到一起做關聯分析。根據我們幾個人討論分析,安全檢測能力是什么?把各種各樣數據聚合一起,通過很高效的手段把數據聚合分析就是安全檢測能力
二、滴滴怎么做安全檢測能力?
先說我們安全技術架構是什么?我們解決兩個問題,第一應對攻擊、保障業務能力和安全,第二保護數據泄露。大家不會把自己企業安全防護策略拿出來講,更多講架構方面的東西。去年網絡安全大會,京東過來講應急,就是后邊一塊。真正到現在為止,沒有哪個甲方把安全策略拿出來講,畢竟是對抗核心的東西。為了達到這兩個目的,主要設計一套技術架構,這套技術架構體現系統安全全貌,包括系統機構、還有人員體系。
今天講的安全檢測能力在技術架構處于中間力量位置,安全檢測能力依賴核心系統就是日志監控平臺。
我們滴滴發展歷程大概分為四個階段,最早出腳本階段、第二免費軟件,第三開源系統,第四自研。最早的時候腳本時代,數據量不大,我們到一臺機器寫點腳本基本可以搞定,為了寫這個PPT上去翻一下,我發現我腳本還在運行。我們在原始時代的時候,其實做的一件事情最核心,我們關注安全檢測的邏輯,到后邊發現寫腳本已經滿足不了我們需求,我們需要一個系統做支撐,這時候我也做很多調研。2012年我接觸Spiak,腳本、告警不滿足我們要求可以框架,進行二次開發,他支持GS做可視化,可以滿足所有數據分析需求。這款產品對于我來講幾乎完美的產品,為什么沒有用下去?原因很簡單,免費版500兆,以我們數據量肯定幾十萬才能做下來,肯定不行。比如先數據預處理,數據量一定規模的時候很難滿足,后續我們尋找其他方案,我們找到ELK。
ELK是三個組件組成的,這套系統在歷程生命周期非常短,我們發現運行不是特別穩定,數據量大的時候存在嚴重的性能危機,數據規模大的時候基本不是特別穩定。最后定來搞一套自己的系統,于是我們進入自研的時代。
我們把自己系統叫哈勃平臺,我們覺得這個平臺是我們探索賽博空間無限可能性的一個工具。當時這個平臺我角色更偏向產品經理或者需求方,給當時ID談這個事情,我們再造價值幾千萬軟件出來。我們很多借鑒Spiak,比如我們搜索一樣,自己實現一套查詢語句,再比如支持各種數據源的導入,各種緯度的報表,我們模仿它非常自由化的告警機制,以及索引根據自己需求從不同渠道建。
簡單介紹我們架構,我們沒有拿更多的具體策略、具體方法講,更多講我們架構怎么做。業務層面分四塊:采集、數據、計算、運營層。采集流失、客戶端、PC采集。到數據層主要接觸各種各樣原始數據,以及安全系統經過二次處理的數據,用的數據站四塊APF,各種表的關聯,為了讓我們查詢更快引入rds。計算層分兩塊:一個分析、一個規則平臺,分析平臺就是ES,支持各種自由化查詢,離線跑MR。運營層做的比較薄弱,包括可視化沒有做起來,主要更多在查詢和規則這一塊。我們在系統上自己實現搜狗語言做查詢
我們這套數據流,數據源盡可能把公司各種各樣數據采過來,輸入數據采集這邊,數據采集有ETL系統,把數據提取,經過特算平臺,對外輸出產品可以各種各樣,根據采集數據不同提供不同產品。比如提供異常告警也是安全產品,比如移動端日志拉過來可以做設備的新用。舉一個具體例子,我們會采集各種各樣移動端數據,采集之后定義特征,根據特征最后輸出服務是什么?這個設備是否可信。
我們做這套系統的時候主要困難是什么?
1、模塊聯合我們最初做這個事情的時候,沒有一個好的指導方向來做這個事情,基本上我們說跟著需求走,我們現在需要分析能力上一套ES,現在需要做規則和自動發現就上MR,最后發現用起來非常困難。最后怎么解決這個問題?引入安全監控、安全分析熟悉人業務流梳理,重新設計模塊關系,結合前端把模塊打通整合起來。
2、性能優化,我們遇到最大挑戰就是性能方面挑戰,我們之前是20臺機器吃不下公司數據量,為了結果這個問題,經過分析索引鑒定出了問題,我們對索引鑒定優化,一個優化機制,一個索引鑒定設計閉型,基本上50臺機器吃下公司所有日志
3、用戶體驗的優化,我們用各種不同的組件在下邊,用戶用的時候非常困難,我們架構師怎么解決這個問題?拿一套開源設備做二次開發,把各種服務打通。架構師定義一套語法出來,后邊做解析。
4、關聯,我們怎么關聯起來?傳統方法是通過IP或者通過時間,但是我們發現并不可取,IP外網進內網各種轉化,有可能轉化內網接入IP,沒法關聯起來,時間不可怕,幾萬條日志沒法做關聯。最后我們公司把所有日志打通,里邊引入ID,嵌入公司業務流中,把數據打通。通過ID后端查詢日志可以查到。
現在我們這套系統現狀什么樣子?每天處理數據量400億,自己感覺從開發歷程到現在半年樣子,現在處理這個數據量比較棒,結構化數據達到秒級響應,非結構化數據慢一點,差不多10秒出結果。
三、我們這套系統未來打算做成什么樣子?
我一直覺得安全攻防有本質,它是人和人的戰爭。怎么理解?現在大家都提智能或者機器學習具體安全問題,我的觀點,不知道大家用蘋果和微軟安全軟件,機器跟我們聊天,并沒有得到很愉快的體驗,他不會理解我上下文,我兩句話之間邏輯關系是什么?他沒法立業邏輯,我覺得現在智能不具備理解這種邏輯,上下文關聯邏輯。包括阿爾法狗對抗也是同一個維度上下圍棋。攻擊是什么情況?有一個朋友在另外一個公司專門做機器學習,花一個月到兩個月跟蹤黑產攻擊,制定模型解決這個問題,他發現兩個月把模型上線確實把問題解決,但是一周不到發現黑傘已經換了玩法,所以攻擊者和我們不是一個層面對抗,你理解現有攻擊沒有用,可能更高層面是攻擊。本質是人和人戰爭,機器達不到程度。
我覺得智能對這套系統非常有意義,這里用一個標題返璞歸真,我覺得平臺的智能體現什么地方?我作為一個安全專家角色,我告訴平臺邏輯是什么?這就是返璞歸真過程,最原始我們關注安全檢測邏輯是什么,未來是什么樣子?我告訴他我邏輯是什么,平臺理解我邏輯輸出一個結果,再告訴我想什么結果,給我想要的展示。他理解我要看什么東西?輸入什么樣規則,這是智能體現的地方,未來到底什么樣子?極度抽象輸入輸出的平臺,我輸入并不是固定的模式,并不是寫一個代碼,甚至寫偽代碼,告訴這個事情我怎么檢測他,他能理解。輸出都是任意配置,我想看到圖想看到列表自己可以理解,智能體現交互過程,我覺得這是未來安全檢測平臺一個樣子。
總體來說,我們覺得現在安全檢測平臺才做半年,比較初期。大家如果對這一塊很感興趣,想在這一塊做更深的事情,可以私底下聊一聊,我們有很大的平臺,提供平臺發揮你的才能,我今天演講到這里。謝謝大家!