跳到主要内容

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] 或具有同等强度的其他访问控制机制进行控制。

建议使用以下访问控制准则:

1. usmUserTable - 用户配置表 (User Configuration Table)

读访问 (Read Access):

  • 用户应该 (SHOULD) 能够读取他们在 usmUserTable 中的自己条目
  • 管理员应该 (SHOULD) 能够读取所有条目
  • 普通用户不应该 (SHOULD NOT) 能够读取其他用户的条目

写访问 (Write Access):

  • 用户应该 (SHOULD) 能够修改他们自己条目中的某些对象:
    • usmUserOwnAuthKeyChange - 更改他们自己的认证密钥
    • usmUserOwnPrivKeyChange - 更改他们自己的隐私密钥
    • usmUserPublic - 通用可写对象
  • 管理员应该 (SHOULD) 能够:
    • 通过 usmUserCloneFromusmUserStatus 创建新用户
    • 修改所有用户的 usmUserAuthKeyChangeusmUserPrivKeyChange
    • 通过将 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 (密钥管理对象)

以下对象需要特殊保护:

  • usmUserAuthKeyChangeusmUserPrivKeyChange: 这些对象允许管理员更改任何用户的密钥。访问应严格限制给受信任的管理员。
  • usmUserOwnAuthKeyChangeusmUserOwnPrivKeyChange: 这些对象允许用户更改他们自己的密钥。每个用户应仅对他们自己条目中的这些对象具有写访问权限。

重要提示: 这些对象使用特殊的密钥更改协议 (在 MIB 模块的第 5 节中描述) 以确保在更改操作期间密钥无法被拦截或泄露。

View Configuration Example (视图配置示例)

典型的 VACM 配置可能包括:

  1. 管理员视图 (Administrator View): 对整个 usmUserTable 的完全读写访问和对 usmStats 的读访问

  2. 用户自我管理视图 (User Self-Management View): 对 usmUserTable 中自己条目的读访问, 对自己条目中的 usmUserOwnAuthKeyChangeusmUserOwnPrivKeyChange 的写访问

  3. 监控视图 (Monitoring View): 对 usmStats 组的只读访问以进行安全监控

  4. 受限视图 (Restricted View): 对 usmUserTable 无访问权限, 对 usmStats 的有限或无访问权限

Security Considerations for MIB Access (MIB 访问的安全考虑)

  1. 防止枚举 (Prevent Enumeration): 限制对 usmUserTable 的读访问可防止攻击者枚举有效用户名。

  2. 保护密钥更改操作 (Protect Key Change Operations): 即使密钥本身从不直接可读, 也应保护密钥更改机制以防止未经授权的密钥更改。

  3. 监控统计信息 (Monitor Statistics): 定期监控 usmStats 计数器可以帮助检测:

    • 暴力认证尝试 (usmStatsWrongDigests)
    • 时间同步问题 (usmStatsNotInTimeWindows)
    • 尝试使用未知用户 (usmStatsUnknownUserNames)
  4. 审计日志集成 (Audit Log Integration): 考虑将 SNMP 安全事件 (从 usmStats 更改派生) 集成到企业安全信息和事件管理 (SIEM) 系统中。

Initial Configuration (初始配置)

在 SNMP 引擎的初始配置期间:

  1. 必须 (MUST) 至少配置一个具有完全管理权限的初始用户。
  2. 应通过安全的带外机制 (例如, 本地控制台访问) 配置此初始用户。
  3. 一旦配置了初始用户, 就可以通过 SNMP 使用 usmUserCloneFrom 机制创建其他用户。
  4. 如果在引导期间使用了默认凭据, 则应在首次使用后立即更改初始用户的凭据。