海雲安-防護越早,成本越低!開源軟體安全治理需“左移”

haiyunan發表於2022-06-02

海雲安-防護越早,成本越低!開源軟體安全治理需“左移”

開源軟體以其轉換思維、破除壁壘、充分共享等特點,顛覆了傳統軟體開發模式,越來越多的企業或個人開發者選擇擁抱開原始碼。然而,開源軟體在實現開放協同、互利共生的同時,也向網路犯罪分子敞開了大門,給開源軟體使用者帶來了諸多風險。近日,安全牛採訪了深圳海雲安網路安全技術有限公司(簡稱“海雲安”)首席科學家齊大偉博士,就開源軟體安全治理相關話題進行了探討。



齊大偉 海雲安首席科學家



本科就讀於清華大學電腦科學與技術專業,新加坡國立大學電腦科學博士,專注於軟體工程、程式分析、程式安全、自動化測試及修復等方面的研究。



開源元件給軟體開發帶來了紅利,但同時也引入了安全風險。您認為目前開源元件應用的典型風險有哪些?



齊大偉:



使用開源軟體或元件帶來的風險主要體現在兩個方面:



首先,元件自身存在安全漏洞,有些漏洞甚至是高危的,可以被攻擊者直接利用,這些漏洞是由程式中的Bug導致。元件漏洞會導致使用該元件的系統暴露在安全風險之下;



其次,每個元件開源時都會有許可宣告,規定使用者可以用開原始碼做什麼事情,不能做什麼事情,有些會要求不能商用或者在商用時有一定限制等,使用了這類元件的軟體製品會受許可宣告的限制,如果沒有注意,在使用時違反許可合規要求就需要承擔法律風險。



我們看到,國家監管機構也越來越關注開源軟體使用帶來的風險,比如,去年中國人民銀行、網信辦等五部門聯合釋出《關於規範金融業開源技術應用與發展的意見》,指出金融機構應當把保障資訊系統安全作為使用開源技術的底線,要認真開展事前技術和安全評估,堵塞開源元件中的安全漏洞,切實保證技術可持續和供應鏈安全,提升資訊系統業務連續性水平。



企業在進行開源軟體治理時面臨的主要挑戰有哪些?



齊大偉:



使用開源軟體或元件帶來的風險主要體現在兩個方面:



首先,元件自身存在安全漏洞,有些漏洞甚至是高危的,可以被攻擊者直接利用,這些漏洞是由程式中的Bug導致。元件漏洞會導致使用該元件的系統暴露在安全風險之下;



其次,每個元件開源時都會有許可宣告,規定使用者可以用開原始碼做什麼事情,不能做什麼事情,有些會要求不能商用或者在商用時有一定限制等,使用了這類元件的軟體製品會受許可宣告的限制,如果沒有注意,在使用時違反許可合規要求就需要承擔法律風險。



我們看到,國家監管機構也越來越關注開源軟體使用帶來的風險,比如,去年中國人民銀行、網信辦等五部門聯合釋出《關於規範金融業開源技術應用與發展的意見》,指出金融機構應當把保障資訊系統安全作為使用開源技術的底線,要認真開展事前技術和安全評估,堵塞開源元件中的安全漏洞,切實保證技術可持續和供應鏈安全,提升資訊系統業務連續性水平。



企業在進行開源軟體治理時面臨的主要挑戰有哪些?



齊大偉:



目前,企業在開展開源軟體治理工作時,面臨的挑戰主要有三個方面:



第一,企業該如何判斷軟體製品中是否存在漏洞,以及如何及早、準確、全面地把漏洞檢測出來。儘管目前公開的漏洞庫有很多,國外有NVD,國內有CNVD、CNNVD等,但僅依賴公開漏洞庫也不能發現所有的漏洞,因為很多漏洞在加入到公開漏洞庫時可能已經在外邊暴露了很長時間;



第二,企業內部會有正常的開發流程,安全團隊需要在儘量不影響正常開發流程的情況下進行漏洞檢測和許可合規管理,如何與企業內部開發流程高效銜接成為一個不可迴避的問題;



第三,企業在大範圍使用開源元件時,安全團隊進行漏洞檢測和許可管理的工作量也是一個不小的挑戰。



基於以上開源軟體治理的挑戰,企業有什麼有效應對的方法?這些方法的具體優勢體現在哪些方面?



齊大偉:



目前,行業普遍認為SCA是解決開源軟體治理問題的有效方案,相對於黑盒、白盒以及互動式檢測技術來說,SCA主要是為了檢測第三方元件,特別是開源元件的漏洞風險和許可合規問題。SCA即軟體成分分析,它是一種對軟體的組成部分進行識別、分析和追蹤的技術。專門用於分析軟體中使用的各種第三方元件,以識別和清點開源元件及其構成和依賴關係,並識別已知的安全漏洞或者潛在的許可證授權問題,把這些風險排查在應用系統投產之前。



對於軟體開發來說,安全介入越早,安全成本就會越小,SCA可以在第三方開源元件引入階段,對開源元件進行漏洞風險和合規檢測,使安全儘可能“左移”,我們也推薦在應用程式開發早期階段使用SCA產品。此外,SCA的工作原理是基於漏洞庫進行檢測,只要漏洞庫夠全,SCA產品的檢測結果就會非常精準。



目前SCA技術的成熟度怎麼樣,在國內市場的實際應用情況如何?



齊大偉:



我們對目前主流的SCA工具進行過調研分析,透過研究發現,目前國內SCA技術發展跟國外相比還存在一定差距,產品能力參差不齊,產品功能方面差別也很大。有些廠商的產品功能相對比較完善,檢測出的漏洞和許可合規問題比較全,準確率也比較高,同時,對企業開發流程的支援也很到位,支援的開發語言也比較全面。有些廠商的產品功能相對來說就沒有那麼完整。以對漏洞阻斷策略的支援為例,有的產品僅支援根據漏洞的高、中、低危來阻斷。但實際上,開發團隊還要結合元件的名字及其他各種條件綜合判斷漏洞的風險分數,再決定是不是去阻斷元件的使用。



在開源元件治理中,除了SCA等工具的使用,還有哪些方面是企業需要引起重視的?



齊大偉:



開源元件治理是一個系統性的工程,SCA工具在開源元件治理中可以提供關鍵的風險與合規檢測,並提供修復建議。除了SCA工具之外,企業也應當關注以下幾個方面。



首先,企業應當建立開源元件的引入機制,形成企業內部的開源元件庫,避免任由程式設計師隨意從網際網路引入元件。如果需要引入不在企業內部的開源元件,則需要透過相關負責人的稽核;



其次,企業應當依據自身的開發流程,對SCA工具檢測的結果設定卡點,制定合理的開源元件使用規範,比如,禁止引入長期無人維護的元件、禁止引入頻繁出現的高危漏洞元件等,對於不符合使用規範的元件禁止引入;



最後,在把控好元件准入機制的基礎上,企業還應當有完善的應急機制來處理隨時可能曝出來的高危漏洞。通常情況下,當一個元件的高危漏洞被曝出來後,企業需要在短時間內排查有哪些應用系統使用了該元件,這些應用系統被部署到了哪裡,並在此基礎上做應急響應。事先制定應急響應機制是有效處理元件突發高危漏洞的重要前提。



企業如何選擇適合的SCA產品或服務供應商?



齊大偉:



評估SCA產品或服務有兩個主要指標:一是準確率,也就是判定檢測出來的漏洞和合規問題是否準確,主要體現在漏洞庫的匹配準確度上;二是召回率(覆蓋率),是判定檢測出來的漏洞和合規問題是否全面,主要體現在對漏洞和合規問題的覆蓋度和及時性上。做得比較好的廠商,不僅可以覆蓋NVD、CNVD、CNNVD等常見漏洞庫,而且還可以自己額外梳理一部分漏洞。除了這兩個主要指標,平臺的易用性、對漏洞修復的推薦、以及對DevOps平臺對接的支援等也是比較重要的評估因素。



建議使用者選擇SCA產品時,儘量在試用階段比較不同廠商產品的實際功能。比如,對比一下廠商的SCA產品是否提供漏洞修復建議,因為在漏洞被納入漏洞庫時,可能已經有對這些漏洞修復的升級版本了。還可以比較不同產品對Docker、標準SBOM(Software Bill of Material)和DevOps的支援程度,以及對漏洞的閉環管理能力和易用性等。



隨著開發技術的發展,您認為未來SCA技術會有哪些發展趨勢?



齊大偉:



SCA的檢測模式主要依據漏洞庫進行漏洞和許可合規匹配,產品成熟度更多依賴於產業的力量補全補齊這個漏洞庫,檢測模式上應該不會有很大的變化。在檢測模式不變的情況下,SCA產品會持續最佳化以幫助使用者解決實際問題。



比如,現在大多數SCA產品都是對一個專案引入的元件進行匹配,一旦有漏洞的元件被引入專案,不管漏洞能否觸發,都會被SCA工具檢測出來。但實際上,很多漏洞有一些複雜的觸發條件,只有在特定條件滿足的情況下才能觸發,如果SCA產品能夠幫助使用者判斷哪些元件中的漏洞可能會被觸發,哪些不會被觸發,就能讓使用者優先聚焦處理那些可能觸發的高危漏洞。



再比如,對二進位制或者程式碼片段的檢測,需要利用從二進位制或者程式碼片段中提取的特徵(feature)進行檢測,市面上的SCA產品在這方面還有較大的提升空間。



談一談您對軟體供應鏈安全發展的看法?



齊大偉:



提到軟體供應鏈安全的發展,我們先回顧一下軟體供應鏈的發展,從最開始彙編基本沒有元件可用,到早期C++語言時代的標準庫可用,再到現在Java等語言的標準元件倉庫。從無到有,從簡單到複雜,各種軟體在構建時透過第三方元件來實現功能的佔比越來越高。對於軟體供應鏈的安全問題,不可能所有安全方面的檢測和把控都在最終的製成品上完成,一定是在供應鏈的每一個環節都有安全把控。



供應鏈上的每一環都有原材料,也就是使用的元件,還有這一環上開發團隊編寫的程式碼,最終完成製成品。這一環的製成品又是下一環的原材料。在這個鏈條中,對於自身編寫的程式碼,可以使用原始碼檢測工具,對於出口的製成品可以使用互動式安全檢測或者黑盒檢測工具。如果企業對於使用的每個開源元件都進行一次原始碼掃描,將需要投入非常多的資源,這時候可以藉助於一個共建共享的漏洞庫來進行檢測和分析。當然也會有專業的SCA廠商在公共漏洞庫基礎之上擴充套件自己的漏洞庫。



目前來看,採用完善的安全技術和工具進行檢測的開發專案還是集中在大型公司和重點行業。以後的發展趨勢一定是會有更多的公司使用這些技術和工具,在供應鏈每一環節的入口、出口和內部進行安全管控。而實際上這也是一個相互促進的過程,當工具被越來越多地使用時,也會促進工具的完善。



安全牛



努力消除和減少原始碼中潛在的漏洞,是軟體供應鏈安全治理的終極目標。SCA作為開源軟體安全治理的基礎性手段,可以提供較關鍵的風險與合規檢測,並提供修復建議,從而幫助使用者前移了漏洞修復時間,同時也有效控制了漏洞氾濫。但是,我們需要認識到,軟體供應鏈安全治理是一個系統性的工程,要將安全工具和規範的管理制度相結合,才能切實保證技術可持續和安全可靠,實現企業數字化業務的穩定開展。


相關文章