Salesforce行业云配置存在严重安全风险

安全研究人员发现,Salesforce行业云客户容易因配置错误导致攻击者获取加密客户信息、会话数据、凭证和业务逻辑。该平台的低代码工具OmniStudio存在20个配置风险,包括访问控制检查缺失、工作流可被外部用户执行、缓存机制绕过访问控制等。Salesforce已针对其中5个问题发布CVE编号和修复指导,其余风险仍需客户自行防范。

安全研究人员发现,Salesforce行业云客户很容易在部署配置中出现错误,这些错误配置可能导致攻击者获取加密客户信息、会话数据、凭证和业务逻辑的访问权限。

Salesforce行业云是一套面向垂直行业的解决方案套件,包含一个低代码平台,为金融服务和制造业等特定行业提供预构建的数字化转型工具。

AppOmni公司SaaS安全研究主管Aaron Costello在一份报告中指出,低代码工具面向非开发人员,可以让"非技术用户构建涉及关键系统和敏感客户及内部数据的业务逻辑"。该报告识别出了Salesforce行业云OmniStudio低代码产品存在的20个配置风险。

Costello指出:"但这种赋能在安全方面可能付出代价,大幅增加了客户配置错误的风险。这种灵活性和隐式信任的结合意味着,客户配置错误一个组件或忽略一个设置,就可能导致系统范围的数据泄露。"

Costello和AppOmni识别出的风险包括:

- 低代码组件默认不执行访问控制检查或不遵守加密数据字段 - 工作流代码可被外部或未认证用户执行 - 缓存机制可能导致访问控制被绕过 - 开发不当的离线平台应用程序可能导致API令牌被盗 - 敏感API密钥和其他数据直接嵌入组件中,无需权限即可读取 - 保存工作流的权限设置不安全

在AppOmni识别的20个配置风险中,Salesforce已针对5个问题发布了CVE和指导建议,其余风险则留给客户自行避免。

**Salesforce发布五个CVE**

Salesforce发布的五个CVE涉及OmniStudio的FlexCards和数据映射器组件中发现的问题。Salesforce于5月19日就这些问题通知了客户。

FlexCards从Salesforce和第三方源获取数据用于工作流或在面向客户的Web视图中显示,占了四个CVE:

- CVE-2025-43698:SOQL数据源忽略字段级安全(FLS),暴露记录的所有字段数据 - CVE-2025-43699:"必需权限"字段可被绕过,因为检查在客户端执行 - CVE-2025-43700:未强制执行"查看加密数据"权限,向未授权用户返回使用经典加密数据的明文值 - CVE-2025-43701:允许访客用户访问自定义设置的值

数据映射器是FlexCards数据源的可选功能,也可作为后端集成程序(IProcs)的一部分用于服务器端数据处理。数据映射器读取并转换数据为适合API或Salesforce对象使用的格式。

Costello发现,四种数据映射器类型中的两种——提取和涡轮提取——默认不强制执行FLS,并向没有查看权限的用户返回加密值的明文数据。Salesforce为此问题分配了CVE-2025-43697。

**其他配置风险**

另外15种配置模式也可能对Salesforce行业云客户产生严重安全影响。

例如,数据映射器和IProc元数据使用称为规模缓存的机制进行缓存,以加速未来执行。虽然用户需要配置共享规则才能执行数据映射器或IProcs,但Costello发现,一旦被缓存,这些组件就可以被任何用户执行,无论其权限如何。

Costello表示:"不幸的是,没有配置设置允许在使用规模缓存的同时遵守数据映射器安全控制。经过彻底测试,包括启用CheckCachedMetadataRecordSecurity OmniStudio设置,发现为数据映射器强制执行授权检查的唯一方法是完全关闭规模缓存。"

集成程序也不遵守"必需权限"设置,也不遵守它们作为操作的一部分调用的任何数据映射器或其他IProc的共享规则。虽然Salesforce记录了这种行为,但风险极高,因为用户只需满足初始IProc的访问控制即可调用其流程中涉及的任何数据映射器或IProc。

另一个常见配置风险涉及HTTP操作,这些操作通常用作IProcs的一部分与外部API通信。如果这些API需要认证,组织可能决定将用户名密码或API访问令牌直接硬编码到IProc主体中。任何能够执行IProc的人也能看到其中存储的硬编码值。在许多情况下,这包括可以在调试模式下执行IProcs的外部用户甚至访客用户。

FlexCards和IProcs支持称为远程操作的数据源类型,允许执行Apex类。Apex是Salesforce类似Java的面向对象语言,用于在其平台上构建应用程序。

当OmniStudio组件尝试通过远程操作执行Apex类时,请求通过BusinessProcessDisplayController Apex类代理,该类包含GenericInvoke2NoCont方法。此方法不验证调用用户是否有权访问远程操作。

Costello表示:"这导致授权绕过,可能允许内部和外部用户执行强大的Apex代码,这些代码在不共享的情况下运行或未实现FLS等安全措施。这是默认行为。"

另一个可能产生敏感信息泄露的功能是数据包,它可以向其他Salesforce实例导出和导入组件。此功能以JSON定义文件的形式留下工件,这些文件可能包含依赖对象,如进一步包含数据映射器的IProcs。

Costello说:"对此对象具有读取访问权限且共享规则过于宽泛的用户将能够下载存储在'附件'sObject中的数据包组件JSON文件。值得注意的是,由于这些附件仅依赖于对OmniDataPack的'Id'字段的访问检查,用户无需对'OmniDataPack'sObject的任何字段级权限即可访问这些文件,只需要对象和共享规则级别的权限。"

数据包也可能变成孤立的,例如,如果创建它们的用户在过程中按下取消按钮。在这种情况下,它们的附件被创建但从未被删除。更糟糕的是,它们不会在OmniStudio的数据包清单页面上列出,这使管理员更难发现它们。

当嵌入外部网站时,FlexCard或OmniScript组件需要访问令牌来访问Salesforce。这些令牌必须使用OmniOut应用程序创建。然而,网站终端用户可以在浏览器中本地检查API请求并提取此令牌,然后滥用。Costello建议公司在外部OmniStudio组件和Salesforce之间的通信中使用代理。

然而,当令牌本身嵌入已被泄露或存储在GitHub等公共版本控制系统中的OmniOut代码时,代理也无济于事。此外,如果代理配置不当,在没有验证的情况下转发请求,也可能引入风险,因为用户可能尝试篡改参数和值。

研究人员指出:"由于OmniOut通常依赖经过认证的Salesforce API,这个账户要求通过为OmniOut组件提供连接应用访问令牌来满足,该令牌将用于代表所有外部用户发出请求。虽然详述连接应用创建过程的Salesforce文档中没有明确说明,但组织绝不应为OmniOut生成绑定到系统管理员等特权账户的访问令牌,这一点至关重要。"

最后,OmniScripts通过IProcs、数据映射器和FlexCards将多个后端操作结合在一起,具有称为保存会话的功能,允许用户保存进度并稍后返回脚本。生成此类会话时,会在OmniScript保存会话sObject中创建记录,以及脚本输入或返回的任何数据,直到被保存。默认情况下,这些保存的会话没有过期时间。

研究人员发现:"虽然访客和/或社区站点用户无法保存自己的会话,但这并不阻止他们在被授予权限的情况下读取其他用户会话的数据,使这种攻击向量成为内部和外部身份都可能利用的风险。"

**缓解措施**

对于Salesforce尚未修复的不安全配置,AppOmni在其论文中提供了缓解建议,包括应定期审计其对象、字段和共享规则配置的对象列表。该公司表示,将OmniStudio sObjects及其记录的访问级别降至仅必要级别是第一道防线。

来源:CIO.com

0赞

好文章,需要你的鼓励

2025

06/17

14:30

分享

点赞