Commit Graph

15 Commits

Author SHA1 Message Date
elad
b2b73a2973 misc cleanup: remove #if 0 code, unused var, and make pretty. 2006-07-14 23:00:09 +00:00
elad
b5d09ef065 okay, since there was no way to divide this to two commits, here it goes..
introduce fileassoc(9), a kernel interface for associating meta-data with
files using in-kernel memory. this is very similar to what we had in
veriexec till now, only abstracted so it can be used more easily by more
consumers.

this also prompted the redesign of the interface, making it work on vnodes
and mounts and not directly on devices and inodes. internally, we still
use file-id but that's gonna change soon... the interface will remain
consistent.

as a result, veriexec went under some heavy changes to conform to the new
interface. since we no longer use device numbers to identify file-systems,
the veriexec sysctl stuff changed too: kern.veriexec.count.dev_N is now
kern.veriexec.tableN.* where 'N' is NOT the device number but rather a
way to distinguish several mounts.

also worth noting is the plugging of unmount/delete operations
wrt/fileassoc and veriexec.

tons of input from yamt@, wrstuden@, martin@, and christos@.
2006-07-14 18:41:40 +00:00
elad
8fc0d7a9c3 Introduce per-page fingerprints in Veriexec.
This closes a hole pointed out by Thor Lancelot Simon on tech-kern ~3
years ago.

The problem was with running binaries from remote storage, where our
kernel (and Veriexec) has no control over any changes to files.

An attacker could, after the fingerprint has been verified and
program loaded to memory, inject malicious code into the backing
store on the remote storage, followed by a forced flush, causing
a page-in of the malicious data from backing store, bypassing
integrity checks.

Initial implementation by Brett Lymn.
2005-10-05 13:48:48 +00:00
blymn
b7550dc6d4 Add and document some convenience aliases for commonly required option
combinations.
2005-08-06 09:00:20 +00:00
elad
6e4a854552 Support multiple entry types. Direct, indirect, and file can now be
combined in the signatures file using commas.
2005-08-02 16:14:10 +00:00
elad
db6ca056ee Some refactoring and bugfixes:
- Report line numbers correctly.
  - Don't perform a 2nd pass when there are were errors during 1st.
  - Support multiple, comma-separated flags. This is mostly a reworking of
    some parser internals preparing for planned features.
2005-06-13 15:18:44 +00:00
elad
0f2f650859 Don't access a NULL pointer. 2005-05-27 15:46:23 +00:00
elad
18afb98204 Remove leftovers from Vexec. 2005-05-20 20:06:34 +00:00
christos
7391aafa62 Minor cleanups, KNF, error handling consistency. 2005-04-21 12:45:12 +00:00
he
271cfff6d5 Make this compile again after the latest overhaul.
Use -I${.CURDIR} instead of -I. to support placement of objects elsewhere.
Make sure arguments to ctype functions are unsigned char by changing the
type of one function argument.
Fix "local declaration shadows global" warnings by renaming variables.
Fix printing of size_t variable to use %zu format instead of %u.
2005-04-21 11:21:58 +00:00
blymn
8387760ed1 Rototill of the verified exec functionality.
* We now use hash tables instead of a list to store the in kernel
    fingerprints.
  * Fingerprint methods handling has been made more flexible, it is now
    even simpler to add new methods.
  * the loader no longer passes in magic numbers representing the
    fingerprint method so veriexecctl is not longer kernel specific.
  * fingerprint methods can be tailored out using options in the kernel
    config file.
  * more fingerprint methods added - rmd160, sha256/384/512
  * veriexecctl can now report the fingerprint methods supported by the
    running kernel.
  * regularised the naming of some portions of veriexec.
2005-04-20 13:44:45 +00:00
xtraeme
61d594f024 Kill __P(); WARNS=2 2005-01-19 20:42:04 +00:00
blymn
fdcc085558 Removed arbitrary 255 character limit on file field
Verify that the path in the file field is not > MAXPATHLEN, if it is
too long then skip that entry in the signature file.
2004-03-06 11:59:30 +00:00
wiz
cbd9802b91 Remove traces of old names (verifiedexec_load and /dev/verifiedexec). 2002-12-21 23:41:44 +00:00
blymn
5447f70f9c Renamed verified exec fingerprint loader. 2002-11-23 10:52:49 +00:00