加固型開發運維:將安全融入軟件開發流程
2016-10-18 10:57:00 來源:來源:51CTO 評論:0 點擊:
【51CTO.com快譯】開發運維正在徹底改變開發人員和運營團隊的協同工作方式,以便更快速地交付更優秀的軟件。究其核心,開發運維的本質是自動化。開發、測試和部署方面的幾項任務自動化后,開發人員就可以經常修改代碼,并部署到生產環境。亞馬遜這家領先的開發運維倡導者曾經一度聲稱每天要部署1000多次。
但是這種加快的工作流程有可能繞過安全編程實踐,開發人員常常發現很難在第一時間融入這種實踐。如果開發運維要繼續保持發展勢頭,開發人員就需要在軟件交付生命周期的早期階段整合安全測試。
這就是“加固型開發運維”背后的想法,這場運動讓開發人員負責安全測試。加固型開發運維插入了多個點,以便安全測試能夠及早發現潛在的軟件問題,以免這類問題進入生產環境,但同時又不影響持續集成和應用程序交付。
分析公司Securosis的首席技術官阿德里安·萊恩(Adrian Lane)說:“加固型開發運維就是在進入到生產環境之前整頓代碼,確保一旦代碼部署到生產環境,能夠抵御外部威脅。要像攻擊者那樣對待你的代碼。”
以開發運維之道確保代碼安全
開發運維的核心目標是,提供實現敏捷開發必不可少的自動化和實踐,并且讓軟件開發由龐大的瀑布項目轉為持續交付管道。
加固型開發運維需要一種類似的轉變:丟棄非常復雜的、為期多年的安全路線圖,改為逐步改進。太多企業組織往全面的計劃投入了大量的資金和時間,結果發現投入打了水漂。
總體愿景比路線圖更靈活,讓每個人都可以專注于逐步改進。比如說,致力于確保頭一個季度部署的所有新代碼沒有SQL注入問題,然后在下一個季度清理舊應用程序中的SQL注入問題,而不是說到年底所有應用程序都得到修復,清除開放式Web應用程序安全項目(OWASP)列出的十大安全漏洞排行榜上的所有軟件漏洞。
這種逐步改進方法的一個影響是,縮短了發現安全漏洞后修補漏洞所花的時間。通過把項目分成多個小部分,更容易優先確定代碼更改,并在更短的部署窗口內準備好發布。安全問題被有序地分成較小的具體任務后,開發人員就可以優先考慮并處理安全漏洞及其他代碼更改。
測試軟件有助于確保安全成為迭代方法的一部分。比如說,Gauntlt這種安全測試框架為眾多安全工具提供了鉤子(hook),它讓開發人員、運維團隊和安全團隊在質量保證過程中相互合作,從而將測試融入到持續集成中。測試工作及早提供了應用程序安全方面的反饋。
讓開發人員負責安全測試并不是那么牽強附會
上一篇:運維工程師的前景和職業發展
下一篇:面向物聯網的六大開源中間件工具
