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

1.Fortify SCA 扫描引擎介绍:

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

1:数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生 的安全问题。

2:语义引擎:分析程序中不安全的函数,方法的使用的安全问题。

3:结构引擎:分析程序上下文环境,结构中的安全问题。

4:控制流引擎:分析程序特定时间,状态下执行操作指令的安全 问题。

5:配置引擎:分析项目配置文件中的敏感信息和配置缺失的安全 问题。

6:特有的 X-Tier™跟踪器:跨跃项目的上下层次,贯穿程序来综合 分析问题

2. Fortify SCA 的工作原理:

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

Fortify SCA工作原理

3.Fortify SCA 扫描的结果如下:

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

Fortify AWB查看结果图

4 .Fortify SCA 支持的平台:

Fortify Source Code Analysis支持以下平台和体系结构:

操作系统 版本 体系结构
HP-UX 11V1
IBM-AIX 5.2
Linux

Fedora Core7

Red Hat ES4和5

Novelle SUSE 10

X86和X64

Mac OS X 10.4和10.5 PPC和X86
Sun Solaris 8、9和10 SPARC
Windows

2000

2003

XP

Vista

X86

X86和X64

X86和X64

X86

5 .Fortify SCA支持的编程语言

Fortify Source Code Analysis支持以下编程语言

语言 版本
Adobe ColdFusion 5
.NET 1.1和2.0
C/C++ 请参见”编译器“
Classic ASP
Java 1.3、1.4、1.5和1.6
JavaScript
PHP
PL/SQL
T-SQL
VB for Applications 6
VB Script

6:Fortify SCA plug-In支持的有:

操作系统 IDE
Linux

Eclipse3.2,3.3

RAD 7

RSA 7

Windows

Eclipse3.2,3.3

RAD 6, 7

RSA 7

Visual Studio 2003,2005

Mac OS X

Eclipse3.2,3.3

RAD 7

RSA 7

7 .Fortify SCA 目前能够扫描的安全漏洞种类有:

目前Fortify SCA可以扫描出约 300 种漏洞,Fortify将所有安全 漏洞整理分类,根据开发语言分项目,再细分为 8 个大类,约 300 个 子类,具体详细信息可登录Fortify 官方网站 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 SCA 简介相关推荐

  1. Fortify SCA

    Fortify SCA简介   Fortify SCA 是一个静态的.白盒的软件源代码安全测试工具.它通过内置的五大主要分析引擎:数据流.语义.结构.控制流.配置流等对应用软件的源代码进行静态的分析, ...

  2. 源码扫描工具Fortify SCA和FireLine对比说明

    一.Fortify SCA 1.1软件简介 Fortify SCA是目前业界最为全面的源代码白盒安全测试工具,它能精确定位到代码级的安全问题,完全自动化的完成测试,最广泛的安全漏洞规则,多维度的分析源 ...

  3. 用Fortify SCA分析代码漏洞

    http://www.cnblogs.com/hyddd/archive/2009/02/23/1396790.html hyddd原创,转载请说明. 上次介绍了用FindBugs辅助分析代码漏洞,这 ...

  4. Fortify SCA报告模板汇总

    "Fortify是什么?" Fortify Software 是世界上第一个提出软件安全新理念的公司,并于2004年推出业界第一款产品. Fortify SCA 是一个静态的.白盒 ...

  5. Fortify SCA C#.NET 扫描方法(Visual Studio插件)

    环境准备 安装VisualStudio 安装Fortify SCA,并根据版本选择安装插件 扫描代码方法 通过VisualStudio对待扫描项目解决方案进行编译和转换分析 sourceanalyze ...

  6. Fortify SCA快速入门以及常见问题解决方法

    本篇将透过HP_Fortify_SCA_and_Apps_3.80从实用主义的角度入手,使读者能够快速的对该工具进行使用和对一些可能出现的常见问题进行处理,从而完成一个完整流程的源代码安全性静态扫描测 ...

  7. Fortify SCA安装以及卸载

    一.About Installing Fortify Static Code Analyzer and Applications 描述了如何安装增强的静态代码分析器和应用程序.需要一个Fortify的 ...

  8. Fortify SCA 源代码安全测试工具-----介绍

    Fortify SCA 源代码安全测试工具-----介绍                  关于fortify成立于2003年的Fortify Software是全球领先的软件安全产品解决方案供应商. ...

  9. 代码质量利器:Fortify SCA使用指南:1

    静态代码分析器SCA(Static Code Analyzer):包含多种语言的安全相关的规则,而对于这些规则相关的违反状况则是SCA重点确认的内容.SCA可以做到快速准确定位修正场所,同时还可以定制 ...

最新文章

  1. 从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/12
  2. Spray + Akka高性能异步IO并发
  3. 云端的ABAP Restful服务开发
  4. linux 下 mysql默认表_linux环境下mysql默认是区分表名大小写的
  5. Spring+springmvc+hibernate+redis整合配置文件
  6. Shell脚本学习-数组
  7. 使用vb.net调用bartender并打印标签
  8. 【Redis】笔记(尚硅谷、黑马整合)
  9. Python报错集合篇7-KeyError: 1
  10. 创新专题一:省份层面(创新效率、创新能力、投入产出、高质量发展等)
  11. html table中td内容超出显示.怎么实现
  12. 套接字基础与UDP通信
  13. 免费使用 office, Office Standard 2010 (x64) - (Chinese-Simplified) 版本
  14. 【强化学习论文合集】三十五.2021神经信息处理系统大会论文(NIPS2021)
  15. 智能工厂方案与设备选型
  16. 最新kali之sslyze
  17. CISCN2022东北赛区复赛Writeup-MapleLeaves
  18. Arduino与Proteus仿真实例-简单信号频率计数仿真
  19. 计算机编程语言中表示文本的一种数据类型,VBA代码中可用的六种数据类型
  20. 可解释的机器学习(XML)概览

热门文章

  1. 2021世界移动通信大会 | 5G时代下,苏宁如何看待未来零售发展?
  2. 交错时光的爱恋(一)
  3. XR Interaction Toolkit教程⭐四、实现与UI交互
  4. 数据可视化 复习笔记2022
  5. 2022年氟化工艺考试模拟100题及在线模拟考试
  6. 10步让你成为更优秀的程序员
  7. 【HTML】06-表格
  8. 渗透测试基础-文件上传漏洞 (下)
  9. oracle 19cRAC 19.6基础上安装19.9 GI +DB+JAVAVM
  10. 写给这批≥30岁的测试工程师