1. 程式人生 > >程式碼安全審計大全

程式碼安全審計大全

原優質博文地址:https://blog.csdn.net/qq_29277155/article/details/80212659

0×00   簡介

    企業安全規劃建設過程中,往往會涉及到開發的程式碼安全,而更多可以實現落地的是原始碼安全審計中,使用自動化工具代替人工漏洞挖掘,並且可以交付給研發人員直接進行安全自查,同時也更符合SDL的原則,此外可以顯著提高審計工作的效率。

0×01 程式碼安全審計概述

以下連結為當前比較熱門的程式碼審計推薦文章,門類齊全,點評到位,很值得參考。

http://www.freebuf.com/sectool/101256.html

https://www.owasp.org/index.php

https://www.dwheeler.com/essays/static-analysis-tools.html
https://github.com/mre/awesome-static-analysis

https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis

如何開發安全程式的教程
https://www.dwheeler.com/secure-programs/3.71/Secure-Programs-HOWTO/index.html

 

0×01 PHP程式碼審計

1、RIPS開源

一款開源的,具有較強漏洞挖掘能力的自動化程式碼審計工具。它使用PHP語言編寫的,用於靜態審計PHP程式碼的安全性。程式碼安全審計RIPS的主要功能特點如下:

1)能夠檢測XSS、SQL注入、檔案洩露、本地/遠端檔案包含、遠端命令執行以及更多種型別的漏洞。
2)有5種級別選項用於顯示以及輔助除錯掃描結果。
3)標記存在漏洞的程式碼行。
4)對變數高亮顯示。
5)在使用者定義函式上懸停游標可以顯示函式呼叫。
6)在函式定義和呼叫之間靈活跳轉。
7)詳細列出所有使用者定義函式(包括定義和呼叫)、所有程式入口點(使用者輸入)和所有掃描過檔案(包括include的檔案)。
8)以視覺化的圖表展示原始碼檔案、包含檔案、函式及其呼叫。
9)僅用幾個滑鼠點選就可以使用CURL建立針對檢測到漏洞的EXP例項。
10)詳細列出每個漏洞的描述、舉例、PoC、補丁和安全函式。
11)7種不同的語法高亮顯示模式。
12)使用自頂向下或者自底向上的方式追溯顯示掃描結果。
13)一個支援PHP的本地伺服器和瀏覽器即可滿足使用需求。
14) 正則搜尋功能。

當前有商業版,但開源已經夠用了,最新版本的RIPS是0.55,下載連結如下:https://sourceforge.net/projects/rips-scanner/

0×02 Java程式碼審計

程式碼質量:findbugs

程式碼安全:findsecuritybugs

FindSecurityBugs是Java靜態分析工具FindBugs的外掛,通過一系列的規則發現程式碼中的Java安全漏洞。這個工具可以整合在很多IDE中,包括Eclipse或IntelliJ。目前這個專案已經在安全社群中獲得了不少關注度。該工具的最新版本還增加了專門針對Android端產品的漏洞型別。因此,它也是一個不錯的移動端安全掃描工具。如果你想更詳細的瞭解它,可以去訪問

下載地址:http://findbugs.sourceforge.net/downloads.html

https://www.jianshu.com/p/c43940c4e025

https://find-sec-bugs.github.io/
https://wiki.jenkins.io/display/JENKINS/FindBugs+Plugin
 

0×03 其他語言程式碼審計

1 .net
https://security-code-scan.github.io/

 

2.C++:   
程式碼質量:cppcheck
程式碼安全:
flawfinder
https://sourceforge.net/projects/flawfinder/
http://www.doc88.com/p-669125880049.html
https://sourceforge.net/p/flawfinder/feature-requests/4/ xml格式支援
 
3.JS:
程式碼質量:eslint
程式碼安全:https://github.com/ajinabraham/NodeJsScan
https://blog.csdn.net/yalishandalee/article/details/61916454
https://github.com/nodesecurity/eslint-plugin-security#rules
4.Go:
程式碼質量:golint、go tool vet
程式碼安全:gas
https://github.com/GoASTScanner/gas
 
5.Python:
程式碼質量:pylint
程式碼安全:bandit,py-find-injection,pyt
https://wiki.openstack.org/wiki/Security/Projects/Bandit
https://github.com/openstack/bandit
https://github.com/uber/py-find-injection
https://github.com/bit4woo/python_sec
https://github.com/python-security/pyt
 
6.多種語言的安全程式碼檢查工具:sonar 
https://docs.sonarqube.org/display/SONAR
https://www.sonarsource.com/products/codeanalyzers/sonarjava/rules.html#Vulnerability_Detection
https://github.com/SonarSource/sonarqub
 
7.ruby
https://github.com/thesp0nge/dawnscanner
https://github.com/presidentbeef/brakeman
 

0x04 商業程式碼審計工具

1、 Fortify SCA

Fortify Software公司是一家總部位於美國矽谷,致力於提供應用軟體安全開發工具和管理方案的廠商。Fortify為應用軟體開發組織、安全審計人員和應用安全管理人員提供工具並確立最佳的應用軟體安全實踐和策略,幫助他們在軟體開發生命週期中花最少的時間和成本去識別和修復軟體原始碼中的安全隱患。

Fortify SCA是一個靜態的、白盒的軟體原始碼安全測試工具,它通過內建的五大主要分析引擎:資料流、語義、結構、控制流、配置流等對應用軟體的原始碼進行靜態的分析,分析的過程中與它特有的軟體安全漏洞規則集進行全面地匹配、查詢,從而將原始碼中存在的安全漏洞掃描出來,並給予整理報告。掃描的結果中不但包括詳細的安全漏洞的資訊,還會有相關的安全知識的說明,以及修復意見的提供。

Fortify SCA支援Java,JSP,ASP.NET,C#,VB.NET,C,C++,COBOL,ColdFusion,

Transact-SQL,PL/SQL,JavaScript/Ajax,Classic,ASP,VBScript,VB6,PHPjava,jsp多種語言,600多種風險型別,支援CWE/OWASP國際主流標準,交付形態為純軟體。

2、Checkmarx CxSuite

Checkmarx 是以色列的一家高科技軟體公司。它的產品CheckmarxCxSuite專門設計為識別、跟蹤和修復軟體原始碼上的技術和邏輯方面的安全風險。首創了以查詢語言定位程式碼安全問題,其採用獨特的詞彙分析技術和CxQL專利查詢技術來掃描和分析原始碼中的安全漏洞和弱點。

Checkmarx CxSuite的掃描結果可以以靜態報表形式展示,也可以通過可以對軟體安全漏洞和質量缺陷在程式碼的執行時的資料傳遞和呼叫圖跟蹤的程式碼缺陷的全過程,同時還可以提供對安全漏洞和質量缺陷進行修復提供指導建議。也可以對結果進行審計,從而消除誤報。

Checkmarx CxSuite支援JAVA、ASP.NET(C#、VB.NET)、JavaScript、Jscript、C/C++、APEX等語言,500多種風險型別,支援CWE/OWASP國際主流標準,交付形態為純軟體。

3、360程式碼衛士

360程式碼衛士是360企業安全集團基於多年原始碼安全實踐經驗推出的新一代原始碼安全檢測解決方案,包括原始碼缺陷檢測、合規檢測、溯源檢測三大檢測功能,同時360程式碼衛士還可實現軟體安全開發生命週期管理,與企業已有程式碼版本管理系統、缺陷管理系統、構建工具等無縫對接,將原始碼檢測融入企業開發流程,實現軟體原始碼安全目標管理、自動化檢測、差距分析、Bug修復追蹤等功能,幫助企業以最小代價建立程式碼安全保障體系並落地實施,構築資訊系統的“內建安全”。

程式碼衛士目前支援Windows、Linux、Android、Apple iOS、IBM AIX等平臺上的程式碼安全檢測,支援的程式語言涵蓋C/C++/C#/Objective-C/Java/JSP/JavaScript/PHP/Python/Cobol等主流語言。在軟體程式碼缺陷檢測方面,程式碼衛士支援24大類,700多個小類程式碼安全缺陷的檢測,相容國際CWE、ISO/IEC 24772、OWASP Top 10、SANS Top 25等標準和最佳實踐;在軟體編碼合規檢測方面,程式碼衛士可支援US CERT C/C++/Java安全編碼規範的檢測,並可根據使用者需求進行靈活定製;在開原始碼溯源檢測方面,程式碼衛士可支援80000多個開原始碼模組識別,28000多個開原始碼漏洞的檢測。