History log of /src/sbin/veriexecctl |
Revision | Date | Author | Comments |
1.14 | 24-Jul-2008 |
dholland | Adjust this to not need -Wno-pointer-sign.
|
1.13 | 21-Jul-2008 |
gmcgarry | Add HAVE_PCC tests for -Wno-pointer-sign.
|
1.12 | 28-Nov-2006 |
elad | branches: 1.12.18; 1.12.22; Make Veriexec use proplib(3) for kernel-userland data passing.
Obviously, this breaks the already unstable Veriexec ABI, but that's it. Some cool additions are planned to be introduced, and this just makes it so that NetBSD 4.0 users will be able to easily use them as well.
This also removes the fingerprint type name limit, so relevant code was adjusted.
Thoroughly tested (even uncovered a bug in proplib! thanks for fixing that cube@!). Documentation updated.
|
1.11 | 11-May-2006 |
mrg | sprinkle some -fno-strict-aliasing and -Wno-pointer-sign with GCC4.
|
1.10 | 27-Jun-2005 |
christos | Move WARNS=3 to the Makefile.inc, and add a little const to the remaining programs that did not compile before.
|
1.9 | 06-May-2005 |
jmc | Need -I. here as well so OBJDIR's work correctly in all cases
|
1.8 | 25-Apr-2005 |
blymn | Remove veriexec(4) man page.
|
1.7 | 21-Apr-2005 |
christos | Minor cleanups, KNF, error handling consistency.
|
1.6 | 21-Apr-2005 |
he | 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.
|
1.5 | 20-Apr-2005 |
blymn | 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.
|
1.4 | 20-Jan-2005 |
xtraeme | branches: 1.4.2; WARNS=2 is the default defined in sbin/Makefile.inc. (thanks wiz)
|
1.3 | 19-Jan-2005 |
xtraeme | Kill __P(); WARNS=2
|
1.2 | 26-Apr-2003 |
jdolecek | don't compile this -static, depend on MKDYNAMICROOT check in ../Makefile.inc for that
|
1.1 | 23-Nov-2002 |
blymn | Renamed verified exec fingerprint loader.
|
1.4.2.5 | 10-Jul-2005 |
tron | Pull up revision 1.9 (requested by blymn in ticket #569): Need -I. here as well so OBJDIR's work correctly in all cases
|
1.4.2.4 | 10-Jun-2005 |
tron | Pull up revision 1.8 (requested by elad in ticket #389): Remove veriexec(4) man page.
|
1.4.2.3 | 10-Jun-2005 |
tron | Pull up revision 1.7 (requested by elad in ticket #389): Minor cleanups, KNF, error handling consistency.
|
1.4.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.6 (requested by elad in ticket #389): 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.
|
1.4.2.1 | 10-Jun-2005 |
tron | Pull up revision 1.5 (requested by elad in ticket #389): 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.
|
1.12.22.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.12.18.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.3 | 24-Apr-2005 |
blymn | branches: 1.3.2; Move veriexec(4) man page to correct place.
|
1.2 | 22-Apr-2005 |
wiz | Grammar, wording, and punctuation improvements. Sort SEE ALSO. Remove some superfluous .Pp.
|
1.1 | 20-Apr-2005 |
blymn | 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.
|
1.3.2.3 | 10-Jun-2005 |
tron | Pull up file removal (requested by elad in ticket #389): Move veriexec(4) man page to correct place.
|
1.3.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.2 (requested by elad in ticket #389): Grammar, wording, and punctuation improvements. Sort SEE ALSO. Remove some superfluous .Pp.
|
1.3.2.1 | 10-Jun-2005 |
tron | Pull up revision 1.1 (requested by elad in ticket #389): 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.
|
1.40 | 03-Jul-2017 |
wiz | Remove workaround for ancient HTML generation code.
|
1.39 | 18-Mar-2014 |
riastradh | Merge riastradh-drm2 to HEAD.
|
1.38 | 20-Jul-2013 |
wiz | Use Mt for email addresses.
|
1.37 | 28-Apr-2011 |
wiz | branches: 1.37.4; 1.37.10; 1.37.14; Mark up file as argument.
|
1.36 | 28-Apr-2011 |
wiz | security(7), not (8).
|
1.35 | 31-Aug-2008 |
dholland | Document -v. PR 39441 from Stathis Kamperis. Bump date.
|
1.34 | 18-Feb-2008 |
elad | branches: 1.34.4; 1.34.8; Following input from Matthew Mondor, some Veriexec documentation changes:
- Document the signatures file format in a veriexec(5) man-page, - Document the strict levels and a general Veriexec intro in veriexec(8) instead of security(8).
Okay blymn@.
|
1.33 | 15-Feb-2008 |
elad | Allow no signatures file to be specified for the "load" command, and use the default one in such cases.
Update command usage and documentation to reflect the above.
|
1.32 | 10-Feb-2008 |
elad | Xref security(8) from veriexec(4), veriexec(9), veriexecctl(8), and veriexecgen(8).
Suggested by Matthew Mondor.
|
1.31 | 13-Dec-2007 |
wiz | Whitespace and HTML output fixes.
|
1.30 | 15-May-2007 |
elad | branches: 1.30.4; 1.30.6; Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes: - Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates: - fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and veriexec_dump(), used to fill an array with all Veriexec entries.
New features: - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel database. This allows Veriexec to produce slightly more accurate logs under certain circumstances. In the future, this can be either replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database. This can be used to recover a database if the file was lost. Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have the '-k' flag. On systems using the default signatures file (generaetd from running 'veriexecgen' with no arguments), this will use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during load. This is done automatically for files marked as 'untrusted'.
Misc. stuff: - The code for veriexecctl was massively simplified as a result of eliminating the need for VERIEXEC_TABLESIZE, and now uses a single pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development) Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
|
1.29 | 29-Nov-2006 |
elad | branches: 1.29.2; 1.29.4; 1.29.6; Support escaping characters in the path so that spaces etc. are allowed in entries for Veriexec.
This has been requested for a long time, most recently by Brad Harder.
Thanks a lot to Michael van Elst for the patch, done during the latest hackathon.
|
1.28 | 30-Sep-2006 |
elad | If Veriexec enforces access type, don't allow mmap() to use PROT_EXEC on files that don't have the "indirect" flag. Also change the "library" alias in veriexecctl(8) to mean "file, indirect".
okay blymn@
|
1.27 | 17-Sep-2006 |
elad | .Sh -> .Ss
mmm mdoclint. :)
|
1.26 | 16-Sep-2006 |
elad | Reference veriexecgen(8) instead of the old scripts. Bump date.
|
1.25 | 16-Sep-2006 |
elad | Scripts don't have to be *shell* scripts.
|
1.24 | 22-Jul-2006 |
elad | no VERIFIED_EXEC anymore, just a pseudo-device.
|
1.23 | 14-Jul-2006 |
elad | misc cleanup: remove #if 0 code, unused var, and make pretty.
|
1.22 | 12-Dec-2005 |
wiz | Grammar improvement.
|
1.21 | 12-Dec-2005 |
elad | Add and document a "query" keyword to veriexecctl. Usage:
/sbin/veriexecctl query /path/to/file
will print out filename, device, inode, evaluation status, entry flags, fingerprint, and fingerprinting algorithm.
|
1.20 | 10-Dec-2005 |
elad | Add and document a VERIEXEC_DELETE operation for Veriexec.
We can now delete an entry from the tables using
veriexecctl delete /path/to/file
or remove an entire table using
veriexecctl delete /mount_point
(any directory will work for the mount point it's on)
|
1.19 | 05-Oct-2005 |
wiz | Make sentence more readable.
|
1.18 | 05-Oct-2005 |
elad | 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.
|
1.17 | 07-Aug-2005 |
wiz | Bump date for previous; use more markup.
|
1.16 | 06-Aug-2005 |
blymn | Add and document some convenience aliases for commonly required option combinations.
|
1.15 | 02-Aug-2005 |
elad | Sync with reality.
- Verified Exec -> Veriexec - pseudo-device is `veriexec' - veriexec.conf -> signatures, and mention /etc/signatures as the default location - We use veriexec's strict level, not the system securelevel - Mention the `direct' option - Mention that the signatures file can have multiple options in a single entry, comma-separated - Mention that both `direct' and `indirect' access modes are implied if no access modes are explicitly mention in the options - Bump date
|
1.14 | 13-Jun-2005 |
wiz | Bump date for previous.
|
1.13 | 13-Jun-2005 |
elad | Remove bits about deprecated 'fingerprints' command.
|
1.12 | 20-May-2005 |
elad | Remove common code for returning supported fingerprints. This is done now via sysctl(8) using kern.veriexec.algorithms.
Also add an entry for the 'algorithms' variable in sysctl.8 forgotten in the last commit.
|
1.11 | 24-Apr-2005 |
blymn | Add bugs sub-heading to warn about whitespace in filenames.
|
1.10 | 22-Apr-2005 |
wiz | Add Xr to veriexec.4.
|
1.9 | 22-Apr-2005 |
wiz | Mention command names in SYNOPSIS; add gen_rmd160 to SEE ALSO; improve formatting; bump date.
|
1.8 | 20-Apr-2005 |
blymn | 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.
|
1.7 | 06-Jan-2005 |
wiz | branches: 1.7.2; Remove unnecessary dot, and bump date for new SEE ALSO section.
|
1.6 | 06-Jan-2005 |
hubertf | Add SEE ALSO section pointing at the scripts to create signatures
XXX they should be installed as veriexec_gen_* IMHO, XXX not dwell in /usr/share/examples
|
1.5 | 06-Mar-2004 |
wiz | Bump date for previous.
|
1.4 | 06-Mar-2004 |
blymn | Fix error in description of signature file syntax (thanks to Chrisian Biere) Fix wording to match changed syntax line Add some clarifications to the wording Improve vertical spacing of some sections.
|
1.3 | 19-Jan-2003 |
atatat | The next release will be 2.0, not 1.7.
|
1.2 | 21-Dec-2002 |
wiz | Remove traces of old names (verifiedexec_load and /dev/verifiedexec).
|
1.1 | 23-Nov-2002 |
blymn | Renamed verified exec fingerprint loader.
|
1.7.2.10 | 15-Aug-2005 |
tron | Pull up revision 1.17 (requested by elad in ticket #655): Bump date for previous; use more markup.
|
1.7.2.9 | 15-Aug-2005 |
tron | Pull up revision 1.16 (requested by elad in ticket #655): Add and document some convenience aliases for commonly required option combinations.
|
1.7.2.8 | 12-Aug-2005 |
snj | Pull up revision 1.15 (requested by elad in ticket #645): Sync with reality. - Verified Exec -> Veriexec - pseudo-device is `veriexec' - veriexec.conf -> signatures, and mention /etc/signatures as the default location - We use veriexec's strict level, not the system securelevel - Mention the `direct' option - Mention that the signatures file can have multiple options in a single entry, comma-separated - Mention that both `direct' and `indirect' access modes are implied if no access modes are explicitly mention in the options - Bump date
|
1.7.2.7 | 02-Jul-2005 |
tron | Pull up revision 1.14 (requested by elad in ticket #487): Bump date for previous.
|
1.7.2.6 | 02-Jul-2005 |
tron | Pull up revision 1.13 (requested by elad in ticket #487): Remove bits about deprecated 'fingerprints' command.
|
1.7.2.5 | 10-Jun-2005 |
tron | Pull up revision 1.12 (requested by elad in ticket #389): Remove common code for returning supported fingerprints. This is done now via sysctl(8) using kern.veriexec.algorithms. Also add an entry for the 'algorithms' variable in sysctl.8 forgotten in the last commit.
|
1.7.2.4 | 10-Jun-2005 |
tron | Pull up revision 1.11 (requested by elad in ticket #389): Add bugs sub-heading to warn about whitespace in filenames.
|
1.7.2.3 | 10-Jun-2005 |
tron | Pull up revision 1.10 (requested by elad in ticket #389): Add Xr to veriexec.4.
|
1.7.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.9 (requested by elad in ticket #389): Mention command names in SYNOPSIS; add gen_rmd160 to SEE ALSO; improve formatting; bump date.
|
1.7.2.1 | 10-Jun-2005 |
tron | Pull up revision 1.8 (requested by elad in ticket #389): 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.
|
1.29.6.1 | 22-Feb-2008 |
bouyer | Apply patch, requested by elad in ticket #1080: sbin/veriexecctl/veriexecctl.8: patch reflect reality in the veriexecctl(8) man-page.
|
1.29.4.1 | 03-Jun-2008 |
skrll | Sync with netbsd-4.
|
1.29.2.1 | 22-Feb-2008 |
bouyer | Apply patch, requested by elad in ticket #1080: sbin/veriexecctl/veriexecctl.8: patch reflect reality in the veriexecctl(8) man-page.
|
1.30.6.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.30.6.1 | 27-Dec-2007 |
mjf | Sync with HEAD.
|
1.30.4.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.30.4.1 | 09-Jan-2008 |
matt | sync with HEAD
|
1.34.8.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.34.4.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.37.14.1 | 23-Jul-2013 |
riastradh | sync with HEAD
|
1.37.10.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.37.4.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.40 | 10-Jan-2017 |
christos | need <sys/stat.h> ... for stat()
|
1.39 | 16-Jun-2015 |
christos | branches: 1.39.2; fix error messages containing \n
|
1.38 | 26-Apr-2015 |
maxv | Be a bit more verbose if the kernel rejects a file
|
1.37 | 27-Jul-2014 |
dholland | branches: 1.37.2; Fix snprintf usage and, while here, don't trundle off the end of an array. Part of PR 47976 from Henning Petersen.
|
1.36 | 09-Feb-2014 |
maxv | branches: 1.36.2; Fix error message; argv[1] could be NULL
|
1.35 | 29-Aug-2011 |
joerg | branches: 1.35.2; 1.35.8; Use __dead
|
1.34 | 16-Mar-2009 |
lukem | fix sign-compare issues
|
1.33 | 31-Aug-2008 |
dholland | branches: 1.33.4; Remove trailing whitespace. Noted in PR 39440 by Stathis Kamperis.
|
1.32 | 31-Aug-2008 |
dholland | Don't dump core if given no arguments. Fixes PR 39440 from Stathis Kamperis (but with a different patch).
|
1.31 | 15-Feb-2008 |
elad | branches: 1.31.4; 1.31.8; Allow no signatures file to be specified for the "load" command, and use the default one in such cases.
Update command usage and documentation to reflect the above.
|
1.30 | 06-Sep-2007 |
xtraeme | branches: 1.30.2; CID 4498: print_entry() returning without freeing 'fp'.
Ok by rmind@.
|
1.29 | 17-Aug-2007 |
pavel | branches: 1.29.2; Attempt at fixing build failures after proplib was converted to bool: FALSE -> false, TRUE -> true, boolean_t -> bool, int -> bool when appropriate, include stdbool.h . proplib.h no longer provides boolean_t, so it is necessary to change to bool.
From Tom Spindler (dogcow@).
|
1.28 | 15-May-2007 |
oster | Add missing #include <sys/ioctl.h> to make this build without warnings.
|
1.27 | 15-May-2007 |
elad | Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes: - Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates: - fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and veriexec_dump(), used to fill an array with all Veriexec entries.
New features: - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel database. This allows Veriexec to produce slightly more accurate logs under certain circumstances. In the future, this can be either replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database. This can be used to recover a database if the file was lost. Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have the '-k' flag. On systems using the default signatures file (generaetd from running 'veriexecgen' with no arguments), this will use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during load. This is done automatically for files marked as 'untrusted'.
Misc. stuff: - The code for veriexecctl was massively simplified as a result of eliminating the need for VERIEXEC_TABLESIZE, and now uses a single pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development) Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
|
1.26 | 29-Nov-2006 |
elad | Type changed from size_t to uint64_t, adjust format string. Pointed out by Tom Spindler, thanks!
|
1.25 | 28-Nov-2006 |
elad | Make Veriexec use proplib(3) for kernel-userland data passing.
Obviously, this breaks the already unstable Veriexec ABI, but that's it. Some cool additions are planned to be introduced, and this just makes it so that NetBSD 4.0 users will be able to easily use them as well.
This also removes the fingerprint type name limit, so relevant code was adjusted.
Thoroughly tested (even uncovered a bug in proplib! thanks for fixing that cube@!). Documentation updated.
|
1.24 | 21-Nov-2006 |
elad | Update my email address.
|
1.23 | 14-Jul-2006 |
elad | misc cleanup: remove #if 0 code, unused var, and make pretty.
|
1.22 | 14-Jul-2006 |
elad | oops, forgot to handle new abi for "query", noted by he@, thanks!
|
1.21 | 14-Jul-2006 |
elad | 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@.
|
1.20 | 13-Dec-2005 |
dsl | Use PRIu64 to print ino_t (maybe there should be a PRIino_t somewhere....)
|
1.19 | 12-Dec-2005 |
elad | Add and document a "query" keyword to veriexecctl. Usage:
/sbin/veriexecctl query /path/to/file
will print out filename, device, inode, evaluation status, entry flags, fingerprint, and fingerprinting algorithm.
|
1.18 | 10-Dec-2005 |
elad | Add and document a VERIEXEC_DELETE operation for Veriexec.
We can now delete an entry from the tables using
veriexecctl delete /path/to/file
or remove an entire table using
veriexecctl delete /mount_point
(any directory will work for the mount point it's on)
|
1.17 | 05-Oct-2005 |
elad | 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.
|
1.16 | 13-Jun-2005 |
elad | 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.
|
1.15 | 03-Jun-2005 |
elad | No need for this one, apparently. Reported by Hisashi T Fujinaka.
|
1.14 | 03-Jun-2005 |
elad | Don't create duplicate tables for the same device.
|
1.13 | 01-Jun-2005 |
elad | Newline in end of usage.
|
1.12 | 30-May-2005 |
elad | Warn when failing to load an entry; don't fail the whole process.
|
1.11 | 21-May-2005 |
skrll | Remove unused variables.
|
1.10 | 20-May-2005 |
elad | Remove leftovers from Vexec.
|
1.9 | 20-May-2005 |
elad | Remove common code for returning supported fingerprints. This is done now via sysctl(8) using kern.veriexec.algorithms.
Also add an entry for the 'algorithms' variable in sysctl.8 forgotten in the last commit.
|
1.8 | 21-Apr-2005 |
christos | Minor cleanups, KNF, error handling consistency.
|
1.7 | 21-Apr-2005 |
he | 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.
|
1.6 | 20-Apr-2005 |
blymn | 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.
|
1.5 | 06-Mar-2004 |
blymn | branches: 1.5.6; Made error messages more descriptive.
|
1.4 | 05-Jan-2004 |
jmmv | Homogenize usage messages: make the 'usage' word all lowercase, as this seems to be the most common practice in our tree.
|
1.3 | 21-Dec-2002 |
wiz | Remove traces of old names (verifiedexec_load and /dev/verifiedexec).
|
1.2 | 06-Dec-2002 |
thorpej | Need <stdlib.h> for exit() prototype.
|
1.1 | 23-Nov-2002 |
blymn | Renamed verified exec fingerprint loader.
|
1.5.6.11 | 02-Jul-2005 |
tron | Pull up revision 1.16 (requested by elad in ticket #487): 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.
|
1.5.6.10 | 10-Jun-2005 |
tron | Pull up revision 1.15 (requested by elad in ticket #390): No need for this one, apparently. Reported by Hisashi T Fujinaka.
|
1.5.6.9 | 10-Jun-2005 |
tron | Pull up revision 1.14 (requested by elad in ticket #389): Don't create duplicate tables for the same device.
|
1.5.6.8 | 10-Jun-2005 |
tron | Pull up revision 1.13 (requested by elad in ticket #389): Newline in end of usage.
|
1.5.6.7 | 10-Jun-2005 |
tron | Pull up revision 1.12 (requested by elad in ticket #389): Warn when failing to load an entry; don't fail the whole process.
|
1.5.6.6 | 10-Jun-2005 |
tron | Pull up revision 1.11 (requested by elad in ticket #389): Remove unused variables.
|
1.5.6.5 | 10-Jun-2005 |
tron | Pull up revision 1.10 (requested by elad in ticket #389): Remove leftovers from Vexec.
|
1.5.6.4 | 10-Jun-2005 |
tron | Pull up revision 1.9 (requested by elad in ticket #389): Remove common code for returning supported fingerprints. This is done now via sysctl(8) using kern.veriexec.algorithms. Also add an entry for the 'algorithms' variable in sysctl.8 forgotten in the last commit.
|
1.5.6.3 | 10-Jun-2005 |
tron | Pull up revision 1.8 (requested by elad in ticket #389): Minor cleanups, KNF, error handling consistency.
|
1.5.6.2 | 10-Jun-2005 |
tron | Pull up revision 1.7 (requested by elad in ticket #389): 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.
|
1.5.6.1 | 10-Jun-2005 |
tron | Pull up revision 1.6 (requested by elad in ticket #389): 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.
|
1.29.2.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.29.2.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.30.2.1 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.31.8.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.31.4.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.33.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|
1.35.8.1 | 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.35.2.1 | 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.36.2.1 | 10-Aug-2014 |
tls | Rebase.
|
1.37.2.1 | 19-May-2015 |
snj | Pull up following revision(s) (requested by maxv in ticket #764): sbin/veriexecctl/veriexecctl.c: revision 1.38 share/man/man9/veriexec.9: revision 1.10 sys/conf/files: revision 1.1128 sys/dev/verified_exec.c: revisions 1.70, 1.71 sys/kern/kern_veriexec.c: revisions 1.1-1.8 sys/kern/kern_verifiedexec.c: delete Rename kern_verifiedexec.c to kern_veriexec.c. "Veriexec" is the name of the subsystem, not "Verifiedexec".
The revisions of kern_verifiedexec.c are now in Attic/.
No change between kern_verifiedexec.c and kern_veriexec.c.
Also, update the man page accordingly.
Okayed by christos@ and blymn@ some months ago. -- KNF -- Don't mix veriexec lock and file lock in veriexec_file_verify().
Now: - 'veriexec_op_lock' needs to be held when calling veriexec_file_verify() - the 'file_lock_state' argument indicates if the file is locked - add some KASSERTs -- Instead of duplicating code, add veriexec_fp_status(). Also reorder a useless goto. -- Make veriexec_renamechk() more readable. Also add a KASSERT on vte_count.
No real functional change -- If we already have an entry for the file being loaded, return EEXIST, don't silently skip it. -- Remove FreeBSD.
ok elad@ -- KASSERT x then y, not (x && y). -- KNF -- Not to add even more confusion in an already overcomplicated subsystem, remove the FreeBSD code. This code is likely to be outdated, and Veriexec is in all cases not available on FreeBSD. -- Be a bit more verbose if the kernel rejects a file
|
1.39.2.1 | 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.12 | 06-Jun-2020 |
thorpej | Update for proplib(3) API changes.
|
1.11 | 31-Aug-2008 |
dholland | Remove trailing whitespace. Noted in PR 39440 by Stathis Kamperis.
|
1.10 | 15-May-2007 |
elad | branches: 1.10.12; 1.10.16; Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes: - Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates: - fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and veriexec_dump(), used to fill an array with all Veriexec entries.
New features: - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel database. This allows Veriexec to produce slightly more accurate logs under certain circumstances. In the future, this can be either replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database. This can be used to recover a database if the file was lost. Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have the '-k' flag. On systems using the default signatures file (generaetd from running 'veriexecgen' with no arguments), this will use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during load. This is done automatically for files marked as 'untrusted'.
Misc. stuff: - The code for veriexecctl was massively simplified as a result of eliminating the need for VERIEXEC_TABLESIZE, and now uses a single pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development) Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
|
1.9 | 28-Nov-2006 |
elad | Make Veriexec use proplib(3) for kernel-userland data passing.
Obviously, this breaks the already unstable Veriexec ABI, but that's it. Some cool additions are planned to be introduced, and this just makes it so that NetBSD 4.0 users will be able to easily use them as well.
This also removes the fingerprint type name limit, so relevant code was adjusted.
Thoroughly tested (even uncovered a bug in proplib! thanks for fixing that cube@!). Documentation updated.
|
1.8 | 21-Nov-2006 |
elad | Update my email address.
|
1.7 | 14-Jul-2006 |
elad | misc cleanup: remove #if 0 code, unused var, and make pretty.
|
1.6 | 14-Jul-2006 |
elad | 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@.
|
1.5 | 12-Dec-2005 |
elad | Add and document a "query" keyword to veriexecctl. Usage:
/sbin/veriexecctl query /path/to/file
will print out filename, device, inode, evaluation status, entry flags, fingerprint, and fingerprinting algorithm.
|
1.4 | 20-May-2005 |
elad | branches: 1.4.2; Remove leftovers from Vexec.
|
1.3 | 21-Apr-2005 |
christos | Minor cleanups, KNF, error handling consistency.
|
1.2 | 21-Apr-2005 |
he | 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.
|
1.1 | 21-Apr-2005 |
blymn | Add missing header file.
|
1.4.2.5 | 10-Jun-2005 |
tron | Pull up revision 1.4 (requested by elad in ticket #389): Remove leftovers from Vexec.
|
1.4.2.4 | 10-Jun-2005 |
tron | Pull up revision 1.3 (requested by elad in ticket #389): Minor cleanups, KNF, error handling consistency.
|
1.4.2.3 | 10-Jun-2005 |
tron | Pull up revision 1.2 (requested by elad in ticket #389): 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.
|
1.4.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.1 (requested by elad in ticket #389): Add missing header file.
|
1.4.2.1 | 20-May-2005 |
tron | file veriexecctl.h was added on branch netbsd-3 on 2005-06-10 14:50:26 +0000
|
1.10.16.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.10.12.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.15 | 24-May-2011 |
joerg | input is unused.
|
1.14 | 29-Oct-2009 |
christos | use %option instead of #define YY_NO_...
|
1.13 | 28-Oct-2009 |
christos | we don't need unput
|
1.12 | 31-Aug-2008 |
dholland | Remove trailing whitespace. Noted in PR 39440 by Stathis Kamperis.
|
1.11 | 15-May-2007 |
elad | branches: 1.11.12; 1.11.16; Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes: - Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates: - fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and veriexec_dump(), used to fill an array with all Veriexec entries.
New features: - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel database. This allows Veriexec to produce slightly more accurate logs under certain circumstances. In the future, this can be either replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database. This can be used to recover a database if the file was lost. Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have the '-k' flag. On systems using the default signatures file (generaetd from running 'veriexecgen' with no arguments), this will use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during load. This is done automatically for files marked as 'untrusted'.
Misc. stuff: - The code for veriexecctl was massively simplified as a result of eliminating the need for VERIEXEC_TABLESIZE, and now uses a single pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development) Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
|
1.10 | 29-Nov-2006 |
elad | Support escaping characters in the path so that spaces etc. are allowed in entries for Veriexec.
This has been requested for a long time, most recently by Brad Harder.
Thanks a lot to Michael van Elst for the patch, done during the latest hackathon.
|
1.9 | 28-Nov-2006 |
elad | Make Veriexec use proplib(3) for kernel-userland data passing.
Obviously, this breaks the already unstable Veriexec ABI, but that's it. Some cool additions are planned to be introduced, and this just makes it so that NetBSD 4.0 users will be able to easily use them as well.
This also removes the fingerprint type name limit, so relevant code was adjusted.
Thoroughly tested (even uncovered a bug in proplib! thanks for fixing that cube@!). Documentation updated.
|
1.8 | 21-Nov-2006 |
elad | Update my email address.
|
1.7 | 05-Jan-2006 |
elad | Allow multiple lines entries using '\' at the end of the line. Simplified by martin@, thanks. :)
|
1.6 | 13-Jun-2005 |
elad | 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.
|
1.5 | 21-Apr-2005 |
blymn | Fix format type error in yyerror printf.
|
1.4 | 21-Apr-2005 |
christos | Minor cleanups, KNF, error handling consistency.
|
1.3 | 20-Apr-2005 |
blymn | 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.
|
1.2 | 19-Jan-2005 |
xtraeme | branches: 1.2.2; Kill __P(); WARNS=2
|
1.1 | 23-Nov-2002 |
blymn | Renamed verified exec fingerprint loader.
|
1.2.2.4 | 02-Jul-2005 |
tron | Pull up revision 1.6 (requested by elad in ticket #487): 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.
|
1.2.2.3 | 10-Jun-2005 |
tron | Pull up revision 1.5 (requested by elad in ticket #389): Fix format type error in yyerror printf.
|
1.2.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.4 (requested by elad in ticket #389): Minor cleanups, KNF, error handling consistency.
|
1.2.2.1 | 10-Jun-2005 |
tron | Pull up revision 1.3 (requested by elad in ticket #389): 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.
|
1.11.16.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.11.12.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.26 | 16-Mar-2009 |
lukem | fix sign-compare issues
|
1.25 | 31-Aug-2008 |
dholland | branches: 1.25.4; Remove trailing whitespace. Noted in PR 39440 by Stathis Kamperis.
|
1.24 | 24-Jul-2008 |
dholland | Adjust this to not need -Wno-pointer-sign.
|
1.23 | 01-Oct-2007 |
xtraeme | branches: 1.23.8; 1.23.12; Remove intval from %union, it's unused... ok christos@.
|
1.22 | 17-Aug-2007 |
pavel | branches: 1.22.2; Attempt at fixing build failures after proplib was converted to bool: FALSE -> false, TRUE -> true, boolean_t -> bool, int -> bool when appropriate, include stdbool.h . proplib.h no longer provides boolean_t, so it is necessary to change to bool.
From Tom Spindler (dogcow@).
|
1.21 | 15-May-2007 |
elad | Some Veriexec stuff that's been rotting in my tree for months.
Bug fixes: - Fix crash reported by Scott Ellis on current-users@.
- Fix race conditions in enforcing the Veriexec rename and remove policies. These are NOT security issues.
- Fix memory leak in rename handling when overwriting a monitored file.
- Fix table deletion logic.
- Don't prevent query requests if not in learning mode.
KPI updates: - fileassoc_table_run() now takes a cookie to pass to the callback.
- veriexec_table_add() was removed, it is now done internally. As a result, there's no longer a need for VERIEXEC_TABLESIZE.
- veriexec_report() was removed, it is now internal.
- Perform sanity checks on the entry type, and enforce default type in veriexec_file_add() rather than in veriexecctl.
- Add veriexec_flush(), used to delete all Veriexec tables, and veriexec_dump(), used to fill an array with all Veriexec entries.
New features: - Add a '-k' flag to veriexecctl, to keep the filenames in the kernel database. This allows Veriexec to produce slightly more accurate logs under certain circumstances. In the future, this can be either replaced by vnode->pathname translation, or combined with it.
- Add a VERIEXEC_DUMP ioctl, to dump the entire Veriexec database. This can be used to recover a database if the file was lost. Example usage:
# veriexecctl dump > /etc/signatures
Note that only entries with the filename kept (that is, were loaded with the '-k' flag) will be dumped.
Idea from Brett Lymn.
- Add a VERIEXEC_FLUSH ioctl, to delete all Veriexec entries. Sample usage:
# veriexecctl flush
- Add a 'veriexec_flags' rc(8) variable, and make its default have the '-k' flag. On systems using the default signatures file (generaetd from running 'veriexecgen' with no arguments), this will use additional 32kb of kernel memory on average.
- Add a '-e' flag to veriexecctl, to evaluate the fingerprint during load. This is done automatically for files marked as 'untrusted'.
Misc. stuff: - The code for veriexecctl was massively simplified as a result of eliminating the need for VERIEXEC_TABLESIZE, and now uses a single pass of the signatures file, making the loading somewhat faster.
- Lots of minor fixes found using the (still under development) Veriexec regression testsuite.
- Some of the messages Veriexec prints were improved.
- Various documentation fixes.
All relevant man-pages were updated to reflect the above changes.
Binary compatibility with existing veriexecctl binaries is maintained.
|
1.20 | 08-Dec-2006 |
elad | Don't reset entry-type for every flag_spec.
|
1.19 | 28-Nov-2006 |
elad | branches: 1.19.2; Make Veriexec use proplib(3) for kernel-userland data passing.
Obviously, this breaks the already unstable Veriexec ABI, but that's it. Some cool additions are planned to be introduced, and this just makes it so that NetBSD 4.0 users will be able to easily use them as well.
This also removes the fingerprint type name limit, so relevant code was adjusted.
Thoroughly tested (even uncovered a bug in proplib! thanks for fixing that cube@!). Documentation updated.
|
1.18 | 21-Nov-2006 |
elad | Update my email address.
|
1.17 | 30-Sep-2006 |
elad | If Veriexec enforces access type, don't allow mmap() to use PROT_EXEC on files that don't have the "indirect" flag. Also change the "library" alias in veriexecctl(8) to mean "file, indirect".
okay blymn@
|
1.16 | 05-Sep-2006 |
elad | Fix two horrible bugs found during a routine audit session with Brett Lymn.
First one was incorrectly loading entries -- we were treating each file as a mount, which resulted in huge mess. I have no excuse for how I didn't catch this earlier.
Second, use the table name we create for the Veriexec sysctl node and not the fixed "table0".
Both are fileassoc(9) integration fallout.
|
1.15 | 14-Jul-2006 |
elad | branches: 1.15.2; misc cleanup: remove #if 0 code, unused var, and make pretty.
|
1.14 | 14-Jul-2006 |
elad | 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@.
|
1.13 | 05-Oct-2005 |
elad | 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.
|
1.12 | 06-Aug-2005 |
blymn | Add and document some convenience aliases for commonly required option combinations.
|
1.11 | 02-Aug-2005 |
elad | Support multiple entry types. Direct, indirect, and file can now be combined in the signatures file using commas.
|
1.10 | 13-Jun-2005 |
elad | 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.
|
1.9 | 27-May-2005 |
elad | Don't access a NULL pointer.
|
1.8 | 20-May-2005 |
elad | Remove leftovers from Vexec.
|
1.7 | 21-Apr-2005 |
christos | Minor cleanups, KNF, error handling consistency.
|
1.6 | 21-Apr-2005 |
he | 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.
|
1.5 | 20-Apr-2005 |
blymn | 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.
|
1.4 | 19-Jan-2005 |
xtraeme | branches: 1.4.2; Kill __P(); WARNS=2
|
1.3 | 06-Mar-2004 |
blymn | 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.
|
1.2 | 21-Dec-2002 |
wiz | Remove traces of old names (verifiedexec_load and /dev/verifiedexec).
|
1.1 | 23-Nov-2002 |
blymn | Renamed verified exec fingerprint loader.
|
1.4.2.8 | 15-Aug-2005 |
tron | Pull up revision 1.12 (requested by elad in ticket #655): Add and document some convenience aliases for commonly required option combinations.
|
1.4.2.7 | 12-Aug-2005 |
snj | Pull up revision 1.11 (requested by elad in ticket #644): Support multiple entry types. Direct, indirect, and file can now be combined in the signatures file using commas.
|
1.4.2.6 | 02-Jul-2005 |
tron | Pull up revision 1.10 (requested by elad in ticket #487): 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.
|
1.4.2.5 | 10-Jun-2005 |
tron | Pull up revision 1.9 (requested by elad in ticket #389): Don't access a NULL pointer.
|
1.4.2.4 | 10-Jun-2005 |
tron | Pull up revision 1.8 (requested by elad in ticket #389): Remove leftovers from Vexec.
|
1.4.2.3 | 10-Jun-2005 |
tron | Pull up revision 1.7 (requested by elad in ticket #389): Minor cleanups, KNF, error handling consistency.
|
1.4.2.2 | 10-Jun-2005 |
tron | Pull up revision 1.6 (requested by elad in ticket #389): 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.
|
1.4.2.1 | 10-Jun-2005 |
tron | Pull up revision 1.5 (requested by elad in ticket #389): 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.
|
1.15.2.1 | 08-Sep-2006 |
riz | Pull up following revision(s) (requested by elad in ticket #121): sbin/veriexecctl/veriexecctl_parse.y: revision 1.16 sys/dev/verified_exec.c: revision 1.43 Fix two horrible bugs found during a routine audit session with Brett Lymn. First one was incorrectly loading entries -- we were treating each file as a mount, which resulted in huge mess. I have no excuse for how I didn't catch this earlier. Second, use the table name we create for the Veriexec sysctl node and not the fixed "table0". Both are fileassoc(9) integration fallout.
|
1.19.2.1 | 09-Dec-2006 |
bouyer | Pull up following revision(s) (requested by elad in ticket #265): sbin/veriexecctl/veriexecctl_parse.y: revision 1.20 Don't reset entry-type for every flag_spec.
|
1.22.2.1 | 06-Nov-2007 |
matt | sync with HEAD
|
1.23.12.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.23.8.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.25.4.1 | 13-May-2009 |
jym | Sync with HEAD.
Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
|