Microsoft SDL 開源軟件安全實踐

Microsoft開源軟件安全實踐

0x00背景

 

幫助您管理第三方組件中的安全風險的工具和技術。

使用開源

從操作系統到用戶界面小部件,從後端數據分析到前端圖形,現代軟件項目越來越依賴於開源軟件。開源軟件帶來了一些驚人的好處,但是有時它們伴隨着必須理解和管理的安全風險。在大多數情況下,使用任何第三方軟件組件(無論是開源軟件還是商業軟件)都可能產生這些風險。

瞭解Microsoft使用開源軟件時緩解安全風險的方法:

誰想要一千隻幼犬?在企業中管理開源安全性。(在LocoMocoSec 2019展示)

0x01概述

 

開源的好處和降低風險的實踐

開源的好處

使用開源軟件作爲開發過程的一部分有很多好處,其中包括:  

  1. 加快產品上市時間。通過將現有組件連接在一起而不是從頭開始實施所有組件,可以更快地創建軟件。  
  2. 更高的質量。所有軟件組件都可能包含缺陷,但是與讓許多工程師單獨解決多次相同的問題相比,專注於專用軟件組件的工作通常可以帶來更高的質量。 
  3. 社區。通過貢獻新功能,報告錯誤或與所使用的開源項目進行一般性的交互,您可以共享代碼庫的成本和收益。  

在Microsoft,我們認識到在開發產品和服務時負責任地使用開源的好處,並鼓勵我們的客戶和更大的技術社區也這樣做。 

實踐

這是正確管理此風險必須採取的最低步驟。 

0x02 4大實踐

實踐1-庫存開源

正確管理開源軟件組件的使用的第一步是瞭解正在使用的組件。即使在小型組織中,這通常也需要自動化。幸運的是,現代敏捷開發實踐已經嚴重依賴自動化工具,因此很容易適應這一領域的功能。

這個空間中有許多工具,包括NPM Audit和 OWASP Dependency Check等開源工具,以及GreenKeeperSnykWhiteSource Bolt等商業服務。我們並沒有在這裏特別認可任何特定的工具或服務,因爲它們各有優缺點。在決定庫存解決方案之前,請進行徹底的評估。

庫存生成應該在開發生命週期的自然時間進行,例如在拉動請求驗證或分支合併期間,庫存結果應集中存儲並可供適當的人員(包括您的安全響應團隊)訪問。確保在清單中包括足夠的元數據,以標識應用程序,源存儲庫,版本/提交以及清單所源自的其他詳細信息。

實踐2-執行安全性分析

應該對所有標識的組件進行驗證,以確保它們沒有安全漏洞,達到組織要求的保真級別。例如,按照成本和忠誠度的遞增順序,請考慮以下活動:

  1. 檢查公共漏洞-確保開源組件不包含公共已知的漏洞,例如具有報告的CVE或具有其他公共資源中描述的漏洞的漏洞。  
  2. 使用商業安全情報 -使用其他漏洞數據源(例如來自數據供應商的漏洞數據)來擴展公共漏洞數據。  
  3. 執行靜態分析 -使用靜態分析工具來驗證開源組件不包含未報告的安全漏洞。向開源項目的作者報告任何新發現的漏洞,以便對其進行補救。  
  4. 進行全面的安全檢查 -除上述要點外,還對開源組件進行全面的安全檢查。 

 

上述大多數開放源代碼清單工具提供了針對公共漏洞的警報功能,而商業解決方案可能會提供其他安全信息。

公共漏洞商業安全情報內部SAST分析綜合安全審覈

使用開放源代碼的所有組織都應該有一種策略,以便在發現新漏洞時做出響應。這通常採取監視國家漏洞數據庫以獲取新信息的形式,或者使用程序包管理器內置的工具(例如NPM Audit)。儘管這些無疑提供了價值,但是有一些原因導致組織不應該在這裏停下來: 

1.開源項目不需要集中報告漏洞。詳細信息可能存在於GitHub問題,更改日誌或提交消息中,但不容易發現。  

2.該漏洞可能是由攻擊者或不願公開披露此問題的安全研究人員發現的。  

3.修復錯誤的項目作者可能沒有意識到它實際上是一個漏洞,因此沒有理由進行報告。 

 

實踐3-保持開源最新

管理與使用開放源代碼相關的安全風險的最有效方法之一是,即使在沒有已知漏洞的情況下,也要使組件保持最新。這可能是安全利益,因爲安全漏洞通常是在沒有明確公開披露的情況下修復的,並且這樣做的工程成本不是免費的,但好處卻超出了安全性(例如工程敏捷性,利用新功能和錯誤修復)。

 

實踐4-調整安全響應流程

當在開放源代碼組件中發現或報告了漏洞時,您應該制定一種管理流程的策略,該策略應與組織的整體安全響應計劃直接保持一致。在Microsoft,我們使用Microsoft安全響應中心來協調與開源組件中的漏洞相關的響應活動。

查看SDL實踐#12建立標準事件響應流程

 

0x03官方幫助文檔

主頁:https://www.microsoft.com/en-us/securityengineering/opensource

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章