【应用安全测试】白盒,黑盒和灰盒漏洞测试:有什么区别,为什么重要?
2017年出现了创纪录的安全漏洞数量,截至第三季度末已报告超过16,000个漏洞。这比2016年的总和还要多。虽然一些组织正在迅速解决这些应用程序安全风险,但其他组织却未能这样做。 SANS最近的一项调查发现,10%的企业根本没有测试他们的安全应用程序,另外24%的企业每年只测试一次或更少。仅有12%的组织定期执行应用程序安全测试。
为什么企业忽视应用程序安全测试?快速开发周期是一个主要因素,应用程序安全测试被视为阻碍开发和部署的障碍。 2017年关于移动和物联网应用安全测试的报告发现,高达75%的应用安全专业人员感到有压力要求以安全为代价来推迟发布。
这些统计数据之间的二分法令人震惊。企业需要更加关注应用程序安全性测试,即使这意味着放慢速度。在应用程序部署之后修复漏洞会给企业带来更多时间和资源,更不用说负面宣传,收入损失,客户数据和信任丢失,声誉受损,甚至可能采取法律行动应该利用这些漏洞。
了解可以采用的不同方法进行应用程序安全性测试可以帮助您制定可提供最大投资回报率的策略,平衡安全性的提高以及所需的额外时间和资源。
有三种应用程序安全测试,通常称为黑盒安全测试,白盒安全测试和灰盒安全测试。了解每种类型之间的差异将有助于您形成一个强大的应用程序安全性测试计划,从而降低您面临潜在威胁的可能性,并最大限度地利用资源,资金和时间。
黑匣子安全测试
黑盒安全测试模仿黑客的行为,从外部攻击应用程序。在这样做时,它会测试应用程序的功能。它是基于攻击者不了解应用程序内部工作原理的假设来执行的:它将应用程序视为“黑盒子”,其内容是您无法看到的,就像黑客无法看到您的应用程序一样。
黑盒安全测试可以模仿各种技能水平的黑客,例如:
- 脚本小子(滑动) - 未经训练的个体(“小子”)使用由其他人开发的程序或脚本来攻击应用程序,并扫描已知的漏洞。
- 中级黑客 - 拥有更多关于开发,系统和网络的知识的个人,因此可能造成更大的破坏。
- 精英黑客 - 更有可能由民族国家赞助的个人。他们有更多的时间和资源来投入黑客攻击。
此测试会查找已知漏洞,弱访问控制以及应用程序中的弱防御机制。要彻底,测试可能发挥作用的所有变量和场景非常重要。
黑盒安全测试的优点是:
- 此测试可以比白盒漏洞测试更快地完成,因为它的范围更加有限,只能从应用程序外部进行攻击。
- 虽然这取决于具体的应用和测试范围,但成本可能更低。
缺点包括:
- 它并不全面,因为它只是从外部进行测试。
- 如果没有明确指导特定测试的区域和/或漏洞,测试用例可能难以设计。
- 如果您想要彻底,可能需要花费大量时间来尝试不同的场景和用例。黑客通常比你手上的时间更多,所以你不能总是预见到他们可能会尝试的一切。
白盒安全测试
白盒安全测试是基于对应用程序的所有知识,测试应用程序的内部工作而执行的。通常可以访问完整的源代码,因此源代码扫描和评论通常作为测试过程的一部分。提供对应用程序的内部(本地)完全访问,包括登录凭据和完全身份验证。白盒安全测试应在应用程序投入生产之前完成,因此可以在部署之前识别和纠正漏洞。
白盒漏洞测试有几个优点:
- 从源代码到应用程序架构和设计,发现各处潜在的漏洞
- 提供应用程序安全性的全面测试
- 可以在开发过程的早期开始
此测试的缺点是:
- 发现的任何潜在漏洞都需要通过黑盒测试进一步测试,以确定它们是否实际可利用,这需要额外的时间。采取此步骤可帮助您确定修复工作的优先顺序。
- 这种类型的测试更长,减慢了开发过程并与快速开发生命周期相冲突。
- 由于需要时间和高技能资源,它更昂贵。白盒安全测试需要了解应用程序不安全的原因,读取代码的能力以及软件架构中的安全风险。
灰盒安全测试
顾名思义,灰盒安全测试是白盒和黑盒测试的结合。当您需要平衡时间,成本和影响时,这是最理想的方法。
根据应用和测试目标,可以以各种方式使用灰盒安全测试。例如,它可以通过测试白盒测试中发现的潜在漏洞的可利用性来执行。
此测试的基础是黑客对应用程序的内部工作方式知之甚少,包括但不限于以下方案:
- 黑客对应用程序的数据流和体系结构有着高度的了解。
- 黑客可以访问部分源代码或编译的二进制文件,并且可能知道应用程序正在使用的语言和特定技术。
- 黑客可能拥有他/她可以登录的用户或管理员帐户。
这些都不是无理的假设:经验丰富的攻击者有办法发现这样的事情。
然后创建场景以测试具有更高优先级或关注的特定区域,模仿可能对应用程序的内部工作有部分了解的真正黑客。在优势方面,灰箱安全测试:
- 以更有针对性的方式攻击应用程序的某些部分
- 提供黑盒和白盒测试的好处
- 比白盒安全测试花费更少的时间,使其更好地平衡应用程序安全测试的时间,精力和成本
- 为时间和资源提供最佳投资回报率
- 更好地表示一个确定的黑客,他可能至少对应用程序的内部工作有一些了解,并有更多的时间专注于攻击,可能会研究公司,开发人员和应用程序。
当然,灰盒安全测试有一些缺点:
- 它不会涵盖应用程序的所有方面,因为这将非常耗时。
- 它缺乏白盒测试提供的源代码的完整覆盖。
- 测试用例可能难以设计。
为什么这一切都很重要?
了解三种类型的应用程序安全性测试之间的基本差异以及每种方法在提高应用程序安全性方面的作用非常重要。拥有多个选项有助于制定最适合您项目预算和时间表的方法。
在理想的世界中,企业将采用混合方法,根据特定应用和可用资源采用某些类型的测试。
为了帮助制定应用程序安全测试策略,请记住每种测试的最佳用途:
- 黑匣子安全测试 - 模拟脚本“小子”(没有大量时间,资源或技能的攻击者)的短期黑客攻击。
- 白盒安全性测试 - 确保您的开发人员不会在应用程序中引入漏洞
- 灰盒安全测试
- 模拟具有更多知识和技能的黑客攻击
- 模拟来自内部威胁的攻击
- 测试白盒测试中发现的潜在漏洞
了解所有这三种风格并利用每种风格的优势可帮助您创建更具弹性的应用程序安全配置文件。花时间预先制定应用程序安全测试计划,并将其纳入开发过程,可以使您的应用程序无法应对当今市场中安全漏洞的增加。
原文:https://codedx.com/black-white-and-gray-box-vulnerability-testing-code-dx-blog/
本文:http://pub.intelligentx.net/node/478
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 282 次浏览