更新时间:2024-11-29 GMT+08:00

ClickHouse安全加固

认证和加密

ClickHouse的认证体系如下所示:

图1 ClickHouse系统认证方式
  • 普通模式无需认证,使用内置默认用户可登录,无需认证。
  • 安全模式客户端kinit认证方式,通过sasl方式认证,实现原理如下:

  • 安全模式客户端兼容社区,只服务端做kerberos认证。

  • ClickHouse支持权限管理的对象:

    资源对象

    权限

    数据库(DATABASE)

    CREATE

    表/视图(TABLE/VIEW)

    SELECT/INSERT

    管理员

    ALL

ClickHouse暂不支持在安全模式集群上关闭安全认证。

加密通道

ClickHouse在兼容开源社区做易用性加强,在安全模式集群上默认使用openssl加密的tcp、http通道。

安全加固

  • 编码规范:

    说明:Web Service客户端和服务器间使用相同的编码方式,是为了防止出现乱码现象,也是实施输入校验的基础。

    安全加固:web server响应消息统一采用UTF-8字符编码。

  • 对管理用户支持IP白名单过滤:

    说明:防止非法客户端登录。

    安全加固:不允许集群外部节点通过管理用户访问ClickHouse客户端。

  • URL注入攻击:

    说明:对于数据迁移自定义UI进行防止URL注入攻击。

    安全加固:URL合法性校验和路径合法性校验。

  • SQL注入攻击:

    说明:防止SQL注入攻击。

    安全加固:对SQL进行预编译处理。

  • 日志注入攻击:

    说明:防止日志注入,避免安全信息泄露。

    安全加固:对隐私信息进行加密处理,避免打印敏感堆栈到日志中。

  • DDoS攻击:

    说明:防止DDoS攻击导致的业务中断或服务异常。

    安全加固:链接数可配置,默认为4096。

  • 防抵赖:

    说明:审计日志。

    安全加固:对写入等DDL、赋权和回收权限操作、数据迁移进行审计。