veriexecctl.8 revision 1.24
$NetBSD: veriexecctl.8,v 1.24 2006/07/22 10:43:51 elad Exp $

Copyright (c) 1999
Brett Lymn - blymn@baea.com.au, brett_lymn@yahoo.com.au

This code is donated to The NetBSD Foundation by the author.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. The name of the Author may not be used to endorse or promote
products derived from this software without specific prior written
permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.

$Id: veriexecctl.8,v 1.24 2006/07/22 10:43:51 elad Exp $

.Dd July 22, 2006 .Dt VERIEXECCTL 8 .Os .Sh NAME .Nm veriexecctl .Nd load or report veriexec fingerprints .Sh SYNOPSIS .Nm .Cm load Ar signatures .Nm .Cm delete Op file | mount_point .Nm .Cm query Ar file .Sh DESCRIPTION The .Nm command is used to manipulate the Veriexec feature. Veriexec must have been configured into the booted kernel for this commaned to work. .Sh COMMANDS l -tag -width 25n t Cm load Ar signatures Load the fingerprint entries contained in .Ar signatures into the in kernel tables. This operation is only available if kern.veriexec.strict is zero. Once loaded the kernel can then validate executed programs or files against the loaded fingerprints and report when fingerprints do not match. t Cm delete Op file | mount_point Delete the specified file from the Veriexec table in which it is stored. If the argument is a mount_point (or a directory), the device id for it is fetched and the entire Veriexec table that refers to it is removed. t Cm query Ar file Query Veriexec about information associated with .Ar file : Filename, mount, fingerprint, fingerprint algorithm, evaluation status, and entry type. .El .Sh SIGNATURES The

a signatures file contains lines of fields (separated by one or more whitespace characters) of the form:

p .Dl path type fingerprint options

p Where .Em path is the full path to the file and .Em type is the type of fingerprint used, see above for the default list. Other fingerprints may be available depending on kernel configuration. The .Em fingerprint field is a hexadecimal representation of the fingerprint for the file. The field .Em options contains the associated options for the file. Currently there are seven valid options:

p l -tag -width INTERPRETER -compact t Dv DIRECT Allow direct execution only. t Dv INDIRECT If this option is set then the executable cannot be invoked directly, it can only be used as an interpreter in shell scripts. t Dv FILE Indicates that the fingerprint is associated with a file, not an executable. Files have their fingerprints verified during .Xr open 2 and are automatically made read only. This option may be used to verify shared libraries have not been tampered with. t Dv PROGRAM An alias for .Dv DIRECT , allow direct execution only. t Dv INTERPRETER An alias for .Dv INDIRECT , the executable may only be used as an interpreter for shell scripts. t Dv SCRIPT The file is a shell script. For correct operation of veriexec, a script must have both .Dv FILE and .Dv DIRECT attributes set. This option is a shorthand way of setting the options for correct operation of shell scripts. t Dv LIBRARY The file is a library, this option is an alias of the .Dv FILE option. t Dv UNTRUSTED This option is used to indicate that the file is located on untrusted storage, and its fingerprint should not be cached, but calculated each time it is accessed and when pages with this file as backing store are paged in. .El

p There must be only one executable/fingerprint pair per line. Comments are indicated by the first character of a line being a .Sq # character. Multiple options can be combined using a .Sq , character. If no options are specified, both direct and indirect execution are implied. .Sh FILES l -tag -width /etc/signatures -compact t Pa /dev/veriexec veriexec device node t Pa /etc/signatures default signatures file .El .Sh SEE ALSO .Xr veriexec 4 ,

a /usr/share/examples/veriexecctl/fpgen.sh ,

a /usr/share/examples/veriexecctl/gen_md5 ,

a /usr/share/examples/veriexecctl/gen_rmd160 ,

a /usr/share/examples/veriexecctl/gen_sha1 .Sh HISTORY .Nm first appeared in .Nx 2.0 . .Sh NOTES .Nm requires the kernel to have been configured with the veriexec pseudo-device. .Sh BUGS There must be no whitespace in the path field of a fingerprint entry.