通过 AppExchange 安全审查

【生效日期:2023年8月9日】在 Salesforce,没有什么比 客户的信任。信任需要安全。要分发托管包,请使用 Salesforce Platform API 解决方案,或 AppExchange 上的 Marketing Cloud API 解决方案,它必须通过我们的安全性 回顾。了解如何准备并通过安全审查。

注意

本节中对 AppExchange Security Review 的描述和此处的链接是 截至所列生效日期。SFDC 可能会更新或修改 AppExchange 安全性 不时自行决定审查,恕不另行通知。

重要

合作伙伴应用程序,包括托管软件包、Salesforce Platform API 解决方案、Marketing Cloud API 解决方案以及本文提及的其他解决方案, 是 Salesforce 主要服务协议中定义的非 SFDC 应用程序(可在 https://www.salesforce.com/company/legal/agreements 或后续 URL)。尽管有 对合作伙伴应用程序进行安全审查时,Salesforce 不保证其质量 或任何合作伙伴应用程序的安全性,客户有责任评估 合作伙伴应用程序的质量、安全性和功能。

  • AppExchange 安全审查 您必须先通过安全审查
    ,然后才能在 AppExchange 上公开列出您的托管软件包、Salesforce Platform API 解决方案或 Marketing Cloud API 解决方案。AppExchange 安全审查测试解决方案的安全状况,包括其保护客户数据的程度。
  • AppExchange Security Review 的工作原理是什么?
    在启动 AppExchange 安全审查之前,您需要执行自己的测试并收集支持材料,以帮助我们评估您的解决方案的安全性。在审核期间,我们的产品安全团队会尝试识别解决方案中的安全漏洞。如果团队发现漏洞,您可以访问个性化的技术指导,以帮助您解决已识别的漏洞。
  • 合作伙伴安全门户 合作伙伴安全门户
    是满足安全评审需求的主要枢纽。该门户托管源代码扫描程序 (Checkmarx) 和 Chimera 自动安全扫描工具。使用这些工具可以识别解决方案中的安全漏洞。您还可以通过该门户安排办公时间、与 AppExchange 安全工程师和安全审查运营团队成员的约会。办公时间提供了一个论坛,供您询问有关安全审查过程的问题,并讨论如何返工存在安全漏洞的代码。
  • 测试整个解决方案 使用手动测试和自动安全扫描程序工具测试解决方案
    的全部范围。执行安全扫描时,请包括独立于 Salesforce 平台运行的所有外部端点。记录误报安全违规行为,并修复所有不符合 Salesforce 安全准则的代码。
  • 使用 Salesforce Code Analyzer 扫描您的解决方案
    作为提交托管软件包进行安全审查的 AppExchange 合作伙伴,您必须使用 Salesforce Code Analyzer 对其进行扫描,并在解决方案的 AppExchange Security Review 提交中提供测试结果。此扫描是您必须使用合作伙伴安全门户中提供的工具完成的扫描的补充。使用的工具是源代码扫描器(也称为Checkmarx扫描器)和Chimera扫描器。
  • 误报
    在浏览 AppExchange 安全审查流程时,您的解决方案可能会遇到误报问题。当安全扫描工具或代码审查者标记看似构成安全漏洞但实际上并非如此的代码时,就会发生误报。相反,标记的漏洞不存在、不可利用或不需要支持有效的用例或功能。
  • 安全审查资源 这些资源
    可帮助您准备 AppExchange 安全审查。

AppExchange 安全审查

在公开列出您的托管软件包之前,Salesforce Platform API 解决方案或 AppExchange 上的 Marketing Cloud API 解决方案,它必须通过安全审查。The AppExchange 安全评审测试解决方案的安全状况,包括其保护程度 客户数据。

安全审查可帮助您识别黑客、恶意软件或 其他威胁可以利用。Salesforce 安全审查团队使用 基于最常见的 Web 漏洞的威胁建模配置文件。团队尝试 穿透解决方案中编程的防御。他们的目标是提取或修改数据 他们没有访问权限,就像安全威胁试图这样做一样。以下是我们测试的常见安全威胁的一小部分。

  • SOQL 和 SQL 注入
  • 跨站点脚本
  • 不安全的身份验证和访问控制协议
  • 特定于 Salesforce 平台的漏洞,例如记录共享违规

有关最关键的 Web 应用程序安全风险的详细信息,请阅读开放 Web 应用程序安全项目 (OWASP) 十大意识 公文。OWASP是一个非营利性基金会,致力于提高软件的安全性。

我们为您提供一份报告,记录在审查期间发现的安全漏洞。我们是 也可以与您会面并帮助您解决漏洞。解决 报告,然后提交修订后的解决方案以供后续审查。我们提供多种评论 每次提交,使你能够微调解决方案的安全性。

重要

测试升级后的解决方案针对最新 安全漏洞,Salesforce 保留对 在 AppExchange 上分发的解决方案。

将安全审查流程视为与个性化建议相结合的执行机制,以及 工具。您可以访问办公时间,在那里您可以直接与安全审查团队联系 成员,以获得适合您的解决方案的指导。此外,安全审查团队还会将您指向 安全扫描工具,有助于自动审查您的安全性 溶液。

AppExchange Security Review 的工作原理是什么?

在启动 AppExchange 安全审查之前,您需要执行自己的测试,并 收集支持材料,帮助我们评估解决方案的安全性。在审核期间, 我们的产品安全团队会尝试识别解决方案中的安全漏洞。如果 团队识别漏洞,您可以获得个性化的技术指导来帮助您 解决已识别的漏洞。

重要

每个托管包、Salesforce Platform API 和 Marketing Cloud API 您计划在 AppExchange 上公开列出的内容必须经过安全审查。

确保您已准备好开始

知道你什么时候准备好了 安全审查与其工作方式同样重要。你已准备好提交安全解决方案 之后复习:

  • 根据行业最佳安全标准保护您的解决方案。
  • 证明您的解决方案已支持 Lightning。所有新解决方案均已提交 安全审查必须是 Lightning Ready。
  • 在 Salesforce 合作伙伴控制台中:
    • 将您的打包组织连接到 AppExchange。
    • 创建提供商配置文件。
    • 创建解决方案列表。

注意

您的解决方案必须在 AppExchange 合作伙伴计划中注册。

测试解决方案

运行自动扫描工具,并在整个解决方案中手动测试解决方案 开发生命周期。安全扫描工具仅提供第一关的见解,但很有用 进入解决方案漏洞。查找自动扫描工具无法发现的漏洞 检测,也手动测试您的解决方案。

提示

我们强烈建议您在整个开发过程中测试代码 生命周期。如果推迟测试和修正,可能会遇到更大的 问题的积累,大大延迟了您的上市时间。

在开发过程中,我们建议您使用 Salesforce Code 扫描代码 Analyzer,用于源代码分析的统一工具。代码分析器支持多种引擎:PMD、 PMD 复制粘贴检测器、ESLint、RetireJS 和 Salesforce 图形引擎。图形引擎很有用 识别 法典。

完成解决方案开发后,执行另一轮手动测试并运行 产品安全所需的自动扫描工具。所需的扫描类型 是否运行取决于解决方案的体系结构。

在合作伙伴安全门户上,可以访问源代码扫描程序,该扫描程序 也称为Checkmarx扫描仪和Chimera扫描仪。这两个扫描工具 满足许多 AppExchange 解决方案的测试要求。

在提交解决方案以供审核之前,请解决您发现的所有安全问题 您的手动测试和扫描工具。修复代码或记录如何标记问题 是误报。误报是一个看似会带来安全风险的问题,但 不。

在提交解决方案之前对其进行测试,您更有可能通过审核 第一次。没有事先测试的申请人很少通过,必须在解决后重新提交 在审查期间发现的安全漏洞。重新提交会严重延迟 解决方案发布过程。

收集安全审查提交所需的材料

收集材料,使产品安全部门能够执行彻底的人工审核。为 大多数提交时,您需要向 Developer Edition 组织提供 要分发已安装的解决方案和解决方案文档。安全审查 团队使用 Developer Edition 组织作为解决方案测试环境。组织和文档 对于 Marketing Cloud 应用,不需要。其他所需材料因解决方案类型而异。

提示

在准备安全审查时,您可能会有疑问,并且 安全审查期间或之后的其他要点。讨论您的疑虑并获得答案 如有疑问,请访问合作伙伴安全门户并安排办公时间预约。为 帮助提交解决方案以供审核,安排与安全评审的约会 运营团队。若要解决在评审期间发现的解决方案中的问题,请执行以下操作: 与产品安全团队预约。

提交解决方案以供审核

完成测试并收集提交所需的材料后,即可准备就绪 提交您的解决方案以供 AppExchange 安全审查。使用安全评审提交 共享您的解决方案和所需材料,并支付安全审查费用的接口。如果 您计划免费分发您的解决方案,无需支付费用。

提交所有内容后,请期待这些周转时间。

重要

时间范围是估计值。有几个因素会影响实际持续时间 您的评论,例如您提交的完整性,以及 提交。

安全审查阶段典型时间范围
安全评审操作验证你的提交是否已准备好进行评审。一个 提交内容是否包含测试安全性所需的所有内容,已准备好进行审查 您的解决方案。1-2周
产品安全性首次测试您的解决方案。3-4周
产品安全性测试重新提交以前未批准的解决方案 这表明在修复安全漏洞方面取得了进展。2-3周

跟进安全审查报告

安全评审完成后,您会收到一份报告,通知您提交的内容 已获准或未获准在 AppExchange 上公开上市。

  • 已批准:您可以在 AppExchange 上公开列出您的解决方案并将其分发给客户 马上。
  • 未批准:安全评审团队在解决方案中检测到安全问题。你不能 在 AppExchange 上列出您的解决方案或将其分发给客户。

如果解决方案未获得批准,则报告将包含有关安全类型的信息 我们检测到的问题。请记住,安全审查是一个黑匣子,有时间限制 过程。我们无法列出安全问题的每个实例,并且我们最初可能无法检测到所有实例 问题类型。将安全评审结果解释为以下类型的代表性示例 您必须解决的问题。然后努力查找并修复整个过程中每个问题的所有实例 溶液。

解决所有检测到的安全问题。重新运行所需的自动扫描工具以生成 修订后的解决方案的报告。然后,使用更新的扫描重新提交修改后的解决方案 报告。

合作伙伴安全门户

合作伙伴安全门户是满足安全审查需求的主要枢纽。门户 托管源代码扫描程序 (Checkmarx) 和 Chimera 自动安全扫描工具。使用这些 用于识别解决方案中安全漏洞的工具。该门户也是您访问的地方 安排办公时间、与 AppExchange 安全工程师的约会以及 Security Review 运营团队成员。办公时间为您提供了一个论坛,供您询问有关安全性的问题 审查过程,并讨论如何返工具有安全漏洞的代码。

  • 设置合作伙伴安全门户登录
    将您的打包组织连接到合作伙伴控制台。然后,使用该组织的凭据登录到合作伙伴安全门户。登录用户可以访问安全扫描工具并安排办公时间约会。
  • 门户
    上的安全扫描程序 为了识别安全漏洞,我们要求您在解决方案和独立于 Salesforce 平台运行的所有外部端点上运行安全扫描工具。合作伙伴安全门户托管了我们推荐的两个扫描程序,即源代码扫描程序 (Checkmarx) 和 Chimera。
  • 办公时间:门户
    上的约会 Salesforce 安全审核团队为 AppExchange 合作伙伴提供办公时间。在办公时间内,您可以直接、预定地与安全审查团队成员进行 Web 会议访问。从安全审查操作部门获取有关提交过程的答案,或使用产品安全功能对安全漏洞进行故障排除。

设置合作伙伴安全门户登录

将您的打包组织连接到合作伙伴控制台。然后登录到合作伙伴 使用该组织凭据的安全门户。登录用户可以访问安全性 扫描工具并安排办公时间约会。

注意

在设置合作伙伴安全门户登录之前,请确保打包 托管开发工作的组织是 Salesforce Developer Edition 组织。

用户 所需权限
访问 Partner Security 上的源代码扫描程序 (Checkmarx) 门户:作者 Apex
  1. 登录 Salesforce 合作伙伴社区。
  2. 单击“发布”。
  3. 单击“技术”选项卡。
  4. 单击“组织”选项卡。
  5. 单击“连接技术”,然后单击“组织”。
  6. 单击“连接”。
  7. 输入用于打包组织的凭据,然后记录 在。
  8. 转到合作伙伴安全门户。
  9. 单击登录

门户上的安全扫描程序

为了识别安全漏洞,我们要求您在 您的解决方案以及独立于 Salesforce 平台运行的所有外部端点。这 合作伙伴安全门户托管我们推荐的两个扫描程序,即源代码扫描程序 (Checkmarx)和奇美拉。

所需的用户权限
要访问合作伙伴安全门户上的源代码扫描程序 (Checkmarx),请执行以下操作:作者 Apex

提示

我们强烈建议您对代码和任何连接的代码运行安全扫描 贯穿整个开发生命周期的端点。运行定期扫描并修复标记的问题 去防止安全漏洞堆积并为您创造更多工作 后。

合作伙伴安全门户提供对两个 Salesforce 支持的扫描程序:源代码扫描程序,也称为 Checkmarx scanner 和 Chimera 扫描器服务。

源代码扫描器 (Checkmarx) 检查 Apex、Visualforce 和 Lightning 代码,但不检查 检查解决方案的外部终结点。

Chimera 检查外部端点,但要求您将令牌上传到 外部服务器。如果解决方案连接到你拥有的域上的终结点,则可以使用 嵌 合体。如果解决方案连接到不属于你的域上的终结点,则无法上传 令牌,不能使用 Chimera。使用替代工具。例如,下载免费的 OWASP Zed 攻击代理 (ZAP) 扫描程序或购买 Burp Suite 许可证。

在提交解决方案之前,除移动客户端和 API 解决方案外,请运行 合作伙伴安全门户中的源代码扫描程序。如果您的解决方案连接到任何 非 Salesforce 域,也在外部端点上运行 Chimera、OWASP ZAP 或 Burp Suite。 在提交解决方案进行安全评审时,包括扫描报告。

安全扫描程序扫描目标考虑
源代码扫描器 (Checkmarx)Apex、Visualforce 和 Lightning 代码该静态扫描工具使用Checkmarx安全技术。对于任何包含 Salesforce 软件包或 元件。移动客户端或 API 解决方案不需要。每个解决方案版本将为您预配三个源代码扫描程序 (Checkmarx) 运行,其中 安全审查费。请考虑在开发时运行替代工具,例如 开源 PMD 源代码分析器,以及源代码扫描器,当您完成 提交。如果您想要灵活和自由地扫描未打包的代码,或绕过扫描限制 和软件包链接要求,请从Checkmarx购买许可证。
嵌 合体您拥有的域上的外部终结点检查解决方案的外部终结点中是否存在安全漏洞。从 Salesforce IP 地址扫描解决方案。不需要下载。不适用于您不拥有的域上的端点,因为它需要上传 外部服务器根目录的令牌。如果解决方案连接到不属于你的外部终结点,请使用 OWASP ZAP 或 打嗝套房而不是奇美拉。

门户网站上的办公时间预约

Salesforce 安全审查团队为 AppExchange 合作伙伴提供办公时间。在 办公时间,您可以直接、预定地与安全审查团队成员进行 Web 会议访问。 从安全审查操作中获取有关提交过程的答案或对安全性进行故障排除 产品安全漏洞。

注意

若要安排办公时间预约,请访问合作伙伴安全门户。需要门户登录?按照 设置合作伙伴安全门户登录中的说明。

运营办公时间

在运营办公时间内,安全审查运营团队成员会回答有关以下问题 安全审查后勤和提交要求。典型问题包括:

  • 解决方案的哪些组件在安全评审范围内?
  • 我需要提供什么类型的报告和扫描结果?
  • 如果我提交的解决方案未通过审核,会发生什么情况?

技术办公时间

当您需要特定的安全相关技术时,可以使用技术办公时间 来自产品安全团队的协助。典型问题包括:

  • 如何浏览 AppExchange 安全要求?
  • 设计和实现解决方案特定方面的安全方法是什么?
  • 如何解决自动安全扫描工具检测到的问题?
  • 安全审查报告中的发现意味着什么?
  • 哪些安全扫描结果可以被视为误报?
  • 如何解决安全审查报告中我认为是虚假的问题 阳性?
  • 我对代码的返工是否修复了安全性中发现的安全漏洞 回顾?

测试您的整个解决方案

使用手动测试和自动安全扫描程序测试解决方案的全部范围 工具。执行安全扫描时,请包括独立于 Salesforce平台。记录误报安全违规行为,并修复所有代码 不符合 Salesforce 安全准则。

测试范围

测试提交以供安全评审的解决方案的所有部分。确保解决方案 架构是安全的,包括未托管在 Salesforce 平台上的端点。你 注意解决方案的所有组件和层有助于将黑客或 利用潜在入口点的恶意软件。

解决方案的全部范围都经过安全评审测试。例如,我们可以 执行攻击 Development Edition 测试组织的渗透测试,并尝试访问敏感组织 数据或使用虚假凭据进行身份验证。

若要确定测试范围,请使用跟踪数据的方法。无论客户或数据在哪里 在范围内。例如,您的 Salesforce 客户需要登录您的公司 网站或数据同步到第三方服务器。测试这些部件以确保它们 安全地传输凭据和数据。如果满足上述任一条件,则外部终结点在安全范围内 查看安全测试的必要部分。

  • 端点在对最终用户进行身份验证方面发挥作用,作为购买和获取支持的一部分 用于或使用您的解决方案。此定义包括不需要的已连接应用 手动输入凭据。
  • Salesforce 数据将传输到端点或从端点传输。

重要

在未执行的外部终结点上执行安全测试之前 自己,完成两个动作。首先,获得执行安全测试所需的任何权限 来自拥有外部终结点的第三方。其次,遵循 Salesforce IP 中的准则 要允许的地址和域。

自动扫描工具

若要识别解决方案和外部终结点中的安全漏洞,我们要求 运行特定的自动安全扫描工具。

提示

我们强烈建议 在整个开发过程中,对代码和任何连接的端点运行安全扫描 生命周期。运行定期扫描并修复标记的问题,以防止安全 漏洞堆积起来,以后会为您创造更多工作。

如果您的解决方案是托管软件包、Salesforce Platform API 解决方案或 Marketing Cloud API解决方案,它必须通过安全审查。如果您要列出托管软件包,则 需要使用 Salesforce Code Analyzer 扫描您的解决方案并提交全面扫描 在 AppExchange Security Review Wizard 中生成结果。如果无法使用代码分析器,请 必须提供明确的理由,说明为什么没有在代码上运行代码分析器。

如果你的解决方案不是托管包,或者你选择不使用代码分析器,则可以 在合作伙伴安全门户上访问两个 Salesforce 支持的安全扫描程序:源 代码扫描器,也称为Checkmarx扫描器和Chimera扫描器。

下表总结了我们需要或推荐的自动安全扫描程序工具。

安全扫描程序工具扫描目标考虑结果被接受并提交托管在合作伙伴安全门户上
Salesforce 代码分析器Apex、JavaScript、Lightning、TypeScript 和 Visualforce 代码Salesforce Code Analyzer 统一了扫描工具,例如 ESLint、JavaScript、PMD、 在一个易于安装的 Salesforce CLI 插件中停用 JS 和 Salesforce Graph Engine。 Salesforce Graph Engine 尤其有助于检测创建、读取、更新和删除以及 字段级安全性 (CRUD/FLS) 冲突。您可以在本地开发计算机上安装 Salesforce Code Analyzer 或将其集成 到持续集成 (CI) 流程中。Salesforce Code Analyzer 包含用于扫描 Lightning Web 组件的自定义规则 JavaScript的。Salesforce Code Analyzer 不扫描外部端点。Salesforce Code Analyzer 提供多种输出格式:CSV、HTML、JSON 和 JUnit。是的
源代码扫描器 (Checkmarx)Apex、Visualforce 和 Lightning 代码该静态扫描工具使用Checkmarx安全技术。您必须为任何安全审查提交提供Checkmarx扫描,其中包括 Salesforce 软件包或组件。移动客户端或 API 不需要这些扫描 解决 方案。每个包版本预配了三个源代码扫描程序运行,并具有安全性 审查费。如果您想要灵活和自由地扫描未打包的代码,或绕过 3 扫描限制和软件包链接要求,请从Checkmarx购买许可证。是的是的
PMD源代码分析器顶点代码PMD 扫描程序是一个免费的开源工具,也可作为 VS Code 使用 外延。此工具是包含 Apex 的解决方案的源代码扫描程序的替代方法 法典。在准备解决方案进行安全评审时,并作为对源的补充 代码扫描器,运行PMD扫描无限次。PMD 通常报告的误报数通常比源代码扫描程序工具多。
嵌 合体您拥有的域上的外部终结点Chimera 检查解决方案的外部终结点。Chimera 从 Salesforce IP 地址扫描解决方案。此扫描仪不需要下载。您不能将 Chimera 与您不拥有的域上的端点一起使用,因为它需要 将令牌上传到外部服务器的根目录。如果解决方案连接到不属于你的外部终结点,请使用 OWASP ZAP 或 打嗝套房。是的是的
OWASP Zed 攻击代理 (ZAP)外部终结点ZAP 扫描程序是一个免费的、社区驱动的代理,用于 Web 应用安全测试。Zap 需要下载。为浏览器设置 ZAP 提供了启动指南 使用此工具进行安全扫描。是的
打嗝套房 (Burp Suite)外部终结点Salesforce 不会为安全审查提供 Burp Suite 许可证。购买一个 独立许可。Burp Suite 需要下载。是的

使用 Salesforce Code Analyzer 扫描您的解决方案

作为提交托管软件包进行安全审查的 AppExchange 合作伙伴,您必须 使用 Salesforce Code Analyzer 对其进行扫描,并在解决方案的 AppExchange 中提供测试结果 安全审查提交。此扫描是对必须使用 合作伙伴安全门户中提供的工具。使用的工具是源代码扫描器、 也称为Checkmarx扫描仪和Chimera扫描仪。

用户权限 需要
访问 Partner Community、Partner Console 和 AppExchange Security 回顾:管理房源
  • 按照以下说明安装 Salesforce CLI。
  • 要确保您运行的是最新版本的 CLI,请运行 。sf update
  • 安装Java 开发工具包 (JDK) 版本 8 或更高版本。
  • 要安装 Salesforce Code Analyzer,请运行 。sf plugins install @salesforce/sfdx-scanner
  1. 将解决方案的代码本地存储在计算机上。确保代码版本 与要提交进行安全评审的包匹配。
  2. 在“终端”或您喜欢的命令行界面中,切换到顶级目录 解决方案的代码和元数据。
  3. 使用 sf scanner run 运行第一次扫描,指定 –-category=“Security”,并将输出文件命名为 CodeAnalyzerGeneral.csv
  4. 使用 sf scanner run dfa 运行第二次扫描, 指定 –-category=“Security”,并将输出命名为 文件CodeAnalyzerDFA.csv。取决于复杂程度 时,代码分析器对代码的第二次扫描可能需要几个小时。
  5. 修复代码分析器在提交安全之前发现的任何问题 回顾。
  6. 重新扫描并保存结果文件。
  7. 记录任何误报。
  8. 将干净的CodeAnalyzerGeneral.csv和CodeAnalyzerDFA.csv文件上传到安全审查中 提交。
  9. 如果您有误报文档,也请上传该文档。

运行第一次扫描。

sf scanner run --format=csv --outfile=CodeAnalyzerGeneral.csv --target="./" --category="Security"

运行第二次扫描。

sf scanner run dfa --format=csv --outfile=CodeAnalyzerDFA.csv --target="./" --projectdir="./" --category="Security"

如果无法成功运行 Code Analyzer CLI 命令,请阅读 Salesforce 代码分析器文档。如果你 仍需要帮助,请在 Salesforce 代码分析器 GitHub 中记录问题 存储库,并提供有关您在以下情况下遇到的错误的信息 为安全评审提交生成扫描结果。

误报

在浏览 AppExchange 安全审查流程时,您可能会遇到解决方案的误报问题。当 安全扫描工具或代码审查器标记似乎构成安全漏洞的代码 但实际上没有。相反,标记的漏洞不存在、不可利用或不存在 需要支持有效的用例或功能。

通过解决以下问题,提高通过初始或后续安全审查的可能性 提交中的误报。包括一个文档,解释为什么每个标记为 false 积极不会造成安全风险。

  • 记录对误报的响应
    大多数情况下,误报出现在源代码扫描程序 (Checkmarx)、Chimera、ZAP 或 Burp Suite 扫描程序结果中。误报偶尔会出现在 Salesforce 安全审查失败报告中。无论哪种情况,都可以通过在提交代码时包含误报说明文档来提高通过安全评审的可能性。
  • 对Checkmarx扫描结果
    中误报的响应示例 以下示例说明如何记录对Checkmarx扫描导致的误报的响应。该示例采用表格格式,但您可以使用适合信息报告的任何格式。
  • 安全审查失败报告中
    误报的示例响应 以下示例说明如何记录对 Salesforce 安全审查失败报告中列出的误报的响应。它旨在支持重新测试提交。

记录对误报的响应

大多数情况下,误报出现在源代码扫描程序 (Checkmarx)、Chimera、ZAP 或 Burp Suite 扫描仪结果。Salesforce 安全审查中偶尔会出现误报 故障报告。无论哪种情况,您都可以通过以下方式提高通过安全审查的可能性 在提交代码时包括误报说明文档。

使用我们的误报文档模板提供您的 反应。对于每个已标记的问题,请包括:

  • 位置 – 说明报告漏洞的代码位置。
  • 解释 – 解释为什么标记的代码不会造成漏洞。

除了提供误报的理由外,还包括在文档中 阐明特殊用例、情况或例外情况的说明。

某些类别的安全扫描结果是不需要文档的误报 或代码返工。这些类别存在于我们接受的大多数安全扫描程序中 安全审查。其他扫描结果属于需要注意的严重性类别 因为它们突出显示了已知的安全漏洞。如果您无法提交正当理由的虚假 积极的文档,重新设计标记的代码以满足安全标准。

扫描器安全审查时需要注意的扫描结果无需注意的扫描结果
源代码扫描器 (Checkmarx)未标记为“代码”的所有问题,无论严重性级别如何 质量”标记为“代码质量”的问题
ZAP 和 Burp 套件归类为高严重性的问题不需要对低严重性和中等严重性问题采取行动,但需要对 鼓励它们是否构成安全威胁
嵌 合体未标记的所有问题,无论严重性级别如何 “信息/其他”标记为“信息性/其他”的问题

对Checkmarx扫描结果中误报的示例响应

以下示例演示如何记录对误报的响应 来自 Checkmarx 扫描。该示例采用表格格式,但您可以使用适合的任何格式 报告您的信息。

报告的漏洞位置响应
FLS 更新路径 1–17我们实现并调用了 AuthManager 类来检查这些路径,或者 引发错误。您可以在 ControllerFile.cls 的行中看到这一点 241、245 和 249。
FLS 更新路径 18–24已修复且有效。
FLS 更新路径 25、26 和 30违反我们的自定义对象UsageLog__c,不适用于用户 消费。它们从不直接向用户公开。
FLS 更新路径 27–29必须更新Account.NumberRelatedIssues__c字段以适当地计算 创建新对象,与用户输入无关。
共享冲突BatchCleanData.cls我们将此类调用的函数最小化到仅最小集 需要。without sharing
共享冲突LightningController.cls将声明更改为 。with sharing
共享冲突GlobalIssueReporting.cls改用,因为我们 不知道我们的调用类需要哪个上下文。inherited sharing
存储的 XSSIssue.page 文件:路径 1–3reportIssueList 是 objectID + ‘ ‘ + 整数的列表。它不构成 XSS 风险。
存储的 XSSIssue.page 文件:路径 4通过删除 .escape=”false”
存储的 XSSIssue.page我们清理了使用情况使用 Salesforce SecureFilters 在 JavaScript 中登录 图书馆。

对安全评审失败报告中误报的示例响应

以下示例演示如何记录对 Salesforce 安全审查失败报告。它是为了支持重新测试而编写的 提交。

报告的漏洞位置响应
不安全的软件版本j查询更新。
不安全的软件版本时刻.js没有用户输入流入时刻解析。用户输入仅流向 Salesforce Date 领域。
敏感数据存储不安全UserConfig_c.objectapiKey__c字段在使用加密密钥进行设置之前会进行加密,该密钥是 存储在受保护的自定义设置中。
敏感数据存储不安全IssueInvite_c.objectpassword__c字段是支持代理选择的密码,用于公开共享资源 与互联网。它不是用户拥有的机密。
敏感数据存储不安全APIManagement_c.对象我们弃用了此自定义设置,但无法删除自定义设置 托管包中的定义。
敏感数据存储不安全AuthManager.cls注释中的凭据只是示例凭据。它们不进行身份验证 任何开发或生产系统。
存储的 XSShttps://content.saslesforce.partner.com我们在 2020 年 2 月 1 日的办公时间与 Salesforce 的 Jane Doe 进行了交谈。此 URL 是 链接到非敏感内容域。URL 没有用于访问后端的会话数据 信息。我们被告知,这一发现可能是误报。

安全审查资源

这些资源可以帮助您为 AppExchange 安全审查做好准备。