fortifySCA优点
从代码的结构方面分析代码,识别代码结构不合理而带来的安全弱点和问题。
·
对多层次、多语言的项目,可以跨层次、跨语言地对整个项目进行分析。找到贯穿在多个层次或者多种语言的安全问题。可以支持Web应用的三层框架多种语言整合测试如JSP/Java/T-SQL 或ASPX/C#/T-SQL。
·
支持检测业界全的安全漏洞,工具能够支持检测的漏洞要能依从于国际权威组织,如美国软件安全漏洞词典CWE、开放式Web应用程序安全项目组织OWASP等
·
漏洞扫描规则支持客户自定义。方便客户添加特殊的扫描需求。同时提供友好的图形化的自定义向导和编辑器,自动生成规则脚本。
FortifySCA服务可交付材料
源代码安全风险评估的目标文档描述了这些内容:
l 针对对黑ke感兴趣的资产、代码实现上的错误,这些错误将危及这些资产的安全,以及在使用的技术和编程语言中常见错误;
l 针对每一个已经识别漏洞的报告,包括所发现漏洞的概述、影响和严重性以及再现该漏洞的步骤和可用于修复该漏洞缺限的补救措施建议;
l 终源代码安全风险评估报告详细说明本次风险评估结果、成果和整体印象、审查期间发现的问题、进行额外审查的建议,以及针对已确定漏洞进行补救的建议。
Fortify软件
强化静态代码分析器
使软件更快地生产
语义本分析仪在程序级别检测功能和API的潜在危险用途。基本上是一个聪明的GREP。
配置此分析器在应用程序的部署配置文件中搜索错误,弱点和策略违规。
缓冲区此分析仪检测缓冲区溢出漏洞,涉及写入或读取比缓冲区容纳的更多数据。
分享这个答案
于十二月二十四日十二时十七分
感谢你非常有用的信息。你知道这些分析仪在内部工作吗?如果您提供一些细节,我将非常感谢。 - 新手十二月27'12 at 4:22
1
有一个很好的,但干燥的书的主题:/Secure-Programming-Static-Analysis-Brian/dp/... - LaJmOn Nov 8 '12 at 16:09
现在还有一个内容分析器,尽管这与配置分析器类似,除非在非配置文件中搜索问题(例如查找HTML,JSP for XPath匹配) - lavamunky 11月28日13日11:38
@LaJmOn有一个非常好的答案,但在完全不同的抽象层次,我可以用另一种方式回答这个问题:
您的源代码被转换为中间模型,该模型针对SCA的分析进行了优化。
某些类型的代码需要多个阶段的翻译。例如,需要先将C#文件编译成一个debug.DLL或.EXE文件,然后将该.NET二进制文件通过.NET SDK实用程序ildasm.exe反汇编成Microsoft Intermediate Language(MSIL)。而像其他文件(如Java文件或ASP文件)由相应的Fortify SCA翻译器一次翻译成该语言。
SCA将模型加载到内存中并加载分析器。每个分析器以协调的方式加载规则并将这些角色应用于程序模型中的功能。
匹配被写入FPR文件,漏洞匹配信息,安全建议,源代码,源交叉引用和代码导航信息,用户过滤规范,任何自定义规则和数字签名都压缩到包中。
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 sca价格的华克斯于2024/7/2 7:08:53发布
转载请注明来源:http://beijing.mf1288.com/hksxxkj-2779175992.html