Many of the Linux security/integrity features are dependent on file metadata, stored as extended attributes (xattrs), for making decisions. These features need to be initialized during initcall and enabled as early as possible for complete security coverage.
The linux kernel creates the rootfs file system and extracts the contents of the initramfs, a compressed CPIO archive, onto it. If CONFIG_TMPFS is enabled (and "root=" is not specified on the boot command line), rootfs will use tmpfs instead of ramfs by default. Although the tmpfs filesystem supports xattrs, the CPIO archive specification does not define a method for including them in the archive. Other archive formats have added xattr support (eg. tar). There are a couple of ways to include and label the rootfs filesystem: - include a file manifest containing the xattrs in the initramfs - extend CPIO to support xattrs - add tar support This patch set extends the existing newc CPIO archive format to include xattrs in the initramfs. This change affects usr/gen_init_cpio, scripts/gen_initramfs_list.sh, and init/initramfs.c. Included in this patch set are the associated IMA and EVM policy changes. Changelog v1: - Patch "init: remove "root=" command line option test for tmpfs decision" was previously included for testing without userspace application (eg. systemd, dracut) changes. The associated userspace changes will be posted to the relevant mailing lists. Patch dropped. - replace simple_strtoul with kstrtoul - add some input data checking - change size of mtime and file length to 64 bits - define new gen_initramfs_list.sh "-x" command line option - define new IMA_APPRAISE_ROOTFS Kconfig option Mimi Mimi Zohar (11): initramfs: separate reading cpio method from header initramfs: replace simple_strtoul() with kstrtoul() initramfs: add extended attribute support initramfs: change size of mtime and file length to 64 bits gen_init_cpio: replace inline format string with common variable gen_init_cpio: define new CPIO format to support xattrs gen_init_cpio: include the file extended attributes gen_init_cpio: change size of mtime and file length to 64 bits gen_initramfs_list.sh: include xattrs evm: make rootfs a special case ima: include rootfs (tmpfs) in ima_appraise_tcb policy init/initramfs.c | 130 +++++++++++++++++++++++++---- scripts/gen_initramfs_list.sh | 8 +- security/integrity/evm/evm_main.c | 12 ++- security/integrity/ima/Kconfig | 12 +++ security/integrity/ima/ima_policy.c | 8 ++ usr/gen_init_cpio.c | 159 ++++++++++++++++++++++++++++++------ 6 files changed, 282 insertions(+), 47 deletions(-) -- 1.8.1.4 -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html