forked from Minki/linux
2cc1ae4878
To be able to send auditing events to user space, we introduce a generic dm-audit module. It provides helper functions to emit audit events through the kernel audit subsystem. We claim the AUDIT_DM_CTRL type=1336 and AUDIT_DM_EVENT type=1337 out of the audit event messages range in the corresponding userspace api in 'include/uapi/linux/audit.h' for those events. AUDIT_DM_CTRL is used to provide information about creation and destruction of device mapper targets which are triggered by user space admin control actions. AUDIT_DM_EVENT is used to provide information about actual errors during operation of the mapped device, showing e.g. integrity violations in audit log. Following commits to device mapper targets actually will make use of this to emit those events in relevant cases. The audit logs look like this if executing the following simple test: # dd if=/dev/zero of=test.img bs=1M count=1024 # losetup -f test.img # integritysetup -vD format --integrity sha256 -t 32 /dev/loop0 # integritysetup open -D /dev/loop0 --integrity sha256 integritytest # integritysetup status integritytest # integritysetup close integritytest # integritysetup open -D /dev/loop0 --integrity sha256 integritytest # integritysetup status integritytest # dd if=/dev/urandom of=/dev/loop0 bs=512 count=1 seek=100000 # dd if=/dev/mapper/integritytest of=/dev/null ------------------------- audit.log from auditd type=UNKNOWN[1336] msg=audit(1630425039.363:184): module=integrity op=ctr ppid=3807 pid=3819 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425039.471:185): module=integrity op=dtr ppid=3807 pid=3819 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425039.611:186): module=integrity op=ctr ppid=3807 pid=3819 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425054.475:187): module=integrity op=dtr ppid=3807 pid=3819 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425073.171:191): module=integrity op=ctr ppid=3807 pid=3883 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425087.239:192): module=integrity op=dtr ppid=3807 pid=3902 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1336] msg=audit(1630425093.755:193): module=integrity op=ctr ppid=3807 pid=3906 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm="integritysetup" exe="/sbin/integritysetup" subj==unconfined dev=254:3 error_msg='success' res=1 type=UNKNOWN[1337] msg=audit(1630425112.119:194): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:195): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:196): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:197): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:198): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:199): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:200): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:201): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:202): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 type=UNKNOWN[1337] msg=audit(1630425112.119:203): module=integrity op=integrity-checksum dev=254:3 sector=77480 res=0 Signed-off-by: Michael Weiß <michael.weiss@aisec.fraunhofer.de> Signed-off-by: Paul Moore <paul@paul-moore.com> # fix audit.h numbering Signed-off-by: Mike Snitzer <snitzer@redhat.com>
114 lines
3.8 KiB
Makefile
114 lines
3.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for the kernel software RAID and LVM drivers.
|
|
#
|
|
|
|
dm-mod-y += dm.o dm-table.o dm-target.o dm-linear.o dm-stripe.o \
|
|
dm-ioctl.o dm-io.o dm-kcopyd.o dm-sysfs.o dm-stats.o \
|
|
dm-rq.o
|
|
dm-multipath-y += dm-path-selector.o dm-mpath.o
|
|
dm-historical-service-time-y += dm-ps-historical-service-time.o
|
|
dm-io-affinity-y += dm-ps-io-affinity.o
|
|
dm-queue-length-y += dm-ps-queue-length.o
|
|
dm-round-robin-y += dm-ps-round-robin.o
|
|
dm-service-time-y += dm-ps-service-time.o
|
|
dm-snapshot-y += dm-snap.o dm-exception-store.o dm-snap-transient.o \
|
|
dm-snap-persistent.o
|
|
dm-mirror-y += dm-raid1.o
|
|
dm-log-userspace-y += dm-log-userspace-base.o dm-log-userspace-transfer.o
|
|
dm-bio-prison-y += dm-bio-prison-v1.o dm-bio-prison-v2.o
|
|
dm-thin-pool-y += dm-thin.o dm-thin-metadata.o
|
|
dm-cache-y += dm-cache-target.o dm-cache-metadata.o dm-cache-policy.o \
|
|
dm-cache-background-tracker.o
|
|
dm-cache-smq-y += dm-cache-policy-smq.o
|
|
dm-ebs-y += dm-ebs-target.o
|
|
dm-era-y += dm-era-target.o
|
|
dm-clone-y += dm-clone-target.o dm-clone-metadata.o
|
|
dm-verity-y += dm-verity-target.o
|
|
dm-zoned-y += dm-zoned-target.o dm-zoned-metadata.o dm-zoned-reclaim.o
|
|
|
|
md-mod-y += md.o md-bitmap.o
|
|
raid456-y += raid5.o raid5-cache.o raid5-ppl.o
|
|
linear-y += md-linear.o
|
|
multipath-y += md-multipath.o
|
|
faulty-y += md-faulty.o
|
|
|
|
# Note: link order is important. All raid personalities
|
|
# and must come before md.o, as they each initialise
|
|
# themselves, and md.o may use the personalities when it
|
|
# auto-initialised.
|
|
|
|
obj-$(CONFIG_MD_LINEAR) += linear.o
|
|
obj-$(CONFIG_MD_RAID0) += raid0.o
|
|
obj-$(CONFIG_MD_RAID1) += raid1.o
|
|
obj-$(CONFIG_MD_RAID10) += raid10.o
|
|
obj-$(CONFIG_MD_RAID456) += raid456.o
|
|
obj-$(CONFIG_MD_MULTIPATH) += multipath.o
|
|
obj-$(CONFIG_MD_FAULTY) += faulty.o
|
|
obj-$(CONFIG_MD_CLUSTER) += md-cluster.o
|
|
obj-$(CONFIG_BCACHE) += bcache/
|
|
obj-$(CONFIG_BLK_DEV_MD) += md-mod.o
|
|
ifeq ($(CONFIG_BLK_DEV_MD),y)
|
|
obj-y += md-autodetect.o
|
|
endif
|
|
obj-$(CONFIG_BLK_DEV_DM) += dm-mod.o
|
|
obj-$(CONFIG_BLK_DEV_DM_BUILTIN) += dm-builtin.o
|
|
obj-$(CONFIG_DM_UNSTRIPED) += dm-unstripe.o
|
|
obj-$(CONFIG_DM_BUFIO) += dm-bufio.o
|
|
obj-$(CONFIG_DM_BIO_PRISON) += dm-bio-prison.o
|
|
obj-$(CONFIG_DM_CRYPT) += dm-crypt.o
|
|
obj-$(CONFIG_DM_DELAY) += dm-delay.o
|
|
obj-$(CONFIG_DM_DUST) += dm-dust.o
|
|
obj-$(CONFIG_DM_FLAKEY) += dm-flakey.o
|
|
obj-$(CONFIG_DM_MULTIPATH) += dm-multipath.o dm-round-robin.o
|
|
obj-$(CONFIG_DM_MULTIPATH_QL) += dm-queue-length.o
|
|
obj-$(CONFIG_DM_MULTIPATH_ST) += dm-service-time.o
|
|
obj-$(CONFIG_DM_MULTIPATH_HST) += dm-historical-service-time.o
|
|
obj-$(CONFIG_DM_MULTIPATH_IOA) += dm-io-affinity.o
|
|
obj-$(CONFIG_DM_SWITCH) += dm-switch.o
|
|
obj-$(CONFIG_DM_SNAPSHOT) += dm-snapshot.o
|
|
obj-$(CONFIG_DM_PERSISTENT_DATA) += persistent-data/
|
|
obj-$(CONFIG_DM_MIRROR) += dm-mirror.o dm-log.o dm-region-hash.o
|
|
obj-$(CONFIG_DM_LOG_USERSPACE) += dm-log-userspace.o
|
|
obj-$(CONFIG_DM_ZERO) += dm-zero.o
|
|
obj-$(CONFIG_DM_RAID) += dm-raid.o
|
|
obj-$(CONFIG_DM_THIN_PROVISIONING) += dm-thin-pool.o
|
|
obj-$(CONFIG_DM_VERITY) += dm-verity.o
|
|
obj-$(CONFIG_DM_CACHE) += dm-cache.o
|
|
obj-$(CONFIG_DM_CACHE_SMQ) += dm-cache-smq.o
|
|
obj-$(CONFIG_DM_EBS) += dm-ebs.o
|
|
obj-$(CONFIG_DM_ERA) += dm-era.o
|
|
obj-$(CONFIG_DM_CLONE) += dm-clone.o
|
|
obj-$(CONFIG_DM_LOG_WRITES) += dm-log-writes.o
|
|
obj-$(CONFIG_DM_INTEGRITY) += dm-integrity.o
|
|
obj-$(CONFIG_DM_ZONED) += dm-zoned.o
|
|
obj-$(CONFIG_DM_WRITECACHE) += dm-writecache.o
|
|
|
|
ifeq ($(CONFIG_DM_INIT),y)
|
|
dm-mod-objs += dm-init.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DM_UEVENT),y)
|
|
dm-mod-objs += dm-uevent.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_BLK_DEV_ZONED),y)
|
|
dm-mod-objs += dm-zone.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_IMA),y)
|
|
dm-mod-objs += dm-ima.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DM_VERITY_FEC),y)
|
|
dm-verity-objs += dm-verity-fec.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG),y)
|
|
dm-verity-objs += dm-verity-verify-sig.o
|
|
endif
|
|
|
|
ifeq ($(CONFIG_DM_AUDIT),y)
|
|
dm-mod-objs += dm-audit.o
|
|
endif
|