From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Olsa Subject: Re: [PATCH] bpf: emit audit messages upon successful prog load and unload Date: Sat, 23 Nov 2019 09:57:19 +0100 Message-ID: <20191123085719.GA1673@krava> References: <20191120213816.8186-1-jolsa@kernel.org> <8c928ec4-9e43-3e2a-7005-21f40fcca061@iogearbox.net> <20191122002257.4hgui6pylpkmpwac@ast-mbp.dhcp.thefacebook.com> <20191122192353.GA2157@krava> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: Content-Disposition: inline Sender: netdev-owner@vger.kernel.org To: Paul Moore Cc: Alexei Starovoitov , linux-audit@redhat.com, Jiri Olsa , Daniel Borkmann , Alexei Starovoitov , Network Development , bpf , Andrii Nakryiko , Yonghong Song , Martin KaFai Lau , Jakub Kicinski , Steve Grubb , David Miller , Eric Paris , Jiri Benc List-Id: linux-audit@redhat.com On Fri, Nov 22, 2019 at 04:19:55PM -0500, Paul Moore wrote: > On Fri, Nov 22, 2019 at 2:24 PM Jiri Olsa wrote: > > Paul, > > would following output be ok: > > > > type=3DSYSCALL msg=3Daudit(1574445211.897:28015): arch=3Dc000003e s= yscall=3D321 success=3Dno exit=3D-13 a0=3D5 a1=3D7fff09ac6c60 a2=3D78 a3=3D= 6 items=3D0 ppid=3D1408 pid=3D9266 auid=3D1001 uid=3D0 gid=3D0 euid=3D0 sui= d=3D0 fsuid=3D0 egid=3D0 sgid=3D0 fsgid=3D0 tty=3Dpts0 ses=3D1 comm=3D"test= _verifier" exe=3D"/home/jolsa/linux/tools/testing/selftests/bpf/test_verifi= er" subj=3Dunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=3D(nul= l)ARCH=3Dx86_64 SYSCALL=3Dbpf AUID=3D"jolsa" UID=3D"root" GID=3D"root" EUID= =3D"root" SUID=3D"root" FSUID=3D"root" EGID=3D"root" SGID=3D"root" FSGID=3D= "root" > > type=3DPROCTITLE msg=3Daudit(1574445211.897:28015): proctitle=3D"./= test_verifier" > > type=3DBPF msg=3Daudit(1574445211.897:28016): prog-id=3D8103 event= =3DLOAD > > > > type=3DSYSCALL msg=3Daudit(1574445211.897:28016): arch=3Dc000003e s= yscall=3D321 success=3Dyes exit=3D14 a0=3D5 a1=3D7fff09ac6b80 a2=3D78 a3=3D= 0 items=3D0 ppid=3D1408 pid=3D9266 auid=3D1001 uid=3D0 gid=3D0 euid=3D0 sui= d=3D0 fsuid=3D0 egid=3D0 sgid=3D0 fsgid=3D0 tty=3Dpts0 ses=3D1 comm=3D"test= _verifier" exe=3D"/home/jolsa/linux/tools/testing/selftests/bpf/test_verifi= er" subj=3Dunconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=3D(nul= l)ARCH=3Dx86_64 SYSCALL=3Dbpf AUID=3D"jolsa" UID=3D"root" GID=3D"root" EUID= =3D"root" SUID=3D"root" FSUID=3D"root" EGID=3D"root" SGID=3D"root" FSGID=3D= "root" > > type=3DPROCTITLE msg=3Daudit(1574445211.897:28016): proctitle=3D"./= test_verifier" > > type=3DBPF msg=3Daudit(1574445211.897:28017): prog-id=3D8103 event= =3DUNLOAD >=20 > There is some precedence in using "op=3D" instead of "event=3D" (an audit > "event" is already a thing, using "event=3D" here might get confusing). > I suppose if we are getting really nit-picky you might want to > lower-case the LOAD/UNLOAD, but generally Steve cares more about these > things than I do. >=20 > For reference, we have a searchable database of fields here: > * https://github.com/linux-audit/audit-documentation/blob/master/specs/fi= elds/field-dictionary.csv I'm fine with "op", Daniel, Alexei? >=20 > > I assume for audit-userspace and audit-testsuite the change will > > go in as github PR, right? I have the auditd change ready and will > > add test shortly. >=20 > You can submit the audit-testsuite either as a GH PR or as a > patch(set) to the linux-audit mailing list, both work equally well. I > believe has the same policy for his userspace tools, but I'll let him > speak for himself. ok >=20 > > diff --git a/include/linux/audit.h b/include/linux/audit.h > > index 18925d924c73..c69d2776d197 100644 > > --- a/include/linux/audit.h > > +++ b/include/linux/audit.h > > @@ -358,8 +358,6 @@ static inline void audit_ptrace(struct task_struct = *t) > > __audit_ptrace(t); > > } > > > > -extern void audit_log_task(struct audit_buffer *ab); > > - > > /* Private API (for audit.c only) */ > > extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); > > extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_= t gid, umode_t mode); > > @@ -648,8 +646,6 @@ static inline void audit_ntp_log(const struct audit= _ntp_data *ad) > > static inline void audit_ptrace(struct task_struct *t) > > { } > > > > -static inline void audit_log_task(struct audit_buffer *ab) > > -{ } > > #define audit_n_rules 0 > > #define audit_signals 0 > > #endif /* CONFIG_AUDITSYSCALL */ > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c > > index 9bf1045fedfa..4effe01ebbe2 100644 > > --- a/kernel/auditsc.c > > +++ b/kernel/auditsc.c > > @@ -2545,7 +2545,7 @@ void __audit_ntp_log(const struct audit_ntp_data = *ad) > > audit_log_ntp_val(ad, "adjust", AUDIT_NTP_ADJUST); > > } > > > > -void audit_log_task(struct audit_buffer *ab) > > +static void audit_log_task(struct audit_buffer *ab) >=20 > I'm slightly concerned that this is based on top of your other patch > which was NACK'ed. I might not have been clear before, but with the > merge window set to open in a few days, and this change affecting the > kernel interface (uapi, etc.) and lacking a test, this isn't something > that I see as a candidate for the upcoming merge window. *Please* > revert your original patch first; if you think I'm cranky now I can > promise I'll be a lot more cranky if I see the original patch in -rc1 > ;) no worries, I'm used to cranky ;-) Alexei already asked Dave to revert this in previous email, so that should happen thanks, jirka