网站开发谷歌浏览器js不更新,网络seo外包,深圳网站制作公司招聘,网站平台建设是什么今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题#xff0c;即使是非zookeeper的节点#xff0c;或者是非集群内部节点#xff0c;也可以通过nc扫描2181端口#xff0c;获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述#xff1a;CVE-2018-8012: A…今天在漏洞扫描的时候蹦出来一个zookeeper的漏洞问题即使是非zookeeper的节点或者是非集群内部节点也可以通过nc扫描2181端口获取极多的zk信息。关于漏洞的详细描述参考apache zookeeper官方概述CVE-2018-8012: Apache ZooKeeper Quorum Peer mutual authentication 漏洞演示
这是一个CDP集群里面有三个物理节点每个节点各自有一个zk实例注意看IP。 另开一台非集群节点的连接使用echo conf | nc 10.168.1.28 2181 命令 可以看到非常多的配置和集群信息除了conf还有ruok、stat等命令
如此多敏感信息暴露在互联网上肯定是很不安全的解决方式主要有四种修改默认端口简单易实现、配置zookeeper认证用户或修改权限、打补丁不推荐、开启防火墙。
1.修改默认端口 把client的2181修改为其他的端口即可不过如果是范围扫描还是会被发现
2.修改认证这种方法比较折衷不过我看的方法都是使用setAcl path最开始我也是使用这种方法我们一步一步看一下 首先使用有zk实例的节点使用./zkCli.sh -server:ip 进入server查看权限 world anyone是最广的权限相当于Java的public谁都能访问cdrwa是具体的权限相当于Linux的rwx
然后使用setAcl -R / ip:Acl 给集群ip开白名单
setAcl -R / ip:10.168.1.28:cdrwa,ip:10.168.1.29:cdrwa,ip:10.168.1.30:cdrwa再查看权限 似乎没问题了再用集群外的节点监听一下 好家伙看的更仔细了
我搞了半天百思不得其解探索了两个小时然后试探性了查看单个路径的节点 然后检查了一会儿除了两个zk目录下面的文件其他文件都是没问题了然后到官网和GitHub发现这个是一个bug…zk服务端启动后默认会启动这几个具有world和cdrwa权限的znode“/” “/zookeeper” “/zookeeper/config和”/zookeeper/quota根据zookeeper的版本不同可能存在不同并且这几个节点虽然具有world和cdrwa权限但是是无法删除的。GitHub还出了个补丁… GitHub issue
除了这种针对匿名用户的也有使用用户做认证的不过我还在尝试中。
3.打补丁不知道上面那个链接的补丁有没有效果我是用的第四种开启防火墙策略。
4.开启防火墙这是比较保守的方法需要设置繁多的策略开放端口…允许IP但是是最有效的个人比较推荐。