代码安全审计
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,选择审计规则,导出即可
