代碼安全審計
0x01 安全審計
什么是代碼安全審計?
代碼安全審計是指有開發和安全經驗的人員,通過閱讀開發文檔和源代碼,以自動化分析工具或者人工分析為手段,對應用程序進行深入分析,高效全面的發現系統代碼的編碼缺陷以及開發人員不安全的編程習慣,并指導開發人員進行修復,保障應用系統的安全運行。?
代碼審計前端知識
-熟悉基本漏洞原理
-熟悉基礎開發,如java、js、html、jsp、數據庫等
-熟悉基礎開發框架,如spring、Struts2、Hibernate等
-學習滲透基本原理,結合源代碼找漏洞
-關注最新漏洞
代碼審計工作流程
配置分析環境—熟悉業務流程—分析程序架構—工具自動化分析—人工審計結果—整理審計報告
java九大內置對象
-request -session -config -response -application -page -pageContext -Out -exception
java中危險函數
-getParameter() -getheaders() -getcookies() -Runtime.exec() -getQueryString() -logger.infor -password -upload -download
0x02 Fortify
Fortify 是一個靜態的、白盒的軟件源代碼安全測試工具。它通過內置的五大主要分析引擎:數據流、語義、結構、控制流、配置流等對應用軟件的源代碼進行靜態的分析,通過與軟件安全漏洞規則集進行匹配、查找,從而將源代碼中存在的安全漏洞掃描出來,并可導出報告。掃描的結果中包括詳細的安全漏洞信息、相關的安全知識、修復意見。

原理
-首先通過調用語言的編譯器或者解釋器把前端的語言代碼(如JAVA,C/C++源代碼)轉換成一種中間媒體文件NST(Normal Syntax Tree),將其源代碼之間的調用關系,執行環境,上下文等分析清楚。
-通過分析不同類型問題的靜態分析引擎分析NST文件,同時匹配所有規則庫中的漏洞特征,將漏洞抓取出來,然后形成包含詳細漏洞信息的FPR結果文件,用AWB打開查看。
支持語言
1.asp.net 2.VB.Net 3.c#.Net 4.ASP 5.VS6 7.java 8.JSP 9.javascript 10.HTML 11.XML 12.C/C++ 13.PHP 14.T-SQL 15.PL/SQL 16.Action script 17.Object-C (iphone-2012/5) 18.ColdFusion5.0 - 選購 19.python -選購 20.COBOL - 選購 21.SAP-ABAP -選購
掃描步驟
步驟1、打開fortify的工作臺

步驟2、如果源代碼是java,選擇Scan Java,源碼是C#選擇Scan VS,不知道的話選擇Advanced Scan

步驟3、選擇代碼文件夾(不建議將文件夾拆開,如果文件夾過大,可要求開發人員拆開,按文件夾分開掃描)

步驟4、確定后,彈出通知框,如下圖,選擇java版本,點擊OK

根據情況選擇后,點擊Scan,等待掃描


步驟5、掃描完成后的界面



tips:可通過菜單欄進行界面的組件的配置

步驟6、對結果進行分析,填寫分析結論及備注信息

步驟7、點擊菜單欄的reports,選擇審計規則,導出即可

