代碼審計(jì)測(cè)評(píng)報(bào)告

文章摘要:

代碼審計(jì)(CodeAudit) 就是根據(jù)了解到的程序功能和關(guān)鍵業(yè)務(wù),針對(duì)程序源代碼逐條進(jìn)行檢查和分析,找出源代碼中可能引發(fā)的常見(jiàn)安全漏洞和業(yè)務(wù)邏輯問(wèn)題的缺陷,并提供代碼修改建議或解決方案。

文章來(lái)源:http://www.yauy.cn/1776.html
代碼審計(jì)測(cè)評(píng)報(bào)告

代碼審計(jì)介紹

軟件代碼審計(jì)是在一個(gè)編程中對(duì)源代碼旨在發(fā)現(xiàn)錯(cuò)誤、安全漏洞或違反編程約定的項(xiàng)目。它是防御性程序設(shè)計(jì)范例,它試圖在軟件發(fā)布之前減少錯(cuò)誤。C、C++、php源代碼是最常見(jiàn)的審計(jì)代碼,因?yàn)樵S多高級(jí)語(yǔ)言,如Python,具有較少的潛在易受攻擊的函數(shù)(例如,不檢查邊界的函數(shù))——維基百科

代碼審計(jì)(CodeAudit) 就是根據(jù)了解到的程序功能和關(guān)鍵業(yè)務(wù),針對(duì)程序源代碼逐條進(jìn)行檢查和分析,找出源代碼中可能引發(fā)的常見(jiàn)安全漏洞和業(yè)務(wù)邏輯問(wèn)題的缺陷,并提供代碼修改建議或解決方案。

代碼審計(jì)

代碼審計(jì)技術(shù)

代碼檢查是代碼審計(jì)工作中最常用的技術(shù)手段,實(shí)際應(yīng)用中,采用“自動(dòng)分析+人工驗(yàn)證”的方式進(jìn)行。通常檢查項(xiàng)目包括:系統(tǒng)所用開(kāi)源框架、源代碼設(shè)計(jì)、錯(cuò)誤處理不當(dāng)、直接對(duì)象引用、資源濫用、API濫用、后門代碼發(fā)現(xiàn)等。

通常能夠識(shí)別如下代碼中的風(fēng)險(xiǎn)點(diǎn):

跨站腳本漏洞、跨站請(qǐng)求偽裝漏洞、SQL注入漏洞、命令執(zhí)行漏洞、日志偽造漏洞、參數(shù)篡改、密碼明文存儲(chǔ)、配置文件缺陷、路徑操作錯(cuò)誤、資源管理、不安全的Ajax調(diào)用、系統(tǒng)信息泄露、調(diào)試程序殘留、第三方控件漏洞、文件上傳漏洞、遠(yuǎn)程命令執(zhí)行、遠(yuǎn)程代碼執(zhí)行、越權(quán)下載、授權(quán)繞過(guò)漏洞。

環(huán)境部署

針對(duì)于源代碼審計(jì)工作環(huán)境的部署,其實(shí)如果是以服務(wù)的方式為客戶的代碼進(jìn)行審計(jì),審計(jì)的環(huán)境一般都會(huì)相對(duì)復(fù)雜,會(huì)面臨幾種情況: 

1. 最理想的環(huán)境,客戶提供代碼同時(shí)有對(duì)應(yīng)的測(cè)試環(huán)境,這樣的話就可以黑盒+白盒進(jìn)行審計(jì),可以提高審計(jì)的效率和覆蓋度。

2. 只提供項(xiàng)目源代碼,需要自己梳理整個(gè)項(xiàng)目源碼的架構(gòu),通讀所有關(guān)鍵代碼,相對(duì)時(shí)間成本比較大,但是可以徹底了解整個(gè)項(xiàng)目源代碼并且挖掘出高質(zhì)量漏洞。

3. 只提供源代碼片段,這種情況首先需要跟客戶溝通是否可以提供完整項(xiàng)目源代碼,否則是在一定程度影響源代碼審計(jì)的完整性,因?yàn)椴糠止δ艽a片段可能會(huì)找不到調(diào)用的接口函數(shù),無(wú)法追蹤業(yè)務(wù)邏輯代碼。

所以客戶的代碼審計(jì)服務(wù)基本上沒(méi)有搭建環(huán)境的情況,因?yàn)樗麄儾粫?huì)提供數(shù)據(jù)庫(kù),想跑也跑不起來(lái)。

代碼審計(jì)常用工具

代碼審計(jì)工具

代碼審計(jì)前期準(zhǔn)備

1.需要和客戶確認(rèn)最新源代碼版本

2.需要客戶準(zhǔn)備入場(chǎng)后代碼審計(jì)環(huán)境,是我們自備電腦審計(jì)還是在客戶專用的電腦上做審計(jì)

3.如果是專用的電腦,需要在電腦上安裝office或者wps、代碼編輯器及IDE工具,同時(shí)部署代碼審計(jì)工具

4.需要提供被審計(jì)系統(tǒng)相關(guān)需求文檔及設(shè)計(jì)文檔,幫助審計(jì)人員了解業(yè)務(wù),可以深入業(yè)務(wù)進(jìn)行審計(jì)

5.需要跟開(kāi)發(fā)團(tuán)隊(duì)提前打好招呼,為審計(jì)人員講解代碼結(jié)構(gòu),可以方便審計(jì)人員迅速進(jìn)入審計(jì)工作中

代碼審計(jì)流程

1.客戶提供源代碼,簽訂《保密協(xié)議》

2.源代碼部署完成后,通過(guò)專業(yè)的代碼審計(jì)工具對(duì)源代碼進(jìn)行自動(dòng)化審計(jì)

3.根據(jù)掃描的源代碼結(jié)果對(duì)暴露的常規(guī)漏洞和邏輯漏洞進(jìn)行人工復(fù)核,刪除誤報(bào)漏洞

4.提交代碼片段和代碼審計(jì)報(bào)告

代碼審計(jì)流程圖


測(cè)試周期

測(cè)評(píng)周期一般15個(gè)工作日左右,具體看代碼數(shù)量和項(xiàng)目規(guī)模,有所增減。如果代碼整改不及時(shí)或牽涉到第三方程序,時(shí)間不好說(shuō)。測(cè)評(píng)周期最不確定的因素就是代碼整改,整改的快自然結(jié)束的快,所以用戶單位想早點(diǎn)結(jié)束的話就得把代碼整改抓緊落實(shí)完成。

提供的材料

《軟件委托測(cè)試申請(qǐng)表》

《源代碼》

任務(wù)書、合同書、申報(bào)材料等

約束條件

簽訂《軟件測(cè)試委托合同》、《保密協(xié)議》

產(chǎn)出物

《軟件測(cè)試驗(yàn)收?qǐng)?bào)告》

服務(wù)區(qū)域

北京、上海、天津、重慶、遼寧省、黑龍江省、吉林省、廣東省、海南省、福建省、湖南省、四川省、重慶市、貴州省、云南省、廣西省、湖北省、河南省、山東省、甘肅省、新疆省、西藏自治區(qū)、河北省、陜西省、山西省、浙江省、江蘇省等地區(qū)等保測(cè)評(píng)報(bào)告。