《NetBSD指南-19.3.创建指纹》
发表于 : 2010-03-06 11:41
你可以使用下列工具为每种算法生成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”.
[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
[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]
[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