freebsd-dev/sys/security
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
..
audit Create new EINTEGRITY error with message "Integrity check failed". 2019-01-17 06:35:45 +00:00
mac mac: reduce pessimization of sdt probe handling 2018-12-19 22:30:26 +00:00
mac_biba sys/security: minor spelling fixes. 2016-05-06 16:59:04 +00:00
mac_bsdextended Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
mac_ifoff
mac_lomac Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
mac_mls sys/security: minor spelling fixes. 2016-05-06 16:59:04 +00:00
mac_none
mac_ntpd Make it possible to run ntpd as a non-root user, add ntpd uid and gid. 2018-07-19 23:55:29 +00:00
mac_partition Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
mac_portacl Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
mac_seeotheruids Remove unused argument to priv_check_cred. 2018-12-11 19:32:16 +00:00
mac_stub
mac_test
mac_veriexec Add mpo_vnode_check_setmode MAC method to MAC/veriexec. 2018-07-14 17:21:16 +00:00
mac_veriexec_parser Create kernel module to parse Veriexec manifest based on envs 2019-04-03 03:57:37 +00:00