Fortify SCA 简介
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 简介相关推荐
- Fortify SCA
Fortify SCA简介 Fortify SCA 是一个静态的.白盒的软件源代码安全测试工具.它通过内置的五大主要分析引擎:数据流.语义.结构.控制流.配置流等对应用软件的源代码进行静态的分析, ...
- 源码扫描工具Fortify SCA和FireLine对比说明
一.Fortify SCA 1.1软件简介 Fortify SCA是目前业界最为全面的源代码白盒安全测试工具,它能精确定位到代码级的安全问题,完全自动化的完成测试,最广泛的安全漏洞规则,多维度的分析源 ...
- 用Fortify SCA分析代码漏洞
http://www.cnblogs.com/hyddd/archive/2009/02/23/1396790.html hyddd原创,转载请说明. 上次介绍了用FindBugs辅助分析代码漏洞,这 ...
- Fortify SCA报告模板汇总
"Fortify是什么?" Fortify Software 是世界上第一个提出软件安全新理念的公司,并于2004年推出业界第一款产品. Fortify SCA 是一个静态的.白盒 ...
- Fortify SCA C#.NET 扫描方法(Visual Studio插件)
环境准备 安装VisualStudio 安装Fortify SCA,并根据版本选择安装插件 扫描代码方法 通过VisualStudio对待扫描项目解决方案进行编译和转换分析 sourceanalyze ...
- Fortify SCA快速入门以及常见问题解决方法
本篇将透过HP_Fortify_SCA_and_Apps_3.80从实用主义的角度入手,使读者能够快速的对该工具进行使用和对一些可能出现的常见问题进行处理,从而完成一个完整流程的源代码安全性静态扫描测 ...
- Fortify SCA安装以及卸载
一.About Installing Fortify Static Code Analyzer and Applications 描述了如何安装增强的静态代码分析器和应用程序.需要一个Fortify的 ...
- Fortify SCA 源代码安全测试工具-----介绍
Fortify SCA 源代码安全测试工具-----介绍 关于fortify成立于2003年的Fortify Software是全球领先的软件安全产品解决方案供应商. ...
- 代码质量利器:Fortify SCA使用指南:1
静态代码分析器SCA(Static Code Analyzer):包含多种语言的安全相关的规则,而对于这些规则相关的违反状况则是SCA重点确认的内容.SCA可以做到快速准确定位修正场所,同时还可以定制 ...
最新文章
- 从重采样到数据合成:如何处理机器学习中的不平衡分类问题? 转载 2017年08月01日 17:09:03 标签: 机器学习 / 数据 719 转自:http://www.sohu.com/a/12
- Spray + Akka高性能异步IO并发
- 云端的ABAP Restful服务开发
- linux 下 mysql默认表_linux环境下mysql默认是区分表名大小写的
- Spring+springmvc+hibernate+redis整合配置文件
- Shell脚本学习-数组
- 使用vb.net调用bartender并打印标签
- 【Redis】笔记(尚硅谷、黑马整合)
- Python报错集合篇7-KeyError: 1
- 创新专题一:省份层面(创新效率、创新能力、投入产出、高质量发展等)
- html table中td内容超出显示.怎么实现
- 套接字基础与UDP通信
- 免费使用 office, Office Standard 2010 (x64) - (Chinese-Simplified) 版本
- 【强化学习论文合集】三十五.2021神经信息处理系统大会论文(NIPS2021)
- 智能工厂方案与设备选型
- 最新kali之sslyze
- CISCN2022东北赛区复赛Writeup-MapleLeaves
- Arduino与Proteus仿真实例-简单信号频率计数仿真
- 计算机编程语言中表示文本的一种数据类型,VBA代码中可用的六种数据类型
- 可解释的机器学习(XML)概览