【修复升级】腾讯容器安全首个发布开源 Log4j2 漏洞缓解工具
12 月 9 日晚,Apache Log4j2 反序列化远程代码执行漏洞(CVE-2021-44228)细节已被公开,受影响版本为 Apache Log4j 2.x< 2.15.0-rc2。
Apache Log4j-2 中存在 JNDI 注入漏洞,当程序将用户输入的数据进行日志记录时,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
当前官方已发布 2.15.0、2.15.1-rc1 等版本,用户可升级至 log4j-core-2.16.0 版本,或采取以下加固缓解措施:
(1)添加 JVM 启动参数-Dlog4j2.formatMsgNoLookups=true(>=2.10+版本,或先升级至 2.10+);
(2)在应用 classpath 下添加 log4j2.component.properties 配置文件,文件内容为:log4j2.formatMsgNoLookups=true。
根据腾讯云容器安全服务 TCSS 监测,有大量的容器镜像存在该漏洞风险。对于容器环境下该漏洞的应急处置,有着更大的难度。
官方已发布修复版本 log4j-2.15.0、2.15.1-rc1 等版本,将相关受影响镜像升级到修复版本,然后升级线上服务,相对来说是最安全的方案。
但是升级版本,除了对业务稳定性带来的影响是未知的之外,对于像 log4j2 这种组件,其使用非常广泛,受影响的镜像非常多,逐个修复的工作量也会非常大,很难在短时间内快速完成。
除了升级版本,也会有像修改启动参数、配置文件等临时缓解措施。但是对于容器环境来说,这些配置一般都是直接打包在镜像中,同样需要通过逐个修改镜像,再重新发布服务来完成。
因此,对容器环境下如何快速进行漏洞缓解处置,我们提供了一种暂时不需要修复镜像,直接批量修改线上容器运行状态的方法,来临时缓解漏洞影响。大体操作思路是:
(1)通过镜像扫描工具,筛选出漏洞影响镜像;
(2)通过漏洞镜像,自动化定位受影响服务,提取运行参数等信息;
(3)批量修改服务部署的配置文件,自动化重启相关服务。
这种针对线上容器服务的批量处置措施,云鼎实验室开发并开源了一键处置工具(https://github.com/YunDingLab/fix_log4j2),用户可通过以下任一种方式直接快速修复:
命令行:
./bundles/fix_log4j-c ./config.yaml
KubernetesJob:
kubectl apply -f https://tcss-compliance-1258344699.cos.ap-guangzhou.myqcloud.com/tools/fix_log4j2/job.yaml
值得注意的是,上述处置方式只是暂时的缓解措施,用户还是需要有条不紊的逐步升级镜像版本,实现持久的加固。同时,上述操作会重启服务,用户需评估相应的重启风险。
当前漏洞情况还在不断演进,本工具也将持续的进行关注和更新。
关于腾讯容器安全服务(TCSS)
腾讯容器安全服务(Tencent Container Security Service, TCSS)提供容器资产管理、镜像安全、运行时入侵检测等安全服务,保障容器从镜像生成、存储到运行时的全生命周期,帮助企业构建容器安全防护体系。
腾讯容器安全服务产品团队结合业内最大规模容器集群安全治理运营经验打磨产品,推动行业标准及规范的编写制定,并首发《容器安全白皮书》,对国内容器环境安全现状进行分析总结,助力云原生安全生态的标准化和健康发展。
为助力全网客户快速修复漏洞,免费向用户提供试用,登录控制台(https://console.cloud.tencent.com/tcss)即可快速体验。
评论