自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DevSecOps五個需要關(guān)注的編碼問題

開發(fā) 前端
安全在開發(fā)周期的左移并不容易,開發(fā)人員會面對不少困難。以下是五個最常見問題——這些問題都能通過靜態(tài)分析解決。

本文轉(zhuǎn)載自微信公眾號“數(shù)世咨詢”(dwconcn)。

在過去的軟件開發(fā)流程中,安全總是在開發(fā)的最終階段進(jìn)行——雖然這個時候發(fā)現(xiàn)的漏洞其實(shí)能在更早的階段就被修復(fù)。如果要在當(dāng)下復(fù)雜的開發(fā)環(huán)境中進(jìn)一步加速的同時還能保障軟件的安全性,開發(fā)者就需要將安全左移,更早地將安全融入開發(fā)周期中。但是安全在開發(fā)周期的左移并不容易,開發(fā)人員會面對不少困難。以下是五個最常見問題——這些問題都能通過靜態(tài)分析解決。

[[382553]]

內(nèi)存錯誤

內(nèi)存讀取錯誤會因?yàn)樾孤睹舾行畔C(jī)密性和完整性帶來潛在的威脅,而內(nèi)存寫入錯誤則因?yàn)闀淖児ぷ髁鞫鴮C(jī)密性、完整性和可用性都帶來影響。比較常見的內(nèi)存問題有緩沖區(qū)溢出、緩沖區(qū)不足和釋放重利用。這些問題難以檢測,甚至存在于一些經(jīng)過反復(fù)測試,被認(rèn)為是安全的代碼里,因此即使是最有經(jīng)驗(yàn)的程序員也難免會產(chǎn)生這些問題。盡管說一些代碼標(biāo)準(zhǔn)被啟用,試圖減少內(nèi)存錯誤,但是顯然不那么有效。因此,在開發(fā)周期早期,需要深度靜態(tài)分析、數(shù)據(jù)流分析、符號執(zhí)行等方式檢測內(nèi)存錯誤。

編程錯誤

這類錯誤主要由C/C++的錯誤使用引起,比如未初始化變量、重復(fù)釋放指針、以及間接在征兆數(shù)據(jù)和非征兆數(shù)據(jù)之間進(jìn)行變化等。編程錯誤中有一部分會被利用進(jìn)行攻擊,而且即使這些錯誤會導(dǎo)致程序崩潰,可能也不會在功能測試和回歸測試中顯現(xiàn)出來。然而,它們確實(shí)會在部署的系統(tǒng)中引起嚴(yán)重問題。靜態(tài)額分析可以識別在編程語義中存在的代碼錯誤和歧義。

有風(fēng)險的函數(shù)調(diào)用

有一些API函數(shù)被認(rèn)為是有隱患,不安全的。比如C/C++中的gets()函數(shù),就很容易產(chǎn)生目標(biāo)地址的緩存溢出問題。其他函數(shù)調(diào)用也可能因?yàn)橐恍┬袨楫a(chǎn)生危害。這類有風(fēng)險的函數(shù)調(diào)用很容易就在靜態(tài)分析中通過風(fēng)險函數(shù)列表的方式被識別。

密碼學(xué)濫用

密碼學(xué)在保障數(shù)據(jù)機(jī)密性的環(huán)境中尤為重要。但是,幾乎沒有開發(fā)人員在密碼學(xué)層面是專家;更糟的是,濫用C語言本身庫里的密碼函數(shù)反而會導(dǎo)致安全問題,比如使用像DES和MD5那樣的弱算法加密,或者用硬編碼的密鑰以及將鹽數(shù)據(jù)進(jìn)行哈希。密碼學(xué)的濫用會影響機(jī)密性和完整性,不過他們也同樣能被靜態(tài)分析輕松識別。

污染數(shù)據(jù)

污染數(shù)據(jù)是指數(shù)據(jù)在進(jìn)入系統(tǒng)時未被驗(yàn)證并去除有害內(nèi)容,從而無法保證數(shù)據(jù)值是在合法范圍。污染數(shù)據(jù)是對開發(fā)者最大的挑戰(zhàn)之一,同樣也會影響機(jī)密性和完整性。人工檢查很難檢測到數(shù)據(jù)注入問題。

如果要解決污染數(shù)據(jù)的問題,就需要對以任何形式(比如用戶、設(shè)備、sockets等等)進(jìn)入系統(tǒng)的數(shù)據(jù)都從來源到目標(biāo)進(jìn)行追蹤。在數(shù)據(jù)被API調(diào)用、接入數(shù)據(jù)結(jié)構(gòu)、或者進(jìn)入任何編程邏輯前,都需要被驗(yàn)證。否則,就可能產(chǎn)生數(shù)據(jù)注入的攻擊威脅。靜態(tài)分析可以在工作流中進(jìn)行計算,提供簡明易懂的告警保住程序員規(guī)避這些危險情況。

靜態(tài)分析檢測漏洞

靜態(tài)分析,或者說靜態(tài)分析安全測試(SAST),通過檢查源程序的代碼來檢測可能的安全問題——比如啥上述的五個代碼問題。由于SAST可以被用于開發(fā)者的CI/CD工作流中,它不會減緩敏捷開發(fā)進(jìn)程。實(shí)際上,因?yàn)樗茉陂_發(fā)者編寫代碼的時候發(fā)現(xiàn)漏洞,從而減少發(fā)現(xiàn)問題的成本,并在應(yīng)用上線前——甚至在進(jìn)行測試前就進(jìn)行修復(fù),最終加速軟件開發(fā)速度。因此,SAST對提升代碼安全性有著關(guān)鍵的作用,需要成為在DevSecOps的安全左移過程中的一部分。

點(diǎn)評

在安全左移的過程中,代碼的即時分析、測試并發(fā)現(xiàn)漏洞是一大重點(diǎn)。本文提及了SAST在DevSecOps中能解決的一些代碼問題,但是SAST并不是DevSecOps過程中的唯一工具,同樣需要結(jié)合IAST、軟件供應(yīng)鏈管理等工具,才能完善DevSecOps工具鏈,逐漸增加自己的軟件開發(fā)周期的安全度。

 

責(zé)任編輯:趙寧寧 來源: 數(shù)世咨詢
相關(guān)推薦

2021-09-07 14:36:53

DevSecOps開源項(xiàng)目

2017-07-12 13:23:34

IT員工壓力

2022-08-31 15:18:26

GNOMEGNOME 43

2021-06-25 14:50:21

DevSecOps安全 DevOps

2022-02-07 08:41:42

云原生Kubernetes

2022-01-11 09:00:00

開發(fā)工具遠(yuǎn)程工作

2023-02-16 14:59:19

API應(yīng)用程序安全

2016-02-18 09:33:41

2020-06-19 12:13:41

智慧城市物聯(lián)網(wǎng)5G

2021-01-20 11:13:05

人工智能自動化機(jī)器人

2024-02-28 08:15:38

DevSecOps開發(fā)者工具

2018-07-27 11:19:55

2022-01-07 07:59:43

開發(fā)工具碼農(nóng)開發(fā)

2010-09-26 10:12:18

虛擬機(jī)

2015-09-02 10:26:58

主機(jī)機(jī)房

2011-09-07 15:57:18

2021-12-14 14:55:51

加密貨幣區(qū)塊鏈以太坊

2021-01-08 08:00:00

首席信息官IT超自動化

2021-01-05 15:35:29

首席信息官數(shù)字化轉(zhuǎn)型CIO

2023-07-27 08:00:00

代碼補(bǔ)全服務(wù)人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號