WebInspect 自动化工作流构建指南
发布时间:2023-06-27

安全 DevOps(DevSecOps)的目标之一是在开发过程之中建立安全测试。集成了自动化功能的安全测试,让开发、QA 和安全团队能更简单地在不同的管道内同步运行,这使得安全测试成为测试堆栈的一部分,其频率和集成度与单元、集成、兼容性和性能测试的相似。


自动化测试:大规模且并行不悖


将动态分析(DAST)与静态分析(SAST)结合可实现更彻底的覆盖,但动态自动化更为复杂。您可以建立自己的技术栈,或者直接借用已有的框架。使用其他企业作为 DevOps 实践的一部分、已创建的测试自动化脚本/框架,您可以大大加速自动化进程。


► 将 WebInspect 自动化集成至现有的 DevOps 系统和流程,可支持同步并行、大规模的安全测试。


用于 WebInspect 的 Maven 插件

1) WebInspect 代理实例化;

2) 从集成测试中获取流量;

3) 将代理流量保存为工作流宏(并关闭代理);

4) 配置一个新的扫描;

5) 运行该扫描。


WebInspect 自动化——一般工作流

自动化工作流程使用自动化工具构件,并通过以下步骤管理扫描生态系统:

A. 安全团队通过自动化工具构件将安全扫描步骤设置为“安全任务”,并在构建和应用部署后调用;

B. 开发团队向自动化工具构件提交代码变更,在预定操作期之后,安全任务将在构建和应用部署完成后被触发;

C. 完成安全任务后,自动化工具被设置为根据安全团队定义的安全风险来通过或构建作业;

D. 安全漏洞发现被捕获到 Fortify SoftwareSecurity Center(SSC),从那里可以选择通过 SSC 上的集成将它们转移到错误库。


图 1. 基础安全任务——WebInspect


基础安全任务——WebInspect

1. 对 WebInspect 传感器进行健康检查,确保扫描仪可用于安排扫描;

2. 调用 WebInspect REST API/或命令行来启动扫描。这涉及传递必要 URL、设置文件和登录信息;

3. 对传感器进行轮询以检查扫描的状态,并在扫描完成后触发下一个步骤;

4. 在扫描完成后,将结果作为 FPR 导出到包含 Fortify Client 的服务器,并通过 Fortify Client 上传至 SSC。


WebBreaker

通过 GitHub 的 WebBreaker 工具解决动态应用安全测试协调(DASTO)问题。这一开源项目利用 WebInspect 实现了更大的敏捷性和灵活性,以为 SDLC 管道、Git 工作流等提供优化集成。


图 2. 基础安全任务——ScanCentral


基础安全任务——ScanCentral DAST

Fortify ScanCentral DAST 让动态安全扫描的协调和自动化水平上升至新高度。它能有效操作数百、数千次扫描。WebInspect Enterprise 客户可以直接迁移到该平台,并能够与 Fortify ScanCentral SAST 互操作。使用 ScanCentral 一次扫描多应用的能力避免让安全因素成为影响开发速度的瓶颈。


代理和 QA 自动化

自动化功能可以使用 QA 功能测试产生的工件(如 Selenium 脚本来自动进行 WI 扫描),其优点是:

A. 功能测试往往涉及到一连串操作,它们都有自相关的商业逻辑,但这不可能从盲目的 WebInspect 自动抓取中获取并建模;

B. 利用功能测试期间使用登录序列,而非创建单独的 WebInspect 登录宏程序的可能性。这涉及配置设置、将登录页面从 WI 抓取或审计中排除,以及在安全扫描期间不发生注销等。


图 3. QA 安全任务——WebInspect


QA 安全任务——WebInspect

在基础安全任务——WebInspect 中添加这些步骤:

1. 通过 REST API 启动 WI 代理,并重放捕获的 QA 工件以生成流量文件,将其保存为 WebMacro;

2. 使用命令行/REST API 修改默认设置,设置文件将被从步骤 1 的流量文件中保存的工作流程宏覆盖。


有用的自动化索引

1. FoD BugTrackerUtility:完全自动化的命令行工具,用于将 SSC 和 FoD 漏洞批量提交给各种外部系统。

2. WebInspect APIs

3. Fortify 相关工件的 Maven 资源库


图 4. QA 安全任务——ScanCentral DAST


QA 安全任务——ScanCentral DAST

1. 与 WI 的附加步骤相同。对于不能访问 WI 桌面来启动代理的客户,可以在 Fortify Marketplace 下载一个免许可证的代理实例;

2. 在创建设置文件后,启动扫描的过程涉及《创建扫描指南》中的其他步骤。


云端自动化

另一用例是通过为 WI 部署传感器在云中实现自动化,并以正进行的应用安全测试的规模动态扩展传感器的部署:

1. 安全团队访问扫描请求管道并确定 N 个传感器的扩展/缩减,并根据这一要求分配许可证;

2. 安全团队使用所描述的一般工作流,然后循环执行步骤 1 和 2。


图 5. 云安全任务——WebInspect 传感器扩展


云安全任务——WebInspect 传感器扩展

1. 将 WebInspect 安装 MSI 放置于云存储中并准备部署;[调用位置:cloud_memory]

2. 安全团队调用云 API 来创建 Windows 实例,并使用该实例命令行 (C_Instance) 从 cloud_memory 进行 WebInspect 传感器无头模式的安装;

3. 将必要的设置和宏文件部署于该实例;

4. 在命令行(C_Instance)中使用该实例的 WebInspect 的 REST APIs 触发扫描;

5. 扫描完成后,将结果作为 FPR 导出至包含 Fortify Client 的服务器,并通过 Fortify Client 上传至 SSC。


图 6. 云端安全任务——ScanCentral DAST 传感器调整规模


云端安全任务——ScanCentral DAST 传感器调整规模

ScanCentral DAST 是一个可扩展的架构,通过多个容器化 WebInspect 版本(被称为“传感器”)来实现水平扩展,可以并行处理 JavaScript、DOM 渲染和其他活动。横向扩展可大大减少扫描时间而不需要永久投入资源。因此,ScanCentral DAST 可以在极小时间内扫描相当大的应用,这使得整合至 CI/CD 管道和左移成为可能。SSC 可加载至应用、调度扫描,并设置扫描参数限制。所有这些都是通过容器化部署完成的,让你能从此拥有多个传感器。


文章来源公众号:MicroFocus


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


关于九游会J9电子

上海九游会J9电子技术有限公司是国内资深的研发工具软件提供商,公司成立于2009年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。

十多年来,先后与ARM、Altium、Ansys、QT、Green Hills、Minitab、EPLAN、QA Systems、OpenText、Visu-IT、HighTec、PLS、Ashling、MSC Software、Autodesk、Source Insight、IncrediBuild、Lauterbach、Adobe、Testplant、TeamEDA等多家全球知名公司建立战略合作伙伴关系,并作为他们在中国区的主要分销合作伙伴服务了数千家中国本土客户,为客户提供从芯片级开发工具、EDA设计工具、软件编译以及测试工具、结构设计工具、仿真工具、电气设计工具、以及嵌入式GUI工具等等。九游会J9电子凭借多年的经验积累,真正的帮助客户实现了让研发更简单、更可靠、更高效的目标。

欢迎关注“九游会J9电子”公众号

了解更多研发工具软件知识