DevSecOps五個需要關注的編碼問題

2021-10-19 19:37:49 字數 1907 閱讀 9905

devsecops實現的一大關鍵在於「安全左移」理念。程式的安全不再只是在軟體開發完成後進行測試進行,而需要全週期的分析,及時地發現和修復;而達成這個目標的工具之一就是靜態分析(sast)。

在過去的軟體開發流程中,安全總是在開發的最終階段進行——雖然這個時候發現的漏洞其實能在更早的階段就被修復。如果要在當下複雜的開發環境中進一步加速的同時還能保障軟體的安全性,開發者就需要將安全左移,更早地將安全融入開發周期中。

但是安全在開發周期的左移並不容易,開發人員會面對不少困難。以下是五個最常見問題——這些問題都能通過靜態分析解決。

記憶體錯誤

記憶體讀取錯誤會因為洩露敏感資訊對機密性和完整性帶來潛在的威脅,而記憶體寫入錯誤則因為會改變工作流而對機密性、完整性和可用性都帶來影響。比較常見的記憶體問題有緩衝區溢位、緩衝區不足和釋放重利用。這些問題難以檢測,甚至存在於一些經過反覆測試,被認為是安全的**裡,因此即使是最有經驗的程式設計師也難免會產生這些問題。儘管說一些**標準被啟用,試圖減少記憶體錯誤,但是顯然不那麼有效。因此,在開發周期早期,需要深度靜態分析、資料流分析、符號執行等方式檢測記憶體錯誤。

程式設計錯誤

這類錯誤主要由c/c++的錯誤使用引起,比如未初始化變數、重複釋放指標、以及間接在徵兆資料和非徵兆資料之間進行變化等。程式設計錯誤中有一部分會被利用進行攻擊,而且即使這些錯誤會導致程式崩潰,可能也不會在功能測試和回歸測試中顯現出來。然而,它們確實會在部署的系統中引起嚴重問題。靜態額分析可以識別在程式設計語義中存在的**錯誤和歧義。

有風險的函式呼叫

有一些api函式被認為是有隱患,不安全的。比如c/c++中的gets()函式,就很容易產生目標位址的快取溢位問題。其他函式呼叫也可能因為一些行為產生危害。這類有風險的函式呼叫很容易就在靜態分析中通過風險函式列表的方式被識別。

密碼學濫用

密碼學在保障資料機密性的環境中尤為重要。但是,幾乎沒有開發人員在密碼學層面是專家;更糟的是,濫用c語言本身庫里的密碼函式反而會導致安全問題,比如使用像des和md5那樣的弱演算法加密,或者用硬編碼的金鑰以及將鹽資料進行雜湊。密碼學的濫用會影響機密性和完整性,不過他們也同樣能被靜態分析輕鬆識別。

汙染資料

汙染資料是指資料在進入系統時未被驗證並去除有害內容,從而無法保證資料值是在合法範圍。汙染資料是對開發者最大的挑戰之一,同樣也會影響機密性和完整性。人工檢查很難檢測到資料注入問題。

如果要解決汙染資料的問題,就需要對以任何形式(比如使用者、裝置、sockets等等)進入系統的資料都從**到目標進行追蹤。在資料被api呼叫、接入資料結構、或者進入任何程式設計邏輯前,都需要被驗證。否則,就可能產生資料注入的攻擊威脅。靜態分析可以在工作流中進行計算,提供簡明易懂的告警保住程式設計師規避這些危險情況。

靜態分析檢測漏洞

靜態分析,或者說靜態分析安全測試(sast),通過檢查源程式的**來檢測可能的安全問題——比如啥上述的五個**問題。由於sast可以被用於開發者的ci/cd工作流中,它不會減緩敏捷開發程序。實際上,因為它能在開發者編寫**的時候發現漏洞,從而減少發現問題的成本,並在應用上線前——甚至在進行測試前就進行修復,最終加速軟體開發速度。因此,sast對提公升**安全性有著關鍵的作用,需要成為在devsecops的安全左移過程中的一部分。

在安全左移的過程中,**的即時分析、測試並發現漏洞是一大重點。本文提及了sast在devsecops中能解決的一些**問題,但是sast並不是devsecops過程中的唯一工具,同樣需要結合iast、軟體**鏈管理等工具,才能完善devsecops工具鏈,逐漸增加自己的軟體開發周期的安全度。

更多linux資訊請檢視www.linuxprobe.com

我們為什麼需要 DevSecOps 和製品倉庫?

helen beal 曾經在一次討論什麼是 devsecops 工程師的會議上發言。令她驚訝的是,在與會人員中,許多人都沒有將安全機制引入 devops。在與人們討論之後,她將大家的問題總結為三類 安全機制會製造額外的隔閡 組織中的人很難理解 devops,因此安全機制可能會造成更多困惑 可能沒有為...

2023年需要關注的10個設計趨勢

年底最後乙個月是總結頭一年,思考和展望下一年的月份。經過2017年一整年的沉澱和總結,在最近的這些設計作品,重設計甚至小幅度的設計改版中,窺見一些即將在2018年流行開來的設計趨勢。在網頁設計上,這些設計趨勢將會深刻地影響著設計師們接下來的設計方向。1 不對稱網格 完美對稱的時代已經過去了。雖然分屏...

IT人員必須關注的五個IT新技術方向

原文 http news.csai.cn itplnews 200711200913351100.htm 計算機和軟體 技術日新月異,作為一名合格的it工程師,必須善於學習,及時了解和掌握新技術 新方法。然而新技術 新方法總是層出不窮,常常讓it人員無所適從,疲憊應付。下面我想談談我對新技術 新方法...