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