【源代码扫描工具】 -fortify SCA原理简介_una2017的博客-程序员宝宝

技术标签: 安全测试  

1-Fortify SCA(Fortify Source Code Analysis)是一个静态的、白盒的软件源代码安全测试工具。

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

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

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


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

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

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

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

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

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

3-其他方面

1)Fortify SCA支持的平台:
     Windows, Solaris, Red Hat Linux,Mac OS X, HP-UX, IBM AIX
2)Fortify SCA支持的编程语言:
     C, C++,.Net, Java, JSP,PL/SQL, T-SQL, XML, CFMLJavaScript, PHP, ASP, VB, VBScript
3)Fortify SCA plug-In 支持的有:
      Visual Studio, Eclipse, RAD, WSAD
4)Fortify SCA目前能够扫描的安全漏洞种类有:
      目前Fortify SCA可以扫描出约350种漏洞,Fortify将所有安全漏洞整理分类,根据开发语言分项目,再细分为8个大类,约350个子类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhailihua/article/details/73912069

智能推荐

Flask Web开发--2.多租户saas用户权限管理_DiegoRobot的博客-程序员宝宝_flask 多租户

前言对于多租户的SAAS系统,所有的操作都是以组织为单位的,所以相对于传统的单用户系统的用户权限管理,增加了一层组织的维度,一个注册企业下,又可以有完整的用户权限管理系统。数据模型设计如下是用权限系统的关系图:组织在SAAS系统中的一切资源的最高阶组织形式,所以其他的对象都应该有一个组织的属性,对于用户也是如从,应该属于某个组织,组织与用户的关系应该是一对多的关系,如下是组织的Model...

svn更新出现乱码,请执行清理_House李的博客-程序员宝宝_svn乱码

问题出现背景:作为一个刚入行的it行业小白,上传svn文件时出现错误,然后想把目录删了之后再更新,没想到更新也失败了,出现乱码,提示请执行清理,于是到网上寻找解决办法。尝试1:解决办法:svn根目录下有个wc.db文件,里面有个work_queue(表?),里面有东西的话把东西删了就好了。工具:sqlite3.exe https://www.sqlite.org/download.ht...

以太坊根据ERC20标准开发代币_rejames的博客-程序员宝宝

以太坊ERC20代币开发首先需要对以太坊,代币,ERC20,智能合约等以太坊代币开发中的基本概念有了解。根据我们的示例代码就可以发行自己的以太坊代币。什么是ERC20可以把ERC20简单理解成以太坊上的一个代币协议,所有基于以太坊开发的代币合约都遵守这个协议。遵守这些协议的代币我们可以认为是标准化的代币,而标准化带来的好处是兼容性好。这些标准化的代币可以被各种以太坊钱包支持,用于不同的平台...

ElasticSearch 基本原理(三)ElasticSearch与Lucene、Solr、Mysql的关系_腊-八-粥的博客-程序员宝宝

信息检索包含内容非常广,包含文本(搜索引擎)、图片(以图搜索)、音频(歌曲识别)、视频等多种类型数据的检索。为了高效的检索,通常都用建立索引的方式提高检索速度。因为不同类型的数据存储格式、特征提取方法等等都是不同的,所以建立索引的类型也是不同的,检索的方法也是不同的。对文本建立索引的数据结构是倒排索引;对关系型数据库中的数据建立索引的数据结构是B-tree;对图片建立索引,根据特征提取方式的...

在Matlab中实现透视变换的方法_NorthGod的博客-程序员宝宝

透视变换在两幅图像中进行对应非常有用,看下面的两幅图第一幅图是源图像,图中有五个点,分别是四个顶点和中间的一个点(对应目标图中的中心点) 第二幅图是目标图,包括与源图像中的五个点对应的五个点下面就要用Matlab根据四个顶点求透视变换矩阵,然后将源图像中中间的那个点对应到目标图像中去。源图像中的点的坐标矩阵为:B =     1     1     1   480  

【Android -- 开发工具】Gradle 配置技巧_Kevin-Dev的博客-程序员宝宝_android gradle配置

随着 Android 的发展,新技术和新概念层出不穷。不同的测试环境、不同的分发渠道、不同的依赖方式,再加上各大厂家“优秀”的插件化方案,这些给我们的开发工作带来了新的需求。

随便推点

RabbitMQ:第一章:6 种工作模式以及消息确认机制(理论与代码相结合)_java_wxid的博客-程序员宝宝

AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP Connection的开销将是巨大的,效率也较低。

基于颜色直方图的图像检索_yinkaunhappy的博客-程序员宝宝

基于颜色直方图的图像检索这是第一篇CSDN,前段时间,导师布置任务,题目是基于颜色直方图图像检索,主要是用matlab做,查查改改,差不多用了一周时间。文笔不好,不写太多的插入语了,直接来。设计流程对数据集建立索引,利用RGB2hsv算法处理数据集,生成.mat文件;计算pdist2距离,可以选用多种距离,比如欧氏距离,曼哈顿距离,切比雪夫距离,马氏距离等;计算数据集的颜色直方图,选...

Flash之SM25QH128M、JFM25F32A读写操作FPGA Verilog实现_华森@的博客-程序员宝宝_jfm25f128a 芯片手册

JFM25F32A Flash写操作流程如图1所示,对于Flash类型的存储器,向已经存在数据的单元写入数据时,直接写入是无法写入的,在写入之前必须先执行擦除命令,再进行写入即可;如果待写入的单元为新的单元(“FF”),则可以直接写入数据。下面为Flash写操作的流程,如果写入的单元为新的数据单元,则写操作中的擦除流程可以取消掉。1. JFM25F32A操作指令(instruction)的规则(1) JFM25F32A Flash存储单元的地址为24bit ADDR[23:0],每一个基本存储单元容量为

终于明白vim 和 grep 中 的正则表达式的用法, vim 正则表达式 和grep基本正则表达式 几乎一样..._weixin_33881753的博客-程序员宝宝

要搞清楚 vim中的正则和普通的Perl正则表达式的区别:因为在perl中所有的元字符 都可以直接使用, 不需要在 元字符的前面加 反斜杠.但是在vim, 包括grep中就有所区别, 同样是元字符, 有的就要在前面加上 反斜杠才行. 由于 vim和grep各自的关于正则的用法不尽相同, 所以 只能是 一个一个的记清楚,别的没有什么好办法了. 主要是记住不同的地方.第一, 只说在vim中的正则...

使用IDEA创建项目并实现springboot与mybatis整合_Sakura__Lu的博客-程序员宝宝

使用idea创建一个springboot+mybatis+mysql的简单项目,并且使用mybatis-generator生成逻辑代码 毕业一年了,想自己做一些小项目提升一下自己。于是瞄上了最近很火的springboot技术,之前在学校使用过springMVC框架+mybatis + mysql写过一些项目(拿了别人的代码框架,依葫芦画瓢写一写自己的业务逻辑)。之前并不会使用git去保管...

Android设计模式理解(mvc mvp mvvm)_GY_Rain的博客-程序员宝宝

MVC:Modle-View-Controller   把一个个应用的输入,处理,输出流程按照 Modle,View,Controller进行分离  Modle:模型层  就是应用程序中的二进制数据View:视图层    就是应用程序的界面 Android中的界面采用XML文件保存的,界面开发变得很方便Controller:控制层  控制视图模型的数据显示

推荐文章

热门文章

相关标签