• Daniel Borkmann's avatar
    bpf: Emit audit messages upon successful prog load and unload · 91e6015b
    Daniel Borkmann authored
    Allow for audit messages to be emitted upon BPF program load and
    unload for having a timeline of events. The load itself is in
    syscall context, so additional info about the process initiating
    the BPF prog creation can be logged and later directly correlated
    to the unload event.
    
    The only info really needed from BPF side is the globally unique
    prog ID where then audit user space tooling can query / dump all
    info needed about the specific BPF program right upon load event
    and enrich the record, thus these changes needed here can be kept
    small and non-intrusive to the core.
    
    Raw example output:
    
      # auditctl -D
      # auditctl -a always,exit -F arch=x86_64 -S bpf
      # ausearch --start recent -m 1334
      [...]
      ----
      time->Wed Nov 20 12:45:51 2019
      type=PROCTITLE msg=audit(1574271951.590:8974): proctitle="./test_verifier"
      type=SYSCALL msg=audit(1574271951.590:8974): arch=c000003e syscall=321 success=yes exit=14 a0=5 a1=7ffe2d923e80 a2=78 a3=0 items=0 ppid=742 pid=949 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=2 comm="test_verifier" exe="/root/bpf-next/tools/testing/selftests/bpf/test_verifier" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
      type=UNKNOWN[1334] msg=audit(1574271951.590:8974): auid=0 uid=0 gid=0 ses=2 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=949 comm="test_verifier" exe="/root/bpf-next/tools/testing/selftests/bpf/test_verifier" prog-id=3260 event=LOAD
      ----
      time->Wed Nov 20 12:45:51 2019
    type=UNKNOWN[1334] msg=audit(1574271951.590:8975): prog-id=3260 event=UNLOAD
      ----
      [...]
    Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    Link: https://lore.kernel.org/bpf/20191120213816.8186-1-jolsa@kernel.org
    91e6015b
syscall.c 72.9 KB