【廣告】
代碼審計的方法
審核軟件時,應對每個關鍵組件進行單獨審核,并與整個程序一起進行審核。 首先搜索高風險漏洞并解決低風險漏洞是個好主意。 高風險和低風險之間的漏洞通常存在,具體取決于具體情況以及所使用的源代碼的使用方式。 應用程序滲透測試試圖通過在可能的訪問點上啟動盡可能多的已知攻擊技術來嘗試降低軟件中的漏洞,以試圖關閉應用程序。這是一種常見的審計方法,可用于查明是否存在任何特定漏洞,而不是源代碼中的漏洞。 一些人聲稱周期結束的審計方法往往會壓倒開發(fā)人員,終會給團隊留下一長串已知問題,但實際上并沒有多少改進; 在這些情況下,建議采用在線審計方法作為替代方案。
請問有哪些代碼審計的工具產品?
國外商業(yè)工具:klocwork, fortify,Coverity, parasoft, TestBad, C Test, Checkmarx CxEnterprise,PolySpace,PClint(有些不是產品名稱,不過在業(yè)內都這么叫)。
國外開源工具:findbugs, checkstyle,sonar,PMD...國內商業(yè)工具:360代碼衛(wèi)士,這個大多數人還沒有聽過,不過它已經是一款非常成熟的產品,實際的項目分析中完全不輸給國外的源代碼靜態(tài)分析工具。
軟件開發(fā)所面臨的安全問題
1、代碼與架構復雜
幾十萬、幾百萬行代碼、一個業(yè)務分幾十個模塊幾十個代碼倉庫家常便飯;開發(fā)語言多種多樣,各種自研框架、流行框架應接不暇、架構還非常復雜。
以上兩個問題對審計人員、SAST工具來說無疑都是很大的挑戰(zhàn)。
2、工具準召率
沒有工具是所謂銀彈,規(guī)則、插件準召率很低,需要根據開發(fā)語言、編碼風格自定義;工具對邏輯漏洞的無力,與業(yè)務邏輯漏洞大量曝光的漏洞態(tài)勢之間的矛盾,工具、系統(tǒng)的運營也需要專門人力投入,從而不斷提高工具的準召率。
3、心態(tài)
審計人員出于KPI的考慮,想著既然花了很長時間做了代碼審計,為了體現工作量就必須說點什么,如果系統(tǒng)本來沒有問題卻在那挑刺,會更加不信任你。對于甲方代碼審計人員,審計任務多、代碼龐大是常態(tài),如果不考慮后果的只提高速度,這種方式會遺漏掉細節(jié),導致不能的審查。