1. 程式人生 > >DevSecOps:將安全嵌入DevOps

DevSecOps:將安全嵌入DevOps

通常人們在一個專案行將結束時才會考慮到安全,這麼做會導致很多問題;將安全融入到DevOps的工作流中已產生了積極結果。

DevSecOps:安全正當時

一直以來,開發人員在構建軟體時認為功能需求優先於安全。雖然安全編碼實踐起著重要作用,但對於趕在最後期限前構建應用程式的團隊來講,它往往會被降到第二或第三級需求的位置。

“軟體安全”的說法通常會在軟體開發人員中引起負面情緒,因為它意味著增加額外的程式設計量、不確定性、以及阻礙快速開發和釋出週期的攔路石。最近這種思維模式正在逐漸發生改變,其中很大的一部分原因是自動化安全成功地融入了DevOps實踐中。

DevSecOps的調查結果顯示,24%的受訪者認為安全是開發人員目前的第一考慮因素。而在自我標榜有著成熟DevOps實踐的組織機構中,38%的受訪機構表示安全是首要考慮因素且開發人員在安全上面投入大量時間。這說明開發過程中的安全實踐比例要比DevOps團隊高60%。

調查結果還顯示,67%的開發人員並沒有在安全方面投入足夠的時間,或者他們認為這是其他人的責任。

鼓勵新想法

毋庸置疑,開發人員將繼續優先區分業務需求和市場需求:而這正是DevOps實踐的用武之地,它能改變開發人員的這種心態以及開發行為。DevOps實踐能夠讓開發人員從必須遵循強加的規則和指南轉向創造性地決定採用新的、更加容易的、自動化方式提早且在SDLC整個過程中採用安全編碼實踐。

強調一系列的DevOps原則如文化、自動化和基礎設施即程式碼能夠讓開發人員更多地瞭解到自己所構建的東西可被如何利用。DevOps文化並非盲目地遵循所要求的安全實踐和控制,而是鼓勵開發人員思考如何將確保應用程式的安全融入日常程式碼活動中。

一些組織機構鼓勵開發人員像可能會利用程式碼中漏洞的攻擊者那樣思考。而另外一些組織機構幫助開發人員更好地理解他們所面臨的挑戰即在最後期限完成程式設計的同時確保程式碼的安全。這種實踐有助於引起同理心,同時讓軟體變得更加安全。

從被動到主動

改變軟體的構建方式也有助於開發和安全團隊的立場從被動轉為主動。過去,軟體安全關注的是預測攻擊的來源和發動方式並設定障礙來應對攻擊,這個過程耗時較長。此外,有必要注意到的一點是,人們並無法預測到多數攻擊尤其是複雜攻擊,也就是說隨著新型攻擊的發現,修復方案通常會跟上。無法預測攻擊這一事實就是為何新的0day漏洞出現後會看到作為響應的補丁。

隨著DevSecOps的到來,人們就能主動將保證軟體安全的精力投入到打敗攻擊的過程中。例如,某些組織機構正在構建的軟體的攻擊面在縮小,從而既能快速部署又能快速恢復。換句話說,開發人員不再那麼擔心被黑,而更擔心如何阻止可預見的攻擊並快速從網路事件中恢復。

開發人員還在尋求多種創新方式,從而讓軟體承受攻擊並繼續發揮作用。換句話講,軟體應該“彎曲”而非“破裂”。這種從阻止到“彎曲而非破裂”的思維方式轉變能讓人們在應對攻擊時變得更加靈活。

安全不拖累交付

DevSecOps的新興概念主要是為了在增強應用程式安全性的同時不能拖累釋出和部署週期。這些技術包括在軟體開發週期中增加安全測試技術如模糊測試和軟體滲透測試。

其它技術包括在持續性整合平臺中自動化安全分析,從而在SDLC中提早限制易受攻擊程式碼的引入。這種方式能讓開發團隊提早考慮安全從而更快地推出修復方案。它能讓積極程式設計的開發人員更容易地修復實時出現的問題,而不是等到幾周或幾個月之後才收到警告資訊。

應用這些以及其它DevSecOps原則能為創造有彈性且安全的環境產生較大影響。如果正確執行這些原則,那麼將有助於開發人員在正確的時間擁有正確的工具和正確的洞察力。如果在早期將安全構建於SDLC和所有地方,那麼開發人員會更快地構建更好的軟體。

本文由360程式碼衛士團隊翻譯,原文:https://dzone.com/articles/devsecops-in-time-for-security