| 企业等级: | 商盟会员 |
| 经营模式: | 商业服务 |
| 所在地区: | 江苏 苏州 苏州市 |
| 联系卖家: | 华克斯 先生 |
| 手机号码: | 13862561363 |
| 公司官网: | www.sinocax.com |
| 公司地址: | 苏州工业园区新平街388号 |
FortifySCA服务可交付材料
源代码安全风险评估的目标文档描述了这些内容:
l 针对对黑ke感兴趣的资产、代码实现上的错误,这些错误将危及这些资产的安全,以及在使用的技术和编程语言中常见错误;
l 针对每一个已经识别漏洞的报告,包括所发现漏洞的概述、影响和严重性以及再现该漏洞的步骤和可用于修复该漏洞缺限的补救措施建议;
l 终源代码安全风险评估报告详细说明本次风险评估结果、成果和整体印象、审查期间发现的问题、进行额外审查的建议,以及针对已确定漏洞进行补救的建议。







Fortify软件
强化静态代码分析器
使软件更快地生产
“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书?
强化针对JSSE API的SCA自定义规则滥用
我们的贡献:强制性的SCA规则
为了检测上述不安全的用法,我们在HP Fortify SCA的12个自定义规则中对以下检查进行了编码。这些规则确定了依赖于JSSE和Apache HTTPClient的代码中的问题,因为它们是厚客户端和Android应用程序的广泛使用的库。
超许可主机名验证器:当代码声明一个HostnameVerifier时,该规则被触发,并且它总是返回'true'。
函数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管理意外状况的方式。
函数f:f.name是“checkServerTrusted”和
f.parameters [0] .是“curity.cert.X509Certificate”
和f.parameters [1] .是“ng.String”和
f.是“void”而不是f包含[ThrowStatement t:
t.rs包含[Class:name ==
“(curity.cert.CertificateException | curity.cert.CertificateException)”]
]]>
缺少主机名验证:当代码使用低级SSLSocket API并且未设置HostnameVerifier时,将触发该规则。
经常被误用:自定义HostnameVerifier:当代码使用HttpsURLConnection API并且它设置自定义主机名验证器时,该规则被触发。
经常被误用:自定义SSLSocketFactory:当代码使用HttpsURLConnection API并且它设置自定义SSLSocketFactory时,该规则被触发。
我们决定启动“经常被滥用”的规则,源代码检测工具fortify扫描,因为应用程序正在使用API,并且应该手动审查这些方法的重写。
规则包可在Github上获得。这些检查应始终在源代码分析期间执行,以确保代码不会引入不安全的SSL / TLS使用。
https:///GDSSecurity/JSSE_Fortify_SCA_Rules
AuthorAndrea Scaduto |评论关闭|分享文章分享文章
标签TagCustom规则,CategoryApplication安全性中的TagSDL,CategoryCustom规则

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,源代码审计工具fortify扫描,boolean isClient)
throws CertificateException {
...
String identityAlg = engine.getSSLParameters()。
getEndpointIdentificationAlgorithm();
if(identityAlg!= null && identityAlg.length()!= 0){
checkIdentity(session,chain [0],identityAlg,源代码检测工具fortify扫描,isClient,华南fortify扫描,
getRequestedServerNames(发动机));
}
...
}
当SSL / TLS客户端使用原始的SSLSocketFactory而不是HttpsURLConnection包装器时,识别算法设置为NULL,因此主机名验证被默认跳过。因此,如果攻击者在客户端连接到“”时在网络上具有MITM位置,则应用程序还将接受为“some-evil-”颁发的有效的服务器证书。
这种记录的行为被掩埋在JSSE参考指南中:
“当使用原始SSLSocket和SSLEngine类时,您应该始终在发送任何数据之前检查对等体的凭据。 SSLSocket和SSLEngine类不会自动验证URL中的主机名与对等体凭


苏州华克斯信息科技有限公司 电话:0512-62382981 传真:0512-62382981 联系人:华克斯 13862561363
地址:苏州工业园区新平街388号 主营产品:Loadrunner,Fortify,源代码审计,源代码扫描
Copyright © 2025 版权所有: 天助网 增值电信业务经营许可证:粤B2-20191121
免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。天助网对此不承担任何保证责任。
您好,欢迎莅临华克斯,欢迎咨询...