Fortify SCA

 Fortify SCA简介
   Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细的安全漏洞的信息,还会有相关的安全知识的说明,以及修复意见的提供。

1.Fortify SCA 扫描引擎介绍:
   Foritfy SCA主要包含的五大分析引擎:
?? 数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生的安全问题。
?? 语义引擎:分析程序中不安全的函数,方法的使用的安全问题。
?? 结构引擎:分析程序上下文环境,结构中的安全问题。
?? 控制流引擎:分析程序特定时间,状态下执行操作指令的安全问题。
?? 配置引擎:分析项目配置文件中的敏感信息和配置缺失的安全问题。
?? 特有的X-Tier™跟踪器:跨跃项目的上下层次,贯穿程序来综合分析问题

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

 Fortify SCA 扫描的结果如下:
   Fortify SCA 的结果文件为.FPR文件,包括详细的漏洞信息:漏洞分类,漏洞产生的全路径,漏洞所在的源代码行,漏洞的详细说明及修复建议等。如下图:

3.Fortify SCA支持的平台:

4.Fortify SCA支持的编程语言:

5.Fortify SCA plug-In 支持的有:

6.Fortify SCA目前能够扫描的安全漏洞种类有:
   目前Fortify SCA可以扫描出约300种漏洞,Fortify将所有安全漏洞整理分类,根据开发语言分项目,再细分为8个大类,约300个子类,具体详细信息可登录Fortify 官方网站fortify.com/vulncat/">http://www.fortify.com/vulncat/ 进行查询:

Code Correctness: Call to GC.Collect()

Missing Check against Null

Object Model Violation: Just One of Equals() and GetHashCode() Defined

Often Misused: Authentication

Unchecked Return Value

Code Correctness: Class Implements ICloneable

Code Correctness: Missing [Serializable] Attribute

Code Correctness: Misspelled Method Name

Code Correctness: null Argument to Equals()

Dead Code: Unused Field

Dead Code: Unused Method

Null Dereference

Obsolete

Unreleased Resource

JavaScript Hijacking: Vulnerable Framework

Poor Logging Practice: Use of a System Output Stream

System Information Leak

Trust Boundary Violation

ASP.NET Misconfiguration: Request Validation Disabled

ASP.NET Misconfiguration: Trace Output

Poor Error Handling: Empty Catch Block

Poor Error Handling: Overly Broad Catch

Poor Error Handling: Program Catches NullReferenceException

Command Injection

Cross-Site Scripting

Denial of Service

HTTP Response Splitting

Log Forging

Path Manipulation

Resource Injection

SQL Injection

SQL Injection: NHibernate

Setting Manipulation

ASP.NET Bad Practices: Use of Impersonation Context

ASP.NET Misconfiguration: Persistent Authentication

Access Control: Database

Insecure Randomness

Password Management

Password Management: Hardcoded Password

Password Management: Weak Cryptography

Privacy Violation

ASP.NET Bad Practices: Non-Serializable Object Stored in Session

Code Correctness: Call to System.gc()

Code Correctness: Erroneous finalize() Method

EJB Bad Practices: Use of AWT/Swing

EJB Bad Practices: Use of Class Loader

EJB Bad Practices: Use of Sockets

EJB Bad Practices: Use of Synchronization Primitives

EJB Bad Practices: Use of java.io

J2EE Bad Practices: Sockets

J2EE Bad Practices: getConnection

Missing Check against Null

Missing Check for Null Parameter

Object Model Violation: Erroneous clone() Method

Object Model Violation: Just one of equals() and hashCode() Defined

Often Misused: Authentication

Poor Style: Explicit Call to finalize()

Statistical: Checked Return Value

Statistical: Function Return Unused

Statistical: Unassigned Return Value

Unchecked Return Value

Code Correctness: Call to Thread.run()

Code Correctness: Class Does Not Implement Cloneable

Code Correctness: Erroneous Class Compare

Code Correctness: Erroneous String Compare

Code Correctness: Misspelled Method Name

Code Correctness: null Argument to equals()

Dead Code: Expression is Always false

Dead Code: Expression is Always true

Dead Code: Unused Field

Dead Code: Unused Method

Null Dereference

Obsolete

Poor Style: Confusing Naming

Poor Style: Empty Synchronized Block

Poor Style: Identifier Contains Dollar Symbol ($)

Poor Style: Redundant Initialization

Poor Style: Value Never Read

Unreleased Resource: Database

Unreleased Resource: Streams

J2EE Bad Practices: Leftover Debug Code

JavaScript Hijacking: Ad Hoc Ajax

JavaScript Hijacking: Vulnerable Framework

Poor Logging Practice: Logger Not Declared Static Final

Poor Logging Practice: Multiple Loggers

Poor Logging Practice: Use of a System Output Stream

System Information Leak

System Information Leak: Missing Catch Block

Trust Boundary Violation

Unsafe Mobile Code: Access Violation

Unsafe Mobile Code: Inner Class

Unsafe Mobile Code: Public finalize() Method

Unsafe Mobile Code: Unsafe Array Declaration

Unsafe Mobile Code: Unsafe Public Field

Poor Error Handling: Empty Catch Block

Poor Error Handling: Overly Broad Catch

Poor Error Handling: Overly Broad Throws

Poor Error Handling: Program Catches NullPointerException

Poor Error Handling: Return inside Finally

Poor Error Handling: Unhandled SSL Exception

Command Injection

Cross-Site Scripting

Denial of Service

HTTP Response Splitting

Log Forging (debug)

Log Forging

Missing XML Validation

NUMBER Taint Sources

Path Manipulation

Process Control

Resource Injection

SQL Injection

SQL Injection: Hibernate

Setting Manipulation

Struts: Erroneous validate() Method

Unsafe JNI

Unsafe Reflection

Access Control: Database

Insecure Randomness

Password Management

Password Management: Hardcoded Password

Password Management: Password in Redirect

Password Management: Weak Cryptography

Privacy Violation

Code Correctness: Double-Checked Locking

J2EE Bad Practices: Non-Serializable Object Stored in Session

J2EE Bad Practices: System.exit

J2EE Bad Practices: Threads

Race Condition: Singleton Member Field

Race Condition: Static Database Connection

Session Fixation

fortify扫描工具的说明手册,对实际工作有指导作用,讲的比较清晰。 Fortify SCA分析原理 Front-End 3rd party IDE Java Pug-In C/C++ MicrOsoL NET IBM.eclipse Audit workbench PLSQL XML Analysis Engine Semantic fdi/ fpr Gobal Data flow N Control Flow Configuration Structural Fortify Manager NST Rules builder Custom Pre-Packaged FORTIFY Fortify SCA分析过程 SCA Engine Intermediate Scan phase fles Using Analyzers Tt transation (NST) .Rules Analysis Result File -b build id 阶段一:转换阶段( Translation) 阶段二:分析阶段(Scan o sourceanalyzer-b <build-id>-clean o sourceanalyzer -b <build-id> sourceanalyzer-b <build-id> -Xmx1250m-scan-f results fpr FORTIFY Fortify SCA扫描的工作 Visual studio Eclipse, IBM RAD 面 Audit Workbench Java,. Net Fortify Global Build Tool C, C/C++ Analysis JSP Touchless Build Fortify PL/SQL IDE Intermediate FPR TSOL Model Cold Command Line Interface Fusion 运己 Fortify I m Manager Secure Coding Rules Fortify Customized Rules Rules FORTIFY Fortify SCA扫描的五种方式 插件方式: Plug-In(Eclipse, vs WsAd,rad) 命令行方式 Command line ●扫描目录方式: Audit workbench scan Folder 与其他工具集成: Scan with ANt, Makefile ●编译监控器方式: Fortify SCA Build Monitor FORTIFY Fortify SCA扫描的四个步骤 Fortify SCA扫描总共可以分为四个步骤: ●1. Clean:清除阶段: sourceanalyzer -b proName -clean 2. Translation:转换阶段 3.ShoW-fe:查看阶段 sourceanalyzer -b proName -show-files 4.scan:扫描阶段 sourceanalyzer-b proName -Xmx1250m -scan -f proName. fpr FORTIFY Fortify SCA命令行参数说明 查看SCA扫描命令及参数→> sourceanalyzer ca\ C:\VIRDoS\syste32\cd. exe 川 icrosoft Windows XP[版不5.1268g Kc版权所有1985-2 061 Microsoft Gorp :Documents and settings anming >sourceanalyzer --he lp Fortify Source Code Analyze4..日.回153 Copyright (c>2003-2006 Fortify Software Usage Bu⊥1d Java: sourceanalyzer -b <buildid> <files> sourceanalyzer -b <buildid> javac <compiler opts> <files> G/C++: sourceanalyzer -b <buildid> <compiler> <compiler opts> <files> NET: sourceanalyzer -b <buildin> <exe file> scan〓 sourceanalyzer -b <buildid> -scan -f results. fpr Output opt ions -format <fmt> Controls the output format. Valid options are auto, fpr. fvdl, and text. Default is auto for which type will be determined automatically based on file extension 一£<fi1e> The file to which results are written Default is stdout build-pro ject <name> The name of the project being scanned. Will be inc luded in the output bu⊥1d-1abe1<labe1> The1abe1 of the project being scanned.W主工1 be inc luded in the output build-version <version> The version of the project being scanned. wil1RTIFY. e uale OFTWARE Fortify SCA转换源代码 转换Java代码 Java程序命令行语法 JaVa命令行语法例子 转换J2EE应用程序 使用 Find bugs 转换NET源代码 o. NET Versions 1.1 and 2.0 Visual studio. net version 2003 o Visual studio.net version 2005 转换CC++代码 ●转换 PL/SQLITSQL FORTIFY SCA转换JAVA源代码命令 sourceanalyzer -b <build-id> -cp <classpath> <file-list> ●附注参数:-Xmx;- encoding-jdk;- appserver- appserver- veron -appserver-home Table 1: File specifiers File specifier Description darna盈e All files found under the named directory or any subdirectories dx己盈e/古古 Any file named Example. java found under the named Example java directory or any subdirectories dx22盈e/,ava Any file with the extension. j ava found in the named directory dxna盈e吉/古,java Any file wth the extension j ava found under the named directory or any subdirectories d工22a盈e/方/吉 All files found under the named directory or ary subdirectories (same as dirname FORTIFY
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值