Fortify SCA 简介
Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。 它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配 置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有 的软件安全漏洞规则集进行全mian地匹配、查找,从而将源代码中存在
的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细 的安全漏洞的信息,还会有相关的安全知识的说明,以及修复意见的 提供。
1.Fortify
SCA 扫描引擎介绍:
Foritfy SCA
主要包含的五大分析引擎:
z 数据流引擎:跟踪,记录并分析程序中的数据传递过程所产生
的安全问题。
z 语义引擎:分析程序中不安全的函数,方法的使用的安全问题。
z 结构引擎:分析程序上下文环境,结构中的安全问题。
z 控制流引擎:分析程序特定时间,状态下执行操作指令的安全 问题。
z 配置引擎:分析项目配置文件中的敏感信息和配置缺失的安全
问题。
z 特有的 X-Tier™跟zong器:跨跃项目的上下层次,贯穿程序来综合 分析问题
Fortify软件
强化静态代码分析器
使软件更快地生产
如何解决Fortify报告的扫描问题
已经注意到以下错误消息,但是软件保障计划办公室还没有关于如何解决这些问题的指导。建议尝试使用以下步骤解决这些问题:
生成日志文件并查看它以获取有关该问题的更多信息
打开支持票帮助
联系Fortify技术支持(fortifytechsupport@)寻求帮助
如果这些步骤无法解决问题,请将您与Fortify技术支持部门的通讯连同V&V安全代码审查资料一起提供,并在准备报告时将其纳入考量
请注意,这不是错误消息的完整列表,并将更多地变得更加广泛:
错误代码
错误信息
笔记
1意外的异常:高阶分析不适用
101文件。 。 。没有找到N / A
1002,1003解析文件N / A时出现意外的异常
1005数据流分析期间的意外异常N / A
1009构建调用图N / A时出现意外异常
1038初始分析阶段N / A中出现意外异常
1142在内部存储器管理期间发生意外错误。扫描将继续,但内存可能会迅速耗尽,扫描结果可能不完整。 N / A
1202无法解析符号。 。 。 N / A
1207配置文件。 。 。无法找到网络应用程序N / A
1211无法解析类型N / A
1213无法解析字段N / A
1216无法找到导入(?)N / A
1227尝试加载类路径存档时发生异常...文件可能已损坏或无法读取。 N / A
1228属性文件。 。 。以连续标记结束。该文件可能已损坏。 N / A
1232格式错误或IO异常阻止了类文件。 。 。从被读取不适用
1236无法将以下aspx文件转换为分析模型。 N / A
1237以下对java符号的引用无法解决。某些实例可以通过调整提供给Fortify的类路径来解决,但是在所有情况下都不能解决此问题。
1551,1552多个ColdFusion错误(无法解析组件,找不到函数,意外令牌等)可以与使用不支持的ColdFusion版本相关。
12002找不到Web应用程序的部署描述符(web.xml)。 N / A
12004 Java前端无法解析以下包含N / A
12004 Python前端无法解析以下导入N / A
13509规则脚本错误可能是Fortify错误,但需要确认
某些错误消息可能是Fortify工具中的问题的结果。确认的问题以及如何处理这些问题,都会发布在OISSWA博客中,以及有关解析/语法错误的技术说明。已确认的Fortify问题也在本页顶部的表格中注明。
如果您在解决警告或错误消息时遇到问题,请参阅我们的常见问题解答以获取有关打开支持票证的信息。
参考
参见参考技术说明
Fortify软件
强化静态代码分析器
使软件更快地生产
“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书»
强化针对JSSE API的SCA自定义规则滥用
我们的贡献:强制性的SCA规则
为了检测上述不安全的用法,我们在HP Fortify SCA的12个自定义规则中对以下检查进行了编码。这些规则确定了依赖于JSSE和Apache HTTPClient的代码中的问题,因为它们是厚客户端和Android应用程序的广泛使用的库。
超许可主机名验证器:当代码声明一个HostnameVerifier时,该规则被触发,并且它总是返回'true'。
<谓词>
<![CDATA [
函数f:f.name是“verify”和f.pers
包含[Class:name ==“.nameVerifier”]和
f.parameters [0] .是“ng.String”和
f.parameters [1] .是“.ssl.SSLSession”和
f.是“boolean”,f包含
[ReturnStatement r:r.nstantValue matches“true”]
]]>
</谓词>
过度允许的信任管理器:当代码声明一个TrustManager并且它不会抛出一个CertificateException时触发该规则。抛出异常是API管理意外状况的方式。
<谓词>
<![CDATA [
函数f:f.name是“checkServerTrusted”和
f.parameters [0] .是“curity.cert.X509Certificate”
和f.parameters [1] .是“ng.String”和
f.是“void”而不是f包含[ThrowStatement t:
t.expression.pers包含[Class:name ==
“(curity.cert.CertificateException | curity.cert.CertificateException)”]
]]>
</谓词>
缺少主机名验证:当代码使用低级SSLSocket API并且未设置HostnameVerifier时,将触发该规则。
经常被误用:自定义HostnameVerifier:当代码使用HttpsURLConnection API并且它设置自定义主机名验证器时,该规则被触发。
经常被误用:自定义SSLSocketFactory:当代码使用HttpsURLConnection API并且它设置自定义SSLSocketFactory时,该规则被触发。
我们决定启动“经常被滥用”的规则,因为应用程序正在使用API,并且应该手动审查这些方法的重写。
规则包可在Github上获得。这些检查应始终在源代码分析期间执行,以确保代码不会引入不安全的SSL / TLS使用。
https:///GDSSecurity/JSSE_Fortify_SCA_Rules
AuthorAndrea Scaduto |评论关闭|分享文章分享文章
标签TagCustom规则,CategoryApplication安全性中的TagSDL,CategoryCustom规则
以上信息由专业从事源代码检测工具fortify采购的华克斯于2024/12/28 4:55:14发布
转载请注明来源:http://szhou.mf1288.com/hksxxkj-2829477148.html