hbase内置zookeeper容器镜像升级修复漏洞

漏洞分析说明

漏洞名称及描述:
名称: Apache ZooKeeper安全限制绕过漏洞(CVE-2018-8012)
描述:
Apache Zookeeper能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。x000D
x000D
Apache ZooKeeper 3.4.10之前版本、3.5.0-alpha版本至3.5.3-beta版本,在身份验证/授权检测实现中存在安全漏洞,可使任意端点加入群集,修改内容。
解决办法:
https://lists.apache.org/thread.html/c75147028c1c79bdebd4f8fa5db2b77da85de2b05ecc0d54d708b393@%3Cdev.zookeeper.apache.org%3E

名称: Apache Zookeeper 缓冲区溢出漏洞(CVE-2016-5017)
漏洞描述:
Apache Zookeeper是美国阿帕奇(Apache)软件基金会的一个软件项目,它能够为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册等功能。
Apache Zookeeper 3.4.9之前的版本和3.5.3之前的3.5.x版本中的C cli shell存在缓冲区溢出漏洞。当使用‘cmd:’批处理时,攻击者可借助较长的命令字符串利用该漏洞造成拒绝服务。
解决办法:
https://zookeeper.apache.org/security.html#CVE-2016-5017

漏洞解决办法分析:
通过翻阅上面两篇文章,可以考虑把当前zookeeper版本升级到3.4.10或者3.5.4-beta或更高版本 可修复上面两个漏洞
在这里插入图片描述在这里插入图片描述

查看镜像构建历史及zookeeper版本

由于该容器镜像为其他人员制作,没有留下任何参考文档,而且hbase内置的zookeeper容器镜像被扫描出漏洞,通过docker history --no-trunc查询到关系信息如下:

首先查看镜像构建历史:
docker history --no-trunc $IP/alaudaorg/hbase:a3630ce3101408c34c306103203044b4fc7ffd85
在这里插入图片描述
从中发现内置zookeeper的hbase的地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase

查看zookeeper及hbase版本:
在这里插入图片描述

在这里插入图片描述

访问清华大学开源网站:
在这里插入图片描述
根据当前hbase版本为1.2.6,结合上图的建议,考虑下载1.4.13版本的hbase :
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.13/hbase-1.4.13-bin.tar.gz
解压收进入hbase-1.4.13/lib/查看有关zookeeper的jar包是多少版本:
在这里插入图片描述
发现zookeeper应该刚好是没有上面提及漏洞的版本,下面考虑,根据下载的hbase做新的镜像同时更换到生产和测试环境(生产和测试环境用的同一个镜像,因为镜像ID相同):
生产环境 :
在这里插入图片描述
测试环境 :
在这里插入图片描述

通过docker commit制作新的镜像

找一台主机,拉取当前运行的镜像到本地,启动一个容器:
docker run -d -P $IP/alaudaorg/hbase:a3630ce3101408c34c306103203044b4fc7ffd85

docker exec -it 882e30ae13a3 bash,进入容器执行如下操作:
另外单独备份配置文件:
tar -czvf hbase-conf.tar.gz conf/

备份原有整个hbase版本:
在这里插入图片描述
把下载的新版本hbase拷贝到容器,并解压缩:
docker cp hbase-1.4.13-bin.tar.gz 882e30ae13a3:/root
tar -xzvf hbase-1.4.13-bin.tar.gz

删除原来版本hbase,复制新版本到/opt下,并重命名,之后杀掉当前容器里面无关的进程,并退出当前容器,过程如下:
在这里插入图片描述
忘记还原配置文件,下面还原配置文件,删除新版本的默认配置文件,并解压久版本的配置文件到 /opt/hbase/下
cp -a hbase-conf.tar.gz /opt/hbase/
tar -xzvf hbase-conf.tar.gz
rm -rf hbase-conf.tar.gz

把当前容器提交为一个新的镜像:
docker commit 882e30ae13a3 $IP/alaudaorg/hbase:gzxc20200917-01

再次通过 docker history --no-trunc 命令 查看新的镜像是否存在诸如CMD/ENTRYPOINT之类的镜像层把之前的覆盖掉,如果有,则有可能容器起不来,需要用Dockerfile方式构建镜像,本次提交不存在这一的情况:
在这里插入图片描述

把镜像更换到生产和测试环境

先把镜像推送到镜像仓库:
docker push $IP/alaudaorg/hbase:gzxc20200917-01

在通修改yaml中镜像地址:
cd /root/private_1.13-PKG-20181024/yaml/onebox
cp common.yaml common.yaml-hbase-zk.200917bak
vim common.yaml在这里插入图片描述

用docker-compose更新:
docker-compose -f common.yaml up -d在这里插入图片描述

验证

更新前容器里面进程:
在这里插入图片描述
更新后容器启动,并且里面进程如下:
在这里插入图片描述在这里插入图片描述
端口如下:
在这里插入图片描述
OK! 正常,zookeeper版本升级了,达到预期,等待复扫结果,是否还有漏洞!

参考:
https://www.orchome.com/484
https://blog.csdn.net/u013673976/article/details/47279707

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值