苏州华克斯信息-西南源代码扫描工具fortify
Fortify软件强化静态代码分析器使软件更快地生产“将FINDBUGSXML转换为HPFORTIFYSCAFPR|MAIN|CA特权身份管理员安全研究白皮书?强化针对JSSEAPI的SCA自定义规则滥用我们的贡献:强制性的SCA规则为了检测上述不安全的用法,我们在HPFortifySCA的12个自定义规则中对以下检查进行了编码。这些规则确定了依赖于JSSE和ApacheHTTPClient的代码中的问题,因为它们是厚客户端和Android应用程序的广泛使用的库。超许可主机名验证器:当代码声明一个HostnameVerifier时,该规则被触发,并且它总是返回true。函数f:f.name是“verify”和f.enclosingClass.supers包含[Class:name==“javax.net.ssl.HostnameVerifier”]和f.parameters[0].type.name是“java.lang.String”和f.parameters[1].type.name是“javax.net.ssl.SSLSession”和f.returnType.name是“boolean”,源代码扫描工具fortify价格,f包含[ReturnStatementr:r.expression.constantValuematches“true”]]]>过度允许的信任管理器:当代码声明一个TrustManager并且它不会抛出一个CertificateException时触发该规则。抛出异常是API管理意外状况的方式。函数f:f.name是“checkServerTrusted”和f.parameters[0].type.name是“java.security.cert.X509Certificate”和f.parameters[1].type.name是“java.lang.String”和f.returnType.name是“void”而不是f包含[ThrowStatementt:t.expression.type.definition.supers包含[Class:name==“(javax.security.cert.CertificateException|java.security.cert.CertificateException)”]]]>缺少主机名验证:当代码使用低级SSLSocketAPI并且未设置HostnameVerifier时,将触发该规则。经常被误用:自定义HostnameVerifier:当代码使用高级HttpsURLConnectionAPI并且它设置自定义主机名验证器时,源代码扫描工具fortify一年多少钱,该规则被触发。经常被误用:自定义SSLSocketFactory:当代码使用高级HttpsURLConnectionAPI并且它设置自定义SSLSocketFactory时,该规则被触发。我们决定启动“经常被滥用”的规则,因为应用程序正在使用高级API,并且应该手动审查这些方法的重写。规则包可在Github上获得。这些检查应始终在源代码分析期间执行,以确保代码不会引入不安全的SSL/TLS使用。https://github.com/GDSSecurity/JSSE_Fortify_SCA_RulesAuthorAndreaScaduto|评论关闭|分享文章分享文章标签TagCustom规则,CategoryApplication安全性中的TagSDL,CategoryCustom规则Fortify软件强化静态代码分析器使软件更快地生产“将FINDBUGSXML转换为HPFORTIFYSCAFPR|MAIN|CA特权身份管理员安全研究白皮书?强化针对JSSEAPI的SCA自定义规则滥用允许所有的行动应用程序不检查服务器发送的数字证书是否发送到客户端正在连接的URL。Java安全套接字扩展(JSSE)提供两组API来建立安全通信,一个高级HttpsURLConnectionAPI和一个低级SSLSocketAPI。HttpsURLConnectionAPI默认执行主机名验证,再次可以通过覆盖相应的HostnameVerifier类中的verify()方法来禁用(在GitHub上搜索以下代码时,大约有12,800个结果)。HostnameVerifierallHostsValid=newHostnameVerifier(){publicbooleanverify(Stringhostname,西南源代码扫描工具fortify,SSLSessionsession){返回真}};SSLSocketAPI不开箱即可执行主机名验证。以下代码是Java8片段,仅当端点标识算法与空字符串或NULL值不同时才执行主机名验证。privatevoidcheckTrusted(X509Certificate[]chain,StringauthType,SSLEngineengine,booleanisClient)throwsCertificateException{...StringidentityAlg=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中的主机名与对等体凭–HPEFortifySCA分析的流程运用三步走的方法来执行源代码安全风险评估:u确定源代码安全风险评估的审查目标u使用Fortify执行初步扫描并分析安全问题结果u审查应用程序的架构所特有的代码安全问题在第yi步中,我们使用威胁建模(如果可用)的结果以及对用于构建该应用的架构和技术的理解,其目标就是寻求一系列的安全漏洞的风险表现形式。在初步检查过程中,源代码扫描工具fortify扫描,我们将结合静态分析和轻量级的人工审查来确定代码中关键点-很可能包含了更多漏洞的地方,初始扫描使我们能够优先考虑风险最gao的区域。在审查主要代码过程中,我们的源代码安全分析人员对代码进行彻底审查来寻找常见安全问题,比如大家熟悉的缓冲区溢出、跨站点脚本,SQL注入等。最终审查用于调查本应用程序架构所特有的问题,一般表现为威胁建模或安全特征中出现的威胁,如自定义身份验证或授权程序等。苏州华克斯信息-西南源代码扫描工具fortify由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司是江苏苏州,行业软件的见证者,多年来,公司贯彻执行科学管理、创新发展、诚实守信的方针,满足客户需求。在华克斯领导携全体员工热情欢迎各界人士垂询洽谈,共创华克斯更加美好的未来。)