Re: [RFC PATCH ghak32 V2 10/13] audit: add containerid support for seccomp and anom_abend records
On Thu, Apr 19, 2018 at 8:42 PM, Richard Guy Briggs wrote: > On 2018-04-18 21:31, Paul Moore wrote: >> On Fri, Mar 16, 2018 at 5:00 AM, Richard Guy Briggs wrote: >> > Add container ID auxiliary records to secure computing and abnormal end >> > standalone records. >> > >> > Signed-off-by: Richard Guy Briggs >> > --- >> > kernel/auditsc.c | 10 -- >> > 1 file changed, 8 insertions(+), 2 deletions(-) >> > >> > diff --git a/kernel/auditsc.c b/kernel/auditsc.c >> > index 7103d23..2f02ed9 100644 >> > --- a/kernel/auditsc.c >> > +++ b/kernel/auditsc.c >> > @@ -2571,6 +2571,7 @@ static void audit_log_task(struct audit_buffer *ab) >> > void audit_core_dumps(long signr) >> > { >> > struct audit_buffer *ab; >> > + struct audit_context *context = audit_alloc_local(); >> >> Looking quickly at do_coredump() I *believe* we can use current here. >> >> > if (!audit_enabled) >> > return; >> > @@ -2578,19 +2579,22 @@ void audit_core_dumps(long signr) >> > if (signr == SIGQUIT) /* don't care for those */ >> > return; >> > >> > - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); >> > + ab = audit_log_start(context, GFP_KERNEL, AUDIT_ANOM_ABEND); >> > if (unlikely(!ab)) >> > return; >> > audit_log_task(ab); >> > audit_log_format(ab, " sig=%ld res=1", signr); >> > audit_log_end(ab); >> > + audit_log_container_info(context, "abend", >> > audit_get_containerid(current)); >> > + audit_free_context(context); >> > } >> > >> > void __audit_seccomp(unsigned long syscall, long signr, int code) >> > { >> > struct audit_buffer *ab; >> > + struct audit_context *context = audit_alloc_local(); >> >> We can definitely use current here. > > Ok, so both syscall aux records. That elimintes this patch from the > set, can go in independently. Yep. It should help shrink the audit container ID patchset and perhaps more importantly it should put some distance between the connected-record debate and the audit container ID debate. I understand we are going to need a "local" context for some things, the network packets are probably the best example, but whenever possible I would like to connect these records back to a task's context. -- paul moore www.paul-moore.com -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit
Re: [RFC PATCH ghak32 V2 10/13] audit: add containerid support for seccomp and anom_abend records
On 2018-04-18 21:31, Paul Moore wrote: > On Fri, Mar 16, 2018 at 5:00 AM, Richard Guy Briggs wrote: > > Add container ID auxiliary records to secure computing and abnormal end > > standalone records. > > > > Signed-off-by: Richard Guy Briggs > > --- > > kernel/auditsc.c | 10 -- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c > > index 7103d23..2f02ed9 100644 > > --- a/kernel/auditsc.c > > +++ b/kernel/auditsc.c > > @@ -2571,6 +2571,7 @@ static void audit_log_task(struct audit_buffer *ab) > > void audit_core_dumps(long signr) > > { > > struct audit_buffer *ab; > > + struct audit_context *context = audit_alloc_local(); > > Looking quickly at do_coredump() I *believe* we can use current here. > > > if (!audit_enabled) > > return; > > @@ -2578,19 +2579,22 @@ void audit_core_dumps(long signr) > > if (signr == SIGQUIT) /* don't care for those */ > > return; > > > > - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); > > + ab = audit_log_start(context, GFP_KERNEL, AUDIT_ANOM_ABEND); > > if (unlikely(!ab)) > > return; > > audit_log_task(ab); > > audit_log_format(ab, " sig=%ld res=1", signr); > > audit_log_end(ab); > > + audit_log_container_info(context, "abend", > > audit_get_containerid(current)); > > + audit_free_context(context); > > } > > > > void __audit_seccomp(unsigned long syscall, long signr, int code) > > { > > struct audit_buffer *ab; > > + struct audit_context *context = audit_alloc_local(); > > We can definitely use current here. Ok, so both syscall aux records. That elimintes this patch from the set, can go in independently. > > - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_SECCOMP); > > + ab = audit_log_start(context, GFP_KERNEL, AUDIT_SECCOMP); > > if (unlikely(!ab)) > > return; > > audit_log_task(ab); > > @@ -2598,6 +2602,8 @@ void __audit_seccomp(unsigned long syscall, long > > signr, int code) > > signr, syscall_get_arch(), syscall, > > in_compat_syscall(), KSTK_EIP(current), code); > > audit_log_end(ab); > > + audit_log_container_info(context, "seccomp", > > audit_get_containerid(current)); > > + audit_free_context(context); > > } > > > > struct list_head *audit_killed_trees(void) > > -- > paul moore > www.paul-moore.com > > -- > Linux-audit mailing list > Linux-audit@redhat.com > https://www.redhat.com/mailman/listinfo/linux-audit - RGB -- Richard Guy Briggs Sr. S/W Engineer, Kernel Security, Base Operating Systems Remote, Ottawa, Red Hat Canada IRC: rgb, SunRaycer Voice: +1.647.777.2635, Internal: (81) 32635 -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit
Re: [RFC PATCH ghak32 V2 10/13] audit: add containerid support for seccomp and anom_abend records
On Fri, Mar 16, 2018 at 5:00 AM, Richard Guy Briggs wrote: > Add container ID auxiliary records to secure computing and abnormal end > standalone records. > > Signed-off-by: Richard Guy Briggs > --- > kernel/auditsc.c | 10 -- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/kernel/auditsc.c b/kernel/auditsc.c > index 7103d23..2f02ed9 100644 > --- a/kernel/auditsc.c > +++ b/kernel/auditsc.c > @@ -2571,6 +2571,7 @@ static void audit_log_task(struct audit_buffer *ab) > void audit_core_dumps(long signr) > { > struct audit_buffer *ab; > + struct audit_context *context = audit_alloc_local(); Looking quickly at do_coredump() I *believe* we can use current here. > if (!audit_enabled) > return; > @@ -2578,19 +2579,22 @@ void audit_core_dumps(long signr) > if (signr == SIGQUIT) /* don't care for those */ > return; > > - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); > + ab = audit_log_start(context, GFP_KERNEL, AUDIT_ANOM_ABEND); > if (unlikely(!ab)) > return; > audit_log_task(ab); > audit_log_format(ab, " sig=%ld res=1", signr); > audit_log_end(ab); > + audit_log_container_info(context, "abend", > audit_get_containerid(current)); > + audit_free_context(context); > } > > void __audit_seccomp(unsigned long syscall, long signr, int code) > { > struct audit_buffer *ab; > + struct audit_context *context = audit_alloc_local(); We can definitely use current here. > - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_SECCOMP); > + ab = audit_log_start(context, GFP_KERNEL, AUDIT_SECCOMP); > if (unlikely(!ab)) > return; > audit_log_task(ab); > @@ -2598,6 +2602,8 @@ void __audit_seccomp(unsigned long syscall, long signr, > int code) > signr, syscall_get_arch(), syscall, > in_compat_syscall(), KSTK_EIP(current), code); > audit_log_end(ab); > + audit_log_container_info(context, "seccomp", > audit_get_containerid(current)); > + audit_free_context(context); > } > > struct list_head *audit_killed_trees(void) -- paul moore www.paul-moore.com -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit
[RFC PATCH ghak32 V2 10/13] audit: add containerid support for seccomp and anom_abend records
Add container ID auxiliary records to secure computing and abnormal end standalone records. Signed-off-by: Richard Guy Briggs --- kernel/auditsc.c | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/kernel/auditsc.c b/kernel/auditsc.c index 7103d23..2f02ed9 100644 --- a/kernel/auditsc.c +++ b/kernel/auditsc.c @@ -2571,6 +2571,7 @@ static void audit_log_task(struct audit_buffer *ab) void audit_core_dumps(long signr) { struct audit_buffer *ab; + struct audit_context *context = audit_alloc_local(); if (!audit_enabled) return; @@ -2578,19 +2579,22 @@ void audit_core_dumps(long signr) if (signr == SIGQUIT) /* don't care for those */ return; - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_ANOM_ABEND); + ab = audit_log_start(context, GFP_KERNEL, AUDIT_ANOM_ABEND); if (unlikely(!ab)) return; audit_log_task(ab); audit_log_format(ab, " sig=%ld res=1", signr); audit_log_end(ab); + audit_log_container_info(context, "abend", audit_get_containerid(current)); + audit_free_context(context); } void __audit_seccomp(unsigned long syscall, long signr, int code) { struct audit_buffer *ab; + struct audit_context *context = audit_alloc_local(); - ab = audit_log_start(NULL, GFP_KERNEL, AUDIT_SECCOMP); + ab = audit_log_start(context, GFP_KERNEL, AUDIT_SECCOMP); if (unlikely(!ab)) return; audit_log_task(ab); @@ -2598,6 +2602,8 @@ void __audit_seccomp(unsigned long syscall, long signr, int code) signr, syscall_get_arch(), syscall, in_compat_syscall(), KSTK_EIP(current), code); audit_log_end(ab); + audit_log_container_info(context, "seccomp", audit_get_containerid(current)); + audit_free_context(context); } struct list_head *audit_killed_trees(void) -- 1.8.3.1 -- Linux-audit mailing list Linux-audit@redhat.com https://www.redhat.com/mailman/listinfo/linux-audit