VERIEXECCTL(8)

NAME
veriexecctl - load or report veriexec fingerprints

SYNOPSIS
veriexecctl load signatures
veriexecctl delete [file | mount_point]
veriexecctl query file

DESCRIPTION
The veriexecctl command is used to manipulate the Veriexec feature. Veriexec must have been configured into the booted kernel for this commaned to work.

  Commands

load signatures
    Load the fingerprint entries contained in 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.

delete [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.

query file
    Query Veriexec about information associated with file: Filename, mount, fingerprint, fingerprint algorithm, evaluation status, and entry type.

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

    path type fingerprint options

Where path is the full path to the file (spaces, tabs, etc. can be escaped if prefixed with a backslash) and type is the type of fingerprint used, see above for the default list. Other fingerprints may be available depending on kernel configuration. The fingerprint field is a hexadecimal representation of the fingerprint for the file. The field options contains the associated options for the file. Currently there are eight valid options, five of which are aliases to improve readability of the database files:

DIRECT
    Allow direct execution only.

INDIRECT
    If this option is set then the executable cannot be invoked directly, it can only be used as an interpreter in scripts.

FILE
    Indicates that the fingerprint is associated with a file, not an executable. Files have their fingerprints verified during open(2) and are automatically made read only. This option may be used to verify shared libraries have not been tampered with.

PROGRAM
    An alias for DIRECT, allow direct execution only.

INTERPRETER
    An alias for INDIRECT, the executable may only be used as an interpreter for scripts.

SCRIPT
    The file is a script. For correct operation of veriexec, a script must have both FILE and DIRECT attributes set. This option is a shorthand way of setting the options for correct operation of scripts.

LIBRARY
    The file is a library, this option is an alias for FILE and INDIRECT.

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.

There must be only one executable/fingerprint pair per line. Comments are indicated by the first character of a line being a ‘#’ character. Multiple options can be combined using a ‘’, character. If no options are specified, both direct and indirect execution are implied.

FILES
/dev/veriexec
    veriexec device node
/etc/signatures
    default signatures file

SEE ALSO
veriexec(4), veriexecgen(8)

HISTORY
veriexecctl first appeared in NetBSD 2.0.

NOTES
veriexecctl requires the kernel to have been configured with the “veriexec” pseudo-device.