在敏捷產品開發過程中,用戶故事可能不足以保證實施的安全性。這里闡述一些更有效提高安全性的辦法。
越來越多的公司采用敏捷模式開發和維護軟件系統。敏捷需求管理方法主要基于開發特性。敏捷開發團隊經常會發現,對于開發安全產品來說,使用用戶故事來定義某個產品的具體安全特性是不夠的。你可能需要另外的機制和實踐,才能達到安全要求。
在敏捷產品開發中,提高安全性的一些建議如下:
時刻關注安全性完成的定義(DoD)。用驗收標準來驗證滿足了安全性需求。在產品評審過程中,請利益相關者攻擊產品安全性。用回顧反省的方法調整你的安全策略。群聚解決安全問題。
我認為,在進行敏捷產品開發時,探索漏洞和安全性的風險研討會還是有意義的。不僅是在項目初期,你必須把團隊成員和利益相關者集中在一起開會,在后續開發過程中,你也要經常組織他們一起交流,以探討會發生什么問題,并且決定如何處理問題。我建議,記錄DoD風險研討會里做出的決定,作為軟件交付前必須達到的標準。把DoD寫在團隊的公告板上,并且確保每位成員在產品開發過程中,都能夠始終關注安全性。
可以借助驗收標準在如何驗證具體用戶故事的安全性上達成共識。驗收標準不僅有助于闡明需求,也有助于討論并得出需要多少安全性措施及其種類。提前定義標準,不但有利于團隊開發出滿足安全需求的軟件,還有助于在軟件發布前測試出軟件是否滿足安全需求。
在產品評審或者所謂的演示階段,開發團隊會向大家展示產品,并且收集反饋信息。利益相關者不僅有機會操作該軟件產品,但也給他們提供了機會來破壞系統安全性;同時像罪犯或欺詐性者那樣操作軟件,從而觀察軟件系統如何響應。然后,利益相關者可以一起決定為保證系統安全需要做哪些事情。
敏捷回顧幫助團隊思考他們的工作方式,并持續提高他們的水平。在回顧中,通過使用“五個為什么”,可以發現主要的或者重復出現的安全問題。這樣,有助于找到導致安全問題的根本原因,以防以后再次出現類似問題。回顧還有助于精準調整團隊應對安全問題的處理方式。當周邊環境有些因素改變,導致出現安全問題的風險增加時,團隊可以調整他們的工作方式以適應這些變化。
當安全被破壞時,需要快速且有效的行動來解決問題,并且阻止更大的破壞。群聚,是一種讓團隊集中精力解決某個問題的方法。來自不同領域的人一起工作,達成共識,提出定位和解決問題的方法,并將升級后的軟件投入運行。開發團隊可能需要一些利益相關者,比如產品經理、程序或項目經理,相關實施人員的共同參與,以便開展迅速且有效的行動。
識別、分析并解決安全問題的速度和效率很重要。敏捷工作方式,比如用Scrum或者Kanban,可以幫助團隊通過快速地開發和發布有效的解決方案來處理安全問題。我認為DevOps會加速問題的解決,因為這樣的方式會縮短敏捷產品前端到后端的開發周期。當開發和實施人員密切合作時,被實施團隊發現或者報告給實施團隊的問題,可以被迅速的解決。