安全审查(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测试指南是一个很好的资源。

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

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

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