DB2数据库等保测评实战手册
适用对象:等保测评师、DBA、安全运维人员
测评标准:GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求(三级)
前言:DB2等保测评核心难点
DB2作为企业级关系型数据库,在等保三级测评中有四项高风险项必须重点核查:
- 双因子认证缺失
- 审计功能未启用
- 默认账户未清理
- 权限未分离
本文提供可直接复制执行的命令,覆盖身份鉴别、访问控制、安全审计、入侵防范四大控制点。
一、身份鉴别(控制点)
1.1 账户唯一性与密码策略
| 命令 | 功能说明 | 合规要求 |
|---|---|---|
SELECT AUTHID FROM SYSIBMADM.AUTHORIZATIONIDS | 检查用户唯一性 | 账户名全局唯一,无重复 |
db2 get dbm cfg | grep -i "AUTHENTICATION" | 查看认证方式 | 必须为SERVER_ENCRYPT,禁用CLIENT |
db2 connect to <dbname> user <user> using <pwd> | 测试空口令/弱口令 | 禁止空口令,长度≥8位,含3类字符 |
db2 "SELECT * FROM SYSIBMADM.POLICIES" | 检查密码策略 | 需OS层启用密码复杂度策略 |
测评提示:DB2本身不管理密码复杂度,依赖操作系统或LDAP,需同步检查OS层策略。
1.2 登录失败处理与会话超时
# 查看当前配置
db2 get dbm cfg |grep-i"LOGIN_FAILED_ATTEMPTS"# 登录失败锁定阈值
db2 get dbm cfg |grep-i"CONNECT_TIMEOUT"# 连接超时(秒)
整改配置(建议值):
db2 update dbm cfg using LOGIN_FAILED_ATTEMPTS 5# 失败5次锁定账户
db2 update dbm cfg using CONNECT_TIMEOUT 600# 10分钟无操作自动断开
1.3 双因子认证 【高风险项】
测评方法:
- 访谈确认:是否集成Kerberos、RADIUS+OTP等双因子方案
- 配置核查:
db2 get dbm cfg |grep"AUTHENTICATION"
# 合规值:SERVER_ENCRYPT 或 GSSPLUGIN(集成OS认证)
判定标准:仅使用
SERVER认证不符合三级要求,必须启用加密或双因子。
二、访问控制(控制点)
2.1 权限最小化与账户清理
| 命令 | 功能说明 | 合规要求 |
|---|---|---|
db2 "SELECT * FROM SYSIBMADM.PRIVILEGES" | 查看详细权限分配 | 遵循最小权限原则 |
db2 get authorizations | 检查当前会话权限 | 限制SYSADM仅管理员组 |
db2 "SELECT GRANTEE, GRANTEETYPE FROM SYSCAT.DBAUTH" | 数据库级权限 | 删除PUBLIC默认权限 |
db2 list applications | 查看活跃连接 | 禁止共享账户多人使用 |
2.2 默认账户处理
# 重命名默认高权限账户(如db2admin)
db2 rename user old_user to new_user
# 删除测试/多余账户
db2 drop user username
重点:
db2admin、db2inst1等默认账户必须重命名或限制使用。
三、 安全审计(核心控制点)【高风险项】
3.1 审计功能启用状态
| 命令 | 功能说明 | 合规要求 |
|---|---|---|
db2audit describe | 检查审计状态 | 必须显示Audit active: YES |
db2audit configure datapath="/audit/logs" | 设置日志路径 | 目录权限≤600(仅所有者读写) |
db2audit configure scope=all | 配置审计范围 | 覆盖所有用户、DCL、DDL、DML |
3.2 审计记录管理
# 手动刷新审计日志(确保实时记录)
db2audit flush
# 查看审计表(需提前配置审计表存储)
db2 "SELECT * FROM SYSAUD.ADT_<table_name>"
审计记录必备要素:
- [x] 日期时间(精确到秒)
- [x] 操作用户ID
- [x] 操作类型(SELECT/INSERT/GRANT等)
- [x] 操作对象(表名、数据库名)
- [x] 操作结果(成功/失败)
3.3 审计进程保护 【高风险项】
权限分离测试:
# 使用非审计管理员账户执行,应返回权限不足
db2audit stop
合规要求:
db2audit start/stop/configure命令仅SECADM权限可执行,普通DBA无法停止审计。
四、入侵防范与配置加固
4.1 服务与端口管控
# 查看监听端口(默认50000)
db2 get dbm cfg |grep-i"SVCENAME"
# 确认端口开放情况
netstat-an|grep50000
加固要求:
- 防火墙限制仅管理终端IP可访问50000端口
- 关闭历史遗留高危端口(如523/TCP、23/Telnet)
4.2 漏洞修复与版本管理
# 查看精确版本及补丁级别
db2level
# 检查许可证有效期(避免使用过期版本)
db2licm -l
版本要求:必须使用非EOL版本(建议v11.5+),IBM已停止v10.5及以下版本安全更新。
高风险项速查表(测评重点)
| 检查项 | 验证命令 | 不合规判定标准 | 整改措施 |
|---|---|---|---|
| 双因子认证缺失 | db2 get dbm cfg | 仅使用SERVER认证 | 集成Kerberos/RADIUS+OTP |
| 审计未启用 | db2audit describe | Audit active: NO | 配置scope=all并启动 |
| 默认账户未清理 | db2 list users | 存在db2admin等默认账户 | 重命名或删除 |
| 权限未分离 | db2 get authorizations | 业务用户持有SYSADM | 回收权限,仅管理员组保留 |
测评执行 checklist
执行前准备:
- [ ] 获取
db2inst1实例用户权限(系统命令) - [ ] 获取
SECADM权限(审计命令) - [ ] 准备专用测评终端,配置DB2客户端环境变量
现场测评:
- [ ] 执行所有表格中的命令并截图保存
- [ ] 人工抽查审计日志内容(非仅看配置)
- [ ] 验证双因子认证实际登录过程(非仅看配置项)
- [ ] 同步检查操作系统层等保合规性(DB2依赖OS账户)
测评师经验总结
- DB2的特殊性:DB2本身不存储密码,完全依赖操作系统或外部LDAP,测评时必须联动OS层检查账户安全策略。
- 审计是重灾区:多数用户未启用
db2audit,或仅启用未配置scope=all,导致审计记录不完整,直接判定不符合三级要求。 - 双因子认证的”坑”:很多用户声称有双因子,实际只是SSL加密传输(
SERVER_ENCRYPT),并非真正的双因子认证(如短信验证码、硬件令牌)。 - 权限分离的误区:DB2的
SYSADM权限过大,应严格控制,建议创建独立SECADM角色专管审计。
参考标准:GB/T 22239-2019、GB/T 28448-2019
适用版本:DB2 v11.5、v11.1(原理适用于v10.5+)
声明:来自汪汪虚拟空间,仅代表创作者观点。链接:https://eyangzhen.com/6323.html