【廣告】
代碼審計(jì)的方法
審核軟件時(shí),應(yīng)對(duì)每個(gè)關(guān)鍵組件進(jìn)行單獨(dú)審核,并與整個(gè)程序一起進(jìn)行審核。 首先搜索高風(fēng)險(xiǎn)漏洞并解決低風(fēng)險(xiǎn)漏洞是個(gè)好主意。 高風(fēng)險(xiǎn)和低風(fēng)險(xiǎn)之間的漏洞通常存在,具體取決于具體情況以及所使用的源代碼的使用方式。 應(yīng)用程序滲透測(cè)試試圖通過(guò)在可能的訪問(wèn)點(diǎn)上啟動(dòng)盡可能多的已知攻擊技術(shù)來(lái)嘗試降低軟件中的漏洞,以試圖關(guān)閉應(yīng)用程序。這是一種常見(jiàn)的審計(jì)方法,可用于查明是否存在任何特定漏洞,而不是源代碼中的漏洞。 一些人聲稱周期結(jié)束的審計(jì)方法往往會(huì)壓倒開(kāi)發(fā)人員,終會(huì)給團(tuán)隊(duì)留下一長(zhǎng)串已知問(wèn)題,但實(shí)際上并沒(méi)有多少改進(jìn); 在這些情況下,建議采用在線審計(jì)方法作為替代方案。
如何開(kāi)始源代碼安全審計(jì)?
源代碼安全審計(jì)是依據(jù)CVE(Common Vulnerabilities & Exures)公共漏洞字典表、OWASP Web漏洞,以及設(shè)備、軟件廠商公布的漏洞庫(kù),結(jié)合源代碼掃描工具對(duì)各種程序語(yǔ)言編寫的源代碼進(jìn)行安全審計(jì)。能夠?yàn)榭蛻籼峁┌ò踩幋a規(guī)范咨詢、源代碼安全現(xiàn)狀測(cè)評(píng)、定位源代碼中存在的安全漏洞、分析漏洞風(fēng)險(xiǎn)、給出修改建議等一系列服務(wù)。
服務(wù)內(nèi)容
1.安全編碼規(guī)范及規(guī)則咨詢
在軟件編碼之前,利用豐富的安全測(cè)試經(jīng)驗(yàn),為系統(tǒng)開(kāi)發(fā)人員提供安全編碼規(guī)范、規(guī)則的咨詢和建議,提前避免不安全的編碼方式,提高源代碼自身的安全性。
2.源代碼安全現(xiàn)狀測(cè)評(píng)
針對(duì)系統(tǒng)開(kāi)發(fā)過(guò)程中的編碼階段、測(cè)試階段、交付驗(yàn)收階段、對(duì)各階段系統(tǒng)源代碼進(jìn)行安全審計(jì)檢測(cè),利用數(shù)據(jù)流分析引擎、語(yǔ)義分析引擎、控制流分析引擎等技術(shù),采用的源代碼安全審計(jì)工具對(duì)源代碼安全問(wèn)題進(jìn)行分析和檢測(cè)并驗(yàn)證,從而對(duì)源代碼安全漏洞進(jìn)行定級(jí),給出安全漏洞分析報(bào)告等,幫助軟件開(kāi)發(fā)的管理人員統(tǒng)計(jì)和分析當(dāng)前階段軟件安全的弱點(diǎn)、趨勢(shì),跟蹤和安全漏洞,提供軟件安全質(zhì)量方面的真實(shí)狀態(tài)信息。
3.源代碼整改咨詢
依據(jù)源代碼安全測(cè)評(píng)結(jié)果,對(duì)源代碼安全漏洞進(jìn)行人工審計(jì),并依據(jù)安全漏洞問(wèn)題給出相應(yīng)修改建議,協(xié)助系統(tǒng)開(kāi)發(fā)人員對(duì)源代碼進(jìn)行修改。
源代碼安全審計(jì)服務(wù)流程
代碼安全審計(jì)報(bào)告主要包含哪些內(nèi)容
對(duì)于審計(jì)發(fā)現(xiàn)的問(wèn)題,我們會(huì)對(duì)發(fā)現(xiàn)的問(wèn)題進(jìn)行相關(guān)分析并出具報(bào)告。針對(duì)具體的漏洞,報(bào)告中主要會(huì)包含以下內(nèi)容:
1、指出該安全漏洞可能對(duì)目標(biāo)系統(tǒng)產(chǎn)生的影響
2、對(duì)致漏洞的具體代碼進(jìn)行定位,分析形成漏洞的具體原因
3、對(duì)漏洞利用方式進(jìn)行闡述,可以在客戶提供的測(cè)試系統(tǒng)中進(jìn)行驗(yàn)證測(cè)試
4、對(duì)漏洞的可利用行和風(fēng)險(xiǎn)等級(jí)進(jìn)行評(píng)定
5、給出修復(fù)該漏洞的正確方案
手工代碼審計(jì)的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
? 能夠深入研究代碼路徑,檢查設(shè)計(jì)和體系結(jié)構(gòu)中的邏輯錯(cuò)誤和缺陷,大多數(shù)自動(dòng)化工具都無(wú)法找到這些錯(cuò)誤和缺陷
? 與一些自動(dòng)化工具相比,手動(dòng)檢測(cè)授權(quán)、身份驗(yàn)證和數(shù)據(jù)驗(yàn)證等安全問(wèn)題的效果更好
? 對(duì)于值的應(yīng)用程序,總是有額外的利用空間(需要經(jīng)過(guò)培訓(xùn)的)
? 查看其他人的代碼是共享安全代碼和AppSec知識(shí)的好方法
缺點(diǎn)
? 要求精通應(yīng)用程序中使用的語(yǔ)言和框架,并需要對(duì)安全性有深入的理解
? 不同的評(píng)審人員將生成不同的報(bào)告,從而導(dǎo)致評(píng)審人員之間的結(jié)果不一致——盡管同行評(píng)審可以是一個(gè)修復(fù)方法
? 測(cè)試和編寫報(bào)告是及時(shí)的,并且經(jīng)常需要開(kāi)發(fā)人員參加有時(shí)很長(zhǎng)時(shí)間的訪談會(huì)議,以便為審查人員提供上下文,這消耗了開(kāi)發(fā)人員的時(shí)間和資源
? 對(duì)代碼行數(shù)超過(guò)10-15k的應(yīng)用程序的手動(dòng)審查于針對(duì)高風(fēng)險(xiǎn)功能