PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南

2024-06-06 417 0

0x01 前言

近期同事去现场测评,遇到了一个arterybase的数据库,不知道怎么开展数据库安全计算环境的等保测评工作,因此找了一个arterybase的安装包进行安装研究,并开发出测评指南,有错误的地方还望指出。

获取到安装包后,使用arterybase-install进行一键式安装,安装完成后会在桌面生成三个快捷方式,分别是“startup_abase.bat”、“stop_abase.bat”启动、停止数据库以及“abase-login-local.bat”登录到当前数据库。

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图

0x02 arterybase之安全计算环境

身份鉴别

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

查询版本:

SELECT version();

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图1

得知信息应该和PostgreSQL数据库有点关系,因为没有在网上查到arterybase的操作手册之类的信息,直接使用PostgreSQL的查询命令来尝试。

1)应核查用户在登录时是否采用了身份鉴别措施;

PostgreSQL的身份验证规则分别有5种,

密码认证(MD5):对于所有数据库、所有用户,来自任意地址的连接都需要提供密码进行认证。

证书认证(cert):配置要求所有用户在 SSL 连接上提供有效的证书进行认证。

Kerberos认证(gss):配置要求所有用户通过 Kerberos 进行认证。

Trust认证:配置信任所有用户,不需要提供密码或其他凭据进行认证。

LDAP认证:配置要求所有用户通过 LDAP 进行认证。

配置/核查示例:修改pg_hba.conf文件,参数位于METHOD字段。

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host   all             all             0.0.0.0/0               md5

2)应核查用户列表确认用户身份标识是否具有唯一性;

默认符合,一般都具有身份标识唯一性

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图2

3)应核查用户配置信息或测试验证是否不存在空口令用户;

使用命令查询passwd字段是否存在hash值:

select usename,passwd from pg_shadow;

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图3

或者使用:

SELECT usename, passwd IS NULL AS is_password_set FROM pg_shadow WHERE usename = 'sa';

如果is_password_set返回true,那么密码字段为空。

4)应核查用户鉴别信息是否具有复杂度要求并定期更换。

PostgreSQL默认没有自带的密码复杂度检测功能,需要安装扩展来满足需求,使用命令查看所安装的扩展:

SELECT * FROM pg_extension;

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图4

一般密码复杂度要求的模块使用passwordcheck.so,如果没有安装则访谈是否采用其他方式来做限制。

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连 接超时自动退出等相关措施。

1)应核查是否配晋并启用了登录失败处理功能;

登录失败处理功能需要额外扩展来满足要求。

SELECT * FROM pg_extension;    #查询已安装的扩展

一般使用session_exec扩展。

2)应核查是否配悝并启用了限制非法登录功能,非法登录达到一定次数后采取特定动作,如账户锁定等;

同上第一小点

3)应核查是否配置并启用了登录连接超时及自动退出功能

核查postgresql.conf配置文件是否有tcp_keepalives_idle = 600参数,或访谈用户是否采用其他方法。

设置tcp_keepalives_idle参数来指定连接空闲的超时时间,以秒为单位。当连接空闲超过指定的时间后,服务器会自动断开连接。

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

核查是否开启远程管理,postgresql.conf配置文件,是否启用监听:

listen_addresses = '*'    #监听地址

同时核查postgresql.conf中ssl是否开启,如图:

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图5

pg_hba.conf配置文件,是否添加允许外部连接的规则:

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host   all             all             0.0.0.0/0               md5

通过命令行检查客户端连接是否使用了 SSL:

SELECT ssl, version FROM pg_stat_ssl WHERE pid = pg_backend_pid();

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图6

如果结果中的ssl列为t,则表示当前连接使用了 SSL。

d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

通过访谈以及验证,确认是否采用了其他的身份鉴别技术。

访问控制

a)应对登录的用户分配账户和权限;

1)应核查是否为分配了账户和权限及相关设置情况

使用以下命令查询账户以及所分配的权限

\du

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图7

2)应核查是否已禁用或限制匿名、默认账户的访问权限。

安装后默认账户为sa,仅有sa用户账户,无其他匿名账户。

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图8

b)应重命名或删除默认账户,修改默认账户的默认口令;

1)应核查是否已经重命名默认账户或默认账户已被删除;

2)应核查是否已修改默认账户的默认口令。

默认口令位于安装包中的arterybase-install文件。

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图9

c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;

1)应核查是否不存在多余或过期账户,管理员用户与账户之间是否一一对应;

使用命令查询所有的用户账户;

SELECT * FROM pg_user; 

PostgreSQL(ArteryBase3.6.2)数据库等级保护测评指南插图10


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论