策略偏差计算的工作原理

内容
cminder12901cn
内容
高级策略管理用于查看应部署到端点上的访问规则(策略部署的结果)与成功部署到同一端点上的实际规则之间的差别, 还可用于对策略对象进行属性添加和更改。 您可以利用这些信息解决与策略部署相关联的问题。
在端点上运行策略偏差计算时,将执行以下操作:
  1. 从本地主机检索应在端点上部署的规则的列表。
    这些规则是为每个部署的策略指定的规则,在与每个部署的策略版本的 POLICY 对象关联的本地 RULESET 对象中指定。
  2. 检查是否每个规则都应用于端点。
    重要信息!
    偏差计算不会检查是否应用了本地规则。 此外,它还将忽略从数据库中删除对象(用户或对象属性、用户或资源授权,或者实际用户或资源)的规则。 例如,计算无法验证是否应用了规则 rr FILE /etc/passwd
  3. (可选)对本地策略对象和 DMS 上的策略对象进行比较。
    通常情况下,偏差计算器仅检查本地主机上的偏差。 如果指定
    -strict
    选项,偏差计算器还将对与本地 HNODE 对象关联的策略和 DMS 上与 HNODE 对象关联的策略进行比较。 将比较以下项目:
    1. 与代表本地主机的 HNODE 对象关联的策略列表
    2. 每个与 HNODE 对象关联的 POLICY 对象的策略状态
    3. 每个与 HNODE 对象关联的 POLICY 对象的策略签名
  4. 输出以下两个文件:
    • ACInstallDir
      /data/devcalc/deviation.log
      在最后的偏差计算过程收集的日志和错误消息。
    • ACInstallDir
      /data/devcalc/deviation.dat
      策略及其偏差的列表。 可以在端点上使用 selang 命令
      get devcalc
      来获取此文件的内容。
    注意:
    Privileged Identity Manager
    还会发送可使用
    seaudit-a
    进行查看的审核事件。 有关 seaudit 实用工具的详细信息,请参阅《
    参考指南
    》。
  5. 通知 DMS 发现的任何偏差。
    通过为本地
    Privileged Identity Manager
    数据库指定的 DH 将通知发送给 DMS。
偏差计算触发器
应当定期执行偏差计算,以使 DMS 包含有关策略偏差状态的最新信息。 如果您在端点上启用高级策略管理,policyfetcher 会在每个检测信号之后触发偏差计算。
注意:
默认运行的偏差计算不考虑添加到端点的项。 要查看这些项目,请更改 devcalc_command 配置设置以便以
精确
模式运行偏差计算。
建议您修改 policyfetcher 设置以便进行策略偏差计算的间隔能够满足您的要求。
策略偏差日志和错误文件
策略偏差计算会在每次偏差计算过程中写入新日志。 该日志还包含错误消息,该日志存储在
ACInstallDir
/data/devcalc/deviation.log 中。
如果报告(即从 DMS 中检索的)显示中的偏差不是从最后一次应运行的偏差计算中收集的偏差,请使用该日志。 该日志可帮助您诊断为什么偏差计算结果未发送给 DMS。
示例:偏差日志和错误文件
以下是偏差日志和错误文件的示例:
start time: Mon Jan 23 13:04:48 2006 WARNING,\"failed to retrieve DH host name, deviation will be stored locally\" found deviation(s) for policy 'iis8#02' end time: Mon Jan 23 13:05:04 2006
策略偏差数据文件
策略偏差计算会写入包含策略及其偏差的列表的数据文件。 该数据文件存储在
ACInstallDir
/data/devcalc/deviation.dat 中。
注意:
数据文件中包含的策略列表取决于计算偏差的策略(默认情况下为所有策略以及端点上的所有策略版本) 。
重要信息!
偏差计算不会检查是否应用了本地规则。 此外,它还将忽略从数据库中删除对象(用户或对象属性、用户或资源授权,或者实际用户或资源)的规则。 例如,计算无法验证是否应用了规则 rr FILE /etc/passwd
偏差状态(无论是否存在偏差)将被发送至 DMS,但将实际偏差存储在本地。 创建报告时,可以从该文件中检索实际偏差结果,并将其添加到报告中。
策略偏差数据文件中将显示如下行:
  • Date
    显示偏差计算的时间戳。 日期行始终是偏差报告中的第一行。
    格式:
    DATE,
    DDD MMM DD hh:mm:ss YYYY
  • Strict
    指定用 -strict 选项运行的偏差计算。
    格式:
    STRICT,
    DMS
    @
    hostname
    ,
    policy_name
    #
    xx
    , [1|0]
    [1|0] 表示是找到 (1) 还是没找到 (0) 与本地 HNODE 对象关联的策略和与
    DMS@hostname
    (第一个可用 DMS)上 HNODE 对象关联的策略之间的偏差。
  • Policy Start
    启动定义该策略版本偏差的策略块。
    格式:
    POLICYSTART,
    policy_name
    #
    xx
  • Difference
    对找到的策略偏差进行说明。 偏差适用的策略名称是此行上面最近的
    策略行
    偏差分为八种类型,四种表示缺少元素,另外四种表示添加了元素,如下表所示:
偏差类型
格式
未找到类
DIFF, -(
class_name
), (*), (*), (*)
未找到对象
DIFF, (
class_name
), -(
object_name
), (*), (*)
添加了对象
DIFF, (
class_name
), +(
object_name
), (*), (*)
未找到属性
DIFF, (
class_name
), (
object_name
), -(
property_name
), (*)
添加了属性
DIFF, (
class_name
), (
object_name
), +(
property_name
), (*)
失少属性值
DIFF, (
class_name
), (
object_name
), (
property_name
),
-(expected_value
)
添加了属性值
DIFF, (
class_name
), (
object_name
), (
property_name
),
+(value
)
注意:
当偏差计算器检测到缺失类时,它还会创建所有缺失对象、属性和值的偏差行。
  • Policy End
    结束定义该策略偏差的策略块。
    格式:
    POLICYEND,
    policy_name
    #
    xx
    , [1|0]
    [1|0] 表示找到偏差 (1) 或未找到偏差 (0)。
  • Warning
    说明警告。
    格式:
    WARNING, "
    warning_text
    "
示例:偏差数据文件
以下示例显示了偏差数据文件的摘录内容:
Date, Sun Mar 19 08:30:00 2006 WARNING, "failed to retrieve DH host name, deviation will be stored locally" POLICYSTART, iis8#02 DIFF, (USER), (iispers), (*), (*) POLICYEND, iis8#02, 1
表示缺失元素的偏差
偏差计算器对于缺失元素和添加的新元素是不同的。 缺失元素是指在指定策略中显式定义但在本地主机上不存在的
Privileged Identity Manager
元素。 这些缺失元素可为:类、对象、属性和值。
缺失元素的任意组合可定义层级结构要求。 例如,如果 Policy1 有以下规则:
eu mytestuser2 operator
偏差计算器确认满足以下隐性要求:
  • 必须存在 USER 类
    规则定义了属于 USER 类的用户。
  • 必须存在 USER 对象 mytestuser2
    规则明确涉及 USER 类的 mytestuser2 对象。
  • 必须存在 OBJ_TYPE 属性
    规则使用操作符参数来设置 USER 对象的 OBJ_TYPE 参数。
  • 值 Operator 分配给 OBJ_TYPE 属性
    规则明确设置了此值。
表示添加元素的偏差
偏差计算器对于缺失元素和添加的新元素是不同的。 添加的元素是指在本地定义但在指定策略中不存在的
Privileged Identity Manager
元素。 这些添加的元素可为:类、对象、属性和值。
如果本地例外添加以下新元素,将包括添加偏差:
  • 策略内所提及对象的属性值。
  • 策略内所提及对象的属性。
注意:
在任何策略内均未提及的新对象不会被视为添加;这一点也适用于新类。
表示修改元素的偏差
当偏差数据文件中没有单一偏差行显示修改时,就会发生显示已修改元素的偏差。 要识别修改,您需要查找适用于同一元素的的连续删除行和添加行。 例如,在以下偏差数据文件的提取中,mytestuser 已从具有 Operator 值修改为具有 Auditor 和 Administrator 值:
DIFF, (USER), (mytestuser2), (OBJ_TYPE), -(Operator) DIFF, (USER), (mytestuser2), (OBJ_TYPE), +(Auditor) DIFF, (USER), (mytestuser2), (OBJ_TYPE), +(Administrator)