策略偏差计算的工作原理
内容
cminder12901cn
内容
高级策略管理用于查看应部署到端点上的访问规则(策略部署的结果)与成功部署到同一端点上的实际规则之间的差别, 还可用于对策略对象进行属性添加和更改。 您可以利用这些信息解决与策略部署相关联的问题。
在端点上运行策略偏差计算时,将执行以下操作:
- 从本地主机检索应在端点上部署的规则的列表。这些规则是为每个部署的策略指定的规则,在与每个部署的策略版本的 POLICY 对象关联的本地 RULESET 对象中指定。
- 检查是否每个规则都应用于端点。重要信息!偏差计算不会检查是否应用了本地规则。 此外,它还将忽略从数据库中删除对象(用户或对象属性、用户或资源授权,或者实际用户或资源)的规则。 例如,计算无法验证是否应用了规则 rr FILE /etc/passwd
- (可选)对本地策略对象和 DMS 上的策略对象进行比较。通常情况下,偏差计算器仅检查本地主机上的偏差。 如果指定-strict选项,偏差计算器还将对与本地 HNODE 对象关联的策略和 DMS 上与 HNODE 对象关联的策略进行比较。 将比较以下项目:
- 与代表本地主机的 HNODE 对象关联的策略列表
- 每个与 HNODE 对象关联的 POLICY 对象的策略状态
- 每个与 HNODE 对象关联的 POLICY 对象的策略签名
- 输出以下两个文件:
- ACInstallDir/data/devcalc/deviation.log在最后的偏差计算过程收集的日志和错误消息。
- ACInstallDir/data/devcalc/deviation.dat策略及其偏差的列表。 可以在端点上使用 selang 命令get devcalc来获取此文件的内容。
注意:Privileged Identity Manager还会发送可使用seaudit-a进行查看的审核事件。 有关 seaudit 实用工具的详细信息,请参阅《参考指南》。 - 通知 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)