【安全测试】应用程序漏洞测试软件 - 帮助保护软件安全的工具

Chinese, Simplified

您已经接受了应用程序漏洞测试的重要性,以确保软件的安全性。非常好。在应用程序漏洞测试软件方面有很多选择,因此知道哪些工具是正确的工具可能会让人感到困惑。在应用程序漏洞测试方面,不同的工具可以识别不同的问题,因此您需要考虑使用多个问题。这使得对不同类型的工具及其重要性的一般理解非常重要。

您可以使用许多工具,包括开源和商业产品。开源工具是免费的,任何人都可以下载。这使它们成为一种方便且低成本的测试方法 - 并且是一种开始使用的好方法。另一方面,商业工具是许可的,使用受到限制,当然,它们必须付费。但是,使用商业工具获得的部分功能是技术支持和更高的安全性。商业工具通常也更先进,具有更多功能。开源和商业应用程序漏洞测试工具都有其价值和地位,但统计数据表明,许多组织没有充分利用这些工具。

SANS最近的一项调查发现,10%的企业根本没有测试他们的安全应用程序,另外24%的企业每年测试一次或更少。此外,只有12%的人会定期进行测试。

应用程序漏洞测试中的这些漏洞使组织容易受到可轻松避免的安全威胁。企业需要在应用程序漏洞测试中更加全面。虽然开源和商业测试工具都可以提供帮助,但工具可以进一步细分为特定类型,帮助组织了解每种工具带来的内容。然后可以制定和部署适当的应用程序漏洞测试策略。

静态应用程序安全性测试(SAST)工具


我们将讨论的第一类应用程序漏洞测试工具是静态应用程序安全测试(SAST)工具。 SAST工具也称为源代码分析工具或白盒测试。这些工具检查安全漏洞的源代码,字节代码或应用程序二进制文件。

由于多种原因,SAST工具对于应用程序漏洞测试很有价值。具体而言,它们具有以下优点:

  1. 他们发现理论问题,寻找开发人员可能不知道的已知漏洞模式
  2. 您可以自动执行测试过程,因为您无需人工干预即可扫描代码
  3. 它们是可扩展的
  4. 它们非常适合可以自信地自动发现的问题,例如SQL注入缺陷。这里需要注意的是,虽然有一些工具和技术可以帮助防止SQL注入攻击,但它们并不总是正确实现,如果有的话,这使得它成为数据库驱动应用程序的主要攻击媒介之一。
  5. 开发人员很容易消化输出,因为这些工具可以识别存在问题的代码中的确切位置

但是,要记住SAST工具存在一些缺点。要注意的主要问题是:

  1. SAST倾向于识别大量的误报
  2. 结果需要进行分类,需要时间来分析并优先考虑结果
  3. 许多漏洞(例如身份验证问题)都不容易自动发现。很难证明发现的“问题”是否是可验证的安全威胁
  4. 许多SAST工具在分析无法编译的代码方面做得很差,因此您需要完整且可构建的源代码包
  5. SAST可能非常耗时,并且可能对敏捷开发及其相关的快速开发周期产生负面影响

当您探索SAST工具的市场时,您将遇到的一些大牌是Fortify SCA(静态代码分析器),CodeSonar,Veracode和Checkmarx。这些都是市场上声誉良好的名称,在您根据测试需求评估这些工具时,应考虑上面讨论的利弊。

动态应用程序安全性测试(DAST)工具


下一个主要类型的应用程序漏洞测试工具是动态应用程序安全测试(DAST)工具。 DAST工具也称为漏洞扫描工具或黑盒测试,从外部接近应用程序,如“机器人黑客”,搜索漏洞。 DAST工具对于应用程序漏洞测试很重要,因为它们:

  1. 在应用程序运行时检查它,尝试以意想不到的方式对其进行操作以暴露潜在的漏洞
  2. 模仿攻击者对应用程序知之甚少,模拟外部黑客
  3. 提供自动化测试流程,因为它们独立于人工协助运行
  4. 提供可扩展性

DAST工具的缺点包括:

  1. 它们需要运行的应用程序,因此在应用程序达到完成级别之前,您无法使用它们
  2. 在开发周期的后期使用它们使得它们不太适合在开发过程早期识别和纠正问题
  3. 识别威胁可能需要更长时间,因为您可能需要操纵工具以使其尽可能多地覆盖应用程序的代码
  4. 它们可能无法充分模仿具有应用程序内部知识的人员的攻击,而高级黑客可能能够实现

DAST领域的大牌包括商业和开源工具,如BurpSuite,HP WebInspect,OWASP ZAP和Appscan。与SAST工具一样,在选择哪种DAST工具最适合您的应用时,必须考虑优缺点。

交互式应用程序安全性测试(IAST)工具


随着我们在复杂性方面的提升,我们开始使用交互式应用程序安全测试(IAST)工具,它结合了SAST和DAST。 IAST工具 - 也称为Glass Box测试 - 使用工具技术在应用程序运行时利用其中的信息来查找漏洞。

IAST工具为应用程序漏洞测试带来了诸多好处,使测试人员能够:

  1. 更准确地查找漏洞,从而减少误报
  2. 提供更全面的应用程序代码覆盖
  3. 根据需要进行规模测试
  4. 为开发人员提供即时反馈,以便及时解决问题
  5. 将测试轻松纳入开发过程

IAST工具的缺点是:

  1. 仪器可能会对应用程序性能产生负面影响,因此您的测试体验可能与实际用户体验不同
  2. 它们代表了相对较新的技术,因此可能出现其他潜在的问题或缺点

一些供应商为这两种方法提供了工具,但它们通常作为两个单独的工具提供。现在有一些提供集成解决方案的厂商,如Acunetix,HPE和IBM,使它们成为应用安全测试的优秀工具。

威胁建模工具


威胁建模工具是应用程序漏洞测试的另一种资源。威胁建模是识别,评估和确定优先级的潜在漏洞的过程。可以采用许多方法,这些方法将在下面详述,并且从潜在攻击者的角度进行测试。威胁建模通过识别应该受到最多关注的威胁和漏洞,并找到最容易受到攻击的区域来节省时间和资源。

一些最常见的威胁建模工具包括:

  1. STRIDE  - 根据攻击者可能具有的各种动机对已知威胁进行分类,例如篡改数据或身份欺骗。
  2. DREAD  - 比较与每个已知威胁相关的风险等级并确定其优先级。
  3. Trike  - 使用基于风险的方法的框架。
  4. AS / NZS 4360  - 澳大利亚/新西兰标准,是第一个(也是唯一一个)风险记录和管理标准。
  5. 常见漏洞评分系统(CVSS) - 评估威胁和漏洞严重程度的行业标准。
  6. OCTAVE  - 一种专注于组织风险而非技术风险的模型。
  7. ThreatModel SDK  - 一个Java库,使供应商能够分析来自最常见的威胁建模工具的报告。

所采用的特定威胁建模方法并不像确保在测试过程中选择和仔细执行至少一种方法那样重要。

手动测试


如果不提及手动测试,就不会讨论应用程序漏洞测试:良好的,老式的代码审查。优秀的开发团队应该将代码审查作为标准开发流程来确保质量代码,但应该将安全思维纳入其中。在您的代码流程中添加安全检查(可能涉及对问题有特定了解的其他人员)可能会使您的敏捷开发工作流程保持运转,同时仍在寻找安全威胁和潜在漏洞。

手动代码审查通常从安全测试人员开始接收开发人员对应用程序的简报开始。然后根据时间,资源和预算制定计划。目标应该是根据他们的专业领域使用测试人员,让他们测试他们最了解的领域。必须审查所有发现的误报,并与开发团队分享真实的积极因素。

手动测试可以减少误报,并可以识别自动化工具遗漏的问题。然而,考虑到所需的(人类)资源,这种测试也难以扩展。

混合方法是最好的


不同应用程序漏洞测试工具的概述可以快速演示每种类型的工具都有优点和缺点。这就是为什么只使用一种工具或一种工具进行测试会使您的应用程序面临更大的风险。利用来自多个类别的工具的混合方法可提供最佳覆盖率并降低应用程序的风险。随着您的前进并为应用程序安全性测试创建正式的策略,OWASP Benchmark是评估各种类型的测试工具的宝贵资源。这将帮助您为您的应用和业务选择最好的。

原文:https://codedx.com/application-vulnerability-testing-software-tools-help-secure-software-2/

本文:http://pub.intelligentx.net/node/479

讨论:请加入知识星球或者小红圈【首席架构师圈】

 

SEO Title
Application vulnerability testing software – tools that help secure your software