圖片來源: 

周峻佑攝

為了加速企業的軟體開發流程,導入DevOps是相當常見的做法,然而,近年來攻擊者針對開發流程下手的情況,可說是越來越嚴重,如何在維持同等的開發速度之下,保有資訊安全,便成為許多企業的難題。在今年的Modern Web大會上,白帽觀點創辦人YSc分享如何在上述的開發流程裡,做到資訊安全(DevSecOps)。

YSc強調,資安是每個人的工作,必須內化,而非開發完成之後才來驗證產品的安全性。然而,資安也不是無限上綱,絕非發現漏洞就是不計一切代價修補到好,商業價值衡量仍是最大的前提,因此,YSc說,企業必須先界定需要保護的標的為何,建立威脅模型,進而評估風險,最終要將資安工作標準化。

有了前述的準備工作之後,就要確定應該執行的測試範圍,由於開發團隊的工作繁重,同時必須兼顧產品品質與推陳出新的進度等要求,勢必要儘可能採取自動化的檢測措施,才能在影響最小的情況下做到這些資安測試。

由於自動化工具在採用的前期,往往會出現大量誤報的情況,因此YSc指出,在每次做完檢測之後,就要進行調整,並持續更迭,讓測試工具能更加符合企業的需求,而使得這些資安工作越做越順暢。

確認攻防態勢是第一要務

論及企業盤點所需執行的資安工作,YSc說,首先就是建立威脅模型,釐清需要保護和防範的標的。雖然業界常用的模型很多,像是STRIDE、PASTA(Process for Attack Simulation and Threat Analysis)等,但無論使用那一套模型,主要的精神還是在於,企業需要保護什麼資料(What)、攻擊者是誰(Who)、下手的標的(Where),以及如何攻擊企業(How)等。

企業想要落實DevOps的開發安全,一開始必須檢視需要保護的重要資產,以及面臨的攻擊為何。

例如,網站上的客戶資料必須嚴加保護,一旦遭竊就可能面臨求償、名譽掃地;若是要防範腳本小子(Script Kids)在網路上任意掃描,而成為遭受攻擊的對象,那麼就要檢查網站是否存在曝露的存取點。

透過在開發流程中的預防和自動化檢測措施,企業可減少許多遭受攻擊的情況,若要更進一步,就需要透過滲透測試和漏洞獎勵計畫,找出前述流程無法發現的弱點。

確定了上述的情況之後,接著就是要建立測試的方法,YSc指出,OWASP推出的Testing Guide v4,甚至是Application Security Verification Standard(ASVS),便是相當值得參考的準則。若要進行弱點評估,則可採用Common Vulnerability Scoring System(CVSS)3.0版。

納入檢測流程並加以持續改善

對於企業開發流程裡,那些部分需要納入資安工作,在持續整合(CI)和持續交付(CD)的工作中,YSc表示,從程式設計到程式碼檢核,然後進行部署和交互測試的過程裡,幾乎都有可以提升資安的工作。

不過,YSc認為,若要在DevOps納入資安,企業應該優先從靜態應用程式安全測試(SAST)、動態應用程式安全測試(DAST),以及軟體組件分析(SCA)等3個部分,開始做起。

在靜態應用程式安全測試的部分而言,主要是針對程式碼完整性,進行檢查,而動態應用程式安全測試則是實際執行,以檢核是否出現弱點,因此所需的時間相對也較長。至於軟體組件分析,是鎖定產品中可能會導入的第三方函式庫,檢查是否存在漏洞的情況。

而無論是前述的靜態或是動態的應用程式安全測試工具,企業開始採用後,可能會面臨大量的誤報,因此執行檢測之後的漏洞管理工作,便相形更加重要,例如,確認某些問題是誤報,或是影響程度較低的弱點,也有些情況透過其他防護機制緩解等,藉此調整測試工具的參數,過濾掉相關問題,這樣才能在日後開發的檢測流程之中,集中焦點在比較需要處理的漏洞。


Advertisement

更多 iThome相關內容