2022 年 5 月
整個電腦產業以及需要確保所用產品安全的客戶都知道,環境中可能存在著許多安全漏洞,為了保證安全,NetApp 開發了安全開發生命週期 (SDL),這是一種評估和回應潛在漏洞的產品開發標準。
NetApp 的 SDL 根據業界最佳實務做法和標準定義了一套嚴格的流程,產品團隊可以遵循此流程來評估安全性並規劃安全產品的發行。從撰寫單行程式碼之前的第一次產品規劃開始,一直延伸到產品發行後的監控,全都在此流程的掌控當中。
NetApp 實作的 SDL 是一套具有防禦能力、可重複執行的 6 步驟程序(如下圖所示),負責建置 NetApp 產品與服務的團隊都可以遵循此程序。在整個產品開發過程中,NetApp 團隊可以執行這套預先定義好的明確活動項目,以確保產品安全可靠。SDL 流程讓 NetApp 能夠瞭解產品所面臨的風險,並評估產品團隊遵循完整 SDL 後的成效。
產品安全小組提供關於 SDL 的最佳實務做法和支援程序,並為產品團隊提供安全專業知識。產品團隊可實作 SDL 流程與政策,以提供安全無虞的產品。SDL 要求所有已知漏洞(包括第三方元件漏洞)都必須妥善解決。
NetApp SDL 流程的第一步是透過訓練和任命安全主導者,在產品團隊中培養安全意識和專業知識。
NetApp 要求對參與產品交付的人員進行安全訓練。安全訓練包括有關目前威脅、安全開發技術、漏洞和安全問題解決方法的教育活動。訓練內容將針對受訓人員的角色量身打造,包括產品經理、開發人員、QA 等,以此建立他們的產品安全意識,並支援將安全實務做法納入其工作當中。
NetApp 要求每年進行一次安全進修,以傳達產品安全領域必然會發生的變化。NetApp 還提供內部論壇和商業活動的參與權,以協助個人提升其安全知識。
安全主導者是 NetApp 產品團隊中具有安全意識的專業人士,他們在組織中推廣安全開發最佳實務做法和 SDL,同時促使普遍採用及瞭解產品安全。每位主導者都接受深入的安全訓練,特別是接觸到包括 NetApp SDL 在內的最佳安全實務做法。雖然主要目標是在開發團隊中培養安全領導人才,但在監控產品團隊的 SDL 執行時,這些主導者也擔任產品安全小組的主要聯絡人。
NetApp SDL 流程首先從安全性評估和發佈循規要求與測試計畫開始。接下來是徹底評估產品安全問題與解決方案,並驗證任何已識別的漏洞是否都已妥善解決。最後是透過產品安全事件回應團隊 (Product Security Incident Response Team,PSIRT) 進行溝通或風險監控活動。
SDL 流程中的這個步驟包含三個接觸點:審查產品安全基準、威脅建模和避險、審查供應鏈生態系統。所有這些都是在設計開發初期,即開發或實作任何程式碼之前便加以應用。
產品安全基準審查:產品安全基準是所有 NetApp 產品可接受的最低安全層級。此基準源自 ISO/IEC 27001 等安全標準,以及對 NetApp 企業和政府客戶所做的合約承諾。審查流程會建立一套步驟,讓產品團隊可以遵循這些步驟,針對每項需求評估其產品。然後,產品團隊會擬定計畫,將任何遺漏的基準功能新增至產品之中。
威脅建模和避險:威脅建模用來及早識別某項功能、元件或產品中的安全漏洞,它可讓產品團隊以結構化的方式來思考其設計的隱含安全問題。如此一來,團隊就能更有效地識別安全漏洞、判斷風險,並制定適當的避險措施。
信賴的供應商方案:此方案的目標是確保我們的策略供應商生態系統能夠持續保證業界最高層級的安全性,NetApp 透過此方案評估參與 NetApp 產品開發的策略供應商(包括新舊供應商)。稽核可協助產品團隊驗證供應商開發、製造和支援流程是否包含了 SDL 活動,它也有助於 NetApp 判斷所取得的元件是否符合我們的標準。
SDL 流程中的這個步驟包含兩個接觸點:制定循規要求與安全測試計畫。
SDL 循規計畫:透過循規計畫,產品團隊可以定義特定版本發行所能接受的安全層級,並確定如何讓發行內容符合這些標準。及早建立這些層級有助於團隊瞭解與安全問題相關的風險,在開發過程中找出並修正安全缺陷,將 SDL 標準套用至整個專案。
安全測試計畫:安全測試計畫將安全測試案例整合到測試策略之中,涵蓋從驗證與授權、到保護靜態或傳輸中資料等眾多安全層面。建立和執行安全測試計畫還包括修正所發現的問題,確保在產品發行之前能夠找出並妥善解決潛在的安全問題。
SDL 流程中的這個步驟包含六個接觸點:在安全程式碼審查中識別安全錯誤、靜態和動態應用程式的安全測試、對已知的漏洞執行階段掃描(包括透過模糊測試),以及掃描第三方軟體的漏洞。
靜態應用程式安全測試:在編譯之前,產品團隊可以使用此測試來掃描原始程式碼,以發現程式碼中可能存在的重大瑕疵、安全弱點和漏洞。該測試在每個專案的建置程序中使用一組勾點和一系列報告工具(例如錯誤追蹤和程式碼審查)來標示產品瑕疵,開發人員必須負責分類並修正任何已識別的問題。此舉有助於避免發行時發生問題,例如增加支援挑戰、記憶體毀損、系統出現問題,甚至是有人從遠端執行程式碼。
安全程式碼審查:安全程式碼審查是一種技術,可在開發初期先識別安全錯誤,之後再提交至版本控制系統。它有助於確保程式碼不會被任何明顯的安全弱點所影響,例如通用弱點列舉 (Common Weakness Enumeration,CWE) 標準中所闡述的特定程式碼模式。安全程式碼審查取決於靜態應用程式安全測試和威脅建模所獲得的見解。
動態應用程式安全測試:產品團隊可以在編譯完成的軟體上執行此測試,以識別執行階段問題,進而在測試或接移環境中測試所整合和執行程式碼的安全性。掃描活動包括設定要測試的 Web 應用程式以利掃描,然後對該應用程式執行掃描工具。這些掃描可發現各種漏洞,包括可能讓應用程式容易遭受跨網站指令碼或 SQL 注入攻擊的輸入和輸出驗證問題,它們也有助於識別組態錯誤和應用程式的其他特定問題。
漏洞掃描:為了識別正在開發的 NetApp 產品是否存在常見和已知的安全漏洞,NetApp 遵循使用簽章和組態檢查的標準程序。
模糊測試:模糊測試是一種可發現安全漏洞的自動化執行階段測試技術,可將格式錯誤或部分格式錯誤的資料導入傳輸協定介面,以識別任何不合預期的結果。NetApp 產品團隊所使用的模糊測試工具可支援透過傳輸協定專用測試套件來自動執行黑箱模糊測試,此測試能夠找出不合格 RFC 等問題。模糊測試通常會與動態應用程式安全測試一起搭配執行,可在測試程式碼時加快開發速度。
第三方軟體掃描:掃描第三方軟體(或軟體組成分析)有助於管理使用第三方元件的安全風險,它可以建立開放原始碼軟體與產品內建協力廠商元件的詳細目錄。掃描可以標示可能存在法律和安全問題的元件,必須先採取修正行動後才能發行該產品,如此可快速識別已知的漏洞,並讓產品團隊制定計畫來解決這些漏洞。由於可能隨時回報新發現的漏洞,因此可以持續進行此掃描。
在產品團隊發現並解決了安全問題之後,他們就能驗證所實施的修正措施是否生效。
SDL 流程中的傳達風險步驟包括評估、傳達和解決在先前接觸點中發現的風險,這可能涉及滲透測試、正式報告、或開發產品專屬異常回應程序等步驟。
產品安全事件回應團隊 (PSIRT) 負責協調和管理漏洞調查(無論是公開報告或是公司內部報告)以及 NetApp 回應,其中包括與調查和避險有關的公開公告。產品團隊必須指派一位負責人與 PSIRT 協調配合。
To edit this Page SEO component