第一,甲方安全價值。
做了這一塊的簡單整理,我估計大家刷朋友圈的時候已經(jīng)占滿了微信朋友圈。從2017年開始整理,第一塊是勒索病毒,2017年對政府行業(yè)、能源、銀行各個機構(gòu)造成了比較大的影響。當時我還在車聯(lián)網(wǎng)行業(yè),其中被政府的機構(gòu)叫去處理相關(guān)問題。這一次也是在歷史上有大規(guī)模的攻擊,對整個甲方敲醒了警鐘,包括后期大家逐漸認清了勒索病毒的可怕性。
2018年做安全這塊記憶猶新,Gitialb達到1.35高峰值的流量,幸運的是運營商很快對端口做了封堵,沒有把病毒蔓延下去。再就是數(shù)據(jù)安全這塊,華駐是經(jīng)典的案例,后期的應對方式是比較完善的,前期做的稍微參差不齊。我記得在2014年、2015年12306陸續(xù)出現(xiàn)問題,包括2018年底出現(xiàn)數(shù)據(jù)謝列,這一次波交給了軟件。像我們公司有電商的業(yè)務,618也是重要的,在上線前把活動的安全性檢測好。據(jù)說,最近剛發(fā)生的易到用車也是遭到了應用層的攻擊,具體還沒有進一步去調(diào)查。所以這些東西是老生常談的安全價值,沒事會在朋友圈刷屏的東西。
很多初到甲方或者是廠商的朋友上來跟大家聊要合規(guī)、要支持2.0,支持網(wǎng)絡(luò)安全法,天天給CEO老大去洗腦,網(wǎng)絡(luò)安全不做要蹲監(jiān)獄,老板可能也不會在意這個東西。最近數(shù)據(jù)安全這塊受到國家的重視,六一兒童節(jié)出了兒童信息保護征求意見稿。這一塊可能是大家在做甲方安全給領(lǐng)導去灌輸為什么做安全的思路。
可能有一部分同學跟我一樣技術(shù)出身,到了甲方開始挖洞,要自己打自己,我就可以越權(quán)幫別人支付憑單,可以改變別人的性別。在領(lǐng)導看來,第一個,業(yè)務影響非常的有限。第二個,你給我講什么高大上的東西也不一定聽得懂。很多人在領(lǐng)導得到的反饋是安全挺重要,但最后還是沒有作為。
接下來說一下個人在整個企業(yè)安全過程當中應該怎么樣去跟領(lǐng)導灌輸這些東西。越往高層去走更偏向于業(yè)務、偏向于戰(zhàn)略、偏向于實際應用,很多東西結(jié)果與導向業(yè)務結(jié)合。前段時間有同學問我說,我要去推等保,但怎么跟領(lǐng)導說等保特別重要?緊緊依靠國家推行的網(wǎng)絡(luò)安全法不一定哪一天會查到你們企業(yè)頭上,尤其是像我們中小型企業(yè),不像BAT、TMT大的公司,中小型企業(yè)很多全是靠幾個人壘起來的安全壁壘,非常的脆弱,這塊投入相對有限。大家在推合規(guī)的時候建議以業(yè)務為基礎(chǔ),有一些業(yè)務上的合作。比如說,我以前是做車聯(lián)網(wǎng)出身的,可以跟交通部有很多的合作,各地的交通部是有等保要合規(guī)的,起碼政府機構(gòu)這一塊做的不錯的。在業(yè)務對接的時候,他們會明確的提出來,我們是等保三個系統(tǒng),如果你的系統(tǒng)是等保二級,你的數(shù)據(jù)是不應該跟我對接,或者不應該把我的數(shù)據(jù)拿過去,我懷疑你的安全體系建設(shè)有問題。
像我現(xiàn)在是做在線教育,前一段時間去出差與當?shù)氐母咝:献鳎F(xiàn)在學校也已經(jīng)被當?shù)氐木W(wǎng)安嚇得夠嗆,天天被約談,說網(wǎng)絡(luò)安全、信息安全怎么建設(shè)。他們對我們也提出了很大的要求,到什么樣的程度才可能有接下來進一步業(yè)務的合作。一旦貼合到業(yè)務,告訴領(lǐng)導業(yè)務能夠幫你去完成這個項目能幫你掙錢,領(lǐng)導可能接下來會有相對的安全投入。
天天跟別人說,別人家的網(wǎng)站又被勒索了,天天說這家網(wǎng)站又被攻擊了,很少有發(fā)生在自己身上的,不打到自己身上不疼這一點是肯定的。所以說,可以跟領(lǐng)導引申聊一下核心數(shù)據(jù),核心數(shù)據(jù)到底在哪里,到底安不安全。財務業(yè)務部門這塊被加密勒索領(lǐng)導沒下一步的招,把領(lǐng)導去代入到真正的業(yè)務場景當中。前一段時間有人把B站的源碼放到網(wǎng)上,造成了很多大規(guī)模的反響,自己公司也有相關(guān)的問題,剛?cè)肼毜臅r候發(fā)現(xiàn)了公司有相關(guān)的代碼被傳到APP上去。如果去跟領(lǐng)導說源碼被傳上去了,大部分的源碼沒有那么的核心、那么的重要,重要的點在哪?在里面找的數(shù)據(jù)庫賬號密碼或者是關(guān)心的能夠越權(quán)拿到核心數(shù)據(jù),這時候是領(lǐng)導業(yè)務更加關(guān)心的。當時跟領(lǐng)導去講泄露了會影響到學員,領(lǐng)導講挺重要,這一塊加強。
內(nèi)容安全,尤其是在今年的時候被國家抓的非常緊,最近又在去推這一塊,只要論壇上有不法言論黃賭毒很快被國情部關(guān)停,這一塊影響真實的業(yè)務。總結(jié)一下,不要平時老給領(lǐng)導灌輸支持等保,國家必須要求做等保,領(lǐng)導可能會問你不做怎么辦?找一下頭條、找一下朋友圈,一翻罰200塊錢,那領(lǐng)導說做等保多少錢?200萬,那罰200塊錢吧??赡芤鷺I(yè)務掛鉤,這一塊更有說服力。
第二,安全建設(shè)思路。
第一點,先去梳理風險,評估風險、評估脆弱性。從底下往上看是簡單到難的過程,最簡單防護邊線,最近有很多的朋友聊這塊又被黑、又被挖礦,怎么老是攻擊?我跟他說,你先梳理你的互聯(lián)網(wǎng)邊界,在人數(shù)少、投入資源少的時候去縮小被攻擊的面,最好有效的防護措施。我們有一個領(lǐng)導做法還是非常霸氣的,很多年前有想過,在注冊的時候可能會上傳頭像、營業(yè)執(zhí)照這些東西,大家都在去嘗試怎么能夠上傳木馬文件。說實話,上傳上來執(zhí)行不了沒有太大作用,但是領(lǐng)導不懂安全,對這一塊也是非常頭疼、也是非常擔心的。他做了一個決定說直接把注冊入口關(guān)了,這其實也是縮小攻擊面臨的方式方法,也要跟大家的業(yè)務貼合。當時我們的注冊是可以根據(jù)郵件注冊,注冊量比較少,這是縮小攻擊面。
說到這里,還包括邊界的設(shè)備。大家可能有防火墻,ADS抗擊設(shè)備都在外面,設(shè)備的風險點也是有問題的,也是需要去關(guān)注的。當時梳理的時候有一臺是安全設(shè)備,不知道是哪年買的,可能之前有,一直掛在外面。因為這臺安全設(shè)備自身存在漏洞被別人進來的,所以邊界一定要處理好。再往上是PC服務器,像弱口令、賬戶、補丁管理,前一段時間剛曝的0708漏洞。當時很快第一天已經(jīng)開始逐漸的修復,大概也就兩三天的時間實現(xiàn)全面的掃描。當時跟運維團隊做了簡單的溝通,工具沒有很快的出來,運營團隊問我產(chǎn)生這個東西著急嗎?說實話,這個東西比較重要,但不一定特別急,互聯(lián)網(wǎng)上沒有直接里工具出來,但肯定會出來,建議你們現(xiàn)在著手修補,運維團隊還是比較靠譜的,當天晚上就做了。
再往上到應用服務層,這一塊應用有時候?qū)ν?、有時候?qū)?nèi),正常情況下,很多的內(nèi)部系統(tǒng)放到內(nèi)網(wǎng)是安全的,有些人說為了方便放到外網(wǎng)好不好?很可能被別人命令執(zhí)行以及繞口令的方式進來。最近在想大部分的攻擊無非幾點,上傳漏洞或者是組件自帶來的漏洞等方式進來。這一塊也是大家需要去注意的。再往上是最近幾年一直在頭疼的數(shù)據(jù)安全,數(shù)據(jù)安全太大了,單獨拿上來可能也要講一天,在這兒簡單舉了幾個例子。一個是數(shù)據(jù)接口的暴露。時間長了,很多的接口在不斷的迭代,無論是最下層的編輯策略,最上層的應用接口,大家可能一直在往上添加接口,真正去刪除、消除風險的措施還不夠,沒有意識到去做閉環(huán),不用的時候把它關(guān)掉,這一塊也是存在問題的。最難管的是人,無論是有意、無意的數(shù)據(jù)泄露都是很難監(jiān)控到,這一塊是業(yè)界比較一致認可人是最難管理的,這一塊也要加強安全意識宣貫。
面對這些問題怎么做?需要一支專業(yè)的安全團隊,后面加了比較重要的角色,高層領(lǐng)導的支持。如果高層領(lǐng)導不支持,跟運維、跟開發(fā)對剛的時候安全不重要,先放一放吧。再往上的話,最基礎(chǔ)的安全的能力要建立在IT基礎(chǔ)能力之上,我去過幾家甲方公司,包括監(jiān)測的公司一直覺得如果IT基礎(chǔ)能力不夠,資產(chǎn)梳理不清楚,做安全一步一個坎特別難的,起碼技術(shù)角度上會遇到坎,像常見的系統(tǒng)是比較偏基礎(chǔ)的,需要建立起來。
再往上是內(nèi)網(wǎng)安全,通訊就不說了,郵件安全是攻擊者比較喜歡去利用的。如果我是攻擊方更喜歡去拿咱們的職能管理人員賬號以及運維的賬號。曾經(jīng)跟領(lǐng)導溝通過,你有沒有考慮過運維總監(jiān)郵箱密碼被盜是什么后果?郵箱里邊有多少密碼?總監(jiān)說從來不在郵箱里邊發(fā)密碼,從來不會把密碼放到郵箱里發(fā)給別人。后來大領(lǐng)導拍,你不會給別人發(fā)密碼,你發(fā)密碼的時候別人不會抄你嗎?這個數(shù)據(jù)多多少少一旦時間長都會有。
內(nèi)部辦公系統(tǒng),前幾天有人說(英)又被鎖,你不能光內(nèi)網(wǎng)。(英)稍微好一點光交代了代碼層的東西,如果你的OA被干掉更多的數(shù)據(jù)被出去了。再往上Web應用、移動應用以及更頭疼的是接口的相互調(diào)用。接口分為兩塊,一塊對外、一塊對內(nèi),對內(nèi)有時候掃得出來在頁面上找得到,對內(nèi)調(diào)用老的接口很難被監(jiān)控得到的。再往上數(shù)據(jù)業(yè)務層面,剛開始數(shù)據(jù)資產(chǎn)的收斂到收斂之后需要根據(jù)業(yè)務層面的人對接數(shù)據(jù)怎么去分級分類。大家有通用的標準,手機號、銀行卡號,每個行業(yè)有每個行業(yè)的不同,之前在的車聯(lián)網(wǎng)行業(yè),車主的信息、車牌號是敏感的東西,車輛行駛軌跡也是敏感的東西。像我們現(xiàn)在公司在線教育學員的信息、學員的發(fā)票、學員的地址又是敏感的信息,這一塊要控制好。再有數(shù)據(jù)加密和數(shù)據(jù)審計,尤其是數(shù)據(jù)審計這一塊,無論是外部和內(nèi)部,數(shù)據(jù)審計可以用子代或者是自己去搭買一些初審工具,這是內(nèi)部的。外部從應用層面接口的調(diào)用,這些數(shù)據(jù)是否被頻繁的調(diào)用?有沒有異常的流量?這一塊也需要被審計起來。
面對大的體系架構(gòu)來講,怎么樣才能一步步把它做得更好、更完善一些?曾經(jīng)在2016年讀了互聯(lián)網(wǎng)安全管理書,覺得還挺不錯的,一開始講了需要有三張圖,第一個是架構(gòu)圖、第二個是Top(音)、第三個是業(yè)務圖。為什么需要架構(gòu)圖?作為負責人、安全管理者,可能需要有很多縱向與橫向的溝通,可能面向的是運維團隊和整個的研發(fā)團隊、IT團隊以及業(yè)務團隊,出現(xiàn)問題需要向哪一級了解問題?一定要去了解清楚,包括像我現(xiàn)在做在線教育可能呼叫中心、客服中心人比較多,涉及到哪一塊數(shù)據(jù)一層層往上梳理清楚。網(wǎng)絡(luò)Top(音),出現(xiàn)故障的時候根據(jù)網(wǎng)絡(luò)Top排查故障是非常重要的。再是業(yè)務圖,安全資產(chǎn)、主機資產(chǎn)對應到業(yè)務平臺是哪一些?最關(guān)鍵的別忘了有負責人。一定找到負責人是誰,一旦出現(xiàn)問題找到對應的負責人是非常重要的。
有了基礎(chǔ)之后有工作需要去做,安全測試在人比較少的情況下,可以先做周期性的安全測試。比如說,可以每個季度,甚至每半年看大家的業(yè)務量做周期性安全測試。再是加強迭代測試,每個企業(yè)不一樣,所以有的企業(yè)覺得時間周期長,你可以慢慢來。有的像之前公司一個周迭代上百個版本,所有平臺加起來上百個版本,一兩個人、三五個人迭代不過來。在迭代項目過程當中一定要去把控好大版本的迭代,包括618或者是新的功能、新的平臺上線要加強。再有如果真的自己忙不過來,可以去借助第三方的能力。
拿自己舉例,我們一共有18個平臺,可能面向開發(fā)人員就那些,無論是開發(fā)人員忽悠、代碼的忽悠,最終可能會導致一個漏洞在一個平臺上出現(xiàn)可能會在其他各個平臺上出現(xiàn)。目前這個問題是我們在這兒通用的,在做第三方安全測試的時候?qū)嶋H擼,然后發(fā)現(xiàn)其他平臺上也會出現(xiàn)這個問題,那就出現(xiàn)了事半功倍的作用。
再有是安全運維,自有的安全防護設(shè)備要用好,今天來之前有同事說上(英),一上整個業(yè)務線就斷了,前期沒有做好安全測試。很多都喜歡做開元工具,有些開元的工具方便、好用、成本低、性價比比較高,包括牛的企業(yè)有自己的安全開發(fā)團隊給自己搭了,這一塊有系統(tǒng)運維,再就是安全響應,出現(xiàn)故障的時候怎么樣去應急?當時定了一套基礎(chǔ)的應急響應手冊,老大給我們講的非常明白,說你把所有的安全事件全都給我分好類,全都告訴我這一個事件一步一步怎么去查,告訴運維應該怎么去做,你就完全把所有運維團隊的人當傻子就可以了,只要能按照你的手冊一步一步去調(diào)查這是什么原因,怎么去解決就OK了。說實話,做這個東西真的特別難,但是反過來想也不是沒有道理。我是一直在完善優(yōu)化過程當中這個東西,不會列全,列全很多(英)人就可以下崗待業(yè)了。這一塊也是需要大家去換位思考的,運維團隊真的沒有像你這么專業(yè)。
再有是賬戶審計,也是之前做的,包括我來了這家公司做的,郵箱賬號、OA賬號由兼職人員,包括是在職還是離職的狀態(tài)?這是非常重要的。再有是邊界監(jiān)控,對外資產(chǎn)暴露了哪些?現(xiàn)在很多企業(yè)很難做到實時監(jiān)控,上線業(yè)務一定知道做非常難,但其實可以通過內(nèi)部和外部兩個段結(jié)合起來。外部,可以用類似于其他工具,包括現(xiàn)在的一些商業(yè)產(chǎn)品,自動化探測資產(chǎn)東西,可以去把一塊監(jiān)控起來。內(nèi)部,加強內(nèi)部的資產(chǎn)配置變更流程,不能讓運維隨便上一個。
之前遇到一個坑,某部門上線了(英)還是Web服務,這個問題不是單一的一個人導致的,它的端口影射是之前開的,把端口影射出去了,但是那個人離職了,離職他過來之后不知道端口影射出去就開了別的服務正好出去了,正好那段時間直接被攻擊方抓住把柄黑進來。這個問題不僅僅是一個巴掌的問題,一個是邊界策略有沒有及時的去關(guān)閉,有沒有在不用的時候去關(guān)閉。去年刪了六七百張策略,無論是東西向、南北向,尤其是東西向這一塊很多不用的都留著。還有員工自身沒有做到基本安全基線加固能力。最后提到策略管控,無用的策略一定要及時去刪除,添加策略一定要記好在不用的時候刪除。
做完這些整個思路要改變,從以前被動的發(fā)現(xiàn)業(yè)務被影響了,運維團隊、業(yè)務團隊跑過來告訴你,李晨,我們的業(yè)務被干了,我們的CPU高了,緊接著開始應急響應。這時候發(fā)現(xiàn)入侵已經(jīng)成功了,數(shù)據(jù)也被偷了,命令也被執(zhí)行了,這時候是被動感知狀態(tài),我們是被業(yè)務方或者運維方牽著鼻子走的。這一塊去優(yōu)化,從被動感知到過程感知一階段,首先你在攻擊我,在你攻擊我的時候感知到了你在干我、你在搞我。你在搞我的時候用各種策略、各種防護手段阻斷你攻擊的路徑,阻斷之后再去修復,這時候安全終于可以翻身農(nóng)奴把歌唱。主導業(yè)務體系優(yōu)化修改這個問題。
這是之前列的表,大概做了簡單的梳理。攻擊路徑,最基本的做資產(chǎn)探測,這一塊用比較簡單的工具掃描,再是內(nèi)部錄入ID資產(chǎn)。曾經(jīng)我是把CMDP寫了簡單的腳本,資產(chǎn)變動沒有特別的大,不會經(jīng)常去批量增加IP地址,資產(chǎn)這一塊主要是IP地址。所以每個人去導入一份掃描,掃描完看業(yè)務有沒有新的增長和暴露出去,如果沒有新的發(fā)現(xiàn)就搞我,搞我會有日志監(jiān)控。曾經(jīng)遇到過爬蟲爬我們的數(shù)據(jù)、批量掃我們數(shù)據(jù)的時候,可以設(shè)最簡單的預值。正常情況下,一個人一分鐘看我三四頁,結(jié)果看了我一百多頁,其實是有問題的,在發(fā)現(xiàn)中間搞我的時候阻斷。如果最后沒有發(fā)現(xiàn)進來,主機基線以及HIDS各方面綜合的能力利用起來,檢測到你在我服務器上做命令執(zhí)行了。首先,我要防止你進不來,進來的時候要防止你做不了事情。如果你能做事情的,我讓你讀不了,你能讀得來拿不走,拿得走看不了,看得了用不了,所以一層層去做防護。
第三,安全落地。
講一下自己在做安全建設(shè)小的思路,自上而下管理體系、管理思路。大家也是經(jīng)常去聊這個事情,最重要的就是三個字“同理心”,我覺得同理心這塊是非常重要的。把這塊分為:垂直管理、水平管理。垂直管理是向上跟領(lǐng)導簡單做匯報,這一塊需要有最基本的管理思路,不能總拿工程師思路跟領(lǐng)導去做,認知面不是在一個層次的。第二塊貼合業(yè)務,領(lǐng)導最關(guān)心的是業(yè)務,怎么掙錢。向下環(huán)節(jié)需要有工程思維,在什么時間段做什么配置,在什么時間段去完成實現(xiàn),這一塊是做工程師比較喜歡看到的東西。大家都是從基層干起來的人,都渴望著被認可的欲望。
如果說我干的很好表揚我一下,不需要給我十塊錢。但如果我干了辛苦就一句話帶過了,可能很多人覺得不爽,我干的挺牛逼的,你為什么不表揚我一下?這是垂直管理,再是水平管理。水平管理主要是跨部門,像去開發(fā)、去運維吐槽事情該怎么落地的時候,一定要抱著結(jié)果為導向的形態(tài)去解決這個問題,這是一塊。第二塊一定要去想辦法互惠互利,曾經(jīng)有朋友跟我說過,暗線不能不能給別人產(chǎn)生價值,怎么讓別人主動幫你給你產(chǎn)生價值?這是互惠互利。再是組織虛擬的安全團隊,當時心血來潮一個人搞SDL,基本上是不可能完成的,那就做了信息安全的虛擬團隊,在每一個業(yè)務平臺找了人,進了半個人把這一塊落地。這半個人的作用是什么?可以知道其他開發(fā)人員落地開發(fā)規(guī)范,共享漏洞的修復方案。每次把大家叫一塊的時候,可能各個平臺都有漏洞,每個平臺的修復代碼會一致,再有是把案例整理起來后期送培訓。不僅僅是編碼規(guī)則,安全培訓體系也相應的慢慢把這塊建立起來。安全培訓體系不僅僅是簡單的安全意識培訓,可能包括編碼培訓、工具的使用,讓對方真正切實的了解到我們是怎么攻擊的,他們才知道怎么去防御。說實話,團隊挺好的,讓每個團隊的研發(fā)人員講了一下每個平臺的安全是怎么做的。他們是真正站在研發(fā)的角度來講安全,效果會更好、更加被認同。
最后講一下SDL,及時是講因地制宜的SDL,也是刪減版之后的。微軟推SDL的時候,人家可以好幾年迭代Windows版本,我們是不可以的。很多是比肩開發(fā)的過程,所以整個SDL會陷入沉重、冗余。抓幾點,安全培訓體系的建立,無論是安全意識、安全技能,一定要去落實。再是安全開發(fā)規(guī)范,好多人找我上線的時候要有哪些開發(fā)規(guī)范,一百條和沒列開發(fā)規(guī)范是一樣的效果。如果每天產(chǎn)生10萬條告警日志和沒有產(chǎn)生是一樣的,所以要落地出來。安全測試這一塊一定較嵌入到上下游,不要讓任何版本逃過你的視線,可以不測,一定要知道。這個業(yè)務可能不是重要的業(yè)務,功能沒有太大的問題。
第四,安全痛點與思考。
大家在經(jīng)常生活中會遇到的問題,好多人跟我吐槽領(lǐng)導不重視安全或者是領(lǐng)導口頭上重視安全。每一塊都拿著16個字去總結(jié)一下,向上管理、結(jié)果導向、換位思考、管理思維,一定要有同理心去了解管理者領(lǐng)導是什么樣的性格,他想要做的事情是什么。曾經(jīng)有人問我,如果你想做的和領(lǐng)導做的不一致會怎么樣?如果完全相悖勸你離開,但有一定的角度重合度,可以先把領(lǐng)導的事情做完再做自己的,也不耽誤事。
這一塊考慮領(lǐng)導是怎么去想的,也有人在群里吐槽跟領(lǐng)導去講GDK版本的問題或者講GDK,結(jié)果領(lǐng)導問我GDK是啥。你們的理解層級一定要去了解領(lǐng)導是在什么樣的認知程度上,領(lǐng)導可能壓根兒不需要知道什么叫GDK,也不需要知道什么叫XSS(音),這一塊跟領(lǐng)導去匯報他想要知道的東西。
第二塊是害怕背鍋,適度背鍋,強身健體,過度背鍋,灰飛煙滅。怎么講?大家以安全事件為出發(fā)點推動安全,沒有安全事件領(lǐng)導永遠不重視安全,一定要有適度的安全事件觸發(fā)。但如果像我的同事一樣一不小心上Buf,所有的核心業(yè)務干掉,這東西可能真的就是灰飛煙滅的結(jié)果。
再有是修復時間長,第一個先水平管理,互惠互利,同時一個部門,沒有一堆肉解決不了的,如果解決不了兩堆肉解決問題。如果開發(fā)人員、運維人員態(tài)度不好,可能需要用到垂直管理,需要去找領(lǐng)導這一層匯報強行把事情解決掉。
最后是人員不足的問題,二八原則,事半功倍,從無到有,從有到優(yōu)。只有兩個人完成80%的活不難,安全最重要的是剩下的10%到20%,前期的80%是花20%的力可以解決的,包括剛才講的因地制宜SDL去做一個項目是可以的,做全部的SDL項目是難的。再有從無到有,從有到優(yōu),先把東西推進去,逐漸的優(yōu)化和細化,當老板看到效果批到人再做更細化,這一塊是基本的思路。