01 前言
02 安全運(yùn)營是什么
(1) 做出一個(gè)系統(tǒng)更容易被看到,但運(yùn)營系統(tǒng)需要大量的時(shí)間沉淀并且不容易被看到。人總是趨利避害的,所以容易出現(xiàn)“重建設(shè)輕運(yùn)營”的情況,大家都想做系統(tǒng)做產(chǎn)品蹭熱點(diǎn)出成績,很少人會主動(dòng)關(guān)注運(yùn)營工作,最終導(dǎo)致系統(tǒng)眾多卻無后續(xù)運(yùn)營的“爛尾”項(xiàng)目;
(2) 技術(shù)人員更容易陷入到技術(shù)本身,相比于落地的梳理類、推動(dòng)類、管控類的安全運(yùn)營工作,技術(shù)人員更愿意將精力放在高新技術(shù)研究應(yīng)用、參加比賽以及漏洞挖掘利用等方面。
這兩種情況都是舍本逐末。因?yàn)槲覀児ぷ鞯暮诵氖前l(fā)現(xiàn)和解決安全風(fēng)險(xiǎn),不是做系統(tǒng)或者使用先進(jìn)技術(shù),切不可本末倒置。所以,安全運(yùn)營就是踏踏實(shí)實(shí)不投機(jī)取巧地優(yōu)化系統(tǒng),要“扎硬寨打呆仗”。
與信息安全的“三分技術(shù)、七分管理”理論類似,安全運(yùn)營也是一個(gè)“三分技術(shù)、七分管控”的活:很多時(shí)候我們遇到的問題不是技術(shù)問題,而是工程問題、溝通問題、合作問題和推動(dòng)問題。所以技術(shù)好并不一定代表能做好安全運(yùn)營,但是要把安全運(yùn)營做到卓越,則需要對技術(shù)有深入的理解。
從標(biāo)題可知,筆者把安全運(yùn)營能力分為四個(gè)等級:器、術(shù)、法、道。初級階段是能夠運(yùn)用相關(guān)的工具和方法來發(fā)現(xiàn)解決問題,是為“知器”;中級階段是能夠總結(jié)歸納創(chuàng)造自己的一套辦法論來解決問題,是為“有術(shù)”,有學(xué)才有術(shù),所以要不斷學(xué)習(xí);高級階段是能根據(jù)各種不同情況提煉自己的方法論并落地,是為“循法”;最最高的階段是“悟道”,“道可道,非常道”,是最高境界。
03 衡量標(biāo)準(zhǔn)探索
明確了安全運(yùn)營是什么,該如何衡量安全運(yùn)營工作?
首先,需要衡量指標(biāo),有指標(biāo)才能判斷當(dāng)前距離目標(biāo)的差距。
不同的安全系統(tǒng)指標(biāo)有所不同,但大致包括兩大類:系統(tǒng)覆蓋率、策略有效率和誤報(bào)率。前者是指安全系統(tǒng)對被保護(hù)對象的覆蓋比率,關(guān)注工程落地,比如公司有一萬臺服務(wù)器,目前HIDS已部署了5000臺,這個(gè)系統(tǒng)覆蓋率就是50%;后者衡量安全系統(tǒng)對安全風(fēng)險(xiǎn)的有效應(yīng)對情況,關(guān)注策略效果,比如HIDS理應(yīng)發(fā)現(xiàn)各類WebShell,目前有樣本1000個(gè),HIDS能發(fā)現(xiàn)800個(gè),策略有效率就是80%,實(shí)際運(yùn)營過程中發(fā)現(xiàn)1000個(gè)WebShell,有1個(gè)最終確認(rèn)不是,那這個(gè)策略誤報(bào)率就是0.1%--一個(gè)誤報(bào)率高的系統(tǒng)最終是沒法運(yùn)營的,那就等于沒有。
一個(gè)好的安全系統(tǒng),一定是朝著提升覆蓋率、提升有效率、降低誤報(bào)的目標(biāo)前進(jìn)的:任何脫離覆蓋率談?dòng)行实陌踩到y(tǒng)都是紙上談兵,任何誤報(bào)率高的安全系統(tǒng)都是無法運(yùn)營的,形同虛設(shè)。
上述只是理想情況,在實(shí)際執(zhí)行過程中會遇到各種問題和特殊情況:如HIDS是支持Windows/Linux的,但是還有20臺是Mac系統(tǒng),這20臺算不算到總數(shù)中?HIDS的一個(gè)功能插件不支持某些Linux版本,那算不算已覆蓋?年初HIDS的WebShell策略有效率是80%,經(jīng)過一年的規(guī)則迭代,又增加了100個(gè)樣本檢測,現(xiàn)在網(wǎng)上發(fā)布了新的WebShell手法,這種新手法產(chǎn)生的樣本有120個(gè),那么現(xiàn)在如何算策略有效率?HIDS今年發(fā)現(xiàn)了2個(gè)WebShell事件,其中1個(gè)是誤報(bào),策略誤報(bào)率50%到底是好是不好呢?……
另外,量變引起質(zhì)變,當(dāng)基數(shù)足夠大的時(shí)候,即使是一個(gè)簡單的問題也會非常復(fù)雜--就像經(jīng)典力學(xué)僅適用宏觀世界一樣,在海量面前,過去的一些做法可能都不適用。比如我們管理1000臺統(tǒng)一配置的服務(wù)器的時(shí)候可以管理得很好,但是服務(wù)器數(shù)量增到數(shù)十萬臺,根據(jù)業(yè)務(wù)需要又有各種不同的硬件和軟件,復(fù)雜度將呈幾何級增加,到時(shí)即便是一個(gè)小小的軟件版本統(tǒng)計(jì)需求,也會成為浩大的工程。因此,安全運(yùn)營就顯得更為重要。
還有一些視具體系統(tǒng)而定的指標(biāo),如:漏洞掃描系統(tǒng)檢測一輪所有域名/IP的耗時(shí)、HIDS發(fā)現(xiàn)入侵到告警的時(shí)間、DDoS的單機(jī)防護(hù)能力、WAF性能延時(shí)、應(yīng)急響應(yīng)時(shí)長等等。比如我們在推動(dòng)的公司網(wǎng)站HTTPS改造項(xiàng)目中,提煉的三個(gè)重要指標(biāo)是覆蓋率、合規(guī)率、待改造域名數(shù)(有率有量,避免偏差),然后運(yùn)營人員不斷推動(dòng),提升指標(biāo)接近目標(biāo)。
其次,需要進(jìn)行實(shí)戰(zhàn)檢驗(yàn)。
從前一段的各種問題可以看到,衡量指標(biāo)是數(shù)據(jù),從不同角度解讀數(shù)據(jù)會產(chǎn)生不一樣的結(jié)論,所以不要輕信各種主觀得出的覆蓋率100%、有效率100%的這種結(jié)論(很可能前提條件是排除了某些特殊情況以及僅測試自己收集的樣本,甚至還有部分情況是統(tǒng)計(jì)遺漏),一定要邀請獨(dú)立的藍(lán)軍進(jìn)行實(shí)戰(zhàn)檢驗(yàn),實(shí)戰(zhàn)是檢驗(yàn)防護(hù)能力的唯一標(biāo)準(zhǔn)。
檢驗(yàn)是要真正的檢驗(yàn),所以需要獨(dú)立的藍(lán)軍。作為負(fù)責(zé)人,不要被虛假的安全感迷惑,不要聽信“互惠”結(jié)論、虛假數(shù)據(jù)和PR文章,一定要切實(shí)檢查。
第三,需要做好完整復(fù)盤。
每一個(gè)漏洞每一次安全事件都是一次練兵的好機(jī)會,安全團(tuán)隊(duì)?wèi)?yīng)該抓住機(jī)會復(fù)盤,查漏補(bǔ)缺,舉一反三,從一個(gè)問題優(yōu)化一類問題。
以漏洞檢測系統(tǒng)為例,研發(fā)安全團(tuán)隊(duì)對每一個(gè)外報(bào)漏洞做復(fù)盤,如漏洞檢測系統(tǒng)為什么沒有發(fā)現(xiàn),是什么原因?qū)е碌模ú呗詥栴}/未抓取到URL/未經(jīng)過上線前/系統(tǒng)bug……),根據(jù)問題進(jìn)行歸納分析總結(jié)優(yōu)化,不斷迭代系統(tǒng)和策略,直至問題完全解決。
下圖是一段時(shí)間的外報(bào)漏洞復(fù)盤對比圖,可以看到,先前存在比較多的“普通反射型XSS”被優(yōu)化掉了(說明漏洞檢測系統(tǒng)對反射性XSS的發(fā)現(xiàn)能力提升了),新的漏洞類型主要是邏輯漏洞、存儲型XSS、權(quán)限繞過等自動(dòng)化系統(tǒng)相對難以檢測的漏洞,這便是下一階段運(yùn)營團(tuán)隊(duì)繼續(xù)想辦法解決的重點(diǎn)工作。

04 運(yùn)營方法論與實(shí)踐
以下是筆者總結(jié)的一些常見運(yùn)營方法論和具體實(shí)踐。
