源代碼審計概述
源代碼審計是由具備豐富編碼經(jīng)驗并對安全編碼原則及應用安全具有深刻理解的安全服務人員對系統(tǒng)的源代碼和軟件架構的安全性敌卓、可靠性進行全面的安全檢查。
源代碼審計服務的目的在于充分挖掘當前代碼中存在的安全缺陷以及規(guī)范性缺陷伶氢,從而讓開發(fā)人員了解其開發(fā)的應用系統(tǒng)可能會面臨的威脅趟径,并指導開發(fā)人員正確修復程序缺陷。
做源代碼審計的必要性
程序的安全性是否有保障很大程度上取決于源程序代碼的安全性癣防,而保證源代碼質(zhì)量最快捷有效的手段就是源代碼審計蜗巧。
在風險評估過程中,源代碼審計是一般脆弱性評估的一種很好的補充劣砍,源代碼審計服務的代碼覆蓋率為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é)進行詳細溝通包警。由此確認源代碼審計的方案,方案內(nèi)容主要包括確認的源代碼審計范圍底靠、最終對象害晦、審計方式、審計要求和時間等內(nèi)容暑中。
源代碼審計階段實施
在源代碼審計實施過程中壹瘟,首先使用源代碼審計的掃描工具對源代碼進行掃描,完成初步的信息收集鳄逾,然后由人工的方式對源代碼掃描結果進行人工的分析和確認稻轨。
根據(jù)收集的各類信息對客戶要求的重要功能點進行人工源代碼審計。
結合自動化源代碼掃描和人工源代碼審計兩方的結果雕凹,源代碼審計服務人員需整理源代碼審計服務的輸出結果并編制源代碼審計報告殴俱,最終提交客戶和對報告內(nèi)容進行溝通。
復測階段實施
經(jīng)過第一次源代碼審計報告提交和溝通后枚抵,等待客戶針對源代碼審計發(fā)現(xiàn)的問題整改或加固线欲。經(jīng)整改或加固后,源代碼審計服務人員進行回歸檢查汽摹,即二次檢查李丰。檢查結束后提交給客戶復查報告和對復查結果進行溝通。
成果匯報階段
根據(jù)一次源代碼審計和二次復查結果逼泣,整理源代碼審計服務輸出成果趴泌,最后匯報項目領導舟舒。
代碼審計可以只用工具嗎?
代碼審計的目標是找到應用程序中的特性或設計上的漏洞嗜憔,并發(fā)現(xiàn)實際產(chǎn)生這些漏洞的根因秃励。由于日益復雜的代碼量和各種新技術的引入,傳統(tǒng)的測試方法可能沒法找出程序中的所有安全問題吉捶。要想找出安全漏洞莺治,需要理解程序代碼,外部組件和配置才行帚稠。
很多人認為只用代碼審計工具就足夠了,認為可以不需要人工審計床佳,但是兩者之間的關系滋早,相當于一邊是新手和一個普通文本編譯器,而另一邊是一個專家和靜態(tài)代碼分析工具砌们。對于使用這些分析工具需要有相當多的專業(yè)知識杆麸,這些工具對于代碼審計的覆蓋和最小基線設置是比較有幫助的,但是這些工具無法理解動態(tài)數(shù)據(jù)流和數(shù)據(jù)邏輯浪感。
因此工具也可以來完成代碼審計的工具昔头,但是它們還是需要人工的確認。工具不能理解代碼上下文影兽,而這卻是代碼審計很關鍵的一個重點揭斧。工具在評估大量代碼并指出可能的問題時非常有效,但是仍然需要審計員去分析所有結果峻堰,并確認這些結果是不是真的是問題讹开,是不是真的可以被利用,然后計算其對于企業(yè)的風險捐名。因此人工去確認工具掃描的盲點是必不可少的環(huán)節(jié)旦万。