man.bsd.lv manual page server

Manual Page Search Parameters

VERIEXEC(4) Device Drivers Manual VERIEXEC(4)

veriexecVeriexec pseudo-device

pseudo-device veriexec

Veriexec verifies the integrity of specified executables and files before they are run or read. This makes it much more difficult to insert a trojan horse into the system and also makes it more difficult to run binaries that are not supposed to be running, for example, packet sniffers, DDoS clients and so on.

The veriexec pseudo-device is used to load and delete entries to and from the in-kernel Veriexec databases, as well as query information about them. It can also be used to dump the entire database.

Veriexec uses proplib(3) for communication between the kernel and userland.

Load an entry for a file to be monitored by Veriexec.

The dictionary passed contains the following elements:

Type Purpose
file string filename for this entry
entry-type uint8 entry type (see below)
fp-type string fingerprint hashing algorithm
fp data the fingerprint

“entry-type” can be one or more (binary-OR'd) of the following:

Effect
can execute directly
can execute indirectly (interpreter, mmap(2))
can be opened
located on untrusted storage
Removes either an entry for a single file or entries for an entire mount from Veriexec.

The dictionary passed contains the following elements:

Type Purpose
file string filename or mount-point
Dump the Veriexec monitored files database from the kernel.

Only files that the filename is kept for them will be dumped. The returned array contains dictionaries with the following elements:

Type Purpose
file string filename
fp-type string fingerprint hashing algorithm
fp data the fingerprint
entry-type uint8 entry type (see above)
Flush the Veriexec database, removing all entries.

This command has no parameters.

Queries Veriexec about a file, returning information that may be useful about it.

The dictionary passed contains the following elements:

Type Purpose
file string filename

The dictionary returned contains the following elements:

Type Purpose
entry-type uint8 entry type (see above)
status uint8 entry status
fp-type string fingerprint hashing algorithm
fp data the fingerprint

“status” can be one of the following:

Meaning
not evaluated
fingerprint match
fingerprint mismatch

Note that the requests VERIEXEC_LOAD, VERIEXEC_DELETE, and VERIEXEC_FLUSH are not permitted once the strict level has been raised past 0.

proplib(3), sysctl(3), security(7), sysctl(8), veriexecctl(8), veriexecgen(8), veriexec(9)

veriexec is part of the default configuration on the following architectures: amd64, i386, prep, sparc64.

Brett Lymn <blymn@NetBSD.org>
Elad Efrat <elad@NetBSD.org>

March 19, 2011 NetBSD-8.0