![]() |
![]() |
來源: 發(fā)布日期:2017.12.15 點擊量:
源代碼審計又稱為白盒測試,主要原理就是代碼審計人員根據(jù)系統(tǒng)的類型和實現(xiàn)的方式,找出與之相匹配的漏洞攻擊類型,通過工具或者人工的方式嘗試在代碼中找到可能導(dǎo)致漏洞的代碼。
所有的安全漏洞都是由計算機程序代碼造成的,因此安言咨詢從軟件開發(fā)的角度入手,從程序的業(yè)務(wù)功能、技術(shù)架構(gòu)、代碼著手,才能全面、高效、有效的發(fā)掘安全漏洞。代碼審計適用于對安全水準要求較高,已經(jīng)做過一些黑盒安全措施的系統(tǒng)。通過全面深入的代碼安全審計,可以有效覆蓋黑盒測試的盲區(qū),顯著提高系統(tǒng)安全性。通過代碼審計發(fā)掘安全漏洞具有以下優(yōu)勢:
全面覆蓋
代碼中包含了軟件系統(tǒng)所有的功能和邏輯細節(jié)以及安全漏洞。通過自動化和人工結(jié)合的代碼安全審計,可以實現(xiàn)接近于100%覆蓋率的安全漏洞挖掘。
快捷高效
通過自動化工具,可以快速發(fā)掘大量潛在安全漏洞,再結(jié)合人工深度代碼審計,并擴展和驗證工具的發(fā)現(xiàn),綜合效率明顯高于黑盒滲透測試。
易于修復(fù)
修復(fù)漏洞,就是修復(fù)代碼中錯誤。代碼安全審計,從代碼中發(fā)現(xiàn)問題,并在報告中提供準確、直觀的代碼級修復(fù)方法,讓開發(fā)人員輕松高效、水到渠成地修復(fù)漏洞。
1.源代碼審計的方法
目前安言咨詢采用的技術(shù)方法框架如下:
關(guān)于代碼審計的實施方法,目前主要有兩種方法:自動化工具和人工審計。
關(guān)于自動化工具,目前常用的代碼掃描的工具有:Fority、Coverity,使用工具掃描,需要將代碼整理成掃描軟件的格式,初步檢查必要的源碼是否存在,如類的源碼,配置文件,訪問頁面,腳本文件等。使用工具的最大的優(yōu)勢就是可以快速地找到盡可能多的可能會導(dǎo)致安全問題的代碼,但是,缺點也很明顯,工具想包含大而全就很容易導(dǎo)致誤報,關(guān)于誤報的審查,還是需要人工參與,而且是需要有豐富經(jīng)驗的安全工作人員,否則,工具帶來的優(yōu)勢可能會變成劣勢。對工具掃描漏洞結(jié)果依然需要有安全工作經(jīng)驗的安全人員進行確認并整理,漏洞詳細列表中并在漏洞日報列表中。每種類型漏洞確認需要做實際環(huán)境中能否繞過處理、有無做通用防護以及根據(jù)該項目實際情況存在的風險等級。
人工審計就是人工直接面對代碼,不需要代代碼進行特殊的整理,也不需要編譯,參與代碼審計人員根據(jù)自己的經(jīng)驗,依據(jù)系統(tǒng)的類型和特征,找出有針對性的的問題列表,制定規(guī)則,通過規(guī)則,找到所有可能的有問題的代碼,再進行人工確認。人工審計,比較有針對性,可以更高效地發(fā)現(xiàn)代碼中的問題。
目前參考的是基于業(yè)界權(quán)威的代碼安全標準:OWASP開發(fā)指南以及移動安全項目以及CERT的安全編碼標準,將提供更高質(zhì)量的審計結(jié)果。
2.源代碼審計流程
代碼審計的主要流程有一下幾個階段:
1)系統(tǒng)評估
2)方案設(shè)計
3)審計實施
4)報告及支持
系統(tǒng)評估
此階段是參與審計的人員了解系統(tǒng)的階段,只有參與審計的人員全面了解了當前系統(tǒng)的盡可能多的信息,才可能從全方位地把握整個系統(tǒng),列舉出盡可能多的漏洞列表,審計結(jié)果才會更加完善。了解系統(tǒng)可以通過訪談、問卷、文檔研讀等手段,收集系統(tǒng)當前的業(yè)務(wù)、技術(shù)、安全等信息,充分了解客戶的具體審計需求、側(cè)重點,了解系統(tǒng)以前出現(xiàn)過的安全事件,可以目的更明確地去審計代碼。
系統(tǒng)評估的方式有:與客戶進行訪談和會議、通過產(chǎn)品和技術(shù)信息問卷收集目標系統(tǒng)關(guān)鍵信息和研讀目標系統(tǒng)的業(yè)務(wù)需求文檔、架構(gòu)設(shè)計文檔等。在了解系統(tǒng)的基礎(chǔ)之上,為代碼審計實施方案的制定收集充分的信息,保證方案設(shè)計有備而來、有的放矢
方案設(shè)計
根據(jù)系統(tǒng)業(yè)務(wù)、技術(shù)特點以及審計需求,和客戶一起商討、設(shè)計代碼審計方案,確定審計策略、重點和工作量。根據(jù)系統(tǒng)整體功能、系統(tǒng)的架構(gòu)以及模塊劃分業(yè)務(wù)流程,確定審計的目標和內(nèi)容,以及使用什么工具和方法等,同時,也確認交付內(nèi)容、形式、格式、驗收標準。
審計實施
根據(jù)預(yù)定的方案,具體實施代碼審計工作。審計對象不限于代碼,也包括文檔和訪談。項目的實施流程如下:
1) 客戶準備好待分析的完整項目程序代碼,交付給實施方。
2) 實施方使用自動化工具對代碼進行掃描。
3) 安全專家針對敏感模塊、審計重點,進行深度人工代碼審計,并復(fù)查和拓展工具的掃描結(jié)果。
4) 綜合工具和專家的發(fā)現(xiàn),出具代碼審計報告,給出漏洞詳情和修復(fù)方法。
報告及支持
發(fā)布報告,包含漏洞以及修復(fù)方案信息,并提供技術(shù)支持,幫助甲方工程師透徹理解、全面正確地修復(fù)相關(guān)漏洞。
復(fù)查階段
針對已經(jīng)修復(fù)過的漏洞,進行復(fù)查可以查出修復(fù)不當或者未修復(fù)的漏洞。源代碼審計復(fù)查結(jié)束后根據(jù)應(yīng)用系統(tǒng)修復(fù)情況進,通過進行整理匯總,形成提交復(fù)查報告,報告中包含漏洞名稱、修復(fù)狀態(tài)、原漏洞的描述、原漏洞風險分析、原漏洞改進措施與防范。提供詳細代碼審計漏洞修復(fù)狀態(tài)列表,包含漏洞代碼的位置、修復(fù)狀態(tài)、代碼段、漏洞描述、風險描述和修改建議。
3.源代碼審計成果
根據(jù)應(yīng)用代碼審計中發(fā)現(xiàn)的問題,通過進行整理匯總,形成提交報告,報告中包含發(fā)現(xiàn)的漏洞,進行漏洞分析、漏洞風險分析、漏洞改進措施與防范。提供詳細代碼審計漏洞列表,包含漏洞代碼的位置、代碼段、漏洞描述、風險描述和修改建議。
源代碼審計提交的成果:
序號 |
檢查項 |
描述 |
1 |
工作日報報告 |
適合代碼審計所有環(huán)節(jié)中。當日發(fā)現(xiàn)高危漏洞,需要當天報告甲方 |
2 |
漏洞詳細列表 |
代碼審計報告階段提供給甲方 |
3 |
代碼審計正式報告 |
代碼審計報告階段提供給甲方 |
4 |
漏洞復(fù)查詳細列表 |
代碼審計報告階段提供給甲方 |
5 |
代碼審計復(fù)查正式報告 |
代碼審計報告階段提供給甲方 |
修復(fù)漏洞,就是修復(fù)代碼中錯誤。安言咨詢的代碼安全審計報告中,不僅僅包含常規(guī)的漏洞原因及修復(fù)方法分析,更是直接提供了代碼級的解決方案,真正面向開發(fā)人員,既授之以漁,也授之以魚,大大提高了漏洞修復(fù)的效率和專業(yè)水準。
為了更好地讓工程師能夠理解漏洞和修復(fù)漏洞,安言咨詢還提供以下技術(shù)支持:
報告講解
安言咨詢會為客戶詳細講解每個安全漏洞,保證問題的原因以及危害得到清晰的理解
解決方案探討
安言咨詢會協(xié)助客戶的軟件工程師理解每個安全漏洞的解決方案,以保證問題能得到及時、全面、正確的修復(fù)。
安全開發(fā)庫
如果客戶的工程師缺乏安全專業(yè)知識,難以獨立完成漏洞修復(fù)工作,安言咨詢還提供了專家級的安全庫,讓工程師使用現(xiàn)成的安全API和框架,輕松、高效、專業(yè)的完成安全漏洞修復(fù)。
相關(guān)客戶案例: