zoukankan      html  css  js  c++  java
  • ZooKeeper通过ACL修复未授权访问漏洞

    默认情况下ZooKeeper允许匿名访问,因此在安全漏洞扫描中暴漏未授权访问漏洞。

    clipboard

    一、参考资料

    《ZooKeeper 笔记(5) ACL(Access Control List)访问控制列表》

    https://cloud.tencent.com/developer/article/1024452

    《ZooKeeper access control using ACLs》

    http://zookeeper.apache.org/doc/r3.4.6/zookeeperProgrammers.html#sc_ZooKeeperAccessControl

    ZooKeeper的节点有5种操作权限:

    CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)

    注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限

    ZooKeeper的身份的认证有4种方式:

    world:默认方式,相当于全世界都能访问

    auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)

    digest:即用户名:密码这种方式认证,这也是业务系统中最常用的

    ip:使用Ip地址认证

     

    二、解决思路:

    1、world方式直接排除。

    2、auth和digest通过用户名和密码方式可以有效进行权限控制,因应用中使用duboo和zookeeper做结合,有网友说Dubbo并没有实现认证的逻辑,实际测试发现确实无法进行注册。

    报出如下错误:

    java.lang.IllegalStateException: Failed to register

    cause: org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for /dubbo/com.common.crud.IEntityDao

    参考资料:

    https://yq.aliyun.com/articles/284281?utm_content=m_37169

    3、最后只剩下了IP限制方式,通过IP白名单对连接ZK的客户端进行限制。

     

    三、操作步骤:

    因zookeeper不支持节点间权限的继承,所以需要对关键节点进行权限控制。

    目前只对“/”、“/dubbo”、“/zookeeper”进行限制。

    <ZooKeeper_HOME>/bin/
    ./zkCli.sh -server ip:port
    setAcl / ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
    setAcl /dubbo ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
    setAcl /zookeeper ip:xx.xx.xx.152:cdrwa,ip:xx.xx.xx.151:cdrwa,ip:xx.xx.xx.156:cdrwa,ip:xx.xx.xx.155:cdrwa,ip:xx.xx.xx.150:cdrwa,ip:xx.xx.xx.149:cdrwa
  • 相关阅读:
    Python使用inspect查看代码参数
    Python的hasattr() getattr() setattr()
    Module-GitBook使用手册
    Module-Hadoop技术文档
    Module-Git使用手册
    Module-Faker使用手册
    Module-Docker使用手册
    Module-DB2技术文档
    Module-Dask并行任务调度
    Module-Apache使用说明
  • 原文地址:https://www.cnblogs.com/xusweeter/p/8436195.html
Copyright © 2011-2022 走看看