安全审查(5)完成审查

学习目标

完成本单元后,您将能够:

  • 描述产品安全团队如何报告漏洞。
  • 解释如何在修复安全问题后重新提交您的应用以供审核。
  • 列出在批准后启动您的应用的步骤。

面对事实

您刚刚收到了Salesforce安全团队的电子邮件。您的产品已经过审核。你已经等了好几个星期了,所以你很兴奋。但是某种程度上,你害怕打开它:如果你没有通过,该怎么办?

如果你的产品没有通过它的第一次安全审查,它是在一个很好的公司。所有提交的产品中有一半未通过首次安全审核。安全并不容易!如果是这样,我们实际上并不需要安全审查过程。

让我们来探讨两种可能的安全审查结果 – 不是传递和传递 – 因为在开发产品时,您可能会遇到这两种情况。

咬牙坚持

内容

因为我们一直在谈论“通过”安全审查,所以您可能会将安全审查视为您通过或未通过的考试。但它并非真的如此黑白。将审查视为安全团队的反馈意见,以帮助您提高产品质量并增加成功发布的机会。

如果您的产品未通过其安全审核,您会将此反馈作为报告列出安全团队发现的漏洞。您收到的电子邮件还包含有关如何修复这些漏洞的详细说明。

Your security report

关于报告的好处是,它会给你找到的问题的具体描述。它在报告顶部提供了超链接的内容表,如下所示:

  1. SOQL注入漏洞

  2. 调试漏洞中的敏感信息

  3. 信息披露漏洞

  4. CRUD / FLS强制执行漏洞

每个条目都是一种安全漏洞。每个条目下面是发现漏洞的组件的名称。在目录下面是每个漏洞的详细描述。点击一个条目即可进入相应的描述。

我们去广泛。你深入

该报告列出了您的产品中发现的各种漏洞,但不是每个实例。如果您在列表中看到SOQL注入漏洞,请查看您的所有代码(而不仅仅是提到的组件),以了解SOQL注入机会。

我们还可以提醒您我们利用哪些漏洞进入您的应用程序,但我们无法做出详尽的列表。无论如何,您的团队在代码库中拥有更多的专业知识。因此,一旦知道这些漏洞存在,您就可以更快地找到这些漏洞。

测试不完美

我们只能花费有限的时间在您的产品中查找漏洞。有时,当重新审核应用时,我们会发现一些新类型的漏洞,这是我们第一次看不到。测试不全面,无论是宽度还是深度。因此,当您查看代码库时,请注意各种漏洞,即使报告中没有这些漏洞。

Keep calm and fix your code

在修复漏洞时,请不要忘记对您的产品重复使用扫描仪和对抗性​​测试,就像您在审查之前一样。它们有助于防止新漏洞潜入您的代码中。

检查您的做法以及您的准则

坐下来和你的团队聊聊,以处理安全审查的结果。以下是您可以用来开始对话的一些问题:

  • 这些漏洞是如何通过您自己的安全审查?
  • 你能做些什么来尽快找到它们吗?
  • 会有更多测试帮助吗?
  • 会有更多的人员或更多的时间帮助?
  • Salesforce的安全培训会有更多帮助吗?
  • 您是否从可应用于您的开发过程的安全审查中学到了什么?

没有完美的战略来实现安全 – 它需要奉献和决心。但是,您总是可以通过整合从每次安全审查中学到的内容来改进整体战略。

当然,你的成功就是我们的成功!如果您在修复漏洞或检查流程方面需要指导,请联系您的合作伙伴客户经理或技术布道者。如果您需要技术安全建议,我们的信任团队需要办公时间。

冲洗,重复

您已经修复了您的应用并改进了您的开发流程。你不能相信一切都更安全,你不能等待安全评论复赛。做最糟糕的Salesforce产品安全团队!

安全团队绝不会因为挑战而退缩。你只需要引起他们的注意。您是如何做的取决于您是否修复了在Salesforce平台上运行的代码。

如果您更改了在Salesforce平台上运行的代码,则必须上传新版本的托管软件包。如果您还对包进行了外部更改,请在完成向导时添加该信息:

  1. 在发布控制台中,单击“Listings”选项卡。
  2. 点击您的列表。
  3. 通过单击“Change Packages”将新的托管包上传到您的列表。
  4. 点击软件包上“Start Review”字段旁边的开始查看。
  5. 通过安全审查向导并按照正常的提交过程。

如果您仅修复了在Salesforce外部运行的代码,请编辑您现有的安全审核提交信息:

  1. 在发布控制台中,单击“Listings”选项卡。
  2. 点击您的列表。
  3. 点击软件包上“Edit Review”字段旁边的编辑评论。
  4. 浏览安全审查向导并更新任何已更改的信息。
  5. 在合作伙伴社区中记录一个案例,让产品安全团队知道您正在重新提交您的产品以供审核。在评论中包含您的包名称,ID和版本。

无论哪种方式,您不必支付另一设置费。只要您的软件包ID和您的名称空间不变,我们认为您的重新提交与以前一样。和第一轮一样,安全审查过程需要6到8周时间。

装运它

当您的产品通过安全审查时,您会收到一封很好的电子邮件,表示已通过审核。你做到了!那并不坏,是吗?祝贺你的团队中的每一个人,享受这一刻。以你最喜欢的方式庆祝。

当那个神奇的时刻过去时,是时候推出你的产品了。安全审查电子邮件让您了解此过程中的下一步操作。在发布控制台中完成您的列表并准备好您的营销团队。

我们可以帮助您启动。您的合作伙伴客户经理可以与您合作,并且合作伙伴社区可以在AppExchange上分发,营销,销售和支持您的产品。

然后坐下来看着你的数字增长。

安全审查(5)完成审查

学习目标

完成本单元后,您将能够:

  • 描述产品安全团队如何报告漏洞。
  • 解释如何在修复安全问题后重新提交您的应用以供审核。
  • 列出在批准后启动您的应用的步骤。

面对事实

您刚刚收到了Salesforce安全团队的电子邮件。您的产品已经过审核。你已经等了好几个星期了,所以你很兴奋。但是某种程度上,你害怕打开它:如果你没有通过,该怎么办?

如果你的产品没有通过它的第一次安全审查,它是在一个很好的公司。所有提交的产品中有一半未通过首次安全审核。安全并不容易!如果是这样,我们实际上并不需要安全审查过程。

让我们来探讨两种可能的安全审查结果 – 不是传递和传递 – 因为在开发产品时,您可能会遇到这两种情况。

咬牙坚持

内容

因为我们一直在谈论“通过”安全审查,所以您可能会将安全审查视为您通过或未通过的考试。但它并非真的如此黑白。将审查视为安全团队的反馈意见,以帮助您提高产品质量并增加成功发布的机会。

如果您的产品未通过其安全审核,您会将此反馈作为报告列出安全团队发现的漏洞。您收到的电子邮件还包含有关如何修复这些漏洞的详细说明。

Your security report

关于报告的好处是,它会给你找到的问题的具体描述。它在报告顶部提供了超链接的内容表,如下所示:

  1. SOQL注入漏洞

  2. 调试漏洞中的敏感信息

  3. 信息披露漏洞

  4. CRUD / FLS强制执行漏洞

每个条目都是一种安全漏洞。每个条目下面是发现漏洞的组件的名称。在目录下面是每个漏洞的详细描述。点击一个条目即可进入相应的描述。

我们去广泛。你深入

该报告列出了您的产品中发现的各种漏洞,但不是每个实例。如果您在列表中看到SOQL注入漏洞,请查看您的所有代码(而不仅仅是提到的组件),以了解SOQL注入机会。

我们还可以提醒您我们利用哪些漏洞进入您的应用程序,但我们无法做出详尽的列表。无论如何,您的团队在代码库中拥有更多的专业知识。因此,一旦知道这些漏洞存在,您就可以更快地找到这些漏洞。

测试不完美

我们只能花费有限的时间在您的产品中查找漏洞。有时,当重新审核应用时,我们会发现一些新类型的漏洞,这是我们第一次看不到。测试不全面,无论是宽度还是深度。因此,当您查看代码库时,请注意各种漏洞,即使报告中没有这些漏洞。

Keep calm and fix your code

在修复漏洞时,请不要忘记对您的产品重复使用扫描仪和对抗性​​测试,就像您在审查之前一样。它们有助于防止新漏洞潜入您的代码中。

检查您的做法以及您的准则

坐下来和你的团队聊聊,以处理安全审查的结果。以下是您可以用来开始对话的一些问题:

  • 这些漏洞是如何通过您自己的安全审查?
  • 你能做些什么来尽快找到它们吗?
  • 会有更多测试帮助吗?
  • 会有更多的人员或更多的时间帮助?
  • Salesforce的安全培训会有更多帮助吗?
  • 您是否从可应用于您的开发过程的安全审查中学到了什么?

没有完美的战略来实现安全 – 它需要奉献和决心。但是,您总是可以通过整合从每次安全审查中学到的内容来改进整体战略。

当然,你的成功就是我们的成功!如果您在修复漏洞或检查流程方面需要指导,请联系您的合作伙伴客户经理或技术布道者。如果您需要技术安全建议,我们的信任团队需要办公时间。

冲洗,重复

您已经修复了您的应用并改进了您的开发流程。你不能相信一切都更安全,你不能等待安全评论复赛。做最糟糕的Salesforce产品安全团队!

安全团队绝不会因为挑战而退缩。你只需要引起他们的注意。您是如何做的取决于您是否修复了在Salesforce平台上运行的代码。

如果您更改了在Salesforce平台上运行的代码,则必须上传新版本的托管软件包。如果您还对包进行了外部更改,请在完成向导时添加该信息:

  1. 在发布控制台中,单击“Listings”选项卡。
  2. 点击您的列表。
  3. 通过单击“Change Packages”将新的托管包上传到您的列表。
  4. 点击软件包上“Start Review”字段旁边的开始查看。
  5. 通过安全审查向导并按照正常的提交过程。

如果您仅修复了在Salesforce外部运行的代码,请编辑您现有的安全审核提交信息:

  1. 在发布控制台中,单击“Listings”选项卡。
  2. 点击您的列表。
  3. 点击软件包上“Edit Review”字段旁边的编辑评论。
  4. 浏览安全审查向导并更新任何已更改的信息。
  5. 在合作伙伴社区中记录一个案例,让产品安全团队知道您正在重新提交您的产品以供审核。在评论中包含您的包名称,ID和版本。

无论哪种方式,您不必支付另一设置费。只要您的软件包ID和您的名称空间不变,我们认为您的重新提交与以前一样。和第一轮一样,安全审查过程需要6到8周时间。

装运它

当您的产品通过安全审查时,您会收到一封很好的电子邮件,表示已通过审核。你做到了!那并不坏,是吗?祝贺你的团队中的每一个人,享受这一刻。以你最喜欢的方式庆祝。

当那个神奇的时刻过去时,是时候推出你的产品了。安全审查电子邮件让您了解此过程中的下一步操作。在发布控制台中完成您的列表并准备好您的营销团队。

我们可以帮助您启动。您的合作伙伴客户经理可以与您合作,并且合作伙伴社区可以在AppExchange上分发,营销,销售和支持您的产品。

然后坐下来看着你的数字增长。

安全审查(4)提交审查

学习目标

完成本单元后,您将能够:

  • 解释您的产品何时需要安全审查。
  • 列出您需要提交的安全审查材料。
  • 解释如何开始安全审查提交过程。
  • 描述安全审查提交过程。

知道何时需要评论

安全审查过程至关重要,但不一定非常痛苦。我们希望让它变得舒适和熟悉。我们希望它没有什么大不了的。

您知道,在AppExchange上启动产品之前,您的产品需要经过安全审查。但是每天都会出现新的威胁。因此,Salesforce产品安全团队可以随时要求您审核您的产品,即使该产品已获得批准。通常,AppExchange产品每年进行一次安全审核。

这里有个好消息:每次发布新版本的产品时,您都不需要通过安全审查。只需按照本单元中的同一提交流程进行操作即可自动重新批准。

组装你的材料

您提供给产品安全团队的内容取决于您的产品架构。审查你的产品的人们需要新客户使用它的一切。毕竟,他们伪装成有权访问正在运行的实例的攻击者。因此,请提供对您的应用使用的任何环境,软件包和外部组件的访问权限,并包括产品随附的任何文档。

产品安全团队也想知道你已经完成了作业。包括从您在产品上运行的扫描仪中获得的报告,以及任何误报的解释。

以下是安全团队需要的内容:

所需材料 AppCloud 带闪电组件的AppCloud 具有外部网络应用/服务的应用 与原生移动客户端的应用 仅限API
Lightning平台开发版组织 X X X X X
登录,外部组件的URL X X X
托管软件包 X X X X X
Checkmarx 报告 X X X X X
Chimera/ZAP 报告 X X X
误报文件(s) X X X X X
产品文档 X X X X X

在您请求安全审查之前:

  • 为您的产品创建一个列表,并上传您的托管软件包。
  • 与Salesforce创建分销协议。请联系您的合作伙伴客户经理获取帮助。

 

提交给向导

Salesforce产品安全团队知道他们要求你很多。所以他们创建了方便的安全评估向导来帮助您提交一切。

开始评论

Partner Community landing page with Publishing Console

从合作伙伴社区的发布控制台开始安全审查提交流程。

  1. 在发布控制台中,单击“Listings ”选项卡。
  2. 点击您的产品列表。
  3. 点击 App.
    App tab on Listings page
  4. 在软件包的名称和版本号下,单击开始审阅。该向导的第1步显示一个页面,其中显示了安全审查的概述以及要为其准备的项目。当你准备开始输入信息时点击下一步。
    Wizard step 1 screen: preparation

提供公司信息

在安全审查向导的步骤2和3中,告诉安全团队您的公司。

  1. 在步骤2屏幕上,为Salesforce安全团队可以联系问题的人员提供联系信息。
    Wizard step 2 screen: general information
  2. 点击 Save & Next.
  3. 在步骤3屏幕上,如果您的公司有书面安全策略,请选中顶部框。上传该政策的副本,并提供贵公司联系人的信息。
  4. 如果您的公司有任何相关的安全认证,请检查底部框,并包括有关这些认证的详细信息。
  5. 点击 Save & Next.
Wizard step 3 screen: policies and certifications

定义应用程序组件

在向导的第4步中,向我们介绍应用中的所有组件和服务以及它们的位置。

  1. 在步骤4屏幕上,如果您的产品使用任何Lightning Platform组件,请检查第一个框。
  2. 选择Managed Packages因为我们仅允许AppExchange上的托管软件包。
    Wizard step 4 screen: managed packages
  3. 在“使用的技术”部分(1)中,检查Apex和Visualforce是否使用它们。我们不再支持S-Controls,因此请确保您没有使用它们。如果您使用这些技术在Salesforce之外使用了任何API,请在文本框中列出它们。
    Wizard step 4 screen: technologies used
  4. 在下一节(2)中,如果您的产品包含移动或桌面客户端,请选中该框。在文本框中列出这些客户端使用的任何外部API
  5. 在接下来的两节中,如果您的产品实现了Database.com API(3)或Lightning Platform API(4),请选中相应的框。
  6. 在(5)下方,如果您的产品包含一个或多个移动网络应用程序,请选中该框。列出这些应用程序在文本框中使用的任何API。
    • 对于iOS客户端,请提供指向您的AppStore列表的链接。如果您的应用程序未在此处列出,请使用TestFlight for iOS并向srops@salesforce.com发送邀请。
    • 对于Android客户端,请提供指向您Google Play商品详情的链接。如果您还没有在那里列出您的应用程序,请链接到必要的SDK文件。
  7. 在下一节(6)中,如果您的产品包含网络应用程序或服务,请选中该框。选中您使用的任何平台和编程语言旁边的复选框,并列出您的产品存储的任何凭证。指出您的产品是否使用我们的单点登录服务。
    Wizard step 4 screen: frameworks, languages, web apps, services
  8. 在接下来的两个部分(7和8)中,选中表示您的产品是否有任何客户端或移动应用程序的框。
    Wizard step 4 screen: client and mobile apps
  9. 点击 Save.

提供测试环境

在向导的第5步中,为您的Lightning Platform组织和任何外部组件或服务提供凭据。

  1. 为您的Lightning Platform生产组织输入用户名和密码。确保它是一个启用了Locker Service的开发版组织。点击添加。该表格通过登录到组织来验证这些信息。
    Wizard step 5 screen: test environments
  2. 为您的产品使用的每个网络应用或服务输入凭据和URL,点击添加以验证每个应用或服务。对于网络应用程序,请从选取列表中选择适当的身份验证形式。
    Wizard step 5 screen: test environment credentials
  3. 对于您的产品包含的每个桌面客户端,请输入用于安装的链接以及任何凭据,许可证文件和配置数据。完成输入后,点击添加。
  4. 对于您的每个产品的移动应用程序,请提供平台,安装文件或链接以及任何其他有用的信息。点击每个之后的添加。

上传扫描仪报告

你快完成了!在向导的第6步中,向安全团队提供由您在产品上运行的扫描仪生成的报告以及任何相关文档。

Wizard step 6 screen: reports
  1. 在“Lightning Platform Security Code扫描仪报告”中(1)附上您从Checkmarx获得的报告。不要选中说你运行报告的方框 – 我们希望看到你的健康状况良好。它给了我们温暖和模糊的感觉。
  2. 如果Checkmarx报告有误报,请附上一份文件解释每一项。
  3. 如果您正在使用外部服务,那意味着您使用ZAP或奇美拉来扫描它们。在“其他报告或文件”(2)中提供来自这些工具的任何报告。将报告和相关文档捆绑到一个存档中并在此处上传。如果ZAP没有报告问题,我们要求您证明您已经测试了正确的外部端点。通过包含扫描该端点的每个工具的屏幕截图来执行此操作。
  4. 点击 Save & Next.

准备好信用卡

经过第7步的简要回顾后,我们要求您在向导的第8步中支付安全审查费用。对于您在AppExchange上销售的每种产品,我们都会要求2700美元的安装费用。这需要审查本身和您的第一笔150美元的AppExchange费用。如果您的产品是免费的,我们会放弃安全审查费用。

最后,您需要与Salesforce达成分销协议。如果您还没有,请在审核前联系您的合作伙伴客户经理。

你全部设置!

恭喜你,你做到了!深呼吸,做一些延伸。也许走一走。如果您的提交中缺少任何内容,安全审查团队将与您联系。一切就绪后,您会收到一封电子邮件,确认您的产品符合安全审核要求。

产品通常需要6到8周才能完成审核流程。产品安全团队完成后,他们会向您发送一份报告,列出他们发现的任何问题。如果他们发现没有错,他们会批准你的产品。真厉害!

接下来发生什么?继续找出。

安全审查(3)准备

学习目标

完成本单元后,您将能够:

  • 解释安全审查的目的。
  • 概述安全审查过程中发生的情况。
  • 总结安全审查的范围。
  • 列出可帮助您为安全审查做准备的工具。
  • 描述哪些扫描仪可以或不可以为您做什么。

了解未来

现在你已经将OWASP列表书签了。也许您的团队甚至采用了开发安全Web应用程序跟踪。您已经以一种全面保护其数据的方式设计了您的应用程序,并且您正在通过遵循安全编码实践来构建您的应用程序。

您知道安全审查流程正在等待您的产品,并且您知道无法通过AppExchange启动您的产品。但究竟是什么安全审查呢?

在安全的环境中测试你的防御

你不会声称你的应用程序中的某个功能没有经过测试就能正常工作,对吗?当然不是。

您的应用程序最重要的功能之一是保护客户数据。在Salesforce,我们相信这个功能非常重要,我们可以帮助您测试它​​。

在安全审查中,我们的产品安全团队会针对OWASP列表中描述的攻击来测试您的产品的防御措施。我们的测试人员戴上了防盗面具,并试图在持续数小时的密集会议中闯入您的应用。他们的任务是窃取他们无权访问的数据。

如果在首先你不成功…

如果我们的团队成功从您的应用中提取数据,他们会向您发送一份报告,列出他们利用的漏洞。您可以使用这些信息来强化您的应用,然后再次通过安全审查。我们在后面的单元中详细解释这个过程。虽然这不是有史以来最好玩的,但它比盗窃真实客户数据要好得多。

像任何测试方案一样,安全审查并不全面。它并没有涵盖所有可能的漏洞,并且通过审查并不是一个铁定的保证你的应用程序是完全安全的。但正如测试您的产品使您对其质量更加自信一样,安全评估为您提供重要反馈以加强产品的防御能力。没有保证产品安全的事情,但通过我们安全审查的应用程序非常接近。

我们回顾整个事情

也许你的应用程序是本机应用程序,只能在Salesforce平台上运行。或者,也许它是一个复合应用程序,具有位于云中或公司服务器上其他位置的架构组件或服务。外部托管的作品必须与其他作品一样安全。否则,攻击者可以使用它们作为入口点,就像窃贼可以使用通风管一样。无论您身在何处,您的应用程序的所有组件和服务都是安全审查的公平游戏。

以下是一些典型的应用程序体系结构以及各个部分的位置。

App体系结构 什么生活在哪里
AppCloud Off Platform Native Mobile App
100%原生 自定义对象

自定义闪电组件

自定义Apex代码

与外部服务的复合解决方案 自定义对象

Apex 码

在另一个平台(如AWS或Rackspace)上托管的服务(如地图)
使用移动应用程序的复合解 自定义对象

Apex代码

工作流程

适用于iOS和Android的原生应用程序
纯API的解决方案 已连接的应用 读取和写入AppCloud上托管的数据的独立应用程序。例如,与帐户和机会交互的会计解决方案
闪电Bolt

闪电组件

Apex 代码

爱因斯坦分析应用程序 应用

仪表板

镜头

数据集

数据流

自定义对象

产品安全团队试图攻击所有这些部分,而不仅仅是Salesforce平台上的那些部分。它深入挖掘并随处处理您的数据。相应地计划!例如,本地移动应用可以提供良好的用户体验,但是需要额外的工作来保护它们,具体取决于您将它们放在一起的方式。

带来一切表

当您提交您的应用程序进行审查时,请确保您提供完整的测试设置和使用它的说明。此设置必须包含启用LockerService的开发版组织。

如果您的解决方案包含原生移动应用,请为其添加安装链接。如果您要集成基于Web的外部帐户服务,请设置托管该实例的实例。

使用扫描仪进行您自己的评论

如果这个安全审查过程听起来有点可怕,不要担心。我们希望像AppExchange一样在AppExchange上查看您的产品,并且我们随时为您提供帮助。除了我们提到的资源外,我们还提供您的团队可以在您的产品上使用的扫描仪,为审核做准备。

这些扫描程序会针对特定的漏洞模式扫描您的应用程序扫描仪甚至在开发过程的早期派上用场。我们支持其中三个:

Scanner 描述 使用If
Checkmarx 扫描Salesforce AppCloud上托管的应用程序。 您的解决方案具有Apex代码,Visualforce元素和托管软件包。换句话说,总是使用Checkmarx。
Chimera 将最佳的开源扫描技术集成到一项服务中。以一个由几个动物中最强壮的部分组成的神话野兽命名。由Heroku提供支持。 您的解决方案的某些部分位于您控制的另一个平台上。
ZAP 由OWASP创建的免费在线扫描器。需要在本地系统上安装。 部分解决方案部署在您无法控制的域上。

这些扫描程序会生成包含他们在您的产品中找到的所有漏洞的报告。当然,他们找不到所有的漏洞。

误报

有时候扫描仪会发现一个并非真正问题的问题。例如,扫描程序会找到您已受保护的漏洞模式,并且无法识别您的保护方法。我们称这些错误为误报。

假设您添加了一些代码以防止恶意SQL查询,并且扫描程序无法识别您的代码是否解决了此漏洞。它报告了一个SQL注入漏洞。您可以将该报告解读为误报。

如果您认为错误是误报,请准备一份说明原因的文档,并将其与安全评估材料一起包含在内。具体说明你如何抵御所指出的漏洞。如果我们不必追逐你并让你解释给我们,它可以节省每个人的时间。

如何解读扫描仪报告

由于三台扫描仪具有不同的作者并在不同的平台上运行,因此会生成不同的报告。此表格显示如何响应每个报告的内容。

Scanner 修复 忽略
Checkmarx 任何分类为低,中或高的错误。 信息警告。
Chimera 所有错误,除了误报。 您确定的低严重性警告是误报;解释为什么在您的审查材料的文件。
ZAP 除了下一列中列出的所有错误。一旦错误得到解决,请使用您的评论材料提供扫描截图,以确认正在扫描正确的外部端点。 这些问题,你可以减轻,但你并不需要修复。一定要记录任何其他的误报。

尝试破解你自己的应用程序

扫描仪是伟大的,但没有人类智慧的替代品。在你解决了所有你所知道的安全问题后,试着再找一些!储存在黑色T恤和含糖苏打水上,并将你的测试者转化为黑客。

与团队的安全倡导者一起,制定对抗性测试计划,或攻击自己的产品并试图窃取其数据。 OWASP测试指南是一个很好的资源。

给测试黑客一个运行的应用程序实例,让他们放松一下任务,以获得对客户或系统数据的未经授权的访问。为成功的攻击提供奖品。

敌对测试可以产生一些令人惊讶的结果。你可能会发现自己在思考:“我可以发誓我们修正了这个问题!”或想知道你的队友如何擅长黑客攻击。请记住,被黑客入侵比替代方案要好得多。

在下一个单元中,我们逐步完成提交过程。

安全审查(2)安全战略

学习目标

完成本单元后,您将能够:

  • 确定你的团队中谁负责安全。
  • 列出将帮助您学习开发安全软件的资源。
  • 描述在开发产品时何时考虑安全性。

安全需要所有权

贵公司有关谁可以访问哪些信息的规则。当你今天来工作时,也许你使用钥匙或徽章进入办公室。您可能知道邀请家人和供应商参观的程序。希望你不会经常目睹整个陌生人在周围徘徊,但如果发生了,你就知道该怎么办了!

具体人员负责制定和执行这些规则。有时候甚至有一位负责人像首席安全官那样拥有一个特别的头衔。那个人一直在想你公司信息的安全性。

谁拥有产品的安全性?

您的应用或组件中的客户数据也需要保护,就像公司中的信息一样。你的开发团队是否有首席安全官?

诚然,安全是每个人的责任,但开发人员是忙碌的人,事情可能会因为准备好产品市场而忙碌。为确保安全仍然是重中之重,请考虑为您的团队任命安全倡导者。安全倡导者是您的团队的首席安全官,他们始终都在考虑产品的安全性。

学习编写安全代码

在让团队考虑安全性之后,下一步就是要了解有关构建安全软件的更多信息。有几种可用的资源,其中一些我们在最后一个单元中提到过:

资源 它提供什么
开放Web应用安全项目(OWASP)前10名列表 最常见的网络应用程序漏洞列表
CRUD和字段级安全 Salesforce中的记录级别和字段级别权限
Salesforce安全编码指南 安全审计中常见的一系列网络安全缺陷
Salesforce安全要求清单 技术和产品类型解释的问题

弄脏你的手

如果您真的想要安全编码的全面培训,请查看Develop Secure Web Apps踪迹。它提供了各种Web应用程序漏洞的详细说明和交互式示例。您还可以实时利用每个漏洞并修改源代码以防止它受到影响。

每个人都有责任

您的安全倡导者可以成为您团队的资源,但请记住,安全是每个人的责任。您的开发人员对这些问题越熟悉,他们在解决这些问题时就越好。

安全是关键功能,而不是附加组件

嘿,你正在编写的应用听起来很棒!尽管如此,世界在它启动之前不会看到它。什么时候准备好了?

没有人希望成为产品与其发布之间的一员。你的销售和营销团队不喜欢意外的延迟,他们不会让你忘记它。所以想象一下,如果您的发布日期因为Salesforce产品安全团队发现漏洞而被推回,那么情况会如何紧张。如果这是一个小问题,很容易解决。但是,如果由于基本的安全漏洞而必须回去改变设计,那么您将面临额外的工作,并可能导致很长的延迟。

考虑每个发展阶段的安全性

无论您使用什么方法编写软件,都要确保您的团队从一开始就考虑安全问题。在开发的每个阶段应用安全设计模式和编程实践,并测试您的应用程序是否受到攻击。在整个开发过程中,您可以采取以下几项措施来提高安全性:

  • 设计:最好的错误是你不必修复的错误。没有好的软件设计的替代品,安全的设计每天都会打败不安全的设计。请注意您希望用户如何与功能交互,并确保识别相关的漏洞。然后定义突出显示这些漏洞的特定用例。
  • 实施:如果您每天都有Scrum,请让您的安全倡导者与团队成员一起参与安全的编码策略。代码评论是讨论安全问题的另一个重要论坛。将安全编码指南纳入您的编码风格指南。 (你有一个风格指南,是吗?)
  • 测试:您需要一个特定的计划来测试您的产品的攻击漏洞。设计测试,以便它们具有可重复性,并在应用程序的整个开发过程中一致地应用它们。

要全面了解网络安全和测试,请查看OWASP测试指南。它可以帮助你把自己的计划放在一起。

保护整个产品

当我们谈论构建安全产品时,我们的意思是整个事情。 这包括生活在我们平台之外的部分,比如您在Salesforce之外托管的组件或服务。 别忘了将您可爱的原生移动应用包含在您的安全计划中。 他们也需要保护。

记得:

  • 攻击者只需要一个无人防守的入口点就可以毁掉你的一天。 还是一个月。 一致的安全策略可帮助您创建防弹产品。
  • 安全是每个人的责任,但您可以通过拥有安全拥护者来帮助您的团队记住它。
  • 您的团队可以使用我们提供的交互资源了解安全软件开发。
  • 每个发展阶段都有自己的安全考虑。

安全审查(2)安全战略

学习目标

完成本单元后,您将能够:

  • 确定你的团队中谁负责安全。
  • 列出将帮助您学习开发安全软件的资源。
  • 描述在开发产品时何时考虑安全性。

安全需要所有权

贵公司有关谁可以访问哪些信息的规则。当你今天来工作时,也许你使用钥匙或徽章进入办公室。您可能知道邀请家人和供应商参观的程序。希望你不会经常目睹整个陌生人在周围徘徊,但如果发生了,你就知道该怎么办了!

具体人员负责制定和执行这些规则。有时候甚至有一位负责人像首席安全官那样拥有一个特别的头衔。那个人一直在想你公司信息的安全性。

谁拥有产品的安全性?

您的应用或组件中的客户数据也需要保护,就像公司中的信息一样。你的开发团队是否有首席安全官?

诚然,安全是每个人的责任,但开发人员是忙碌的人,事情可能会因为准备好产品市场而忙碌。为确保安全仍然是重中之重,请考虑为您的团队任命安全倡导者。安全倡导者是您的团队的首席安全官,他们始终都在考虑产品的安全性。

学习编写安全代码

在让团队考虑安全性之后,下一步就是要了解有关构建安全软件的更多信息。有几种可用的资源,其中一些我们在最后一个单元中提到过:

资源 它提供什么
开放Web应用安全项目(OWASP)前10名列表 最常见的网络应用程序漏洞列表
CRUD和字段级安全 Salesforce中的记录级别和字段级别权限
Salesforce安全编码指南 安全审计中常见的一系列网络安全缺陷
Salesforce安全要求清单 技术和产品类型解释的问题

弄脏你的手

如果您真的想要安全编码的全面培训,请查看Develop Secure Web Apps踪迹。它提供了各种Web应用程序漏洞的详细说明和交互式示例。您还可以实时利用每个漏洞并修改源代码以防止它受到影响。

每个人都有责任

您的安全倡导者可以成为您团队的资源,但请记住,安全是每个人的责任。您的开发人员对这些问题越熟悉,他们在解决这些问题时就越好。

安全是关键功能,而不是附加组件

嘿,你正在编写的应用听起来很棒!尽管如此,世界在它启动之前不会看到它。什么时候准备好了?

没有人希望成为产品与其发布之间的一员。你的销售和营销团队不喜欢意外的延迟,他们不会让你忘记它。所以想象一下,如果您的发布日期因为Salesforce产品安全团队发现漏洞而被推回,那么情况会如何紧张。如果这是一个小问题,很容易解决。但是,如果由于基本的安全漏洞而必须回去改变设计,那么您将面临额外的工作,并可能导致很长的延迟。

考虑每个发展阶段的安全性

无论您使用什么方法编写软件,都要确保您的团队从一开始就考虑安全问题。在开发的每个阶段应用安全设计模式和编程实践,并测试您的应用程序是否受到攻击。在整个开发过程中,您可以采取以下几项措施来提高安全性:

  • 设计:最好的错误是你不必修复的错误。没有好的软件设计的替代品,安全的设计每天都会打败不安全的设计。请注意您希望用户如何与功能交互,并确保识别相关的漏洞。然后定义突出显示这些漏洞的特定用例。
  • 实施:如果您每天都有Scrum,请让您的安全倡导者与团队成员一起参与安全的编码策略。代码评论是讨论安全问题的另一个重要论坛。将安全编码指南纳入您的编码风格指南。 (你有一个风格指南,是吗?)
  • 测试:您需要一个特定的计划来测试您的产品的攻击漏洞。设计测试,以便它们具有可重复性,并在应用程序的整个开发过程中一致地应用它们。

要全面了解网络安全和测试,请查看OWASP测试指南。它可以帮助你把自己的计划放在一起。

保护整个产品

当我们谈论构建安全产品时,我们的意思是整个事情。 这包括生活在我们平台之外的部分,比如您在Salesforce之外托管的组件或服务。 别忘了将您可爱的原生移动应用包含在您的安全计划中。 他们也需要保护。

记得:

  • 攻击者只需要一个无人防守的入口点就可以毁掉你的一天。 还是一个月。 一致的安全策略可帮助您创建防弹产品。
  • 安全是每个人的责任,但您可以通过拥有安全拥护者来帮助您的团队记住它。
  • 您的团队可以使用我们提供的交互资源了解安全软件开发。
  • 每个发展阶段都有自己的安全考虑。

安全审查(1)理解安全性

学习目标

完成本单元后,您将能够:

  • 描述你的产品的安全性危害。
  • 解释安全审查的商业价值。
  • 描述最常见的网络漏洞。
  • 识别独特的Salesforce安全问题。

我们重视您的合作关系

作为Salesforce的AppExchange合作伙伴,您选择通过我们的平台进行创新,为我们的所有客户创造出优质的产品。您的创新激励着我们,您的合作关系对我们的持续成功至关重要。

在Salesforce,我们的最高优先级是我们客户的信任。正如Salesforce联合创始人兼技术执行副总裁Parker Harris所说:“对我们公司而言,没有什么比我们客户的隐私数据更重要。”信任需要安全。

互联网时代的安全

你有没有听到这个消息?黑客利用最新的安全漏洞成功攻击了一家大公司。成千上万的私人客户记录被盗,包括个人和财务信息。作为回应,该公司承诺为受影响的每个人支付3年的信用保护费用。你收到他们的来信吗?

每周我们都会听到这样的故事。也许你或你认识的人甚至收到了其中一家公司的来信。我们看到有关勒索软件危害医院病人或扰乱公共交通的新闻报道。攻击者窃取公司内部文件并将其出售给竞争对手。这些事件变得非常频繁,我们现在几乎期待他们。

根据Ponemon研究所的研究,不安全的软件每次事件的平均成本为400万美元。根据战略与国际研究中心(CSIS)的另一项调查,美国公司每年共同为网络犯罪损失1000亿美元。

Insecure software costs businesses a lot of money

没有安全,没有信任

这使我们重新回到了信任,Salesforce的头号价值。以前的数据意在考虑重建客户信任的间接成本,但信任本身很难量化。

Salesforce通过说服企业客户将其数据存储在云中来改变商业世界。起初这是一项艰难的销售,因为这些客户中有许多担心数据的安全性。但是经过多年的创新,建立客户的信任,并且一次又一次地成功,Salesforce证明了云计算是最好的商业平台。

在Salesforce,我们客户的成功就是我们的成功 – 而您的成功就是我们的成功。 Salesforce客户通过订阅模式购买我们的服务。如果他们不能相信我们和你 – 以保护他们的数据,他们没有理由坚持!

安全需要承诺

作为Salesforce合作伙伴,您有一个优势:您正在Salesforce平台上构建应用程序。我们在我们的平台中构建安全性,以便您不必从头开始。但是,我们依靠您使用该平台以保护客户数据的方式构建应用程序。为了帮助您,Salesforce安全团队在对AppExchange进行绿色照明之前,对所有产品进行严格审查。

对于我们的AppExchange合作伙伴来说,通过安全审查需要进行规划和努力,但收益非常可观。通过等级表明您对客户的承诺,并为您的产品增加真正的价值。客户知道AppExchange上的任何产品都可以为他们的数据提供最高级别的保护。

帮助我们帮助你

在Salesforce,我们为保护客户数据发挥的作用感到自豪。我们知道数据安全是团队努力。因此,我们为您提供实施安全所需的工具,您可以依靠它们来构建安全的产品。

学会识别和消除威胁

Salesforce安全审查侧重于应用程序对最常见攻击的漏洞。产品安全团队通过一系列这些攻击来触发您的应用。他们尽最大努力获得产品中宝贵的数据。如果他们不能入侵,你通过审查!

在本单元中,我们向您提供有关如何在AppExchange上列出的应用程序中毫发无损的内部信息。

十大网络安全威胁

开放式Web应用程序安全项目(OWASP)包含最常见Web攻击的综合列表。前三项是:

  • Injection: 查询将错误数据发送到系统以尝试造成损害。
  • Session hacking: 攻击者通过截取证书获得进入安全会话的入口。
  • Cross-site scripting: 应用程序将未验证的数据传递给Web浏览器,允许恶意代码运行。

要通过安全审查,您必须保护您的应用免受OWASP列表中的这些和其他攻击。使用该列表作为指导,在您的应用程序中开发最低级别的安全性。要了解有关这些恶意攻击的更多信息,请查看Develop Secure Web Apps踪迹。

特定于Salesforce的安全性

Salesforce平台的独特安全功能之一是CRUD / FLS:创建/读取/更新/删除和字段级安全。此功能(在此详细描述)决定谁可以访问单个组织中的单个对象和字段。由于CRUD / FLS与对象在应用中的交互方式有关,因此在设计应用时必须考虑它。

做对,没有人会注意到

花时间设计和开发出色的功能是很有意义的。你的销售人员肯定会重视这一努力,因为它使你的产品易于销售。当然,您的客户会欣赏这一努力,因为他们可以享受这些结果。

安全工作并不那么高调和富有魅力。尝试与客户讨论SSL或MD5哈希,并注视他们的眼睛。如果你喜欢为自己的工作获得赞誉,那么很难为加强产品安全性而感到兴奋。因为当你做好你的工作时,没有人注意到。

但不要让这阻止你。我们都知道,任何阻止攻击者的人都是超级英雄。您的客户可能永远不知道您投入了多少工作。但他们会感谢您为您的业务提供的服务 – 并向其他人推荐您的应用。这不是那些最好的赞美吗?

在下一个单元中,我们将向您介绍如何创建构建安全应用程序的计划。