SEC11-BP03 執行定期滲透測試 - 安全支柱

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SEC11-BP03 執行定期滲透測試

定期對您的軟體進行滲透測試。這項機制有助於識別自動化測試或手動程式碼審查時,未能偵測到的潛在軟體問題。此外還有助於了解偵測控制的效用。滲透測試應嘗試判斷軟體是否會透過非預期的方式執行,例如暴露原本應受保護的資料,或是授予超乎預期的較廣泛權限。

預期成果:滲透測試可用來為您的應用程式安全屬性進行偵測、修復和驗證。定期和排定的滲透測試應作為軟體開發生命週期的一部分執行 (SDLC)。從滲透測試找到的調查結果應事先解決,才能安排軟體發行。您應該分析從滲透測試得到的調查結果,並識別是否有任何問題可使用自動化找出。實施包括主動意見回饋機制的定期和可重複滲透測試程序,可協助建置人員得知指引,並改善軟體品質。

常見的反模式:

  • 只對已知或普遍存在的安全問題進行滲透測試。

  • 滲透測試應用程式 (不含相依第三方工具和程式庫)。

  • 只對套件安全問題進行滲透測試,且不評估已實作的商業邏輯。

建立此最佳實務的優勢:

  • 提高軟體在發行前的安全屬性信心。

  • 可識別偏好應用程式模式,並藉以提高軟體品質的機會。

  • 在開發生命週期初期進行的意見回饋循環流程,當中的自動化或額外訓練可以改善軟體的安全屬性。

未建立此最佳實務時的風險暴露等級:

實作指引

滲透測試是一種結構化的安全測試練習,過程當中,您會執行計畫的安全性缺口情境,對安全控制進行偵測、修復與驗證。滲透測試從偵察活動開始,過程中會根據目前的應用程式設計與其相依性收集資料。已經建置並執行精選的安全特定測試情境清單。這些測試的主要目的在於找出您的應用程式中的安全問題,這些問題可能會被利用來非預期地存取環境,或未經授權存取資料。當您推出新功能,或是每當應用程式遭遇重大的功能變更或進行技術實作,您就應該進行滲透測試。

您應該識別開發生命週期中最適合進行滲透測試的階段。這項測試的執行時間應該盡量延到系統功能接近預定發行階段之時,而且要保留足夠修復任何問題的時間。

實作步驟

  • 建立處理滲透測試範圍限制方式的結構化程序,前提是這個關於威脅模型的程序是維持內容的好方法。

  • 識別開發週期中最適合進行滲透測試的時機。進行測試時應該是預期應用程式進行最少變更,而且有足夠時間進行修復。

  • 訓練建置人員學會從滲透測試調查結果預期哪些內容,以及如何取得關於修復的資訊。

  • 使用工具,透過自動化共通或可重複測試,加速滲透測試程序。

  • 分析滲透測試調查結果來找出系統性安全問題,並使用這份資料,得知其他的自動化測試與持續進行的建置人員教育。

資源

相關的最佳實務:

相關文件:

相關範例: