Fortify软件安全内容 2022 更新 3
2022-10-11 10:53:6 Author: 利刃信安(查看原文) 阅读量:23 收藏

关于 CyberRes Fortify 软件安全研究

Fortify 软件安全研究团队将前沿研究转化为为 Fortify 产品组合(包括 Fortify 静态代码分析器 (SCA)  Fortify WebInspect)提供支持的安全情报。如今,Fortify Software Security Content 支持 30 种语言的 1,244 个漏洞类别,并跨越超过一百万个单独的 API

Fortify Software Security Research (SSR) 很高兴地宣布 Fortify 安全编码规则包(英语,版本 2022.3.0)、Fortify WebInspect SecureBase(可通过 SmartUpdate 获得)和 Fortify 高级内容的更新立即可用。

Fortify 安全编码规则包 [Fortify 静态代码分析器]

在此版本中,Fortify 安全编码规则包可检测 30 种编程语言中的 1,024 个独特类别的漏洞,并跨越超过一百万个单独的 API。总之,此版本包括以下内容:

ASP.NET Core 更新(支持的版本:6.0[1]

在模型-视图-控制器 (MVC) 模式中,视图是使用嵌入在 Razor 标记中的 C# 编程语言的.cshtml文件。Razor 标记是与 HTML 标记交互以生成发送给客户端的网页的代码。视图处理应用程序的数据表示和用户交互。使用 Fortify 静态代码分析器版本 22.2.0 及更高版本,规则现在支持在视图中查找问题。

支持包括以下弱点类别:

  • NET MVC 不良做法:没有防伪令牌的表单

  • 跨站点脚本:组件间通信(云)

  • 跨站脚本:持久化

  • 跨站点脚本:验证不佳

  • 跨站脚本:反射

  • 打开重定向

  • 侵犯隐私

  • 系统信息泄露

Entity Framework Core(支持的版本:6.0

Entity Framework (EF) Core 是一种用于 .NET 应用程序的开源数据访问技术。EF Core 允许开发人员将 .NET 对象映射到数据库架构并通过标准 API  LINQ 查询调用数据库操作。支持包括以下弱点类别:

  • 访问控制:数据库

  • NET 不良做法:剩余的调试代码

  • 连接字符串参数污染

  • 不安全的传输:数据库

  • 密码管理:硬编码密码

  • 设置操作

  • SQL注入

  • 系统信息泄露:过于广泛的 SQL 日志记录

GitHub 操作

GitHub Actions 是一个持续集成和持续交付 (CI/CD) 平台,可实现构建、测试和部署管道的自动化。最近的弱点已经暴露出来,导致各种系统的命令注入攻击向量。此版本包括在以下类别下检测此命令注入漏洞的常见实例的覆盖范围:

  • 命令注入:GitHub Actions

React(支持的版本:18.2[2]

React  ReactJS 是一个用于构建基于组件的用户界面的开源 JavaScript 库。虽然此版本不支持新的弱点类别,但已重构覆盖范围以使 React 更准确并减少误报。

React Native(支持的版本:0.70[2]

React Native 是一个开源 UI 框架,用于在 JavaScript  JSX 中开发多平台用户界面。React Native 使开发人员能够编写由目标平台原生渲染 API 渲染的移动应用程序,以产生优美且一致的用户体验。除了 React 支持的弱点类别外,还为 React Native 添加了以下弱点类别:

  • 打开重定向

  • 侵犯隐私

  • 系统信息泄露:内部

React Native 异步存储(支持的版本:1.17[2]

Async Storage 是基于社区react-native-async-storage 项目 React Native 的未加密、异步、键值存储库。异步存储在原生 iOS  Android 平台特定存储机制之上提供抽象。支持通过异步存储实现数据流,并报告现有的 JavaScript 和平台/库特定的弱点类别。

秘密扫描改进

秘密扫描是在各种源代码和配置文件中查找秘密的概念。Fortify 静态代码分析器将秘密扫描覆盖范围应用于所有文件类型,这允许查找特定的秘密,而不管代码语言如何。已添加对以下机密的支持,并报告为密码管理:硬编码密码凭据管理:硬编码 API 凭据

  • HTTP Basic authentication tokens

  • JWT (JSON Web Tokens)

  • NPM (Node Package Manager) access tokens

  • Postman API keys

  • PyPI API token

 Java  Go 的初始 gRPC 支持(支持的版本:1.49.0

Google Remote Procedure Call (gRPC) 是一个现代多环境、多语言的开源高性能 RPC 框架。gRPC 连接服务并支持负载平衡、跟踪和身份验证。与传统的 JSON-over-HTTP 不同,gRPC 基于 HTTP2,通常使用二进制协议缓冲区 (protobuf) 格式的消息。对于 gRPC 项目,用户应在 Fortify 静态代码分析器的翻译阶段包含从 .proto 文件定义生成的代码。

已添加对 Go gRPC v1.49.0 的支持以涵盖以下弱点类别:

  • Header Manipulation

  • Privacy Violation

  • System Information Leak: External

已添加对 Java gRPC v1.49.0 的支持以涵盖以下弱点类别:

  • Denial of Service

  • gRPC Metadata Manipulation

  • Insecure Transport

  • Insecure Transport: gRPC Server Credentials

  • Insecure Transport: gRPC Channel Credentials

  • Privacy Violation

  • Resource Injection

  • System Information Leak: External

初始 Flask 支持(支持的版本:2.2.x

Flask 是一个用 Python 编写的 Web 框架。Flask 最初是WerkzeugJinja库的包装器,现已成为最流行的 Python Web 应用程序框架之一。为了补充我们对 Python  Google Cloud Functions 支持,此版本仅包含对 Flask 响应对象的支持。

支持包括以下弱点类别:

  • Cookie 安全性:Cookie 未通过 SSL 发送

  • Cookie 安全性:HTTPOnly 未设置

  • Cookie 安全性:缺少 SameSite 属性

  • Cookie 安全性:过于宽泛的域

  • Cookie 安全性:路径过于宽泛

  • Cookie 安全性:过于宽松的 SameSite 属性

  • Cookie 安全性:持久性 Cookie

  • 跨站脚本:持久化

  • 跨站点脚本:验证不佳

  • 跨站脚本:反射

  • 标题操作

  • 标题操作:Cookies

  • HTML5:错误配置的内容安全策略

  • HTML5:过于宽松的内容安全策略

  • HTML5:过度宽松的 CORS 政策

  • HTML5:非强制内容安全策略

  • 打开重定向

  • 侵犯隐私

  • 系统信息泄露:外部

Google Cloud Functions(支持的版本:403.0.0

Google Cloud Functions 是用于构建和连接云服务的无服务器执行环境。它可以执行代码以响应预定义的事件,例如 API 调用、数据库事务、将文件上传到 Cloud Storage  Pub/Sub 主题的传入消息。

Cloud Functions 提供两个产品版本:原始版本 Cloud Functions(第 1 代)和基于Cloud RunEventarc构建的新版本 Cloud Functions(第 2 代),以提供增强的功能集。此版本包括对 Python 中的 Google Cloud Functions 的支持以及对 Java 中的 Google Cloud Functions 的更新支持。

Python 支持的弱点类别包括 Flask API 支持的弱点类别,以及以下内容:

  • 跨站脚本:持久化

  • 跨站点脚本:验证不佳

  • 跨站脚本:反射

  • 侵犯隐私

  • 系统信息泄露:外部

对于 Python Google Cloud Functions,用户应包含 JSON  YAML 云构建文件。或者,用户可以在扫描时设置以下属性:

  • fortify.sca.rules.GCPFunctionName应该设置为函数名。

  • 如果触发器类型为 HTTP fortify.sca.rules.GCPHttpTrigger应设置为 true,其他触发器类型为 false

对第二代 Java Google Cloud Functions 的更新规则支持可识别源自 CloudEvents 请求的危险输入源。

初始 Apollo 服务器支持(支持的版本:3.6.8

Apollo Server 是一个开源 GraphQL 服务器,用于 JavaScript 应用程序以构建 GraphQL API。此版本增加了对 Apollo Server 的初始 GraphQL 服务器支持,包括检测使用 Apollo Server 开发的 GraphQL API 中的以下弱点类别:

  • 跨站脚本:持久化

  • 跨站点脚本:验证不佳

  • 跨站脚本:反射

  • GraphQL 不良实践:启用自省

  • 侵犯隐私

  • 系统信息泄露:外部

基础设施即代码 (IaC)

IaC 是通过代码而不是各种手动过程来管理和供应计算机资源的过程。支持的技术包括用于部署到 GCPOpenAPI 规范和 MuleSoft  Terraform 配置。现在向开发人员报告与这些服务的配置相关的常见问题。

Google Cloud Platform (GCP) Terraform 配置Terraform 是一个开源 IaC 工具,用于构建、更改和控制云基础架构。它使用自己的声明性语言,称为 HashiCorp 配置语言 (HCL)。云基础设施被编入配置文件以描述所需的状态。Terraform 提供程序支持 GCP 基础架构的配置和管理。此版本涵盖 GCP Terraform 配置的以下弱点类别:

  • GCP Terraform 配置错误:可公开访问的 Cloud SQL 数据库

  • GCP Terraform 配置错误:云存储桶统一访问已禁用

  • GCP Terraform 配置错误:已启用计算引擎 IP 转发

  • GCP Terraform 配置错误:已启用计算引擎串行控制台

  • GCP Terraform 配置错误:Compute Engine Shielded     VM 选项已禁用

  • GCP Terraform 配置错误:GKE 集群节点自动修复已禁用

  • GCP Terraform 配置错误:GKE 集群可公开访问

  • GCP Terraform 配置错误:角色过于宽松

  • GCP Terraform 配置错误:许可防火墙

OpenAPI 规范OpenAPI 规范为 HTTP API 定义了与编程语言无关的标准描述。符合 OpenAPI 规范的 OpenAPI 文档可以用 JSON  YAML 格式表示。该标准定义了服务的功能,无需访问实现、文档或通过网络检查。此版本涵盖了 OpenAPI 配置的以下弱点类别:

  • OpenAPI 错误配置:凭证泄漏

  • OpenAPI 错误配置:空的全局安全要求

  • OpenAPI 错误配置:空操作安全要求

  • OpenAPI 错误配置:不安全的传输

  • OpenAPI 错误配置:缺少错误处理

  • OpenAPI 配置错误:缺少全局安全要求

  • OpenAPI 配置错误:缺少操作安全要求

  • OpenAPI 配置错误:缺少安全方案

  • OpenAPI 错误配置:可选的全局安全要求

  • OpenAPI 错误配置:可选操作安全要求

  • OpenAPI 错误配置:弱身份验证

MuleMule Runtime,通常简称为Mule,是MuleSoft提供的企业服务总线和集成框架。Mule 支持现有系统的集成,例如 Web 服务、HTTPJava 数据库连接 (JDBC) 等。Mule 允许不同的应用程序通过充当企业网络内或跨互联网的应用程序之间的传输系统来相互通信。此版本涵盖了 Mule 配置的以下弱点类别:

  • Mule 错误配置:硬编码密码

  • Mule 错误配置:不安全的数据库传输

  • Mule 错误配置:不安全的传输

  • Mule 配置错误:服务器身份验证已禁用

2022 CWE  25 

常见弱点枚举 (CWE TM )  25 个最危险的软件弱点 (CWE Top 25)  2019 年推出,取代了 SANS Top 252022 CWE Top 25  6 月发布,使用启发式公式确定频率和严重性标准化过去两年向国家漏洞数据库 (NVD) 报告的漏洞数量。为了支持希望围绕 NVD 中最常报告的关键漏洞优先进行审计的客户,添加了 CyberRes Fortify 分类与 2022 CWE Top 25 的相关性。

其他勘误表

在此版本中,已投入资源以确保我们可以减少误报问题的数量、重构一致性并提高客户审核问题的能力。客户还可以期望看到与以下相关的已报告问题的变化:

弃用 19.x 之前的 Fortify 静态代码分析器版本

正如 2021.4 版本所观察到的,我们将继续支持 Fortify 静态代码分析器的最后四个主要版本。因此,这将是在 19.x 之前支持 Fortify 静态代码分析器版本的规则包的最后一个版本。对于下一个版本,19.x 之前的 Fortify 静态代码分析器版本将不会加载最新的规则包。这将需要降级规则包或升级 Fortify 静态代码分析器的版本。对于未来的版本,我们将继续支持 Fortify 静态代码分析器的最后四个主要版本。

重命名基础架构即代码 (IaC) 弱点类别

随着对检测与 IaC 相关的错误配置和不良做法的支持不断成熟,我们的下一个安全内容版本将包括对弱点类别子集的类别名称更改(2022 年更新 4)。当弱点类别名称发生更改时,将先前扫描与新扫描合并时的扫描结果将导致添加/删除类别。

针对弱点类别重构 Fortify 优先顺序元数据

随着应用程序安全领域的不断成熟,我们对弱点类别对机密性、完整性和可用性的影响的集体知识和理解也在不断发展。我们下一个版本的安全内容将包括对弱点类别子集的弱点元数据字段准确性影响的更改(2022 年更新 4)。当弱点元数据字段发生变化时,未来的扫描结果可能会在不同的过滤器集文件夹中出现问题(例如,关键、高、中、低)。初始更新将导致一些问题从较高的 Fortify Priority Order (FPO) 文件夹转移到较低的 FPO 文件夹。客户应该为这种变化如何影响现有的过滤器集和模板做好准备。

误报改进

继续努力消除此版本中的误报。除了其他改进之外,客户还可以期望在以下方面进一步消除误报:

  • Cross-Site Request     Forgery – 使用 4.5.2 之后的 .NET Framework 版本在 .NET 应用程序中删除误报

  • JavaScript 劫持– 问题(见下文)

  • 密钥管理——通过 JavaScript 扫描减少误报

  • 密钥管理——减少主要影响 SAPUI5 项目的误报

  • 密钥管理——基于比较的问题产生了很多误报并已被删除

  • 密码管理:硬编码//空密码防止 C# 条件语句的误报

  • 密码管理– 减少 NPMYarn  Bower 文件的误报

  • 隐私违规:自动完成设置新密码时减少误报

  • 设置操作清除环境变量时减少误报

  • 弱加密签名– java.security 包中防止误报

  • XML Entity Expansion     Injection – 使用 JAXP 转换器减少 Java 程序中的误报

JavaScript 劫持移除

以下类别在现代 ECMAScript 中不再相关并被删除:

  • JavaScript 劫持

  • JavaScript 劫持:构造函数中毒

  • JavaScript 劫持:易受攻击的框架

因此,上述类别的所有问题都将从扫描结果中删除。

类别更改

除了误报删除之外,我们还确定了一些类别应该统一或标签错误的地方。当弱点类别名称发生更改时,将先前扫描与新扫描合并时的扫描结果将导致添加/删除类别。

  • Insecure SSL: Android     Hostname Verification Disabled现在报告为Insecure SSL: Server     Identity Verification Disabled

  •  Dockerfiles 中,密码管理:硬编码密码问题现在报告为密码管理:配置文件中的密码

  •  .NET 中,设置数据库连接字符串时设置操作的某些实例现在报告为连接字符串参数污染

[WebInspect]

Fortify SecureBase 结合了对数千个漏洞的检查与指导用户通过 SmartUpdate 立即获得以下更新的策略:

漏洞支持

不安全的部署:未打补丁的应用程序

dotCMS 是一种内容管理系统,它提供了在一个集中位置创建和重用内容、图像和资产的能力。ContentResource API 易受 CVE-2022-26352 标识的远程代码执行 (RCE) 漏洞的影响。用于存储内容的文件名是根据多部分请求中提供的用户输入构造的,并且不会被 dotCMS 清理。它使攻击者能够在系统上上传任意文件,从而导致 RCE。此版本包括在运行受影响的 dotCMS 版本的目标服务器上检测此漏洞的检查。

不安全的部署:未打补丁的应用程序

Apache APISIX 是一个开源 API 网关,提供负载均衡、动态上游等流量管理功能。此 API 网关易受 CVE-2022-24112 标识的 RCE 漏洞的影响。攻击者可以通过批处理请求插件绕过 Apache APISIX  IP 限制。如果 APISIX 使用默认的 Admin 密钥,并且启用了 Admin API 并且没有分配自定义管理端口,则攻击者可以通过批处理请求插件调用 Admin API,从而导致 RCE。此版本包括在运行受影响的 Apache APISIX 版本的目标服务器上检测此漏洞的检查。

动态代码评估:JNDI 参考注入[3]

Java 命名和目录接口 (JNDI) 是一种 Java API,它使客户端能够按名称发现和查找数据和对象。这些对象可以通过不同的命名或目录服务进行存储和检索,例如远程方法调用 (RMI)、通用对象请求代理体系结构 (CORBA)、轻量级目录访问协议 (LDAP) 或域名服务 (DNS)。如果攻击者获得对 JNDI 查找操作参数的控制,他们可以将查找指向他们控制下的命名或目录服务,并返回使用远程工厂进行对象实例化的 JNDI 引用。这种攻击可以在执行查找操作的目标服务器上执行任意远程代码。此版本包括一项检查以检测目标 Web 服务器上的此漏洞。

动态代码评估:不安全的反序列化[3]

CVE-2022-21445  Oracle 融合中间件 12.2.1.3.0  12.2.1.4.0 版本的 ADF Faces 组件中发现了一个预授权不安全的 Java 反序列化漏洞。它影响所有依赖 ADF Faces 组件的应用程序,包括商业智能、企业管理器、身份管理、SOA 套件、WebCenter 门户、应用程序测试套件和运输管理。此问题使攻击者能够在服务器上执行任意代码、滥用应用程序逻辑或发起拒绝服务 (DoS) 攻击。此版本包括一项检查以检测目标 Web 服务器上的此漏洞。

合规报告

2022 CWE  25 

通用弱点枚举 (CWE )  25 个最危险的软件弱点(CWE Top 25)于 2019 年推出,取代了 SANS Top 252022 CWE Top 25  6 月发布,使用启发式公式确定过去两年向国家漏洞数据库 (NVD) 报告的漏洞。此 SecureBase 更新包括直接映射到由 CWE Top 25 标识的类别或通过“ChildOf”关系与 Top 25 中的 CWE-ID 相关的 CWE-ID 的检查。

政策更新

2022 CWE  25 

WebInspect SecureBase 支持策略列表中添加了一项自定义策略,以包括与 2022 CWE Top 25 相关的检查。

其他勘误表

在此版本中,已投入资源以进一步减少误报数量并提高客户审核问题的能力。客户还可以期望看到与以下相关的报告结果的变化:

动态代码评估:不安全的反序列化[4]

 ID 11504 标识的检查已修改为使用支持 OAST 功能的有效负载。改进此检查可减少误报并提高其结果的效率和准确性。

Fortify优质内容

研究团队在我们的核心安全情报产品之外构建、扩展和维护各种资源。

2022 CWE  25 

为了配合新的关联,此版本还包含 Fortify 软件安全中心的新报告包,支持 2022 CWE Top 25,可从 Fortify 客户支持门户的高级内容下下载。

Fortify分类:软件安全错误

Fortify Taxonomy 站点包含对新添加的类别支持的描述,可在https://vulncat.fortify.com上找到。寻找具有最新支持更新的旧站点的客户可以从 Fortify 支持门户获取它。

[1] Requires Fortify Static Code Analyzer version 22.2.0 or later.
[2] Requires Fortify Static Code Analyzer version 22.2.0 or later.
[3] Requires OAST features that are available in the WebInspect 21.2.0.117 patch or later.
[4] Requires OAST features that are available in the WebInspect 21.2.0.117 patch or later.


文章来源: http://mp.weixin.qq.com/s?__biz=MzU1Mjk3MDY1OA==&mid=2247498565&idx=1&sn=d7744d2e258d0ca24c2259ffa8f8aced&chksm=fbfb4b88cc8cc29ed509d6897828326257fa753c951896e3be7c46d383cefd0c4ac49a87f306#rd
如有侵权请联系:admin#unsafe.sh