Fortify软件
强化静态代码分析器
使软件更快地生产
DevOps的安全状态
应用安全和DevOps报告2017
阅读更多
主要特征
高xiao
通过帮助开发人员通过增量扫描来提高编程效率,从而提高扫描时间,获得更快的结果,并加快软件投入生产所需的时间。
全mian
支持各种开发环境,语言,平台和框架,以在混合开发和生产环境中实现安全评估。
准确
由Fortify软件安全研究团队扩展和自动更新的***da和***完整的安全编码规则引导。
使用方便
通过脚本,插件和工具集成到任何环境中,以便开发人员能够快速轻松地启动和运行。
适用于任何应用程序
Fortify SCA支持***的编程语言,可以识别所有类型的应用程序的风险,并随着业务需求的增长而扩展。
HPE安全强化生态系统
应用安全解决方案需要自然地集成到SDLC工作流程中。 Fortify套件使用开放API将应用程序安全测试嵌入开发工具链的所有阶段;开发,部署和生产。
更多信息和***
您的应用安全性如何?
您的公司可能是新的应用程序安全性或更成熟的安全性,但是您可以做更多的事情吗?采取全mian的评估来评估你的立场。
进行评估
黑ke的业务
了解您***xin的竞争对手 - 黑ke - 以及如何破坏他们的业务来保护自己。企业安全,结合全mian的安全计划和***团队,对于黑ke业务的有效计划至关重要。
阅读完整报告
服务
汽车服务
***零售
ServiceMaster转换应用程序
ServiceMaster将应用程序安全性集成到软件开发生命周期(SDLC)和DevOps部署过程中,以生成更安全的软件,并检测并防御应用程序攻击。
“将FINDBUGS XML转换为HP FORTIFY SCA FPR | MAIN | CA特权身份管理员安全研究白皮书?
强化针对JSSE API的SCA自定义规则滥用
安全套接字层(SSL / TLS)是使用加密过程提供身份验证,机mi性和完整性的***广泛使用的网络安全通信协议。本服务主要帮助企业查找和分析已有的软件源代码,识别其安全风险,并提供详细的分析和修复建议,帮助企业尽快尽早修复软件代码的安全缺陷,保障系统的安全性,从而保护企业***软件的安全性,保护企业信息系统资产及正常的信息化服务。为确保该方的身份,必须交换和验证X.509证书。一方当事人进行身份验证后,协议将提供加密连接。用于SSL加密的算法包括一个安全的散列函数,保证了数据的完整性。
当使用SSL / TLS时,必须执行以下两个步骤,以确保中间没有人篡改通道:
证书链信任验证:X.509证书指ding颁发证书的证书颁发机构(CA)的名称。学到更多白皮书采取协作方式的IT安全白皮书白皮书违约回应:为不可避免的准备白皮书相关应用安全产品与服务脆弱性研究安全研究创新的脆弱性研究作为可操作的安全智能。服务器还向客户端发送中间CA的证书列表到根CA。客户端验证每个证书的签名,到期(以及其他检查范围,例如撤销,基本约束,策略约束等),从下一级到根CA的服务器证书开始。如果算法到达链中的***后一个证书,没有违规,则验证成功。
主机名验证:建立信任链后,客户端必须验证X.509证书的主题是否与所请求的服务器的完全限定的DNS名称相匹配。 RFC2818规定使用SubjectAltNames和Common Name进行向后兼容。
当安全地使用SSL / TLS API并且可能导致应用程序通过受攻击的SSL / TLS通道传输敏感信息时,可能会发生以下错误使用情况。
证明所有证书
应用程序实现一个自定义的TrustManager,使其逻辑将信任每个呈现的服务器证书,而不执行信任链验证。
TrustManager [] trustAllCerts = new TrustManager [] {
新的X509TrustManager(){
...
public void checkServerTrusted(X509Certificate [] certs,
String authType){}
}
这种情况通常来自于自签证书被广泛使用的开发环境。根据我们的经验,我们通常会发现开发人员完全禁用证书验证,而不是将证书加载到密钥库中。这导致这种危险的编码模式意外地进入生产版本。
当这种情况发生时,它类似于从烟雾探测器中取出电池:检测器(验证)将仍然存在,提供错误的安全感,因为它不会检测烟雾(不可信方)。实际上,当客户端连接到服务器时,验证例程将乐意接受任何服务器证书。
在GitHub上搜索上述弱势代码可以返回13,823个结果。另外在StackOverflow上,一些问题询问如何忽略证书错误,获取类似于上述易受攻击的代码的回复。这是关于***投piao***建议禁用任何信任管理。
我们的贡献:强制性的SCA规则
为了检测上述不安全的用法,我们在HP Fortify SCA的12个自定义规则中对以下检查进行了编码。这些规则确定了依赖于JSSE和Apache HTTPClient的代码中的问题,因为它们是厚客户端和Android应用程序的广泛使用的库。
超许可主机名验证器:当代码声明一个HostnameVerifier时,该规则被触发,并且它总是返回'true'。
<谓词>
<![CDATA [
函数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”,f包含
[ReturnStatement r:r.expression.c***tantValue matches“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包含[ThrowStatement t:
t.expression.type.definition.supers包含[Class:name ==
“(javax.security.cert.CertificateException | java.security.cert.CertificateException)”]
缺少主机名验证:当代码使用低级SSLSocket API并且未设置HostnameVerifier时,将触发该规则。
经常被误用:自定义HostnameVerifier:当代码使用***HttpsURLConnection API并且它设置自定义主机名验证器时,该规则被触发。
经常被误用:自定义SSLSocketFactory:当代码使用***HttpsURLConnection API并且它设置自定义SSLSocketFactory时,该规则被触发。
我们决定启动“经常被滥用”的规则,因为应用程序正在使用***API,并且应该手动审查这些方法的重写。
规则包可在Github上获得。这些检查应始终在源代码分析期间执行,以确保代码不会引入不安全的SSL / TLS使用。
http://github.com/GDSSecurity/JSSE_Fortify_SCA_Rules
AuthorAndrea Scaduto |评论关闭|分享文章分享文章
标签TagCustom规则,CategoryApplication安全性中的TagSDL,CategoryCustom规则
版权所有©2025 天助网