源代碼審計(Code Review)是由具備豐富編碼經(jīng)驗并對安全編碼原則及應(yīng)用安全具有深刻理解的安全服務(wù)人員對系統(tǒng)的源代碼和軟件架構(gòu)的安全性蕊苗、可靠性進(jìn)行全面的安全檢查。
源代碼審計服務(wù)的目的在于充分挖掘當(dāng)前代碼中存在的安全缺陷以及規(guī)范性缺陷搀捷,從而讓開發(fā)人員了解其開發(fā)的應(yīng)用系統(tǒng)可能會面臨的威脅徽职,并指導(dǎo)開發(fā)人員正確修復(fù)程序缺陷默怨。
一樟氢、源代碼審計與模糊測試
在漏洞挖掘過程中有兩種重要的漏洞挖掘技術(shù),分別是源代碼審計和模糊測試(Fuzzing)镇饺。
源代碼審計是通過靜態(tài)分析程序源代碼乎莉,找出代碼中存在的安全性問題;而模糊測試則需要將測試代碼執(zhí)行起來,然后通過構(gòu)造各種類型的數(shù)據(jù)來判斷代碼對數(shù)據(jù)的處理是否正常惋啃,以發(fā)現(xiàn)代碼中存在的安全性問題哼鬓。
由于采用的分析方法不同,這兩項技術(shù)的應(yīng)用場所也有所不同边灭。源代碼審計常用于由安全廠商或企業(yè)的安全部門發(fā)起的代碼安全性檢查工作异希;模糊測試則普遍用于軟件開發(fā)和測試部門的程序測試。
二绒瘦、做源代碼審計的必要性
實踐證明称簿,程序的安全性是否有保障很大程度上取決于程序代碼的質(zhì)量,而保證代碼質(zhì)量最快捷有效的手段就是源代碼審計惰帽。
在風(fēng)險評估過程中憨降,源代碼審計是一般脆弱性評估的一種很好的補充,天磊衛(wèi)士源代碼審計服務(wù)的代碼覆蓋率為100%该酗,能夠找到一些安全測試所無法發(fā)現(xiàn)的安全漏洞券册。
同時,由于主持源代碼審計的安全服務(wù)人員一般都具備豐富的安全編碼經(jīng)驗和技能垂涯,所以其針對性比常見的脆弱性評估手段會更強、粒度也會更為細(xì)致航邢。
三耕赘、源代碼設(shè)計范圍
天磊衛(wèi)士源代碼審計服務(wù)的范圍包括使用ASP、ASP.NET(VB/C#)膳殷、JSP(JAVA)操骡、PHP等主流語言開發(fā)的B/S應(yīng)用系統(tǒng)、使用C++赚窃、JAVA册招、C#、VB等主流語言開發(fā)的C/S應(yīng)用系統(tǒng)勒极,以及使用XML語言編寫的文件是掰、SQL語言和數(shù)據(jù)庫存儲過程等。
四辱匿、源代碼審計分類
源代碼審計可分為以下兩類:
整體源代碼審計是指源代碼審計服務(wù)人員對被審計系統(tǒng)的所有源代碼進(jìn)行整體的安全審計键痛,代碼覆蓋率為100%,整體源代碼審計采用源代碼掃描和人工分析確認(rèn)相結(jié)合的方式進(jìn)行分析匾七,發(fā)現(xiàn)源代碼存在的安全漏洞絮短。但整體源代碼審計屬于白盒靜態(tài)分析,僅能發(fā)現(xiàn)代碼編寫存在的安全漏洞昨忆,無法發(fā)現(xiàn)業(yè)務(wù)功能存在的缺陷丁频。
功能點人工源代碼審計是對某個或某幾個重要的功能點的源代碼進(jìn)行人工源代碼審計,發(fā)現(xiàn)功能點存在的代碼安全問題。功能點人工源代碼審計需要收集系統(tǒng)的設(shè)計文檔席里、系統(tǒng)開發(fā)說明書等技術(shù)資料叔磷,以便源代碼審計服務(wù)人員能夠更好的了解系統(tǒng)業(yè)務(wù)功能。由于人工源代碼審計工作量極大胁勺,所以需要分析并選擇重要的功能點世澜,有針對性的進(jìn)行人工源代碼審計。
五署穗、源代碼審計流程
天磊衛(wèi)士源代碼審計服務(wù)主要分為四個階段寥裂,包括源代碼審計前期準(zhǔn)備階段、源代碼審計階段實施案疲、復(fù)查階段實施以及成果匯報階段:
1.前期準(zhǔn)備階段
在實施源代碼審計工作前封恰,技術(shù)人員會和客戶對源代碼審計服務(wù)相關(guān)的技術(shù)細(xì)節(jié)進(jìn)行詳細(xì)溝通。由此確認(rèn)源代碼審計的方案褐啡,方案內(nèi)容主要包括確認(rèn)的源代碼審計范圍诺舔、最終對象、審計方式备畦、審計要求和時間等內(nèi)容低飒。
2.源代碼審計階段實施
在源代碼審計實施過程中,天磊衛(wèi)士源代碼審計服務(wù)人員首先使用源代碼審計的掃描工具對源代碼進(jìn)行掃描懂盐,完成初步的信息收集褥赊,然后由人工的方式對源代碼掃描結(jié)果進(jìn)行人工的分析和確認(rèn)。
根據(jù)收集的各類信息對客戶要求的重要功能點進(jìn)行人工源代碼審計莉恼。
結(jié)合自動化源代碼掃描和人工源代碼審計兩方的結(jié)果拌喉,源代碼審計服務(wù)人員需整理源代碼審計服務(wù)的輸出結(jié)果并編制源代碼審計報告,最終提交客戶和對報告內(nèi)容進(jìn)行溝通俐银。
3.復(fù)測階段實施
經(jīng)過第一次源代碼審計報告提交和溝通后尿背,等待客戶針對源代碼審計發(fā)現(xiàn)的問題整改或加固。經(jīng)整改或加固后捶惜,源代碼審計服務(wù)人員進(jìn)行回歸檢查田藐,即二次檢查。檢查結(jié)束后提交給客戶復(fù)查報告和對復(fù)查結(jié)果進(jìn)行溝通吱七。
4.成果匯報階段
根據(jù)一次源代碼審計和二次復(fù)查結(jié)果坞淮,整理源代碼審計服務(wù)輸出成果,最后匯報項目領(lǐng)導(dǎo)陪捷。
六回窘、對于企業(yè)而言,做源代碼審計有什么好處
1.明確安全隱患點
源代碼審計能夠?qū)φ麄€信息系統(tǒng)的所有源代碼進(jìn)行檢查市袖,從整套源代碼切入最終明至某個威脅點并加以驗證啡直,以此明確整體系統(tǒng)中的安全隱患點烁涌。
2.提高安全意識
如上所述,任何的隱患在源代碼審計服務(wù)中都可能造成“千里之堤潰于蟻穴”的效果酒觅,因此源代碼審計服務(wù)可有效督促管理人員杜絕任何一處小的缺陷撮执,從而降低整體風(fēng)險。
3.提高開發(fā)人員安全技能
在源代碼審計服務(wù)人員與用戶開發(fā)人員的交互過程中舷丹,可提升開發(fā)人員的技能抒钱。另外,通過專業(yè)的源代碼審計報告颜凯,能為用戶開發(fā)人員提供安全問題的解決方案谋币,完善代碼安全開發(fā)規(guī)范。