[PATCH v1 00/11] extend initramfs archive format to support xattrs

From: Mimi Zohar
Date: Tue Jan 20 2015 - 14:13:14 EST


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 linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/