了解源代碼審計,以及為什么要做源代碼審計?

源代碼審計概述

源代碼審計是由具備豐富編碼經(jīng)驗并對安全編碼原則及應用安全具有深刻理解的安全服務人員對系統(tǒng)的源代碼和軟件架構的安全性、可靠性進行全面的安全檢查。

源代碼審計服務的目的在于充分挖掘當前代碼中存在的安全缺陷以及規(guī)范性缺陷,從而讓開發(fā)人員了解其開發(fā)的應用系統(tǒng)可能會面臨的威脅,并指導開發(fā)人員正確修復程序缺陷。


做源代碼審計的必要性

程序的安全性是否有保障很大程度上取決于源程序代碼的安全性,而保證源代碼質量最快捷有效的手段就是源代碼審計。

在風險評估過程中,源代碼審計是一般脆弱性評估的一種很好的補充,源代碼審計服務的代碼覆蓋率為100%,能夠找到一些安全測試所無法發(fā)現(xiàn)的安全漏洞。

同時,由于主持源代碼審計的安全服務人員一般都具備豐富的安全編碼經(jīng)驗和技能,所以其針對性比常見的脆弱性評估手段會更強、粒度也會更為細致。

哪些業(yè)務場景需要做好源代碼審計工作?

即將上線的新系統(tǒng)平臺;

存在大量用戶訪問、高可用、高并發(fā)請求的網(wǎng)站;

存在用戶資料等敏感機密信息的企業(yè)平臺;

互聯(lián)網(wǎng)金融類存在業(yè)務邏輯問題的企業(yè)平臺;

開發(fā)過程中對重要業(yè)務功能需要進行局部安全測試的平臺;

源代碼審計的服務范圍

天磊衛(wèi)士源代碼審計服務的范圍包括使用ASP、ASP.NET(VB/C#)、JSP(JAVA)、PHP等主流語言開發(fā)的B/S應用系統(tǒng)、使用C++、JAVA、C#、VB等主流語言開發(fā)的C/S應用系統(tǒng),以及使用XML語言編寫的文件、SQL語言和數(shù)據(jù)庫存儲過程等。

代碼審計服務流程

代碼審計服務主要分為四個階段,包括源代碼審計前期準備階段、源代碼審計階段實施、復查階段實施以及成果匯報階段:

前期準備階段

在實施源代碼審計工作前,技術人員會和客戶對源代碼審計服務相關的技術細節(jié)進行詳細溝通。由此確認源代碼審計的方案,方案內容主要包括確認的源代碼審計范圍、最終對象、審計方式、審計要求和時間等內容。

源代碼審計階段實施

在源代碼審計實施過程中,首先使用源代碼審計的掃描工具對源代碼進行掃描,完成初步的信息收集,然后由人工的方式對源代碼掃描結果進行人工的分析和確認。

根據(jù)收集的各類信息對客戶要求的重要功能點進行人工源代碼審計。

結合自動化源代碼掃描和人工源代碼審計兩方的結果,源代碼審計服務人員需整理源代碼審計服務的輸出結果并編制源代碼審計報告,最終提交客戶和對報告內容進行溝通。

復測階段實施

經(jīng)過第一次源代碼審計報告提交和溝通后,等待客戶針對源代碼審計發(fā)現(xiàn)的問題整改或加固。經(jīng)整改或加固后,源代碼審計服務人員進行回歸檢查,即二次檢查。檢查結束后提交給客戶復查報告和對復查結果進行溝通。

成果匯報階段

根據(jù)一次源代碼審計和二次復查結果,整理源代碼審計服務輸出成果,最后匯報項目領導。

代碼審計可以只用工具嗎?

代碼審計的目標是找到應用程序中的特性或設計上的漏洞,并發(fā)現(xiàn)實際產生這些漏洞的根因。由于日益復雜的代碼量和各種新技術的引入,傳統(tǒng)的測試方法可能沒法找出程序中的所有安全問題。要想找出安全漏洞,需要理解程序代碼,外部組件和配置才行。

很多人認為只用代碼審計工具就足夠了,認為可以不需要人工審計,但是兩者之間的關系,相當于一邊是新手和一個普通文本編譯器,而另一邊是一個專家和靜態(tài)代碼分析工具。對于使用這些分析工具需要有相當多的專業(yè)知識,這些工具對于代碼審計的覆蓋和最小基線設置是比較有幫助的,但是這些工具無法理解動態(tài)數(shù)據(jù)流和數(shù)據(jù)邏輯。

因此工具也可以來完成代碼審計的工具,但是它們還是需要人工的確認。工具不能理解代碼上下文,而這卻是代碼審計很關鍵的一個重點。工具在評估大量代碼并指出可能的問題時非常有效,但是仍然需要審計員去分析所有結果,并確認這些結果是不是真的是問題,是不是真的可以被利用,然后計算其對于企業(yè)的風險。因此人工去確認工具掃描的盲點是必不可少的環(huán)節(jié)。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容