DevSecOps及软件IT安全防护的开源扫描工具

最近研究了一下热门话题: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代表一个漏洞。这个是什么呢?我们看一下CVE网站,CVE是社区维护的(也算是开源的了)以命名,定义,和分类网络安全漏洞为目的的公共网络安全漏洞库,1999年发布, 目前150800个安全漏洞。CVE解决了不同的安全漏洞厂商各自描述漏洞的问题,厂商发现安全漏洞后,在CVE中请求一个统一ID并提交漏洞描述,一旦确认,所有的安全扫描工具都是用此ID及其描述来表述此漏洞,CVE中的每个安全漏洞都是某个软件的已经被证实的安全漏洞。然而,很多安全扫描工具都声称支持NVD安全漏洞库,那NVD是什么呢?NVD是美国国家标准中心提供的网络安全漏洞库,它以CVE的库作为输入,分析CVE中的漏洞,根据漏洞的描述,提供可能出现此漏洞的代码模式(CWE),以及建议的修复方式等信息。所以对于安全扫描工具来说,NVD库当然更有意义了,因为其中信息更多。 顾名思义,CNVD就是中国的NVD了,全名国家信息安全漏洞共享平台(China National Vulnerability Database), 是由国家计算机网络应急技术处理协调中心(中文简称国家互联应急中心,英文简称CNCERT)联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的国家网络安全漏洞库。而CNNVD是中国国家信息安全漏洞库,隶属于中国信息安全测评中心(一般简称国测,国测的主管单位是Security部),是中国信息安全测评中心为切实履行漏洞分析和风险评估的职能,负责建设运维的国家级信息安全漏洞库。那CWE是什么呢,我们经常看到说某个安全工具是CWE兼容的。CWE和CVE都是mitre公司运营的,也是一个社区主导的list(开源理念再现)。此list和CVE的list不同,我们把它叫做弱点(weakness),注意不是漏洞(Vulnerabilities),这个库是把软硬件可能出现漏洞的模式,例如内存泄漏,Sql注入等分类,用一个标准的通用的分类库描述。我们可以这么理解, 每一个CVE(是某个软件确确实实发现的漏洞)都是某个CWE类型引起的。

理解了以上几个库,我们就会明白,通常情况下,静态安全扫描(SAST),动态安全扫描(DAST)等工具,扫描出来的是疑似的漏洞,符合的是某个CWE特征。 而依赖扫描,会报告依赖的软件已知的漏洞,通常情况下是从NVD,CNVD,CNNVD中查到的某个CVE号,并提供相关的分析信息及修复建议。

下面我来推荐每个安全扫描阶段的开源解决方案:

**代码质量检查(code_quality):**此阶段通常情况下检查代码的编码规范。最流行的就是SonarQube了。 如果我们的方案更接近云原生,建议大家使用Code Climate Cli加上各种engine,都是docker 容器镜像发布。

静态安全扫描(auto_sast):静态代码扫描工具非常多, 不同的语言与不同的扫描工具。

语言工具
.NET CoreSecurity Code Scan
.NET FrameworkSecurity Code Scan
Apex (Salesforce)PMD
C/C++Flawfinder
Elixir (Phoenix)Sobelow
GoGosec
GroovySpotBugs with the find-sec-bugs plugin
HelmKubesec
JavaSpotBugs with the find-sec-bugs plugin
Java (Android)MobSF (beta)
JavaScriptESLint security plugin
JavaScriptSemgrep
Kotlin (Android)MobSF (beta)
Kubernetes manifestsKubesec
Node.jsNodeJsScan
Objective-C (iOS)MobSF (beta)
PHPphpcs-security-audit
Pythonbandit
PythonSemgrep
ReactESLint react plugin
ReactSemgrep
Rubybrakeman
Ruby on Railsbrakeman
ScalaSpotBugs with the find-sec-bugs plugin
Swift (iOS)MobSF (beta)
TypeScriptESLint security plugin
TypeScriptSemgrep

密码检测(auto_secret_detection):gileaks

依赖检查(auto_dependency_scanning):snyk, OWASP dependency-check

开源协议检查(auto_license_compliance):License Finder

容器安全扫描(container_scan):Clair

自动动态扫描(auto_dast):OWASO ZAP

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xiphi1978

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值