定义

“策略即代码”是一种通过代码来定义和管理安全规则、标准和条件的方法。它是一种在持续集成/持续交付/持续部署 (CI/CD) 管道中以编程方式执行安全和风险策略的方法。在应用程序安全测试环境中,它会对策略评估、响应和通知的规则进行编码,使安全团队能够自动执行测试工作流程。

“策略即代码”的工作原理是什么?

策略采用高级语言编写,代码被输入到使用查询的策略引擎中。策略引擎将这些策略用作输入,对其进行处理,然后交付查询结果。此结果会生成一个与现有策略一致的决策,以确定哪种类型的应用程序安全测试 (AST) 是合适的、何时应该使用以及在何处使用。

“策略即代码”是一个脚本化可读文件,为测试给定的应用程序提供先决条件。这些文件以支持的编程语言(例如 YAML 或 Python)编写,与组织使用的工具兼容。策略是通过API 调用 CI 管道来执行的,因此可以在不破坏当前构建的情况下运行安全测试。

编写“策略即代码”的关键考虑因素包括

  • 依赖关系。测试是否会破坏构建或部署? 哪些类型的发现需要上报提交至问题跟踪系统?
  • 代码更改。什么时候实施了更改? 更改的幅度多大? 这是否需要额外的测试或手动代码审查?
  • 被测试应用程序的业务关键性。此应用程序是否处理敏感数据? 是否存在导致停机的重大风险? 此应用程序的攻击面是什么?


“策略即代码”的优点是什么?

在应用安全测试的环境下,组织可以利用“策略即代码”来定义何时测试、应使用什么测试工具以及是否需要测试的条件。通过对这些参数进行编码,安全团队可以简化多个 AST 工具的协调,并在其测试工作流程中实现精确性。这使得安全策略能够一致、自动地执行,并最终能够在不影响开发速度的情况下实现更好的软件质量。

更具体地说,执行“策略即代码”在这些重要方面都会有所帮助。

  • 它能加快安全测试速度。通过自动化策略执行,无需人工干预即可触发安全测试,并且仅在需要时触发。
  • 它能提高效率。通过从方程式中删除手动策略执行,可以动态更新和共享策略,从而消除拖慢进程的不必要人为因素。
  • 它有助于版本控制并提高可视性。利益相关方可以轻松查看其操作中发生的情况,并且自动化版本控制允许在出现与新版控制相关的问题时进行无缝更新或删除更新。
  • 它能最大限度地减少错误并实现验证。实施自动化策略后,可以避免人为参与导致的错误。此外,当策略采用代码编写时,可以轻松运行验证活动并确保准确性。
     

“策略即代码”如何支持 DevSecOps?

如今的组织使用各种 AST 工具,有些工具可能需要几天才能提供安全扫描结果。不断提高的开发速度需要能够与其进度匹配的应用程序安全测试工具和实践。

此外,确保软件合规和安全意味着在软件开发生命周期 (SDLC) 的早期阶段了解开发级别的软件风险。但是,如果没有实施统一的测试策略,组织最终将面临手动扫描和代码审查,以及总体上不一致的安全结果。

此外,在现有管道中集成众多工具可能是一项复杂且耗时的工程,并且可能增加破坏现有构建和发布管道的风险。如果组织无法将其 AST 工具与现有的软件交付跟踪系统轻松集成,或无法根据风险确定安全活动的优先顺序,则安全和开发资源很容易变得捉襟见肘。

这些工具挑战通常会导致不必要的测试,给开发人员生产力带来障碍和时间延迟。安全分析师将难以跟上孤立工具和手动审查的进度,并且由于缺乏测试以及对流程、决策和关键发现的广泛可视性,可能无法检测到代价高昂且可能被利用的软件缺陷。

“策略即代码”有助于克服 DevSecOps 的这些障碍,方法是

  • 提供循环的持续的开发人员反馈。可通过 API 集成来执行策略,以便通过 Jira 工单或 Slack 通知直接向开发人员传达关键安全活动。

  • 自动化决策。根据应用程序风险、代码更改和依赖项的预定义阈值,对触发安全事件的条件进行编码,有助于大大减少敏捷环境中对 AppSec 进行标准化的障碍。“策略即代码”消除了手动干预,而手动干预通常需要确定是否进行测试,以及应该应用什么测试。
策略即代码 | Synopsys

Synopsys 如何提供帮助?

Synopsys 软件风险管理器是一个全面的 ASPM 解决方案,使团队能够

  • 通过定义和执行那些能指定测试执行和漏洞管理参数的安全策略,大规模实施策略驱动型 AppSec
  • 统一不同应用程序安全测试工具的用户体验,以简化您的资源配置和运营,同时改善团队间的工具整合
  • 跨项目、团队和工具整合漏洞报告和管理,以提供标准化、去重的高优先级安全风险的完整视图
  • 简化开发工作流程中的 AppSec 集成和编排,将安全工作流程集成到现有的开发者工具链中,并快速载入现有项目和构建
  • 通过单一的统一解决方案优化核心应用程序安全测试,以高效地部署、管理和报告核心应用程序安全测试功能

 


继续阅读

解决方案
应用安全测试编排解决方案
博客
工具编排:DevSecOps 的关键要素
解决方案
AppSec 测试服务
博客
形成 DevSecOps 文化
解决方案
DevSecOps 即服务
术语表
什么是 CI/CD?