分页: 1 / 1

《NetBSD指南-19.3.创建指纹》

发表于 : 2010-03-06 11:41
leo
你可以使用下列工具为每种算法生成ASCII指纹:
[INDENT]图 19.1. Veriexec指纹工具
图片


[/INDENT]例如, 为/bin/ls 生成一个 MD5 指纹:
[INDENT]% cksum -a md5 < /bin/ls
a8b525da46e758778564308ed9b1e493
[/INDENT]接着为/bin/ps生成一个 SHA512 指纹:
[INDENT]% cksum -a sha512 < /bin/ps
381d4ad64fd47800897446a2026eca42151e03adeae158db5a34d12c529559113d928a9fef9a7c4615d257688d1da4645db004081030d7f080bb7198067eb890

[/INDENT]每个项目可能与0或多个标志相关. 目前, 这些标签描述了如何访问这些文件和选项。 注意这种访问类型被强制地严格限定为级别2 (IPS 模式) 或更高.


你可以使用的访问类型是 “DIRECT”, “INDIRECT”, 和 “FILE”.
  • DIRECT 访问的意思是文件直接被运行, 而对某些脚本来说不调用解释程序, 或者打开一个编辑器. 通常, 你使用的多数程序全以这种方式被访问:
    % ls /tmp
    % cp ~/foo /tmp/bar
    % rm ~/foo
  • INDIRECT 访问的意思是文件不是直接被执行, 而是被调用解释一个脚本. 这通常发生在脚本包含一个 #! 仿佛它们的第一行具有魔力似的. 例如, 如果有一个脚本的第一行像这样:
    #!/bin/sh
    而你这样运行它:
    % ./script.sh
    则 /bin/sh 会被非直接地运行 -- 它会被调用来解释这个脚本.
  • FILE 项所指的所有目标是不可(或不应)运行项. 这包括共享库, 配置文件等.
    一些Veriexec签名文件项的例子:
    [INDENT]/bin/ls MD5 dc2e14dc84bdefff4bf9777958c1b20b DIRECT
    /usr/bin/perl MD5 914aa8aa47ebd79ccd7909a09ed61f81 INDIRECT
    /etc/pf.conf MD5 950e1dd6fcb3f27df1bf6accf7029f7d FILE[/INDENT]
Veriexec允许你在某项中以一种以上的方式访问一个文件。例如, 尽管 /usr/bin/perl 通常被当作一个解释器, 但可能你也希望直接运行它:
[INDENT]/usr/bin/perl MD5 914aa8aa47ebd79ccd7909a09ed61f81 DIRECT, INDIRECT[/INDENT]
使用 #! 的Shell脚本魔幻般地 “可被执行” 也需要两种两种访问类型: 需要运行它们时,我们需要它们为“DIRECT” , 有时我们希望它们是 “FILE” 以便内核可以将其内容提供给它们定义的解释器:
[INDENT]/usr/src/build.sh MD5 e80dbb4c047ecc1d84053174c1e9264a DIRECT, FILE[/INDENT]

要让它更容易创建签名文件, 并且要让签名文件有更好的可读性, Veriexec允许你使用下列的别名:
[INDENT]Table 19.2. Veriexec访问类型别名
图片


[/INDENT]创建指纹的脚本范例在 /usr/share/examples/veriexecctl. 当你生成了一个签名文件后, 你应该将其保存为 /etc/signatures, 并在 rc.conf内启用Veriexec:
veriexec=YES