<b>3.4 安全需要向業務妥協嗎</b>
<b></b>
<b>1. 業界百态</b>
在安全行業5年以下的新人得到的灌輸基本都是“安全不可或缺”,老兵們可能也有點“看破紅塵”的味道,覺得高層重不重視安全也就那麼回事。對乙方來說高聲呼籲安全的重要性哪怕是強調的有點過頭也可以了解,因為是賴以生存的利益相關者,靠它吃飯,影響股價。而對于甲方,實際上要分幾種,第一類認為安全壓倒一切,且心口一緻。持有這類想法的實際又可以細分為兩種人,第一種對安全行業涉獵不深,還停留在原始的執念階段,第二種人的思想可以表達為“業務怎麼樣與我無關,隻要不出安全問題,業務死了都無所謂”,這兩種從表象上看都屬于第一類,但本質上不同;而第二類人口頭唱安全重要,但心裡還是會妥協。可見甲方安全團隊是形形色色的。
<b>2. 安全的本質</b>
撇開上述業界百态,先看安全管理的本質是什麼?安全的本質其實是風險管理,絕對的安全可能嗎,說絕對安全本身就是個笑話。就像知名黑客袁哥說的,哪怕是fireeye這樣的公司也一樣會被apt,原因是攻防不對等,防禦者要防禦所有的面,而攻擊者隻要攻破其中一個面的一個點就可以了,公司幾千人的用戶端行為不是安全管理者能決定和預測的。在所有的面上重兵布防可不可以,理論上可以,但實際絕對做不到。接近于絕對安全的系統是什麼樣的?盡可能的不提供服務,提供服務也隻提供最單調的資料互動模型,盡可能少的表現元素,那樣的話還是網際網路嗎,還有使用者體驗可言嗎?而且安全和成本永遠要追求一個平衡。假設一個大中型網際網路公司的安全建設成本從0~60分需要1000萬,60~80分需要2000萬,80~90分需要5000萬,90~95分需要2億,這種邊際成本遞增是很多公司無法承受的,隻能追求最佳roi,雖然最佳roi難以衡量,但絕大多數人不會拿出收入的50%去投安全建設。
<b>3. 妥協的原則</b>
既然安全建設的本質是以一定的成本追求最大的安全防護效果,那一定是會有所妥協的。于是反過來揣摩一下那些說甯可業務死也要做安全的觀點的初衷是什麼呢,也許你猜到了,怕擔責任!因為業務死了安全團隊不擔責任,他們可以說“你看安全不是沒出問題嘛!”這固然是一種保護自己的方法,但是從公司的角度看這就有待商榷了。我認為安全本質還是為業務服務,如果業務死了,即使安全做得再好也沒價值,更準确一點說,安全需要為業務量身定制,如果業務要輕裝上陣,你給他重甲也不行,隻能穿防彈背心。安全做得過于重度都是不合适的。相對而言第二類人擁有更加積極的心态,堅持原則又懂得給業務讓路,隻是要把握好分寸,避免自己的好心被人利用,成為安全問題不整改的免責視窗,那樣就事與願違了。
安全做得不稱職的表現,除了“無視業務死活”,還包括:使用者體驗大打折扣,産品競争力下降;公司内部流程大幅增加,嚴重影響工作效率;限制太多員工滿意度嚴重下降,人員流失;規章制度太多,以至于公司文化顯得不近人情……這些都屬于安全做過頭的表現。
有的人出發得太久,以至于忘了初衷是什麼。
那麼哪些可以妥協,哪些必須堅守呢?高危漏洞,有明顯的利用場景,不能妥協。重要的安全特性,比如公有雲中的vpc,底層缺少一個安全特性,直接會導緻安全建設的上層建築失去了“地基”,整個都不牢靠了,這種還是要堅持,可以不精緻,但必須有。
對于不痛不癢的漏洞,以及待開發的安全功能,如果開發周期很長,閱聽人群體很少,使用該功能的使用者比例極少,邊緣性産品,隻影響某個中間版本到下個版本被其他機制完全取代了,諸如此類的情況可以考慮酌情妥協。當然這還會涉及另一個話題在不同的次元解決問題,這個之後再展開。
妥協并非退讓,而是大局觀,試想公司業務沒有競争力時,做安全的一樣面臨窘境,無論如何都要看主營業務的臉色,與其被動跟随不如快出半個身位。
最後補充一點:妥協不應該發生在工程師層面,而是應該在leader和安全負責人這個層面。如果在安全工程師自己提的整改方案這個層面上,自己主動開始妥協了,那後面很多事情就沒法做了。