老實說,要不是有拼寫檢查的幫助,“separate”這詞兒拼錯的人肯定不少。微軟Word將近20年的忠實耐心重復功不可沒。
思考安全問題的時候,拼寫檢查的概念也是十分有啟發(fā)性的。當場改正的好處非常巨大——能立即發(fā)現(xiàn)過程中的錯誤。更大的好處則是能看到建議的修正方案,因為重復的識別和修復過程是高度有效的學習工具。拼寫檢查能自我完善,越來越杰出。
軟件安全測試的傳統(tǒng)工作模式一成不變了好一段時間。研發(fā)團隊寫代碼一直寫到能放出一個完整版本,然后完整應(yīng)用程序被投入測試;測試結(jié)果再返回研發(fā)團隊進行查缺補漏。
這就是麻煩產(chǎn)生的起點。因為測試結(jié)果返回的時候,研發(fā)團隊已經(jīng)推進到下一個開發(fā)周期了。未解決測試中發(fā)現(xiàn)的問題,他們必須暫停當前工作,又把思緒調(diào)回到之前的周期,展開調(diào)查和修復工作。有些測試工具背著經(jīng)常誤報的黑歷史,研發(fā)人員還得先驗證每個漏洞是不是確實存在且可被利用的。這讓常被進度催著走的研發(fā)團隊壓力山大,往往就為了趕時間而不顧安全了。
甚至安全培訓(假設(shè)有培訓吧,雖然更常見的現(xiàn)象是根本沒有),也是整體兜售的。研發(fā)人員被調(diào)出開發(fā)周期,去參加各種課程或被鼓勵去進行基于計算機的培訓。隨著千禧一代踏入軟件開發(fā)職場,隨著敏捷軟件開發(fā)方法的擴張,這一培訓方法不再理想。千禧一代更喜歡速食碎片化學習模式。
顯然,軟件安全測試和安全培訓都需要進行范式轉(zhuǎn)換。作為回應(yīng),很多廠商熱衷于拋出一個讓人迷惑的術(shù)語:左移。這詞兒源于瀑布式開發(fā)圖表,里面的左移表示進入該過程前已嵌入測試。但這些廠商中大多數(shù),左移的不過是調(diào)出與傳統(tǒng)方式相同測試過程的“按鈕”而已。
并不完全是范式轉(zhuǎn)換
左移什么的都可以放下了,不如利用拼寫檢查式安全技術(shù)植入安全。這些工具活躍在開發(fā)環(huán)境內(nèi)部,代碼編寫過程中就在做漏洞檢查,對代碼進行輕量級靜態(tài)分析,在源頭發(fā)現(xiàn)跨站腳本或SQL注入之類的常見問題。
此類工具的高級版本還提供教育性材料,向開發(fā)者解釋所發(fā)現(xiàn)漏洞的本質(zhì)及其利用方式,可用于清除漏洞的修復方案也有建議。有些還會在開發(fā)者確認后執(zhí)行所選修復。漏洞就這樣被現(xiàn)場發(fā)現(xiàn)、解釋、修復了。
這種方法的好處顯而易見。
1. 漏洞實時發(fā)現(xiàn),開發(fā)者可立即修復問題,不用等到之后很久測試結(jié)果出來又再重開工程進行修復。采用這些工具的企業(yè)已經(jīng)見證了開發(fā)生產(chǎn)力上15%的效率提升。這得益于在查找并清除誤報,以及中斷開發(fā)周期修復前版軟件上的時間節(jié)省。成千上萬美元的修復開銷節(jié)省也是有報道的。
2. 互動過程成為了開發(fā)團隊進行微學習的機會。這些工具教授開發(fā)人員常見漏洞的本質(zhì),提供從他們的代碼中清除這些漏洞的模板。觸手可及的學習過程比傳統(tǒng)學習方法有著高得多的駐留率和影響。最終,常見錯誤從代碼庫中消失了。
3. 這些工具提供了對開發(fā)團隊安全準備度的宏觀視角,鞏固了對員工及其安全編碼表現(xiàn)的信息掌握。經(jīng)理們能看出開發(fā)模式,采取額外培訓或單個輔導的方式解決潛在問題。可見性提供了改善現(xiàn)狀和進一步提高生產(chǎn)力的機會。
目標非常明確——盡早發(fā)現(xiàn)問題以便能在源頭進行修復。盡管這些工具不能免除開發(fā)周期末端的全面靜態(tài)和動態(tài)測試,但只要運用合適,安全拼寫檢查應(yīng)能在這些測試前捕獲很多問題。這將讓開發(fā)周期末端的那輪測試更多地像是最終評估,而不是單純的漏洞測試。
成熟的企業(yè)應(yīng)采納混合式方法,將測試工具融入開發(fā)生命周期各個階段。目標是早期發(fā)現(xiàn)并修復,摒棄開發(fā)生命周期的中斷,用工具來提升開發(fā)人員的安全競爭力。
最終結(jié)果將會使更精明的企業(yè)脫穎而出。