作者:默安科技發哥
一、某“爆款”視頻會議軟件的市場滑鐵盧
2020年初,一場突如其來的疫情,使得某知名視頻會議系統日活用戶從1000萬飆升至2億,資本市場對其一度看好。可好景不長,由于系統被曝出嚴重的隱私和安全問題,股價隨之受挫,商業信譽嚴重受損,還被諸多政府機構、高科技公司禁用。
該視頻會議軟件的安全事件歸根結底是開發安全沒做到位,相信其安全團隊和開發部門肯定因此經歷了很多個不眠之夜。
其實早在2004年,微軟就提出了SDL,強調安全要在早期開發過程介入,從根本上管控應用安全。在2020年的RSA大會上,專注于將安全集成到DevOps流程中的DevSecOps,更是大放異彩。本文將從安全部門角度出發,安全開發落地過程中容易被忽略的賦能與運營問題,希望可以給大家提供一些思路。
二、安全部門的難處
安全部門處境尷尬。受制于業務上線的需求,安全往往需要為業務讓路,在實際執行過程中處于弱勢,出問題時安全部門又需要救火和背鍋。但從上文視頻會議軟件的案例中,我們也可以看到,安全對業務的重要性。無論是對業務的貢獻,還是合規要求,甚至是更實際的——安全人員自身的績效,都應該開展安全開發體系建設的工作。
關于安全開發體系建設的常見難點,首先我們來看兩個案例:
案例1:某傳統制造業企業,業務正在進行互聯網轉型,應用開發項目逐漸增多,但是安全團隊規模依舊很小(5人以下),根本沒有人力來執行安全測試、代碼審計等安全工作,更別提安全開發體系建設。
案例2:某科技大行、安全團隊規模很大,僅安全測試就有數十人,測試團隊每年的人力成本上千萬(一線城市)。項目逐年擴張,測試工作隨之增加,但人力成本不可能無限增加。
一般來說,常見的安全開發落地難點包括:
(1) 人力不充足:安全人員嚴重短缺;
(2) 人員的抵觸:自身安全能力不足,安全工作增加工作量但無法體現績效;
(3) 流程的變更:安全介入,導致流程改變,短時間無法適應;
(4) 項目周期緊:開發周期原本已經很緊湊,加入安全工作后,時間上更加緊張。
三、安全賦能,合作共贏
無論是人力緊缺的小型安全團隊,還是人力充足的成熟安全團隊,要解決上面講到的這些難處,最有效的方法莫過于賦能。但賦能也要講究方式方法,不然可能適得其反。
合理的體系
合理高效的管理體系是確保開發安全管控的前提,安全開發管理體系需要定義安全介入的時機和每個角色需要執行的安全動作(安全工作和輸出物),確保安全開發管控流程執行到位。但是這就對以前的流程產生了侵入,在設計體系時,應盡量避免產生新的制度和流程,采用對現有制度和流程修訂優化的方式,降低執行的門檻。
常態化培訓
對于缺乏安全經驗的產品、開發等人員,應提供必要的安全培訓(體系、意識、技能)的支持,以幫助相關人員提升安全能力,完成相關安全工作。對不同人員需要提供的培訓內容也不太一樣,下表是培訓內容的一些參考:
合作的態度
安全開發體系的制定和落地推廣離不開產品、開發、測試等部門和人員的認可、參與,安全團隊不能讓大家認為安全部門是在加碼任務,設置卡點,要以合作的姿態開展工作,前期應以提供幫助解決安全問題為重。
舉個例子:
某傳統行業的科技子公司,在推行安全開發體系之前,先對開發部門進行調研,主要方向是收集開發部門日常工作中遇到的安全問題,了解開發部門非常頭疼邏輯越權、SQL注入和隱私數據安全的問題。安全部門將這些問題作為安全開發體系落地過程中的專題,提供編碼安全規范和代碼示例指引開發人員提升代碼質量,從源頭上避免這些問題。編碼提交后,通過IAST測試平臺(交互式動態測試),幫助開發人員查漏補缺。并且IAST發現的漏洞詳情非常詳盡:漏洞對應的代碼位置、執行過程展示、修復方法和示例代碼,甚至提供可以直接引用的安全組件,盡一切可能幫助開發復現和修復漏洞。
注:應用安全測試目前在市場上有眾多的解決方案,其中最老牌、應用最為廣泛的時SAST(靜態)和DAST(動態)測試工具,通過在源代碼 (SAST) 或公開對外接口 (DAST) 上運行安全掃描,可以在應用上線之前識別并糾正許多漏洞。
然而隨著 DevSecOps 被廣泛接納,Gartner 在 2017 年的研究報告中明確提倡用 Interactive Application Security Testing (IAST) 交互式應用安全測試替換 SAST 和 DAST。
在后續的安全開發體系落地過程中,開發部門非常配合。在20多個試點項目中,發現并修復了近千個邏輯越權漏洞和數百個SQL注入漏洞,隱私數據的安全情況也得到大大改善。
高效的安全工具
正如前面講到的例子,IAST可以幫助開發人員排查修復漏洞,其根本意義在于安全工具可以給安全能力相對較弱的人員提供安全賦能。選擇使用門檻低且檢測效率高的安全工具,可以在很短的時間內落實相關環節的安全工作。另一方面,在使用優良的安全工具過程中,相關人員對安全知識的掌握和認知也會得到極大的提升。
知識庫支持
知識庫主要是用于提升人員的安全能力和效率,例如,一般的產品經理并不具備威脅建模的能力,需要提供威脅建模知識庫,知識庫會給出具體業務場景下的安全威脅和對應的安全要求,幫助產品經理快速準確的完成威脅建模的工作。優秀的知識庫都需要長期積累,平時需要由安全部門維護更新,沉淀項目中積累的問題,持續提升賦能效果。
四、安全運營,解決執行力問題
賦能可以解決能力和效率的問題,但是不能解決執行力的問題,需要配合安全運營來監督和改善體系的運轉效果。根據實際情況,需要綜合考慮選擇合適的運營方式,這里提供一些運營維度作為參考。
1. 單個項目運營卡點
2. 全局安全運營
3. 個人績效考核
這里要強調一點,設立個人績效指標不僅僅是為了考核相關人員安全工作的完成度,同時也是個人績效的體現,要在項目復盤和年度考評中考慮增加這方面的權重。增加人員積極性的同時,也為公司留住安全開發領域的寶貴人才。
五、關鍵突破點,高層支持
除了上述要點,安全開發體系要想很好的推進,最重要是要獲得IT高層領導的認可,這樣才能獲取足夠的行政資源,推動以下事項:
如果開始不能獲取高層的最大支持,建議先從容易落地且有能看到成果的環節開始建設,例如IAST測試,用事實成果爭取高層的支持。
六、寫在最后
安全開發體系的建設,通過賦能和運營的結合,并在高層支持下,幫助安全部門在人力不足、項目快速擴張等諸多不利的環境下,建設起安全開發的管理體系,幫助安全部門改變被動現狀,獲得應有的地位,發揮應有的作用,避免因為安全問題造成企業核心業務馬失前
2020年新冠疫情給互聯網行業提供了一個展示信息技術肌肉的機會,但遺憾的是行業領導者們在產品安全問題上紛紛“撲街”,從智能硬件、視頻會議、社交通訊到網盤業務,一系列重大安全違規事件不絕于耳,不但嚴重威脅用戶的隱私與數據安全,同時也給企業的品牌、業務和市值帶來巨大傷害。從網絡安全經濟學的角度來看,產品安全問題并非“產品”問題,冰山以下是一個全局問題——如何安全地敏捷化和數字化,如何打通應用安全、數據安全/隱私保護的經絡,把Sec塞進DevOps不會比把大象塞進冰箱更輕松,打造全局化和敏捷化的安全能力,絕不是企業安全團隊能獨自完成的,這應該是企業所有人,尤其是CEO的責任。