在 Oracle® Solaris 11.2 中确保文件的安全和确认文件完整性

退出打印视图

更新时间: 2014 年 7 月
 
 

如何比较不同系统的清单

通过比较来自不同系统的清单,您可以确定系统是否是以完全相同的方式安装的,或者系统是否已同步升级。例如,如果您为系统定制了特定的安全目标,该比较将查找代表您的安全目标的清单与来自其他系统的清单之间的任何差异。

开始之前

您必须成为 root 角色。有关更多信息,请参见在 Oracle Solaris 11.2 中确保用户和进程的安全 中的使用所指定的管理权限

  1. 创建控制清单。
    # bart create options > control-manifest

    有关选项,请参见 bart(1M) 手册页。

  2. (u53ef选)将清单保存在受保护的目录中供将来使用。

    例如,请参见如何创建控制清单中的Step 3

  3. 在测试系统上,使用相同的 bart 选项创建一个清单。
    # bart create options > test1-manifest
  4. (u53ef选)将清单保存在受保护的目录中供将来使用。
  5. 要进行比较,请将清单复制到一个中央位置。

    例如:

    # cp control-manifest /net/test-server/var/adm/logs/bartlogs

    如果测试系统不是 NFS 挂载的系统,请使用 sftp 或其他可靠方法将清单复制到一个中央位置。

  6. 比较清单并将输出重定向到一个文件。
    # bart compare control-manifest test1-manifest > test1.report
  7. 检查 BART 报告中的异常情况。
示例 2-3  识别 /usr/bin 目录中的可疑文件

    本示例比较两个系统上 /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 已更改,所以很有可能是有人篡改了此文件。