Fortify SCA 简介
Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。对于在并发扫描许可证模式下使用 Fortify 的客户,Fortify 静态代码分析器现在可以使用 Fortify 许可证和基础架构管理器来获取许可证密钥,而不是传统的 fortify.license 文件。 它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配 置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有 的软件安全漏洞规则集进行全mian地匹配、查找,从而将源代码中存在
的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细 的安全漏洞的信息,还会有相关的安全知识的说明,以及修复意见的 提供。
1.Fortify
SCA 扫描引擎介绍:
Foritfy SCA
主要包含的五大分析引擎:
z 数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生
的安全问题。
z 语义引擎:分析程序中不安全的函数,方法的使用的安全问题。
z 结构引擎:分析程序上下文环境,结构中的安全问题。
z 控制流引擎:分析程序特定时间,状态下执行操作指令的安全 问题。
z 配置引擎:分析项目配置文件中的敏感信息和配置缺失的安全
问题。
z 特有的 X-Tier?跟zong器:跨跃项目的上下层次,贯穿程序来综合 分析问题
Fortify SCA支持系统平台***,能扫描的语言种类是***的。
Fortify SCA能***全mian地(五个层面)分析源代码中存在的问题。
Fortify SCA能够扫描出来350多种漏洞,拥有目前业界***权wei的安全规则库,与世界同步。
Fortify SCA的测试扫描速度快,约1分钟1万行。
Fortify SCA提供了强大的审计平台和详细的漏洞信息。
Fortify SCA提供了漏洞的详细中文说明和相应的修复建议。
Fortify SCA操作简单,使用方便,易用,界面设计人性化。
Fortify SCA获得多项国际大奖,目前市场占有率***第yi。
Fortify SCA是唯yi一个被国内多家***安全测评机构所认可并使用的代码安全测试产品。
Fortify SCA 在***600多家客户,在国内也有30多家客户,丰富的实施经验,国内拥有***的服务团队和售后支持团队。
Fortify软件
强化静态代码分析器
使软件更快地生产
如何解决Fortify报告的扫描问题
跳到元数据结束
由Matthew Condell创建,***后由Charles Williams于二零零七年六月二十六日修改,转到元数据的开始
这个页面已经被供应商公开了
图标
题
在扫描我的应用程序时,Fortify报告了错误或警告。如何解决这些错误?
回答
Fortify可能会报告一些不同的错误消息。这里将列出常见的错误消息以及指向其他技术说明的指针,其中提供了有关如何解决这些问题的信息。要检索错误消息列表,请按照“如何查看Fortify报告的错误消息”中的说明进行操作。FortifySCA***庞大的安全编码规则包跨层、跨语言地分析代码的漏洞的产生C,C++,。它也可能有助于生成调试日志文件,可以更好地了解问题。
常见的错误消息及其解决方案包括:
错误代码
错误信息
笔记
N / A分析期间没有发生警告没有发生错误。扫描很好去
N / A执行ASP.NET预编译时出错如何解决“执行ASP.NET预编译时出错”
-1错位的关闭标签[...]此错误可能不会影响扫描结果,但建议检查引用的文件以查看是否有错放的HTML标签。
1001,1381,1554,10000,...
解析文件或语法错误时出错如何解决文件解析或语法错误
1103转换器执行失败。这是Fortify 16.20扫描C#6 / VB 14代码的一个知识问题。请参阅以下博客文章以获取有关如何处理的信息:Fortify 16.20“C#6 / VB 14”中的“转换器执行失败”错误
1105,1480没有足够的内存可用来完成分析增加分配给Fortify的内存量:如何增加Fortify进行翻译的内存
1114功能。 。 。对于详尽的数据流分析来说太复杂了,进一步的分析将被跳过(堆栈)如何解决“功能...太复杂”错误
“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书?
强化针对JSSE API的SCA自定义规则滥用
允许所有的行动
应用程序不检查服务器发送的数字证书是否发送到客户端正在连接的URL。
Java安全套接字扩展(JSSE)提供两组API来建立安全通信,一个***HttpsURLConnection API和一个低级SSLSocket API。
HttpsURLConnection API默认执行主机名验证,再次可以通过覆盖相应的HostnameVerifier类中的verify()方法来禁用(在GitHub上搜索以下代码时,大约有12,800个结果)。
HostnameVerifier allHostsValid = new HostnameVerifier(){
public boolean verify(String hostname,SSLSession session){
返回真
}
};
SSLSocket API不开箱即可执行主机名验证。以下代码是Java 8片段,仅当端点标识算法与空字符串或NULL值不同时才执行主机名验证。
private void checkTrusted(X509Certificate [] chain,String authType,SSLEngine engine,boolean isClient)
throws CertificateException {
...
String identityAlg = engine.getSSLParameters()。
getEndpointIdentificationAlgorithm();
if(identityAlg!= null && identityAlg.length()!= 0){
checkIdentity(session,chain [0],identityAlg,isClient,
getRequestedServerNames(发动机));
当SSL / TLS客户端使用原始的SSLSocketFactory而不是HttpsURLConnection包装器时,识别算法设置为NULL,因此主机名验证被默认跳过。因此,如果攻击者在客户端连接到“domain.com”时在网络上具有MITM位置,则应用程序还将接受为“some-evil-domain.com”颁发的有效的服务器证书。数据流量此分析仪检测潜在的漏洞,这些漏洞涉及受到潜在危险使用的污染数据(用户控制输入)。
这种记录的行为被掩埋在JSSE参考指南中:
“当使用原始SSLSocket和SSLEngine类时,您应该始终在发送任何数据之前检查对等体的凭据。 SSLSocket和SSLEngine类不会自动验证URL中的主机名与对等体凭
版权所有©2024 天助网