银川网站建设推广,鹤壁网络推广培训,wordpress 商品分类,站长平台网站本博客地址#xff1a;https://security.blog.csdn.net/article/details/129430859
一、安全左移概述
安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。
首先是开发安全#xff0c;安全团队需要关注代码漏洞#xff0c;比如使用代码检查工具进…本博客地址https://security.blog.csdn.net/article/details/129430859
一、安全左移概述
安全左移需要考虑开发安全、软件供应链安全、镜像仓库、配置核查这四个部分。
首先是开发安全安全团队需要关注代码漏洞比如使用代码检查工具进行静态代码分析或动态运行时分析找到因缺少安全意识造成的漏洞此外应重点检查代码中是否包含用户凭证、存在的密码硬编码等。
其次是软件供应链安全也就是项目使用到的第三方软件库的安全可使用软件成分分析SCA技术以发现项目中用到的第三方软件库特别是开源软件分析相关代码版本库将其与漏洞库比较如有匹配则告知存在漏洞。
再次是镜像仓库应使用镜像漏洞扫描工具持续对自有仓库中的镜像进行持续评估对有安全风险的镜像进行及时更新。
最后是配置核查比如暴露面核查、服务器配置加固等这部分可以最大程度提升攻击者发现脆弱资产和利用漏洞的难度。
基于以上我们发现开发安全、软件供应链安全、配置核查其实和传统的安全左移基本是没有区别的因此我们本文重点介绍镜像仓库的安全。
二、容器镜像安全
2.1、镜像构建安全
镜像构建的方式通常有两种基于容器直接构建或基于Dockerfile构建。建议所有的镜像文件由Dockerfile创建因为基于Dockerfile构建的镜像是完全透明的所有的操作指令都是可控和可追溯的。
镜像构建存在的风险项通常包括
1基础镜像并不是由可信的组织和人员发布的镜像本身存在后门或者其他风险项 2在Dockerfile中存储敏感信息如配置服务时使用明文固定密码或凭证等 3安装不必要的软件扩大了攻击面等。
针对以上问题可以从下面几方面来加固镜像构建安全。
1、验证镜像来源
为了保证镜像内容可信建议开启Docker的内容信任机制。内容信任机制为向远程镜像仓库发送和接收的数据提供了数字签名功能这些签名允许客户端验证镜像标签的完整性和发布者。默认情况下内容信任机制是被禁用的可以通过执行下面指令完成或者在Docker的配置文件中配置。
export DOCKER_CONTENT_TRUST12、镜像轻量化
只安装必要的软件包这不仅在提高容器性能方面有很大帮助更重要的是减少了攻击面。
3、正确使用镜像指令
在构建镜像时要选择恰当的指令。比如若需要引入外部文件在Dockerfile中能用COPY指令就不要使用ADD指令因为COPY指令只是将文件从本地主机复制到容器文件系统ADD指令却可以从远程URL下载文件并执行诸如解压缩等操作这可能会带来从URL添加恶意文件的风险。
4、敏感信息处理
比如Dockerfile中不能存储密码、令牌、密钥和用户机密信息等即使在创建好容器后再删除这些数据也会造成风险因为在镜像的历史记录中仍能检索到这些数据。
2.2、镜像仓库安全
1、公共仓库安全
1在选择镜像时应使用官方发布的最新版本的镜像并保持定时更新 2下载的镜像要经过漏洞扫描评估 3对于提供服务的镜像不仅要从操作系统层面进行扫描还要从应用层面进行扫描 4对于提供了公开Dockerfile的镜像优先选择自己构建可避免镜像后门的植入保证镜像构建过程可控
2、私有仓库安全
私有仓库主要是Harbor 1需要启用HTTPS 2不能使用默认的密码 3开启防暴力破解机制 4严格控制挂载卷权限
2.3、容器镜像安全检测
目前比较流行的开源镜像扫描引擎有Clair、Anchore等。
镜像检测的核心目前仍然是已知系统CVE检测。扫描器获取到镜像后将它分离成相应的层和软件包然后将这些包与多个CVE数据库包的名称和版本进行对比从而判定是否存在漏洞。通常开源的镜像漏洞扫描工具会获取各发行版官方途径安装的软件而至于软件开发者自己部署的非官方软件这些扫描工具一般是不覆盖的。
2.4、容器镜像传输安全
容器镜像在下载和上传时须保证完整性和秘密性提高安全性的做法如下
1数字签名 上传者主动给要上传的镜像签名下载者获取镜像时先验证签名再使用防止其被恶意篡改。
2用户访问控制 敏感系统和部署工具注册中心、编排工具等应该具备有效限制和监控用户访问权限的机制。
3尽可能使用支持HTTPS的镜像仓库 为避免引入可疑镜像用户谨慎使用–insecure-registry选项以免连接来源不可靠的HTTP镜像仓库。
三、总结
镜像安全是开发安全的最右侧也是运营安全的最左侧位置非常关键。保证镜像和仓库的安全对于贯彻开发运营一体化的安全具有重要的意义。
要保证应用全生命周期的安全安全左移后还需要考虑重新将安全控制右移通过运行时检测和响应及时发现并处置威胁。