最近研究了一下热门话题:DevSecOps,明白了不少网络安全方面的概念和不少顶级的开源安全扫描工具,现分享给大家。
过去,每个公司有一个信息安全防护的部门,专门负责公司的IT信息安全,当公司IT软件部署好以后,信息防护部门会对其进行大量的安全扫描及安全加固,以防止安全漏洞。而扫描出的漏洞,一方面可以通过基础设施或者网络加固解决,一方面可能会对研发部门提Bug,进行漏洞修复。整个过程耗时长,成本高。 DevOps引入后,我们要左移运维,同时左移安全扫描,也就是说,从研发生命周期开始,就考虑安全问题,这就是DevSecOps。
我们以Gitlab Auto DevOps的为例来说一下DevSecOps的流程,可以看到和安全相关的有7步之多(红色部分)。:
自动构建(build): 代码编译, 打包,容器image构建过程。
- 自动代码质量检查(code_quality): 扫描检查代码规范。
- 自动静态安全扫描(auto_sast): 根据代码模式,扫描潜在的安全风险,检查像Sql注入, XSS跨站点脚本攻击等。
- 自动密码检测(auto_secret_detection): 扫描检查代码中出现的明文密码。
- 自动依赖检查(auto_dependency_scanning):扫描项目依赖包中的已发布的安全漏洞。
- 自动开源协议检查(auto_license_compliance):扫描依赖的开源协议是否兼容。
- 自动容器安全扫描(container_scan):扫描检查容器镜像的安全漏洞。
- 自动rewiew(测试部署)
- 自动动态扫描(auto_dast):动态安全扫描,通过爬取网站内容和自动浏览网站进行安全扫描。
- 自动生产环境自动部署
开源软件以势不可挡的趋势在各领域的软件或者IT解决方案中占有越来越大的比重和地位,也让网络安全问题日益突出,每个软件公司或者任何公司的IT部门,都应该尽可能快的引入DevSecOps。同时开源也出现了各种顶级的安全扫描开源软件,为DevSecOps解决方案提供了答案。当然开源解决方案的优势绝不是免费,某种意义上说,开源方案和商业解决方案成本相当。开源解决方案中的成本包括服务成本,集成成本,二次开发成本(外部的成本或者本公司自建研发团队的成本)。开源解决方案的优势主要在于其软件的透明性,可持续性,可掌控性,以及更加广泛的社区支持。
先说CWE,CVE, NVD,CNVD,CNNVD都是什么,以及他们的关系。我们在安全扫描工具的扫描报告中,会看到CVE-xxxxx-xxxxx代表一个漏洞。这个是什么呢?我们看一下