代码审计--8--环境搭建+工具使用

版权声明:本文为博主原创文章,转载本站文章请注明作者和出处,请勿用于任何商业用途。 https://blog.csdn.net/wutianxu123/article/details/82945900

===================================================================================
代码审计工具汇总:
https://download.csdn.net/download/wutianxu123/10703087

===================================================================================

环境搭建

1 理论基础

针对于JavaWeb的代码审计工作环境的部署,其实如果是以服务的方式为客户的代码进行审计,审计的环境一般都会相对复杂,会面临几种情况:

1、最理想的环境,客户提供代码同时有对应的测试环境,这样的话就可以黑盒+白盒进行审计,可以提高审计的效率和覆盖度。

2、只提供项目源代码,需要自己梳理整个项目源码的架构,通读所有关键代码,相对时间成本比较大,但是可以彻底了解整个项目源代码并且挖掘出高质量漏洞。

3、只提供源代码片段,这种情况首先需要跟客户沟通是否可以提供完整项目源代码,否则是在一定程度影响源代码审计的完整性,因为部分功能代码片段可能会找不到调用的接口函数,无法追踪业务逻辑代码。

所以客户的代码审计服务基本上没有搭建环境的情况,因为他们不会提供数据库。

一般搭建环境是因为需要测试某种案例,或者测试某种防护,或者自己搭建去审计一些开源的网站。

开源CMS JEECMS下载地址http://www.jeecms.com/download.html

2 环境软件可以从以下网址中获得

Jdk 6.0(1_6_0_04) 下载址: http://java.sun.com/javase/downloads/index.jsp
Tomcat 6.0.14 下载地址:http://tomcat.apache.org/download-60.cgi
MySQL 5.0.22 下载地址:http://dev.mysql.com/downloads/mysql/5.0.html#win32

3 环境安装可以从以下网址查看安装图文指南

Jdk图文安装指南: http://www.jeecms.com/hjdj/194.jhtml
Tomcat图文安装指南: http://www.jeecms.com/hjdj/196.jhtml
MYSQL图文安装指南: http://www.jeecms.com/hjdj/197.jhtml
JAVA环境变量设置图文教程: http://www.jeecms.com/hjdj/195.jhtml

4 JEECMS v7软件安装部署教程参考v5版本

JEECMS v5版导入eclipse步骤明: http://www.jeecms.com/rjaz/375.jhtml
JEECMS v5版软件安装图文教程: http://www.jeecms.com/rjaz/374.jhtml
这里需要注意的是JDK版本采用1_6_0_04,本人亲身测试高版本会出现编译错误。

工具使用

1 Eclipse

使用Eclipse的Import功能将程序代码导入workspace,打开任一java源文件,选择Source Analyse菜单下的条目进行关键方法搜索,搜索结果在窗口下面显示,然后进行人工分析。

在这里插入图片描述

2 Sublime Text

3 Fortify SCA代码审计工具

Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。

Fortify SCA 的工作原理:

Foritfy SCA 首先通过调用语言的编译器或者解释器把前端的语言代码(如VB源代码)转换成一种中间媒体文件NST(Normal Syntax Tree)将其源代码之间的调用关系,执行环境,上下文等分析清楚。然后再通过五大分析引擎从五个切面来分析这个NST,匹配所有规则库中的漏洞特征,一旦发现漏洞就抓取出来。最后形成包含详细漏洞信息的FPR结果文件

Fortify SCA是一个产品的套件,它是由内置的分析引擎、安全编码规则包、审查工作台、规则自定义编辑器和向导、IDE 插件五部分组件,五个组件配合工作完成对源代码安全漏洞的扫描,分析,查看,审计等工作。简单介绍这五个部分如下:

分析引擎:内置五大分析引擎与规则包配合工作,从五个侧面全面地分析程序源代码中的安全漏洞。

安全编码规则包:由多位顶级的软件安全专家,多年研究出来的数十万条软件安全漏洞特征的集合。目前能查找出来约350多种安全漏洞,内置在SCA中与分析引擎配合工作。

审计工作台:一个用来查看,审计SCA分析出来的漏洞结果的综合的平台,它包含大量的丰富的软件漏洞的信息,如下图2 所示,它包括了漏洞的分级,漏洞产生的全过程,漏洞所在的源代码行数定位,以及漏洞的解释说明和推荐的修复建议等内容,极大地方便地用户对SCA的查看,审计等工作。

规则自定义向导/编辑器:Fortify SCA的规则支持自定义功能,方便用户来扩展SCA对漏洞的分析能力,所以SCA提供了一个用户自定义的向导和编辑器。

IDE插件:为了方便用户使用SCA对程序源代码进行安全扫描,它提供了多种IDE工具的插件,如Eclipse, Visual Studio,RAD, WSAD等。

Foritfy SCA主要包含的五大分析引擎:

数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生的安全问题
语义引擎:分析程序中不安全的函数,方法的使用的安全问题。
结构引擎:分析程序上下文环境,结构中的安全问题。
控制流引擎:分析程序特定时间,状态下执行操作指令的安全问题。
配置引擎:分析项目配置文件中的敏感信息和配置缺失的安全问题。

4 Findbugs

FindBugs 是一个静态分析工具,它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式来鉴别代码是否符合一些固定的规范。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wutianxu123/article/details/82945900