目前,没有什么好的方法去批量修复镜像漏洞。基础镜像漏洞只能一个一个去修复,然后利用流水线将应用程序打包到基础镜像上,完成应用镜像的更新。
一般来说基础镜像不会很多,大约有10~20个左右。如果基础镜像过多,建议规范和标准化镜像版本,例如:一个大版本下只提供1~2个小版本的基础镜像,这样便于维护和统一管理。
标准的工作步骤:
1.明确影响范围:通过资产管理软件,或者SCA软件查询哪些镜像引用了此基础镜像;
2.查找修复方法:大部分漏洞的修复方法是将对应组件升级成新的版本;
3.重新构建镜像:结合步骤1和2,通过CI工具构建新版本的镜像,从而修复漏洞;
4.验证兼容性:通过各类测试验证版本兼容性,不要因为替换组件版本影响功能的可用性;
如何做到快速修复呢?我觉得可以考虑以下几个因素:
1)预防为主,保持其精简程度,减少冗余组件带来的不必要安全漏洞;
2)定期更新,更早地发现基础镜像中的漏洞并及时修复,不要堆积太多的漏洞导致无从下手;
3)工具辅助,通过工具提升自动化效率;
4)委托第三方,现在有第三方厂商推出黄金镜像运营服务,为客户持续提供无漏洞的基础镜像,也可以节省客户方的精力;