一、DevSecOps是什么
将安全集成到DevOps中的全新的开发模式
针对B/S架构的应用系统,凭借AST(SAST、DAST、IAST)等多种检测手段
在编码、集成、测试等任一阶段,对软件进行代码、应用层面的安全检测
从而在发布前尽可能找到更多漏洞,降低上线后的修复成本和风险
二、与SDL的对比
传统SDL
将安全集成在软开的每一个阶段,实现安全管理的过程化
安全责任过于侧重于安全团队,流程依赖大量人工参与
DevSecOps
更加强调快速迭代环境下的敏捷安全能力
通过自动化流程将安全融入到设计、开发、测试、运维中的每一环
将安全能力赋能给DevOps环节中的每个角色,每个人都对安全负责
安全工作前置,柔和嵌入现有开发运维流程体系
三、DevSecOps中的CI/CD
CI:开发人员提交新代码,立刻进入行构建、单元测试,确保新代码集成到原有代码;单元测试通过,快速集成代码
CD:代码通过测试后,自动部署到贴近真实运行的环境中评审验证;当新加的代码通过在相似的真实环境中运行一段时间后,就可以持续部署,自动部署到生产环境
四、DevSecOps的关键元素
文化:安全和产品、研发、测试、运维等部门一起参与项目,安全是大家的事,每一个人皆为安全负责
技术:持续自动化、安全前置、支持Jenkins等CI/CD管道,支持DevOps敏捷开发和快速部署
流程:柔和低侵入,配套工具链技术的实施尽量减小对原业务流程的影响,尽量做到对用户透明自动化
五、DevSecOps四大关键工具链
1、AST (SAST、DAST、IAST)
SAST和DAST不多赘述,做安全的都很熟悉了
IAST:综合DAST和SAST的一种运行时灰盒安全测试技术
通过代理、VPN或服务端部署Agent程序,收集、监控web应用程序运行时的函数执行、数据传输
与扫描器端进行实时交互,高效准确地识别安全漏洞
同时可准确确定漏洞所在的代码文件、行数、函数及参数
2、SCA:软件成分分析
一种对二进制软件的组成部分进行识别、分析和追踪的技术
能分析开发人员所使用的各种源码、模块、框架和库
以识别和清点开源软件的组件、及其构成和依赖关系,并准确识别系统中存在的已知安全漏洞或潜在的许可证授权问题
把这些安全风险排除在软件发布上线之前,也适用于软件运行中的诊断分析
3、RASP:运行时应用自我保护
原理类似于IAST,一种运行时的入侵检测和阻断技术
通过服务端部署Agent程序,收集web应用程序运行时的函数执行、数据传输,可准确确定漏洞所在的代码文件、行数、函数及参数,与扫描器端进行实时交互,高效准确地识别攻击行为并进行阻断
4、BAS:入侵和攻击模拟
一种安全防护有效性验证评估技术,通过不断模拟针对不同资产的攻击,验证安全防护的有效性
BAS技术主要提供持续的安全防御体系评估能力,BAS整个体系分为管理中心和模拟器两部分
管理中心:所有攻击模拟行为的管理调度和展示中心
模拟器:部署在网络各个区域里,作为攻击的发起或被攻击的一个端点,通过各种模拟器的组合,覆盖各种攻击场景下的攻击模拟测试