前言
数据安全是个老生常谈的话题,而数据库作为数据的基础底座,是黑客眼中的"圣杯",在企业中通常都处于核心位置,更加需要建立完善的安全机制。加之数据库和操作系统、硬件、网络等息息相关,所处环境非常复杂,安全隐患非常之多。

这么多的安全隐患逐个巡检费时费力,那有没有一种快捷的方式进行评估检查呢?Sure,让我们有请主角登场——pgdsat:PostgreSQL Database Security Assessment Tool,安全审查工具。
pgdsat
链接在 https://github.com/HexaCluster/pgdsat,先看下它的介绍:
PGDSAT is a security assessment tool that checks around 70 PostgreSQL security controls of your PostgreSQL clusters including all recommendations from the CIS compliance benchmark but not only.
PGDSAT 是一种安全评估工具,可检查 PostgreSQL 集群的大约 70 项 PostgreSQL 安全控制,包括 CIS 合规性基准的所有建议,但不仅限于此。
检查项十分丰富,半个屏幕都塞不下,包括
实例是否打开 checksum 检查配置文件的权限 数据库权限检查 超级用户不允许远程链接 密码复杂度 SSL/TLS 加密插件是否安装,比如pgcrypto、pgsodium
等等,总计 80 余项检查项。


其次,PGDSAT 是个纯 perl 脚本,无需其他依赖,可以运行在任何 Linux 服务器之上。
让我们小试牛刀一下!安装过程很简单,可能需要装一下依赖 yum install perl-ExtUtils-MakeMaker
perl Makefile.PL
make
sudo make install
不过我在运行的时候有个报错,找到这一行,修改 to_hex 为 as_hex 即可。
[postgres@mypg pgdsat]$ pgdsat -U postgres -h localhost -d postgres -o report.html
Can't locate object method "to_hex" via package "Math::BigInt" at /usr/local/share/perl5/PGDSAT/Netmask.pm line 427.
然后就可以开心地进行安全检查了,推荐用 HTML 的格式
[postgres@mypg pgdsat]$ pgdsat -U postgres -h localhost -d postgres -o report.html
稍等片刻,安全审查就做完了。

如上是我的小破云主机的审查报告,每一项都有详细的信息

更多审查项,就不再一一赘述了,各位可以亲自上手体验一下。
小结
pgdsat 还在不断迭代演进中,后续可能还会支持 SQL 注入检查、SQL 防火墙、增量比对等等

让我们拭目以待,Give it a try!




