1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-19 10:53:58 +00:00
freebsd/stand/common
Marcin Wojtas b0fefb25c5 Create kernel module to parse Veriexec manifest based on envs
The current approach of injecting manifest into mac_veriexec is to
verify the integrity of it in userspace (veriexec (8)) and pass its
entries into kernel using a char device (/dev/veriexec).
This requires verifying root partition integrity in loader,
for example by using memory disk and checking its hash.
Otherwise if rootfs is compromised an attacker could inject their own data.

This patch introduces an option to parse manifest in kernel based on envs.
The loader sets manifest path and digest.
EVENTHANDLER is used to launch the module right after the rootfs is mounted.
It has to be done this way, since one might want to verify integrity of the init file.
This means that manifest is required to be present on the root partition.
Note that the envs have to be set right before boot to make sure that no one can spoof them.

Submitted by: Kornel Duleba <mindal@semihalf.com>
Reviewed by: sjg
Obtained from: Semihalf
Sponsored by: Stormshield
Differential Revision: https://reviews.freebsd.org/D19281
2019-04-03 03:57:37 +00:00
..
bcache.c stand: Improve some debugging experience 2019-03-12 16:21:39 +00:00
boot.c Create kernel module to parse Veriexec manifest based on envs 2019-04-03 03:57:37 +00:00
bootstrap.h Enable veriexec for loader 2019-02-26 06:22:10 +00:00
commands.c loader: cstyle cleanup of command.c 2018-04-16 14:10:19 +00:00
console.c
dev_net.c stand: dev_net: correct net_open's interpretation of params 2019-02-15 18:28:51 +00:00
dev_net.h
devopen.c Extend loader(8) geli support to all architectures and all disk-like devices. 2018-07-13 17:50:25 +00:00
disk.c Distinguish between "no partition" and "choose best partition" with a constant. 2019-03-24 18:51:52 +00:00
disk.h Distinguish between "no partition" and "choose best partition" with a constant. 2019-03-24 18:51:52 +00:00
help.common
install.c Break out the interpreters (simple and forth) w/o ifdefs. This is 2018-01-31 22:46:05 +00:00
interp_backslash.c Move to tabs for indentation and to 8-space notches, per style(9). 2018-02-08 17:07:27 +00:00
interp_forth.c Add missing boot.4th verification 2019-03-19 02:45:32 +00:00
interp_lua.c userboot: handle guest interpreter mismatches more intelligently 2018-09-01 02:23:45 +00:00
interp_parse.c Move to tabs for indentation and to 8-space notches, per style(9). 2018-02-08 17:07:27 +00:00
interp_simple.c Enable veriexec for loader 2019-02-26 06:22:10 +00:00
interp.c Move simple interpreter 'perform' into interp.c and call it 2018-02-07 23:27:38 +00:00
isapnp.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
isapnp.h
load_elf32_obj.c
load_elf32.c
load_elf64_obj.c
load_elf64.c
load_elf_obj.c Enable veriexec for loader 2019-02-26 06:22:10 +00:00
load_elf.c loader: fix loading of kernels with . in path 2019-03-20 16:24:47 +00:00
ls.c
Makefile.depend
md.c
merge_help.awk
metadata.c Extend loader(8) geli support to all architectures and all disk-like devices. 2018-07-13 17:50:25 +00:00
misc.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
module.c Create kernel module to parse Veriexec manifest based on envs 2019-04-03 03:57:37 +00:00
newvers.sh
part.c stand: Improve some debugging experience 2019-03-12 16:21:39 +00:00
part.h Add an ISO9660 "partition table" type to loader. 2018-04-05 19:45:30 +00:00
paths.h Collapse zfsloader functionality back down into loader. 2018-07-20 05:17:37 +00:00
pnp.c Prefer uintXX_t to u_intXX_t 2018-03-13 16:33:00 +00:00
rbx.h
reloc_elf32.c
reloc_elf64.c
reloc_elf.c Skip IRELATIVE relocations when loader processes ELF files. 2018-01-11 13:57:30 +00:00
self_reloc.c
zfs_cmd.c Stop using ../zfs/libzfs.h but instead use libzfs.h. 2018-07-08 07:42:58 +00:00