源代码检测工具fortify规则-华克斯

Fortify软件

强化静态代码分析器

使软件更快地生产

“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书?

强化针对JSSE API的SCA自定义规则滥用

安全套接字层(SSL / TLS)是使用加密过程提供身份验证,机mi性和完整性的广泛使用的网络安全通信协议。为确保该方的身份,必须交换和验证X.509证书。一方当事人进行身份验证后,协议将提供加密连接。用于SSL加密的算法包括一个安全的散列函数,保证了数据的完整性。

当使用SSL / TLS时,必须执行以下两个步骤,以确保中间没有人篡改通道:

证书链信任验证:X.509证书指ding颁发证书的证书颁发机构(CA)的名称。服务器还向客户端发送中间CA的证书列表到根CA。客户端验证每个证书的签名,到期(以及其他检查范围,例如撤销,基本约束,策略约束等),从下一级到根CA的服务器证书开始。如果算法到达链中的后一个证书,没有违规,则验证成功。

主机名验证:建立信任链后,客户端必须验证X.509证书的主题是否与所请求的服务器的完全限定的DNS名称相匹配。 RFC2818规定使用SubjectAltNames和Common Name进行向后兼容。

当安全地使用SSL / TLS API并且可能导致应用程序通过受攻击的SSL / TLS通道传输敏感信息时,可能会发生以下错误使用情况。

证明所有证书

应用程序实现一个自定义的TrustManager,使其逻辑将信任每个呈现的服务器证书,而不执行信任链验证。

TrustManager [] trustAllCerts = new TrustManager [] {

       新的X509TrustManager(){

...

  public void checkServerTrusted(X509Certificate [] certs,

                String authType)源代码检测工具fortify

}

这种情况通常来自于自签证书被广泛使用的开发环境。根据我们的经验,我们通常会发现开发人员完全禁用证书验证,而不是将证书加载到密钥库中。这导致这种危险的编码模式意外地进入生产版本。

当这种情况发生时,它类似于从烟雾探测器中取出电池:检测器(验证)将仍然存在,提供错误的安全感,因为它不会检测烟雾(不可信方)。实际上,当客户端连接到服务器时,验证例程将乐意接受任何服务器证书。

在GitHub上搜索上述弱势代码可以返回13,823个结果。另外在StackOverflow上,一些问题询问如何忽略证书错误,获取类似于上述易受攻击的代码的回复。这是关于投piao建议禁用任何信任管理。








Fortify软件

强化静态代码分析器

使软件更快地生产

“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书?

强化针对JSSE API的SCA自定义规则滥用

我们的贡献:强制性的SCA规则

为了检测上述不安全的用法,我们在HP Fortify SCA的12个自定义规则中对以下检查进行了编码。这些规则确定了依赖于JSSE和Apache HTTPClient的代码中的问题,源代码检测工具fortify sca,因为它们是厚客户端和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.expression.ctantValue 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软件

强化静态代码分析器

使软件更快地生产

转移景观

语言支持也得到了扩展,完全支持PHP,JavaScript,COBOL以及所有添加到版本5的ASP和Basic的classic-non-.NET版本。Fortify SCA以前一直支持C#,VB.NET,Java和C / C ++,ColdFusion和存储过程语言,如Microsoft TSQL和Oracle PL / SQL。

“从基于COM的语言到.NET版本的迁移速度并没有像我们以前那样快,”Meftah解释说。 “这些COM语言的安装基础很大,我们从我们的安装基础和其他方面得到了很多查询。”

SANS Institute互联网风暴中心研究员Johannes Ullrich表示,Fortify SCA等代码分析工具对于成长型企业开发商店至关重要。

“我认为[代码分析工具]的部署方式不足,源代码检测工具fortify规则,我看到很少使用它们,源代码检测工具fortify服务商,通常只适用于大型企业项目,”Ullrich说。 “这是一个巨大的时间保护,它没有找到所有的漏洞,但它找到标准的东西,它需要很多繁忙的代码审查。

Fortify SCA旨在与现有工具和IDE集成,包括Microsoft Visual Studio,Eclipse和IBM Rapid Application Developer(RAD)。基于Java的套件运行在各种操作系统上,包括Windows,Linux,Mac OS X和各种各样的Unix。

许可证的基准价格为每位开发人员约1,西南源代码检测工具fortify,200美元,另外还需支付维护费用,并订阅更新的代码规则以防止出现的漏洞。

关于作者

迈克尔·德斯蒙德(Michael Desmond)是1105媒体企业计算组织的编辑兼作家。



源代码检测工具fortify规则-华克斯由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司位于苏州工业园区新平街388号。在市场经济的浪潮中拼博和发展,目前华克斯在行业软件中享有良好的声誉。华克斯取得全网商盟认证,标志着我们的服务和管理水平达到了一个新的高度。华克斯全体员工愿与各界有识之士共同发展,共创美好未来。

苏州华克斯信息科技有限公司
姓名: 华克斯 先生
手机: 13862561363
业务 QQ: 3521016152
公司地址: 苏州工业园区新平街388号
电话: 0512-62382981
传真: 0512-62382981