新思科技認(rèn)為首席信息安全官(CISO)在軟件安全方面發(fā)揮著關(guān)鍵作用。
首席信息安全官(CISO)在軟件安全方面發(fā)揮著關(guān)鍵作用。每家企業(yè)都需要一位有權(quán)對數(shù)據(jù)和軟件組合進行治理的人員,并且他有明確的執(zhí)行計劃,這樣有助于針對企業(yè)風(fēng)險進行探討。
IT和軟件工程企業(yè)可能需要創(chuàng)建基礎(chǔ)架構(gòu)、設(shè)置訪問控制、創(chuàng)建自定義應(yīng)用程序以及配置環(huán)境以抵御攻擊和保護數(shù)據(jù)。但是他們要怎么確定 “安全”意味著什么?如何做到安全?以及他們是否在實現(xiàn)安全?這些都是未知數(shù)。 “如何保障安全”的標(biāo)桿必須來自代表業(yè)務(wù)的人,CISO是一個很好的選擇。找到合適的人并為了他們的成功創(chuàng)造條件是提高軟件安全能力水平的第一步。
請注意,我在這里用的是“軟件”而不是“應(yīng)用程序”。
當(dāng)企業(yè)專注于“應(yīng)用程序”時,他們往往會忘記所有框架、庫、API、微服務(wù)、開源和其它軟件組件。這些組件可能不止存在于最終包含它們的應(yīng)用程序里。有時同一款軟件,企業(yè)得擔(dān)心數(shù)十次甚至數(shù)百次,因為,例如,相同的框架嵌入在許多應(yīng)用程序中。此外,僅在應(yīng)用程序級別考慮軟件出處通常會模糊所有組件的來源 - 開源、定制軟件以及其它所有組件。如果你不知道自己擁有什么,就無法做出有效的風(fēng)險管理決策。
了解生產(chǎn)軟件的所有組件,包括在構(gòu)建時引入的組件,是軟件安全能力的基礎(chǔ)部分。除了資源充足的CISO和出色的軟件庫存之外,還有一些可信的軟件安全功能的基礎(chǔ)部分:
- 驗證企業(yè)軟件開發(fā)生命周期(SDLC)中安全依從性的方法。這不僅僅是對安全缺陷的測試,還必須包括遵守所有標(biāo)準(zhǔn)和策略;
- 說到這一點,企業(yè)將需要面向軟件和數(shù)據(jù)安全的策略和標(biāo)準(zhǔn)。這些必須是不可協(xié)商的,其中不遵守策略和標(biāo)準(zhǔn)自動會被認(rèn)定是安問題,盡管異常過程可能允許安全小組有一些額外的時間來解決;
- 給軟件安全風(fēng)險排名,可以在時間、人力或者資金有限的時候確定重點應(yīng)放在哪里?
- 對軟件項目進行排名(改變加密算法的開發(fā)最小迭代周期可能比改變UI字體和顏色的開發(fā)最小迭代周期更值得仔細(xì)研究)
- 工程師需要一個明確的聯(lián)系人來解決安全問題,并讓他們了解安全責(zé)任。無論你將這些人稱為軟件安全衛(wèi)星、忍者、安全冠軍還是其他,他們都需要存在。
許多企業(yè)都有正式的軟件安全計劃(SSI),這些計劃已經(jīng)將他們從“滲透和修補”的心態(tài)轉(zhuǎn)變?yōu)榉e極主動和可信的方法。在CI / CD和DevOps之前提高軟件安全能力水平不會在一天內(nèi)發(fā)生,但并不復(fù)雜。
SSI自21世紀(jì)初就已經(jīng)出現(xiàn)了,與部署SSI的開發(fā)企業(yè)同步發(fā)展。軟件安全團隊經(jīng)常實施耗時的測試,而工程團隊瀑布式和敏捷級別流程大多數(shù)情況下都有足夠的時間可以實現(xiàn)這些測試。這兩個團隊通常協(xié)調(diào)得很順暢,每個團隊都能充分發(fā)揮自己的工作,即使效率不高。軟件安全能力通常關(guān)注測試過程可以找到多少錯誤。這對于那些執(zhí)行治理和降低風(fēng)險的人員來說是有效的,但卻給工程人員帶來了不可接受的摩擦,他們需要注重速度。
為什么摩擦像是一夜之間發(fā)生了變化?
自2014年左右開始,軟件工程開始迅速發(fā)展。當(dāng)然,敏捷、CI / CD和DevOps概念已存在多年,但它們最近才在許多企業(yè)里獲得青睞。在CI / CD和DevOps后(可能伴隨著倉促地對云遷移和云原生的開發(fā)),提高企業(yè)軟件安全能力并不意味著使用傳統(tǒng)的安全測試工具和新的工程流程。相反,它意味著與工程緊密結(jié)合,以提供節(jié)奏友好的CI / CD工具和文化友好的DevOps流程;這意味著多年來我們所講、所學(xué)的SSI的“安全”,并使其適合CI / CD和DevOps,以創(chuàng)建企業(yè)自己的DevSecOps版本。(如果也有人告訴你DevSecOps意味著特定的事情以特定的方式完成,不要相信。他們試圖向你推銷一些東西。)卓越的DevSecOps確實提高了任何企業(yè)的軟件安全能力水平。
當(dāng)然,SSI仍需要堅實的基礎(chǔ)。還記得我們之前談過的軟件庫存嗎?那么,當(dāng)編排被提出,并拆除基于基礎(chǔ)架構(gòu)即代碼自動化的容器和虛擬機時,你的庫存流程是否仍然有效?如何在SDLC中檢測是否正確使用了所需的框架和API?
對我們已知有了缺陷的軟件進行滲透測試是沒有意義的,因為它的設(shè)計或構(gòu)建很差,可以在軟件開發(fā)的早期檢測和解決。事實上,在發(fā)布之前進行安全測試需要隨著時間的推移而降低價值。每個企業(yè)都必須能夠設(shè)置軟件安全標(biāo)準(zhǔn),并在不遵循時該標(biāo)準(zhǔn)時能夠立即提示確認(rèn)。
那些負(fù)責(zé)軟件安全的人必須考慮將他們的軟件需求納入待辦事項,并將流程和合規(guī)性要求納入驗收標(biāo)準(zhǔn)。例如,將非功能性安全需求納入到開發(fā)過程中,以便架構(gòu)師、開發(fā)人員、測試人員和操作團隊都知道應(yīng)用程序的預(yù)期行為。除了一些軟件安全SMEs之外,這些還可以在整個開發(fā)工具鏈和操作環(huán)境中創(chuàng)建傳感器(測試),以確保軟件符合要求。這意味著安全測試能力成為一個驗證步驟,確保所有軟件安全流程都能達(dá)到正確的規(guī)范,而不是耗費時間盡快找到最嚴(yán)重的安全缺陷并希望獲得最佳的安全。
使用CI / CD和DevOps,每家企業(yè)都必須建立良好的可觀察性,這是我們?nèi)绾卧诮o定狀態(tài)或輸出的情況下推斷系統(tǒng)或過程的內(nèi)部狀態(tài)。負(fù)責(zé)治理的人需要深入了解所有正在運行的軟件 - 包括容器、虛擬機和其它集成軟件 - 及其行為。這一切并沒有黑匣子。根據(jù)非功能性安全要求和發(fā)布驗收標(biāo)準(zhǔn),精準(zhǔn)的傳感器進行調(diào)整,告訴每個用戶軟件何時行為不當(dāng),并且相關(guān)人員可以立即確定它是否是缺陷、攻擊或其它。
如果CISO不采取主動措施,他們的公司將極可能陷入各種各樣的無效非生產(chǎn)性的工作中。公司將有負(fù)責(zé)打通云端管道的影子IT團隊;創(chuàng)建使CI/CD各種工具相互通信的"黏合代碼"的影子開發(fā)團隊。;制定可行的但不安全的云設(shè)計的影子構(gòu)架團隊,諸如此類。一旦投入使用,那些功能正常的、創(chuàng)收的應(yīng)用程序,如果只是沒有通過任何安全檢測,則極可能是無法解除的。
每家公司都要求確保CISO能夠快速部署可接受的安全軟件,無論他們是否能夠在每天的每一分鐘都看到每個SDLC的每個環(huán)節(jié)。
“我需要保證軟件組合在任何特定時間都是適當(dāng)?shù)陌踩?rdquo;是一個明顯更成熟的管理主張,而不是“我必須在該軟件開發(fā)結(jié)束時對其進行測試。”
所有利益相關(guān)者合作以便每個人步調(diào)一致和共同提高所有人的最大能力。