快改密码!你的PG密码可能已经泄露了
文中参考文档点击阅读原文打开, 同时推荐2个学习环境:
1、懒人Docker镜像, 已打包200+插件:《最好的PostgreSQL学习镜像》
2、有web浏览器就能用的云起实验室: 《免费体验PolarDB开源数据库》
3、PolarDB开源数据库内核、最佳实践等学习图谱: https://www.aliyun.com/database/openpolardb/activity
第30期吐槽:PG 某些敏感信息未隐藏
1、产品的问题点
PG 某些敏感信息未隐藏, 存在安全隐患
2、问题点背后涉及的技术原理
创建用户、修改用户密码时, SQL可能被记录在日志, sql history, 动态会话(pg_stat_activity, pg_stat_statements)中. 密码部分原样显示.
视图, 超级用户可见,
.psql_history
文件, 启动数据库进程的操作系统用户可见.使用dblink时, 需要填入远程连接密码, 该密码在元数据定义表中, 超级用户、创建DBLINK的用户均可见.
使用FDW时, 在mapping表需要填入远程连接密码, 该密码超级用户可见.
使用视图时, 如果视图是DBLINK组成, 那么需要填入远程连接密码, 该密码超级用户、创建DBLINK的用户均可见.
使用类似crypto这种插件时, 在字段上创建解密后的表达式索引, 索引定义存储在系统表内, 可以被看到
3、这个问题将影响哪些行业以及业务场景
通用
4、会导致什么问题?
增加了管理复杂度, 如果权限未严格管控, 可能导致密码泄露.
5、业务上应该如何避免这个坑
严格控制权限, 不仅是数据库, 更重要点是SQL审计日志, SQL历史等文件的权限管控
6、业务上避免这个坑牺牲了什么, 会引入什么新的问题
管理复杂度增加, 而且很容易出现漏洞
7、数据库未来产品迭代如何修复这个坑
日志类敏感信息建议隐藏或加密处理
必要的密码存储, 建议加密存储, 例如数据库启动时输入加密密钥 或 远程LDAP等管理加密密钥.
也可以考虑PolarDB PG这种带全加密功能的全密态数据库实现.
本期彩蛋-DBdoctor 数据库性能监控与诊断平台,基于eBPF采样对数据库性能影响极小
文章中的参考文档请点击阅读原文获得.
欢迎关注我的github (https://github.com/digoal/blog) , 学习数据库不迷路.
近期正在写公开课材料, 未来将通过视频号推出, 欢迎关注视频号: