devops是什么意思?devops中的测试方法有哪些?
一组过程、方法与系统的统称devops是一组过程、方法与系统的统称。1 devops用于促进开发(应用程序 软件工程)、技术运营和质量保证部门之间
一组过程、方法与系统的统称
“devops是一组过程、方法与系统的统称。
1.devops用于促进开发(应用程序/软件工程)、技术运营和质量保证部门之间的沟通、协作和集成。
2.devops的引入会对产品交付、测试、功能开发和维护产生深远的影响。
3.但对很多人来说,devops这种方式是不可能实现的,甚至默认其无法实现。”
1.undefined
代码质量(SAST)
当人们谈论软件安全或开发安全时,首先想到的控制可能是代码质量,即静态应用程序安全测试(SAST)。对于能熟练使用Unix工具Lint发现C语言代码错误的人来说,静态代码扫描并不是一个陌生的概念。
静态分析工具通常被用来评估源代码,有时也被用于评估对象代码的安全问题。在DevOps工具链中,可以在几个不同的地方实现SAST自动化:
可以在开发人员提交代码时运行,即在扫描代码查找问题时运行。
可以在构建之前进行。
在开发后使用目标代码而非源代码验证工具时使用。
一种策略可以是建立一个基线指标,设定可接受的错误率,高于该指标才需要用户干预。这基于问题的数量、问题的严重性或两者兼顾。高于此阈值,则要求开发人员采取措施修复代码,然后才能进行发布。另一种选择取决于发布节奏和SAST对误报的设置,仅标记问题以供下游进一步审查,但不主动控制代码推送。
2.undefined
Web应用程序扫描(DAST)
可在开发完成之后,发布到生产环境之前的应用程序动态测试中实现自动化。
动态应用程序安全测试(DAST)工具从外而内地检查应用程序,包括查看应用程序的表面部分、与其交互并观察发生的情况。在DevOps工具链中,可以实施自动化的一个地方是开发后期的自动化质量保证流程。一个快速实现DAST自动化的方式是在守护进程模式下使用开源应用程序扫描器Zed Attack Proxy(仅命令行界面),通过自动触发与其他测试活动并行运行。可使用此方法或REST API测试Web UI元素,也可结合参数模糊测试。
3.undefined
容器扫描/漏洞依赖分析
如今新应用程序的开发大都依赖于应用程序容器,例如Docker或Rkt。容器的优势在于它能将应用程序或组件以及所需的底层库、中间件、资源和其他依赖项打包在一起。
这是容器的一个有用功能,但潜在的缺点之一是:有时这些底层组件存在已知漏洞。由于容器将依赖项组合在一起,从操作的角度来看能够节省不少工作,但也会导致人们很容易忘记这些漏洞,或压根没有意识到它们的存在。
扫描容器的自动化工具(例如开源的Clair或Anchore Engine)能够查看容器内的依赖关系,通过查找和报告易受攻击的支持组件来帮助缓解此问题。为了实现自动化,这些工具可以在创建后的任何时候在容器上运行。如果在依赖项中发现重大问题,则触发手动审查以修复易受攻击的依赖项,记录问题以备将来使用。
4.undefined
软件构成分析
企业创建软件物料清单(SBOM)的理由,有些来自客户,有些则来自企业自身。生成SBOM最难的部分是与保持底层依赖项列表最新,这是一项极为复杂的工作。将软件构成分析(SCA)工具引入工具链是帮助保持SBOM更新的有用方法。
SCA工具还可以帮助开发团队明确实施自动化的最佳位置。例如,对目标文件或可执行映像进行操作的软件需要在构建后运行,而对源文件进行操作的软件可能需要与提交流程并行执行。
5.undefined
自动漏洞扫描
以上列出的自动化安全测试工具涵盖了大多数软件组件,但不是全部。Web UI系统和REST API可由DAST扫描,容器化软件用容器扫描工具扫描。对于其他软件,合并漏洞扫描会很有帮助。对于部署到云端VM或部署自定义操作系统安装的团队,漏洞扫描可以帮助他们发现和标记潜在的安全问题。