FortifySCA支持源代码安全风险评估的语言
支持的语言业界***,跨层、跨语言地分析代码的漏洞的产生:C, C++, .Net,
Java, JSP,PL/SQL, T-SQL, XML, CFML, JavaScript, PHP, ASP, VB, VBScript;
支持***的平台,基本上所有平台都支持:Windows, Solaris, Red Hat Linux,
Mac OS X, HP-UX, IBM AIX;
IDE支持 VS, Eclipse, RAD, WSAD。
FortifySCA软件安全管理器是软件安全分析、管理的综合平台。
帮助软件开发的管理人员统计和分析软件安全的风险、趋势,跟踪和定wei软件安全漏洞,提供足够多的软件安全质量方面的真实的状态信息以便于管理人员制定安全管理决策及编码规则。
在不可以修改源代码的情況下,实为***理xiang的解决办法
直接安装在应用系统二进制码上 —— 完全不需要源代码
快、易于安装及部署
为大部份已知的漏洞提供防御
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,因此主机名验证被默认跳过。FortifySCA以前被称为源代码分析器(在fortify360中),但现在是静态代码分析器。因此,如果攻击者在客户端连接到“domain.com”时在网络上具有MITM位置,则应用程序还将接受为“some-evil-domain.com”颁发的有效的服务器证书。
这种记录的行为被掩埋在JSSE参考指南中:
“当使用原始SSLSocket和SSLEngine类时,您应该始终在发送任何数据之前检查对等体的凭据。 SSLSocket和SSLEngine类不会自动验证URL中的主机名与对等体凭
版权所有©2024 天助网