FortifySCA PTA 无需源代码,部署简单方便
与QA测试活动结合,省时省力
自动化完成测试,提供安全漏洞信息,使修复漏洞更快,更容易
能达到较高的测试覆盖率,发现更多安全漏洞,测试更加全mian
软件开发人员:企业软件外包商或者内部开发人员。主要对所开发项目的漏洞进行修复。
安全测试人员,主要从事使用Fortify SCA 对所有需要被测试项目的源代码进行安全测试。:一般为软件测试部的人员。
安全审计人员:主要从事软件安全漏洞审计的人员,一般与安全测试人员为同一个人。主要对所有项目的漏洞进行审计和漏洞信息发布。
项目管理人员:主要从事软件安全测试事宜的管理,监督。以及与外包商/开发团队的协调工作。一般为安全处/部人员
Fortify软件
强化静态代码分析器
使软件更快地生产
“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书»
强化针对JSSE API的SCA自定义规则滥用
日期:2017年6月8日上午7:00
在提供GDS安全SDLC服务的同时,我们经常开发一系列定制安全检查和静态分析规则,以检测我们在源代码安全评估中发现的不安全的编码模式。这些模式可以代表特定于正在评估的应用程序,其架构/设计,使用的组件或甚至开发团队本身的常见安全漏洞或独特的安全弱点。这些自定义规则经常被开发以针对特定语言,并且可以根据客户端使用的或者舒服的方式在特定的静态分析工具中实现 - 以前的例子包括FindBugs,PMD,Visual Studio以及Fortify SCA。
使用Findbugs审核不安全代码的Scala
为Spring MVC构建Fortify自定义规则
用PMD保护发展
在本博客文章中,我将专注于开发Fortify SCA的PoC规则,以针对基于Java的应用程序,然而,相同的概念可以轻松扩展到其他工具和/或开发语言。
影响Duo Mobile的近漏洞证实了Georgiev等人的分析,他们展示了各种非浏览器软件,库和中间件中SSL / TLS证书验证不正确的严重安全漏洞。
具体来说,在这篇文章中,我们专注于如何识别Java中SSL / TLS API的不安全使用,这可能导致中间人或欺骗性攻击,从而允许恶意主机模拟受信任的攻击。将HP Fortify SCA集成到SDLC中可以使应用程序定期有效地扫描漏洞。我们发现,由于SSL API滥用而导致的问题并未通过开箱即用的规则集确定,因此我们为Fortify开发了一个全mian的12个自定义规则包。
Fortify软件
强化静态代码分析器
使软件更快地生产
“将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,因此主机名验证被默认跳过。因此,如果攻击者在客户端连接到“”时在网络上具有MITM位置,则应用程序还将接受为“some-evil-”颁发的有效的服务器证书。
这种记录的行为被掩埋在JSSE参考指南中:
“当使用原始SSLSocket和SSLEngine类时,您应该始终在发送任何数据之前检查对等体的凭据。 SSLSocket和SSLEngine类不会自动验证URL中的主机名与对等体凭
以上信息由专业从事源代码审计工具fortify规则的华克斯于2025/2/27 12:41:32发布
转载请注明来源:http://szhou.mf1288.com/hksxxkj-2844550453.html
下一条:杂物电梯价格在线咨询 苏州法奥