跳转到主要内容
Chinese, Simplified

应用程序安全性测试是开发过程中不可或缺的一部分。适当的测试方法使用多种工具(和工具类型),并将应用程序安全性测试结合到应用程序开发生命周期的设计,开发和生产阶段。但是你可能会发现自己被所有这些测试工具的结果所淹没所淹没。

您如何对各种来源的结果和报告进行排序?哪些应用程序漏洞是合法且可利用的?哪些需要您立即关注?而且 - 最重要的问题之一 - 在进入下一个开发阶段之前,如何让开发人员关注这些威胁并修复它们?

在这篇文章中,我们简要介绍了应用程序安全性对敏捷软件开发的重要性以及为什么需要使用多个测试工具。我们还承认使用多种工具带来的挑战,并向您展示如何克服这些问题以快速有效地修复代码。

DevOps与DevSecOps


大多数应用程序开发人员都熟悉敏捷过程。重点是创建一个协作的工作环境,逐步完成工作。

这通常通过集成开发环境(IDE)完成,该环境可能包含源代码编辑器,编译器和解释器,以及调试器和构建自动化工具。

敏捷开发依赖于持续集成(CI)和持续开发(CD) - 这些方法要求开发人员经常将代码检入共享存储库。每次签入都由自动构建验证,可以及早发现错误并立即修复。

DevOps和DevSecOps已经成为两种密切相关的方式来遵循敏捷流程。 DevOps打破了开发和IT运营团队之间存在的传统孤岛。重点是用户体验。创建协作和沟通的环境有两个目标:

  1.    快速部署。
  2.    识别并纠正问题。

DevSecOps通过在整个软件开发生命周期中确认安全性的重要性,更进一步。从DevOps工作流程的最初阶段开始,注意开发过程的每个步骤的安全性。

应用程序安全性测试在整个开发过程中持续执行,并且问题在找到时得到修复。 DevSecOps方法与Agile软件开发一致,并提供以下几个好处:

  1. 一旦找到问题就更容易解决问题,而且花费更少。
  2. 每次迭代都为商业部署做好了准备。
  3. 软件可以更快地更新和部署,使您能够比竞争对手更快地满足客户和市场需求 - 使用安全的产品。

组织能够更好地满足用户需求,并以更及时有效的方式交付高价值产品。联邦机构是拥有这种方法的领先组织之一。

DevSecOps的优势 - 包括降低成本,提高客户价值和增加代码覆盖率 - 在DevSecCon的白皮书中有更详细的讨论。

但DevSecOps方法需要使用多种测试工具和工具类型,以便在整个过程中为应用程序安全提供应有的关注。让我们看看两种最常见的类型 -  SAST和DAST。

 

SAST和DAST:为什么你需要两者


两种最常见的应用程序漏洞测试工具类型是静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)工具。

SAST工具从内部检查应用程序,查看源代码,字节代码或应用程序二进制文件以查找安全漏洞。另一方面,DAST工具从外部接近应用程序,模仿“机器人黑客”来发现漏洞。

有关SAST和DAST工具的优缺点,请查看我们最近关于应用程序漏洞测试软件的博客文章。

安全的软件开发生命周期需要全面的应用程序安全测试因此,您需要同时使用SAST和DAST工具 - 以及每种类型的多个工具。

市场上的每种工具都有其优点和缺点。您需要使用多种工具来确保从各个角度创建安全的应用程序。

有许多开源工具可以用很少甚至免费的方式来全面覆盖您的应用程序。但是多个工具可能难以管理。

数据过载以及如何有效地管理它
使用许多工具和不同类型的工具是在应用程序开发中产生某些挑战的必要之处。

每个工具都会生成一个充满潜在漏洞的报告(格式不同)。结果需要交叉引用以删除重复项,您需要确定哪些潜在威胁是真正可利用的漏洞。此外,您需要知道哪些是最大的威胁,以便您可以先解决它们。

然后是让开发人员关注这些问题的问题。开发人员不希望超出他们首选的工具包或停止修复潜在问题。只要代码有效(无论潜在威胁如何),他们只想继续构建。您如何跟踪是否有人正在处理某个问题以及是否/何时修复了问题?

有一种方法可以管理所有这些工具及其脱节结果,因此您可以简化应用程序安全测试过程 - 应用程序漏洞管理器。

Code Dx Enterprise就是这种工具的一个例子。它不是另一种测试工具 - 但它释放了您正在使用的测试工具的真正力量,并提供了从结果中获得真正价值的方法。您可以获得更好的漏洞覆盖率和更少的误报。

无成本和低成本开源工具的价值得以实现,因为这些工具的结果可以快速相关。这消除了手动清除这些结果的耗时,繁琐且容易出错的过程。

全面的应用程序安全测试过程变得可以实现。以下是应用程序漏洞管理器中要查找的一些功能:

  1. 重复数据删除 - 自动删除来自无数报告的重复结果。您将收到一份包含一组结果的报告。该工具适用于多种测试技术,包括SAST,DAST,IAST,第三方组件分析,威胁建模和人工审核。
  2. 补救管理 - 识别存在漏洞的特定代码行,并识别相邻的漏洞和漏洞。通过集中控制台,您可以分配,跟踪和监控修复进度。
  3. 工作流程集成 - 让开发人员关注安全威胁的好方法是什么,而不是让它成为开发环境的一部分?与Eclipse等流行环境集成使开发人员可以轻松解决问题。嵌入到持续集成环境中并与Jira问题跟踪工具集成的工具提供了额外的简化。与Jenkins构建服务器集成允许您在Jenkins中启动分析。
  4. 报告 - 各种报告可以轻松地对测试结果进行排序并跟踪补救措施的进展情况。报告修复问题所需的时间使您能够确保快速进行补救。
  5. 应用程序漏洞关联(AVC) -  SAST工具可识别潜在漏洞,而DAST工具可识别哪些漏洞实际可利用。结合所有这些结果,您可以了解哪些威胁是真实的并且具有最高优先级
  6. 合规性检查 - 根据HIPAA,DISA-STIG和PCI DSS等法规自动检查您的代码库。标记违规行代码,并识别特定违规行为。建议遵守法规。

应用程序漏洞管理器不再使用各种工具和技术进行安全测试。您可以获得全面的安全保障,但不必浪费时间和资源对结果进行分类,识别真实威胁,并跟踪它们是否已修复。

安全性受到DevSecOps的关注。你保持敏捷,而不是淹没在结果的海洋中。

原文:https://codedx.com/how-to-manage-sast-and-dast-results-code-dx-blog/

本文:

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

Article
知识星球
 
微信公众号
 
视频号