20.2.4 基本审计和报告工具(BART)
BART是在文件系统级的文件跟踪工具。使用BART工具使你能快速、容易和可靠地得到系统中的软件构成信息。使用BART能很大程度地减少网络系统的管理成本。BART能够在目标系统软件目录的文件层执行检查操作。该实用程序可用于收集有关系统已安装了哪些内容的信息。BART还使你能够对已安装的系统及系统内容随时间的变化情况进行比较。
1.BART的组成
基本审计和报告工具(BART)由两个主要部分和一个可选部分组成。
(1)BART文件列表(Manifest)。
你可以使用bart create命令在特定时刻建立文件层的快照。输出的文件目录或文件属性被称为文件列表。文件列表中列出文件的信息,包括着文件属性信息及一些其他的惟一信息,比如md5的检查信息等。
(2)BART报告。
BART报告有三个输出:两个文件列表的比较和一个可能出现的差异标记。你能用bart compare命令比较两个文件列表:控制文件列表和测试文件列表。这些文件列表必须是具有相同的文件系统、选项和创建时使用的规则文件。bart compare命令报告两个文件列表的每一行的差异。这个差异就是指文件列表内表示的文件属性的任何差异。两个文件列表中条目的增加和删除也视为差异。
(3)BART规则文件。
规则文件是用来管理bart命令的文件,是可选的。它使用或排除一些规则。规则文件用来创建定制文件列表和报告。规则文件使你能使用简单的语法设置文件的类别,以及哪些属性需要监控。当你比较文件列表时,规则文件帮助识别差异。使用规则文件是得到系统专门信息的有效方法。
2.如何使用BART
规则用户、超级用户或具有重要管理权限的用户可以使用bart命令。如果你是运行bart的规则用户,你只能监控有权限访问的文件和目录,比如主目录信息。超级用户使用bart命令的优势是可以监控隐藏目录和私人目录的信息。如果要监控严格限制的目录,比如/etc/shadow和/etc/passwd目录,就需要是超级用户或具有相当角色的用户。
(1)如何创建文件列表。
例20-24 创建包含目录/etc/ssh下所有文件信息的文件列表。
# bart create -R /etc/ssh
! Version 1.0
! Saturday, November 29, 2003 (14:05:36)
# 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
/ D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f81eab9 0 3
/ssh_config F 861 100644 user::rw-,group::r--,mask:r--,
other:r-- 3f81e504 0 3 422453ca0e2348cd9981820935600395
/ssh_host_dsa_key F 668 100600 user::rw-,group::---,mask:---,
other:--- 3f81eab9 0 0 5cc28cdc97e833069fd41ef89e4d9834
…
例20-25 创建包含文件/etc/passwd和/etc/shadow的信息的文件列表。
# bart create -I /etc/passwd /etc/shadow
! Version 1.0
! Monday, December 15, 2003 (16:28:55)
# 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
/etc/passwd F 542 100444 user::r--,group::r--,mask:r--,
other:r-- 3fcfd45b 0 3 d6
84554f85d1de06219d80543174ad1a
/etc/shadow F 294 100400 user::r--,group::---,mask:---,
other:--- 3f8dc5a0 0 3 fd
c3931c1ae5ee40341f3567b7cf15e2
上面已经显示了这两个文件的详细信息,我们可以对比一下ls –al命令的输出,体会一下它们之间的不同:
# ls -al /etc/passwd
-r--r--r-- 1 root sys 542 Dec 4 17:42 /etc/passwd
# ls -al /etc/shadow
-r-------- 1 root sys 294 Oct 15 16:09 /etc/shadow
显然,文件列表的内容要比ls –al详细得多。
(2)如何比较文件列表。
如果我们在不同的时间对系统中某个目录分别建立了两个文件列表,就可以通过比较这两文件列表的不同而找到这个目录的轻微改动,这也将为系统安全带来新的保障。
例20-26 比较不同时间的/etc目录的变化。
首先,建立/etc的文件列表:
bart create -R /etc > system1.control.121203
在另一个时间建立/etc目录的新的文件列表:
bart create -R /etc > system1.test.121503
最后,比较两个文件列表的内容:
# bart compare system1.control.121203 system1.test.121503
/vfstab:
mode control:100644 test:100777
acl control:user::rw-,group::r--,mask:r--,other:r-- test:user::rwx,
group::rwx, mask:rwx, other:rwx
通过上面的输出报告,我们发现/etc/vfstab文件已经被更改了。