通过比较来自不同系统的清单,您可以确定系统是否是以完全相同的方式安装的,或者系统是否已同步升级。例如,如果您为系统定制了特定的安全目标,该比较将查找代表您的安全目标的清单与来自其他系统的清单之间的任何差异。
开始之前
您必须成为 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限。
# bart create options > control-manifest
有关选项,请参见 bart(1M) 手册页。
# bart create options > test1-manifest
例如:
# cp control-manifest /net/test-server/var/adm/logs/bartlogs
如果测试系统不是 NFS 挂载的系统,请使用 sftp 或其他可靠方法将清单复制到一个中央位置。
# bart compare control-manifest test1-manifest > test1.report
本示例比较两个系统上 /usr/bin 目录中的内容。
创建控制清单。
# bart create -R /usr/bin > control-manifest.090713 ! Version 1.1 ! HASH SHA256 ! Saturday, September 07, 2013 (11:11:17) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /2to3 F 105 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribut es/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:read _data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:re ad_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4bf9d261 0 2 154de3e7bdfd0d57a074c9fae0896a9e2e04bebfe5e872d273b063319e57f334 /7z F 509220 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribu tes/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:rea d_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:r ead_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4dadc48a 0 2 3ecd418eb5be3729ffe7e54053be2d33ee884205502c81ae9689cd8cca5b0090 ...
为需要与控制系统进行比较的每个系统创建一个相同的清单。
# bart create -R /usr/bin > system2-manifest.101013 ! Version 1.1 ! HASH SHA256 ! Monday, October 10, 2013 (10:10:22) # Format: #fname D size mode acl dirmtime uid gid #fname P size mode acl mtime uid gid #fname S size mode acl mtime uid gid #fname F size mode acl mtime uid gid contents #fname L size mode acl lnmtime uid gid dest #fname B size mode acl mtime uid gid devnode #fname C size mode acl mtime uid gid devnode /2to3 F 105 100555 owner@:read_data/read_xattr/write_xattr/execute/read_attribut es/write_attributes/read_acl/write_acl/write_owner/synchronize:allow,group@:read _data/read_xattr/execute/read_attributes/read_acl/synchronize:allow,everyone@:re ad_data/read_xattr/execute/read_attributes/read_acl/synchronize:allow 4bf9d261 0 2 154de3e7bdfd0d57a074c9fae0896a9e2e04bebfe5e872d273b063319e57f334 ...
将清单复制到同一个位置。
# cp control-manifest.090713 /net/system2.central/bart/manifests
比较这些清单。
# bart compare control-manifest.090713 system2.test.101013 > system2.report /su: gid control:3 test:1 /ypcat: mtime control:3fd72511 test:3fd9eb23
此输出表明 /usr/bin 目录中 su 文件的组 ID 与控制系统中的相应组 ID 不同。此信息可能表明测试系统上安装了不同的软件版本。因为 GID 已更改,所以很有可能是有人篡改了此文件。