如何應對軟件供應鏈安全風險,供應鏈涉及的風險 今天小豆培訓網學歷教育小編就來給大家簡單介紹一下。
近年來,針對軟件供應鏈的安全攻擊事件一直呈快速增長態勢,造成的危害也越來越嚴重,其中,開源軟件的安全問題尤其值得關注。
據Sonatype的第八次年度軟件供應鏈狀況報告顯示,截至今年為止,專家們已經發現了88000個惡意開源包,比2019年的同一數字增加了三位數,表明企業的攻擊面正在快速增長。該報告是根據公共和專有數據分析編制的,包括1310億次Maven Central下載和成千上萬的開源項目。
軟件供應鏈安全風險來自哪里?
軟件供應鏈風險的存在是因為企業對供應鏈的信任。例如,沒有人覺得微軟會發布一個安全補丁,將他們的環境暴露給攻擊者。攻擊者恰恰利用了這種信任,因為他們知道大多數開發人員不會不遺余力的交叉檢查他們正在使用的軟件。
而且由于企業對供應鏈的信任,開源項目也是軟件供應鏈安全風險之一。例如,對開源項目的提交權限通常授予受信任的貢獻者,若是攻擊者破壞了一個受信任的賬戶,他們可以將惡意代碼插入到存儲庫中,那么開發人員不知不覺的使用了這些代碼,從而無意中打開了對環境的訪問權限,讓企業陷入危險境地。
再者,軟件供應鏈安全風險還來自于外部攻擊。以軟件應用程序為例,軟件應用程序的生命周期包括設計、生產、交付、部署、使用及運營、停止等階段,而面向此生命周期所涉及的分工協作、聯合攻關、平臺環境等就是軟件供應鏈的主要內容,也因此,軟件供應鏈的主要攻擊類型也與這些環節密切相關。
另外,第三方開發人員也是軟件供應鏈安全風險之一。例如,許多公司現在雇用承包商或自由職業者進行應用程序開發,如果沒有進行適當的背景調查,惡意的外部組織可以輕松的竊取數據或IP,以獲取經濟利益或從事工業間諜活動。
而上述僅是軟件供應鏈安全的部分風險,此外還包括證書被盜、軟件開發工具被破壞、設備預先安裝了惡意軟件等等安全風險。
如何應對軟件供應鏈安全風險?
為了確保軟件供應鏈的安全性,需要對應用程序的每個部分都有一個清晰的視圖和控制,可以從以下幾點著手:
一,推廣使用軟件物料清單(SBOM):軟件物料清單(SBOM)是一種正式的、結構化的記錄。它不僅對軟件產品的組件構成進行了詳細的說明,同時還描述了這些組件之間的供應鏈關系。SBOM概述了應用程序中引入的包和庫,以及這些包、庫與其他上游項目之間的關系。這在重用代碼與引入開源代碼的時候非常有用。
軟件物料清單(SBOM)可以幫助開發人員和用戶了解他們開發和使用的軟件所包含的內容,幫助組織了解依賴關系網絡及其軟件開發過程的攻擊面。因而,一個合適的SBOM,可以幫助組織對自己所部署的包以及這些包的版本有一個確切的了解,從而便于組織根據自己的需要來進行更新,以維護安全。
但需要注意的是,SBOM對于已經擁有軟件組件和API資產管理的組織最為有用;靜態格式的SBOM只能提供軟件當時的情況相關信息,而無法時刻更新即時的相關內容;為了使數據更加有意義,SBOM必須具有連續交付和訪問的能力。
二,找到并快速修復漏洞:軟件供應鏈攻擊的罪魁禍首是未打補丁的軟件。一旦漏洞公告發布給公眾,攻擊者就會搜索未打補丁的系統并加以利用。因此,公司的IT團隊必須利用SCA工具來發現第三方代碼中的漏洞,并提出補丁和更新等修復方法。
此外,雖然一些供應鏈攻擊方法利用了未知(零日)漏洞,但還是有很多攻擊利用了已知漏洞。基于此點,企業還可以利用軟件材料清單(SBOM),識別存在已知漏洞的組件,并應用相關更新或補丁。快速識別和修復第三方組件中的漏洞是預防供應鏈攻擊的主要策略。
三,評估軟件供應鏈:為了讓應用程序的依賴關系具有完全的可見性,需要對一些問題進行評估,例如:開發生命周期的每個步驟涉及到什么;是否有承包商具有代碼訪問權限;誰安裝軟件更新,如何安裝,等等。
企業應審核其所有應用程序以及授予內部和外部各自的訪問權限。理想情況下,這應該有完備的文檔記錄和高度自動化的流程。這樣,當發生一些突發情況時,可以很快找出誰有訪問權限。
企業還需要了解其軟件組合中使用的組件,并且充分認識和了解組件、系統和源代碼之間的關系。當發現漏洞時,開發人員需要知道易受攻擊的組件在多個軟件項目中的使用位置,以便能夠進行快速修復或刪除。另外,一旦發現問題組件,就應該對之進行標記,從而確保所有開發團隊都清楚該問題組件。
在評估軟件供應鏈時,還要評估任何潛在合作伙伴的可信度、服務歷史、過去的項目和市場聲譽。對于個人來說,要經常進行嚴格的背景審查,以確定諸如犯罪記錄或破產申請之類的危險行為;對供應商和服務提供商進行類似的盡職調查,事實上,一些法規要求某些供應商必須具備ISO 27001這樣的資質。
四,持續監控第三方,持續監控組件:持續監控第三方有助于減輕供應商泄露或攻擊的影響,例如在暗網中暴露出來的證書或者任何過去數據泄露的歷史,企業可以要求并檢查任何供應商的安全文檔,以確保其政策和程序符合行業最佳實踐和相應安全標準。
持續監控組件,即使一個組件已經被確定為安全組件,也不意味著它會保持安全。新的漏洞會不斷出現,組件使用壽命也可能已快要耗盡,或者其開源貢獻者可能會放棄組件并對其停止支持。在所有這些情況下,企業必須能夠檢測到組件風險狀態的變化,確定風險嚴重程度的優先級,并在必要時關閉組件。
最后,值得一提的是,企業需要建立一個事故響應計劃,一個有效的災難恢復計劃應該包括傳統的備份或故障轉移站點,同時經過測試的恢復機制可以防止系統受到勒索軟件的攻擊。
1、軟件開發安全性問題都有哪些?
對于軟件開發來講風險主要后內部和外部兩方面。內部主要是管理、成本預算、技術等風險,外部的話主要是市場趨勢改變、用戶群體以及設計趨勢等,相對于內部來說外部風險難以預測和管理,因為整個外部環境是處于發展和變化中的,而軟件在完成之后不敢保證能夠適用于用戶的需求。為了避免這種情況,在開發之前就要做好整個行業的分析工作。軟件開發風險的另一個例子是用戶反饋不足或完全不存在。而對于內部測試人員來說團隊無論多大,都發現不了軟件中所有的錯誤和缺陷,但對于用戶反饋的信息我們無法干預,只能進行審核其真實性,而這無疑增加了整軟件團隊的工作量,加大了軟件的時間開發成本。接下來我們來說一下軟件開發的內部風險,管理風險可能包括惡劣的工作環境,硬件可靠性不足,編程效率低下等問題。大多數情況下出現這樣的風險時,大部分時間都會在整個開發的前期階段。 其中最重要的管理風險之一是團隊結構。一般新團隊都有處一個磨合期。如果在長期合作過程中團隊習慣于相互配合,那么新成員就需要一定的時間融入團隊,無論他有多好的經驗。而在某些時候這種情況能夠使團隊陷入不可避免的問題中。大家都知道每個軟件在開發中出現很多問題,而解決這些問題主要依靠的是技術人員的能力以及經驗。而且有些問題是比較輕微的,在當時往往看不出有任何影響,但隨著開發的深入就會造成非常嚴重的后果。因此我們要制定詳細的開發執行規則,將整個開發過程透明化降低技術風險。 在開發過程中出現的問題需要時間來修復。成本預估風險主要是由軟件問題所引起的。更長的開發時間就會造成更多的成本投資。比如新功能實現的數量,錯誤修復和測試 - 一切都需要成本投入,而且越新的功能成本也越高。或者新功能的實現可能會導致現有系統的沖突,而這又需要修復。從而出現成本風險。2、需注意哪些安全事項?
發生重、特大交通事故按一般程序處置時,需注意:(1) 路警隊員接報警后要在最短時間內趕赴現場,保護事故現場。(2) 先到達者,立即擺放安全警示標志。(3) 第 一 時 間 互 相 通 知 對 方 ,根 據 情 況 及 時 通 知 高 速 救 援單位。(4) 出現場的路警隊員向值班隊長報告,由值班隊長向支隊報告。(5) 路警隊員對現場進行勘驗定損。(6) 由高速救援清理現場,盡快恢復正常通行秩序。3、軟件開發過程中會有哪些風險?
1、未經權威部門確認的功能標準、開發規范以及質量技術標準,均可能導致軟件無法達到預期標準,從而引起質量風險。
2、在理解項目標準及范圍等問題上,企業管理層、項目組以及技術性人員的接不一致,導致計劃與資金安排有所改變,因而極易引發風險。
3、潛在的維護、驗證、接口、實現以及設計等環節出現的問題,存在技術空白及未知領域,為軟件開發工作帶來較大的風險。
4、來自于外包項目組、客戶、國家政策以及市場等方面的變化及壓力,這類風險具有明顯的不可控特點,一旦遭遇,應謹慎對待,及時制定解決策略。
風險防范與控制措施
1、出臺合理的軟件開發模式與相關規程,確保開發工作合理、有序進行,并符合國家出臺的相關標準及要求。
2、對于項目組全體成員的開發行為進行嚴格規范,加強小組成員之間的交流與互動,以免由于溝通與交流不當,引發軟件開發風險。
3、定期開展業務和技術交流大會,引導技術人員摒除過于落后、陳舊的工作思想,通過引進先進的技術、設備與驗證方式,明確技術人員的預期發展目標,令其不斷的改進自我、完善自我,提升技術及設備的質量及效果。
4、對開發所用的方法及技術進行客觀、合理的評價,避免由于無法把握技術而引發風險。
5、建立完善的風險應對程序與管理計劃,如此一來,才能確保在發生風險的時候,能夠快速、合理、技術的作出反映,并通過制定適宜的策略,對風險進行專業性處理。
4、北大青鳥java培訓:軟件編程開發都有哪些安全管理行為?
對于程序員來說,我們除了需要了解不同編程開發語言的安全管理方法以外,同時我們也需要建立管理員賬戶來進行安全維護,下面IT培訓http://www.kmbdqn.cn/就一起來了解一下具體情況吧。1.使用良好資源從安全編碼入門資源開始。開放網絡應用安全計劃(OWASP)是安全編碼實際上的入門資源。其安全編碼“快速參考指南”是個極好的起始點,可作為開發過程中的復核工具使用。放心充分利用他們的資源。2.采用防御性編程技巧這么做可以一定程度上避免出現可利用漏洞。其中一招是等價比較:把常量放到比較語句的前端。常量前置的話,如果不小心把比較操作符(兩個等號“==”)誤敲成賦值操作符(一個等號“=”),在編譯或運行時階段就會報錯。3.清洗數據數字身份,尤其是消費級數字身份系統,往往會調用外部數據源。來自外部源或由用戶提供的所有數據都應該被當成不可信的。對Web客戶端來說,這些數據包括從查詢字符串或散列參數、cookie、本地存儲等等獲取的數據;對服務器端應用來說,這些數據包含通過POST、GET、cookie等等提交的數據。原生應用常會讀取配置文件,而這些配置文件有可能被故意篡改。無論如何,一道防線都是數據清洗:確保數據中僅含有經允許的字符/格式。其中一個重點是檢查大數據域長度,避免緩沖區溢出攻擊。