安全的生命周期不是開發人員的生命周期
應用安全公司Enso Security的首席架構師以及聯合創始人,Chen Gour-Arie發現了創業的一個重要組成部分,即反思個人發展以及行業的演變。2008年,PCI-DSS成為了以色列企業不可或缺的業務元素。那時,他參與了許多最早的認證流程,也見證了許多公司在合規性方面作出的努力。

Chen的主要職務涉及與應用相關的PCI部分,比如滲透測試。一天下午,Chen坐在以色列一家最大的醫療保健供應商的辦公室里,回憶起曾經審查過一份冗長且似乎永無止境的問題清單,最后非但沒有解決問題,反而其團隊變得更加困惑。最后離開辦公室的時候,剩下的問題比答案還要多,也并沒有獲得任何的見解或者有用的信息。
通過這次經歷,Chen更加清楚地明白了一件事:安全標準所規定的內容對于企業來說是不可行的。不僅是在2008年,即使在今天它們也仍是不現實的。例如,PCI-DSS標準需要全面地收集數據,并對范圍內的資產進行多學科的評估。業界花費了多年的時間才找到了滿足PCI-DSS標準的合適策略,即隔離PCI環境。
一個流行詞誕生了
同一時間,軟件開發安全生命周期(SSDLC)成為了業界的流行詞,而這并非巧合。要將安全整合到開發的每個階段中,其前提是:從一開始就確保安全團隊的參與,以便最大限度地避免發生錯誤并保護開發過程。由于云遷移的增加以及移動應用的廣泛應用,SSDLC成為了越來越多企業的首選。它甚至在DevOps大展拳腳后,仍然存活了下來。如今SSDLC已經轉變為我們今天所用的持續交付-操作循環。當隱私保護計劃如火如荼地進行時,我們再次見證了企業掌握控制標準(如GDPR)是多么的困難。然而這一次,縮小范圍并不是一個選擇。突然間,許多企業在努力滿足新條例要求的時候,都直接受到了由于糟糕的設計和安全負債而造成的影響。
對于那些二十年來一直在“撓癢癢”和“戳應用”的人來說,這并不奇怪。盡管初衷是好的,但是在所有項目的每個階段都實現安全性幾乎是不可能的,并且開發出對高級黑客(和滲透測試人員)有彈性的應用也變得越來越困難。說實話,開發出沒有bug并且不會宕機的應用是極具挑戰性的,所以監管者以及整個行業的期望都必須得到調整。
簡單來講,企業缺乏足夠的人力資源來處理安全問題,而開發人員又過于忙碌而無暇顧及安全問題。無論是否令人感到驚訝,這個缺陷都體現出安全人員和開發人員之間關系的失調。
進入大腦
精英黑客,比如Solarwinds攻擊的幕后黑手,進入了開發者的思維,利用軟件開發中的弱點,進行了一個復雜的操作。入侵應用其實就是尋找開發人員必然會犯的錯誤。
理想情況下,通過適當的培訓,有效的內部溝通,注重安全性的設計以及嚴格的測試流程,這些錯誤都能被很好地控制,從而降低其所帶來的不良影響。但是,眾所周知,現實情況并非如此,現實中企業并非都能實施嚴格的防御。
許多開發者不考慮安全。他們考慮的是特性、截止日期、延展性和速度。開發者考慮生產事故以及宕機時間方面的事。但最重要的是,開發者是創造者,他們需要經驗,獲取客戶真實的意圖,并且主動做決定來使安全融入到他們的創新領域。
安全專家經常低估開發人員為保護應用而作出的努力。開發人員一邊不斷實現應對錯誤和失敗的不同層次的彈性,一邊不斷受到來自各個方面的困擾。而這些困擾多來自于產品,客戶成功,市場營銷和組織中所有利益相關者的無數需求。
狼來了
Chen曾經有過一個項目,需要為一個擁有一千名開發人員的公司開發一個可擴展性的程序。經過一個繁瑣的過程以及數小時的討論后,其團隊終于達成了一個安全服務級別協議。一個首席工程師笑著對Chen說:“你看,安全就喜歡中心舞臺。”他立刻明白過來:不論是無意還是有意,安全總是扮演著狼來了的角色。
另一方面,當你向開發人員展示零日漏洞時,所有人都會大叫:“救火!”一定要撲滅它。所以,無論開發人員是否相信,有些脆弱性都已經對業務連續性構成了真實的潛在威脅。也就是說,無論他們承不承認,他們都需要安全感。
所以,底線結論就是:安全生命周期不是開發人員生命周期。像威脅建模和滲透測試等活動對安全級別至關重要,但是它們也需要許多難以擴展的資源。
尤其是在SSDLC模型上運行時,管理開銷會降低你的速度。另一方面,盡管利用單純的應用安全測試自動化來收集關于軟件定量化的反饋是一個高效的策略。但是,沒有嚴格的管理以及全面的安全文化,它也不太可能會被企業采用。
安全性與軟件開發的生命周期保持一致,但是也超越了它。
盡管應用安全不斷挑戰包括傳統應用在內的所有應用,而這一點仍然成立。應用安全跨越代碼本身來評估軟件成分,CI管道以及執行時間。無論開發是否在內部進行,應用安全都會評估開發人員作出的修改,也會持續關注新的攻擊和漏洞。
應用安全有自己的生命周期,且與開發人員的不同。
點評
盡管安全對于軟件的開發的不可或缺的,但幾乎所有的軟件開發過程都會受到安全性的“阻礙”。安全標準對于開發團隊往往是不可行的。這大多是由于安全團隊不夠了解應用安全和企業面臨的風險波動之間的關聯。加強開發團隊與安全團隊的溝通與協作,使其步調一致,才能更好地實現技術的進步以及安全風險的管控。




















