• Michael Weiß's avatar
    dm verity: emit audit events on verification failure and more · 074c4466
    Michael Weiß authored
    
    
    dm-verity signals integrity violations by returning I/O errors
    to user space. To identify integrity violations by a controlling
    instance, the kernel audit subsystem can be used to emit audit
    events to user space. Analogous to dm-integrity, we also use the
    dm-audit submodule allowing to emit audit events on verification
    failures of metadata and data blocks as well as if max corrupted
    errors are reached.
    
    The construction and destruction of verity device mappings are
    also relevant for auditing a system. Thus, those events are also
    logged as audit events.
    
    Tested by starting a container with the container manager (cmld) of
    GyroidOS which uses a dm-verity protected rootfs image root.img mapped
    to /dev/mapper/<uuid>-root. One block was manipulated in the
    underlying image file and repeated reads of the verity device were
    performed again until the max corrupted errors is reached, e.g.:
    
      dd if=/dev/urandom of=root.img bs=512 count=1 seek=1000
      for i in range {1..101}; do \
        dd if=/dev/mapper/<uuid>-root of=/dev/null bs=4096 \
           count=1 skip=1000 \
      done
    
    The resulting audit log looks as follows:
    
      type=DM_CTRL msg=audit(1677618791.876:962):
        module=verity op=ctr ppid=4876 pid=29102 auid=0 uid=0 gid=0
        euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=44
        comm="cmld" exe="/usr/sbin/cml/cmld" subj=unconfined
        dev=254:3 error_msg='success' res=1
    
      type=DM_EVENT msg=audit(1677619463.786:1074): module=verity
        op=verify-data dev=7:0 sector=1000 res=0
      ...
      type=DM_EVENT msg=audit(1677619596.727:1162): module=verity
        op=verify-data dev=7:0 sector=1000 res=0
    
      type=DM_EVENT msg=audit(1677619596.731:1163): module=verity
        op=max-corrupted-errors dev=254:3 sector=? res=0
    Signed-off-by: default avatarMichael Weiß <michael.weiss@aisec.fraunhofer.de>
    Acked-by: default avatarPaul Moore <paul@paul-moore.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
    074c4466
dm-verity-target.c 37.5 KB