11.5. Access to the SNMP-USER-BASED-SM-MIB (访问 SNMP-USER-BASED-SM-MIB)
11.5. Access to the SNMP-USER-BASED-SM-MIB (访问 SNMP-USER-BASED-SM-MIB)
本节提供有关控制访问 SNMP-USER-BASED-SM-MIB 模块中对象的建议。
Overview (概述)
SNMP-USER-BASED-SM-MIB 包含敏感的安全相关信息, 包括:
- 用户名和安全参数
- 认证和隐私协议标识符
- 更改密钥的机制
- 统计计数器
对这些对象的不当访问可能会危及整个 SNMP 管理系统的安全性。
Access Control Requirements (访问控制要求)
对 SNMP-USER-BASED-SM-MIB 的访问必须 (MUST) 使用基于视图的访问控制模型 (VACM) [RFC3415] 或具有同等强度的其他访问控制机制进行控制。
Recommended Access Controls (推荐的访问控制)
建议使用以下访问控制准则:
1. usmUserTable - 用户配置表 (User Configuration Table)
读访问 (Read Access):
- 用户应该 (SHOULD) 能够读取他们在
usmUserTable中的自己条目 - 管理员应该 (SHOULD) 能够读取所有条目
- 普通用户不应该 (SHOULD NOT) 能够读取其他用户的条目
写访问 (Write Access):
- 用户应该 (SHOULD) 能够修改他们自己条目中的某些对象:
usmUserOwnAuthKeyChange- 更改他们自己的认证密钥usmUserOwnPrivKeyChange- 更改他们自己的隐私密钥usmUserPublic- 通用可写对象
- 管理员应该 (SHOULD) 能够:
- 通过
usmUserCloneFrom和usmUserStatus创建新用户 - 修改所有用户的
usmUserAuthKeyChange和usmUserPrivKeyChange - 通过将
usmUserStatus设置为destroy(6)删除用户
- 通过
- 普通用户不应该 (SHOULD NOT) 能够修改其他用户的条目
2. usmUserSpinLock
- 读访问: 所有已认证用户
- 写访问: 仅管理员或被授权修改
usmUserTable的用户
usmUserSpinLock 用于协调对 usmUserTable 的访问, 当多个管理器尝试同时修改时。
3. usmStats 组 - 统计计数器 (Statistics Counters)
读访问 (Read Access):
- 应该 (SHOULD) 可由管理员和监控应用程序读取
- 可以 (MAY) 可由普通已认证用户读取以用于诊断目的
写访问 (Write Access):
- 不应该 (SHOULD NOT) 可由任何用户写入 (这些是只读计数器)
统计计数器为以下方面提供有价值的信息:
- 安全监控和入侵检测
- 认证和时间同步问题的故障排除
- 容量规划
4. Key Management Objects (密钥管理对象)
以下对象需要特殊保护:
usmUserAuthKeyChange和usmUserPrivKeyChange: 这些对象允许管理员更改任何用户的密钥。访问应严格限制给受信任的管理员。usmUserOwnAuthKeyChange和usmUserOwnPrivKeyChange: 这些对象允许用户更改他们自己的密钥。每个用户应仅对他们自己条目中的这些对象具有写访问权限。
重要提示: 这些对象使用特殊的密钥更改协议 (在 MIB 模块的第 5 节中描述) 以确保在更改操作期间密钥无法被拦截或泄露。
View Configuration Example (视图配置示例)
典型的 VACM 配置可能包括:
-
管理员视图 (Administrator View): 对整个
usmUserTable的完全读写访问和对usmStats的读访问 -
用户自我管理视图 (User Self-Management View): 对
usmUserTable中自己条目的读访问, 对自己条目中的usmUserOwnAuthKeyChange和usmUserOwnPrivKeyChange的写访问 -
监控视图 (Monitoring View): 对
usmStats组的只读访问以进行安全监控 -
受限视图 (Restricted View): 对
usmUserTable无访问权限, 对usmStats的有限或无访问权限
Security Considerations for MIB Access (MIB 访问的安全考虑)
-
防止枚举 (Prevent Enumeration): 限制对
usmUserTable的读访问可防止攻击者枚举有效用户名。 -
保护密钥更改操作 (Protect Key Change Operations): 即使密钥本身从不直接可读, 也应保护密钥更改机制以防止未经授权的密钥更改。
-
监控统计信息 (Monitor Statistics): 定期监控
usmStats计数器可以帮助检测:- 暴力认证尝试 (
usmStatsWrongDigests) - 时间同步问题 (
usmStatsNotInTimeWindows) - 尝试使用未知用户 (
usmStatsUnknownUserNames)
- 暴力认证尝试 (
-
审计日志集成 (Audit Log Integration): 考虑将 SNMP 安全事件 (从
usmStats更改派生) 集成到企业安全信息和事件管理 (SIEM) 系统中。
Initial Configuration (初始配置)
在 SNMP 引擎的初始配置期间:
- 必须 (MUST) 至少配置一个具有完全管理权限的初始用户。
- 应通过安全的带外机制 (例如, 本地控制台访问) 配置此初始用户。
- 一旦配置了初始用户, 就可以通过 SNMP 使用
usmUserCloneFrom机制创建其他用户。 - 如果在引导期间使用了默认凭据, 则应在首次使用后立即更改初始用户的凭据。