您好,歡迎來到易龍商務網!
發布時間:2021-09-30 08:01  
【廣告】






什么是代碼審計?
代碼審計顧名思義就是檢查源代碼中的安全缺陷,檢查程序源代碼是否存在安全隱患,或者有編碼不規范的地方,通過自動化工具或者人工審查的方式,對程序源代碼逐條進行檢查和分析,發現這些源代碼缺陷引發的安全漏洞,并提供代碼修訂措施和建議。
代碼審計(Code audit)是一種以發現程序錯誤,安全漏洞和違反程序規范為目標的源代碼分析。軟件代碼審計是對編程項目中源代碼的分析,旨在發現錯誤,安全漏洞或違反編程約定。 它是防御性編程范例的一個組成部分,它試圖在軟件發布之前減少錯誤。 C和C 源代碼是常見的審計代碼,因為許多語言(如Python)具有較少的潛在易受攻擊的功能(例如,不檢查邊界的函數)。
什么是代碼審計?常見的自動化代碼審計工具有哪些?
自從人類發明了工具開始,人類就在不斷為探索如何更方便快捷的做任何事情,在科技發展的過程中,人類不斷地試錯,不斷地思考,于是才有了現代偉大的科技時代。在安全領域里,每個安全研究人員在研究的過程中,也同樣的不斷地探索著如何能夠自動化的解決各個領域的安全問題。其中自動化代碼審計就是安全自動化繞不過去的坎。
這一次我們就一起聊聊自動化代碼審計的發展史,也順便聊聊如何完成一個自動化靜態代碼審計的關鍵。自動化代碼審計在聊自動化代碼審計工具之前,首先我們必須要清楚兩個概念,漏報率和誤報率。
- 漏報率是指沒有發現的漏洞/Bug
- 誤報率是指發現了錯誤的漏洞/Bug
在評價下面的所有自動化代碼審計工具/思路/概念時,所有的評價標準都離不開這兩個詞,如何消除這兩點或是其中之一也正是自動化代碼審計發展的關鍵點。
我們可以簡單的把自動化代碼審計(這里我們討論的是白盒)分為兩類,一類是動態代碼審計工具,另一類是靜態代碼審計工具。

軟件開發所面臨的安全問題
1、代碼與架構復雜
幾十萬、幾百萬行代碼、一個業務分幾十個模塊幾十個代碼倉庫家常便飯;開發語言多種多樣,各種自研框架、流行框架應接不暇、架構還非常復雜。
以上兩個問題對審計人員、SAST工具來說無疑都是很大的挑戰。
2、工具準召率
沒有工具是所謂銀彈,規則、插件準召率很低,需要根據開發語言、編碼風格自定義;工具對邏輯漏洞的無力,與業務邏輯漏洞大量曝光的漏洞態勢之間的矛盾,工具、系統的運營也需要專門人力投入,從而不斷提高工具的準召率。
3、心態
審計人員出于KPI的考慮,想著既然花了很長時間做了代碼審計,為了體現工作量就必須說點什么,如果系統本來沒有問題卻在那挑刺,會更加不信任你。對于甲方代碼審計人員,審計任務多、代碼龐大是常態,如果不考慮后果的只提高速度,這種方式會遺漏掉細節,導致不能的審查。
自動化代碼審計工具的優缺點
優點:
? 檢測容易出現的漏洞和數百個其他漏洞,包括SQL注入和跨站點腳本
? 在敏捷和持續集成環境中,快速和大量代碼測試的能力是至關重要的
? 能夠按需調度和運行
? 能夠添加包括業務邏輯在內的非安全性檢查
? 能夠根據組織的需要擴展自動化測試
? 根據工具的選擇,可以根據組織的需要,特別是特定的合規性規范和值的應用程序,定制自動化的源代碼評審工具
? 可以幫助提高開發人員的安全意識,并提供一種更好地培訓使用該工具的開發人員的方法
缺點:
? 不允許進行微調和自定義的工具可能會產生誤報和誤報
? 覆蓋范圍和廣度實際上取決于你選擇的工具以及它所涵蓋的語言、框架和標準
? 為那些不熟悉靜態代碼檢查器的人提供了一個學習曲線
? 盡管有強大的通用開發語言自動審查開源工具,但它們并不總是符合預算計劃的