因应去年多家企业Salesforce数据泄露事件,谷歌旗下安全服务部门Mandiant本周开源了一款用于检测导致敏感信息泄露的Salesforce配置错误的工具,名为AuraInspector。
Mandiant经常发现企业对外平台——即Salesforce体验云(Salesforce Experience Cloud)存在配置不当问题,却未被察觉,这可能导致黑客访问敏感数据,包括信用卡号、身份文件和健康信息等。AuraInspector是一个命令行工具,可自动检测Salesforce Aura框架中的访问控制配置错误,帮助识别和审计Salesforce对外网站的配置问题,防范数据泄露。
Salesforce体验云是面向客户、合作伙伴与员工的门户网站、论坛和网站,直接连接Salesforce CRM数据,以提供个性化内容和自助服务。Aura是Salesforce应用程序使用的UI开发框架,用于构建可重用的模块化组件。Salesforce体验云的应用和数据访问依赖Aura组件与其后端端点(endpoint)的交互实现。通过Aura端点,可从后端系统访问各类信息,包括数据库中的对象记录。
Mandiant指出,Aura提供了合法的方法进行数据获取,但底层权限配置错误可能导致数据泄露。Salesforce管理员面临的挑战是,Salesforce对象共享规则可在多层进行配置,要找出错误配置非常困难。这也使得Aura端点成为Salesforce体验云中最常被攻击的入口。
Mandiant列举了几个使从Salesforce大规模窃取数据成为可能的特性。一是Salesforce体验云应用的某些组件会悄悄调用特定Aura方法来获取记录。其次,Salesforce原本设有防护机制,限制单次数据获取最多只能返回2,000条记录。但Mandiant发现Salesforce提供了一个GraphQL API,可绕过这一限制,成为数据泄露的突破口。通过已知方法使用GraphQL API,可将所有记录附加在单个对象中,不受2,000条记录的限制。
Salesforce认为这并非漏洞。但Mandiant指出,一旦配置错误,攻击者即可无限制地访问任意数量的记录。相比使用基础的Aura控制器,使用GraphQL控制器能实现更一致的数据获取,且相较于仅限高权限用户使用的SOAP和REST API,GraphQL控制器更容易被攻击者利用。
值得注意的是,Salesforce未对GraphQL Aura控制器提供官方文档,容易被管理员忽略。
AuraInspector现已公开可用。该工具不仅能检测配置错误,还能自动收集Salesforce环境中的Aura端点、主页和记录表单的URL,以及自助注册状态,若发现已启用,也会显示对应URL。
Mandiant建议Salesforce管理员在外网环境中,对访客权限仅授予特定对象及字段的只读权限;已验证用户应仅能访问其应访问的记录和对象;关闭自助注册功能;遵循Salesforce安全最佳实践,包括使用其安全健康检查(Security Health Check)工具。