All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Moore <paul@paul-moore.com>
To: Richard Guy Briggs <rgb@redhat.com>
Cc: containers@lists.linux-foundation.org, linux-api@vger.kernel.org,
	linux-audit@redhat.com, linux-kernel@vger.kernel.org,
	ebiederm@xmission.com, luto@kernel.org, dhowells@redhat.com,
	viro@zeniv.linux.org.uk, simo@redhat.com,
	Eric Paris <eparis@parisplace.org>,
	Serge Hallyn <serge@hallyn.com>
Subject: Re: [PATCH ghak90 (was ghak32) V4 01/10] audit: collect audit task parameters
Date: Thu, 3 Jan 2019 15:33:28 -0500	[thread overview]
Message-ID: <CAHC9VhQTQuRnkF-8sJxwDvKbxJHvs5uLWsvLvL085SgyPiqLHQ@mail.gmail.com> (raw)
In-Reply-To: <20190103202938.ntdfqdmyrr7stzh2@madcap2.tricolour.ca>

On Thu, Jan 3, 2019 at 3:29 PM Richard Guy Briggs <rgb@redhat.com> wrote:
> I'm not sure what's going on here, but it looks like HTML-encoded reply
> quoting making the quoted text very difficult to read.  All the previous
> ">" have been converted to the HTML "&gt;" encoding.  Your most recent
> reply text looks mostly fine.

Not sure what happened either, I suspect gmail did something odd when
I saved them as drafts, but it has never done that before.  FWIW, I
generally batch up individual review comments for complex patchsets as
one often needs to review the entire set first before commenting.

The most recent reply to patch 0/10 wasn't saved as a draft before sending.

> On 2019-01-03 15:10, Paul Moore wrote:
> > On Thu, Nov 1, 2018 at 6:07 PM Richard Guy Briggs <rgb@redhat.com> wrote:
> > &gt; On 2018-10-19 19:15, Paul Moore wrote:
> > &gt; &gt; On Sun, Aug 5, 2018 at 4:32 AM Richard Guy Briggs
> > <rgb@redhat.com> wrote:
> > &gt; &gt; &gt; The audit-related parameters in struct task_struct
> > should ideally be
> > &gt; &gt; &gt; collected together and accessed through a standard audit API.
> > &gt; &gt; &gt;
> > &gt; &gt; &gt; Collect the existing loginuid, sessionid and
> > audit_context together in a
> > &gt; &gt; &gt; new struct audit_task_info called "audit" in struct task_struct.
> > &gt; &gt; &gt;
> > &gt; &gt; &gt; Use kmem_cache to manage this pool of memory.
> > &gt; &gt; &gt; Un-inline audit_free() to be able to always recover that memory.
> > &gt; &gt; &gt;
> > &gt; &gt; &gt; See: https://github.com/linux-audit/audit-kernel/issues/81
> > &gt; &gt; &gt;
> > &gt; &gt; &gt; Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
> > &gt; &gt; &gt; ---
> > &gt; &gt; &gt;  include/linux/audit.h | 34 ++++++++++++++++++++++++----------
> > &gt; &gt; &gt;  include/linux/sched.h |  5 +----
> > &gt; &gt; &gt;  init/init_task.c      |  3 +--
> > &gt; &gt; &gt;  init/main.c           |  2 ++
> > &gt; &gt; &gt;  kernel/auditsc.c      | 51
> > ++++++++++++++++++++++++++++++++++++++++++---------
> > &gt; &gt; &gt;  kernel/fork.c         |  4 +++-
> > &gt; &gt; &gt;  6 files changed, 73 insertions(+), 26 deletions(-)
> > &gt; &gt;
> > &gt; &gt; ...
> > &gt; &gt;
> > &gt; &gt; &gt; diff --git a/include/linux/sched.h b/include/linux/sched.h
> > &gt; &gt; &gt; index 87bf02d..e117272 100644
> > &gt; &gt; &gt; --- a/include/linux/sched.h
> > &gt; &gt; &gt; +++ b/include/linux/sched.h
> > &gt; &gt; &gt; @@ -873,10 +872,8 @@ struct task_struct {
> > &gt; &gt; &gt;
> > &gt; &gt; &gt;         struct callback_head            *task_works;
> > &gt; &gt; &gt;
> > &gt; &gt; &gt; -       struct audit_context            *audit_context;
> > &gt; &gt; &gt;  #ifdef CONFIG_AUDITSYSCALL
> > &gt; &gt; &gt; -       kuid_t                          loginuid;
> > &gt; &gt; &gt; -       unsigned int                    sessionid;
> > &gt; &gt; &gt; +       struct audit_task_info          *audit;
> > &gt; &gt; &gt;  #endif
> > &gt; &gt; &gt;         struct seccomp                  seccomp;
> > &gt; &gt;
> > &gt; &gt; Prior to this patch audit_context was available regardless of
> > &gt; &gt; CONFIG_AUDITSYSCALL, after this patch the corresponding audit_context
> > &gt; &gt; is only available when CONFIG_AUDITSYSCALL is defined.
> > &gt;
> > &gt; This was intentional since audit_context is not used when AUDITSYSCALL is
> > &gt; disabled.  audit_alloc() was stubbed in that case to return 0.
> > audit_context()
> > &gt; returned NULL.
> > &gt;
> > &gt; The fact that audit_context was still present in struct task_struct was an
> > &gt; oversight in the two patches already accepted:
> > &gt;         ("audit: use inline function to get audit context")
> > &gt;         ("audit: use inline function to get audit context")
> > &gt; that failed to hide or remove it from struct task_struct when it
> > was no longer
> > &gt; relevant.
> >
> > Okay, in that case let's pull this out and fix this separately from
> > the audit container ID patchset.
> >
> > &gt; On further digging, loginuid and sessionid (and
> > audit_log_session_info) should
> > &gt; be part of CONFIG_AUDIT scope and not CONFIG_AUDITSYSCALL since
> > it is used in
> > &gt; CONFIG_CHANGE, ANOM_LINK, FEATURE_CHANGE(, INTEGRITY_RULE), none
> > of which are
> > &gt; otherwise dependent on AUDITSYSCALL.
> >
> > This looks like something else we should fix independently from this patchset.
> >
> > &gt; Looking ahead, contid should be treated like loginuid and
> > sessionid, which are
> > &gt; currently only available when syscall auditting is.
> >
> > That seems reasonable.  Eventually it would be great if we got rid of
> > CONFIG_AUDITSYSCALL, but that is a separate issue, and something that
> > is going to require work from the different arch/ABI folks to ensure
> > everything is working properly.
> >
> > &gt; Converting records from standalone to syscall and checking
> > audit_dummy_context
> > &gt; changes the nature of CONFIG_AUDIT/!CONFIG_AUDITSYSCALL separation.
> > &gt; eg: ANOM_LINK accompanied by PATH record (which needed CWD addition to be
> > &gt; complete anyways)
> > &gt;
> > &gt; &gt; &gt; diff --git a/init/main.c b/init/main.c
> > &gt; &gt; &gt; index 3b4ada1..6aba171 100644
> > &gt; &gt; &gt; --- a/init/main.c
> > &gt; &gt; &gt; +++ b/init/main.c
> > &gt; &gt; &gt; @@ -92,6 +92,7 @@
> > &gt; &gt; &gt;  #include <linux rodata_test.h="">
> > &gt; &gt; &gt;  #include <linux jump_label.h="">
> > &gt; &gt; &gt;  #include <linux mem_encrypt.h="">
> > &gt; &gt; &gt; +#include <linux audit.h="">
> > &gt; &gt; &gt;
> > &gt; &gt; &gt;  #include <asm io.h="">
> > &gt; &gt; &gt;  #include <asm bugs.h="">
> > &gt; &gt; &gt; @@ -721,6 +722,7 @@ asmlinkage __visible void __init
> > start_kernel(void)
> > &gt; &gt; &gt;         nsfs_init();
> > &gt; &gt; &gt;         cpuset_init();
> > &gt; &gt; &gt;         cgroup_init();
> > &gt; &gt; &gt; +       audit_task_init();
> > &gt; &gt; &gt;         taskstats_init_early();
> > &gt; &gt; &gt;         delayacct_init();
> > &gt; &gt;
> > &gt; &gt; It seems like we would need either init_struct_audit or
> > &gt; &gt; audit_task_init(), but not both, yes?
> > &gt;
> > &gt; One sets initial values of init task via an included struct,
> > other makes a call
> > &gt; to create the kmem cache.  Both seem appropriate to me unless we move the
> > &gt; initialization from a struct to assignments in audit_task_init(),
> > but I'm not
> > &gt; that comfortable separating the audit init values from the rest of the
> > &gt; task_struct init task initializers (though there are other
> > subsystems that need
> > &gt; to do so dynamically).
> >
> > My original thinking was focused on the use of init_struct_audit as an
> > initializer when audit_task_init() was already creating a kmem_cache
> > pool and a zero'd/init'd audit_task_info could be obtained via the
> > usual kmem_cache functions.  Alternatively, although I don't believe
> > it would be recommended for this case, would be to use
> > init_struct_audit as an init helper if we included the audit_task_info
> > struct directly in the task_struct, as opposed to a pointer.  What I
> > missed was the simple fact that you're only using init_struct_audit
> > for the init_task, which pretty much makes my original question rather
> > silly :)
> >
> > --
> > paul moore
> > www.paul-moore.com
>
> - RGB
>
> --
> Richard Guy Briggs <rgb@redhat.com>
> 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



-- 
paul moore
www.paul-moore.com

  reply	other threads:[~2019-01-03 20:33 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31 20:07 [PATCH ghak90 (was ghak32) V4 00/10] audit: implement container identifier Richard Guy Briggs
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 01/10] audit: collect audit task parameters Richard Guy Briggs
2018-10-19 23:15   ` Paul Moore
2018-10-19 23:15     ` Paul Moore
2018-11-01 22:07     ` Richard Guy Briggs
2019-01-03 20:10       ` Paul Moore
2019-01-03 20:29         ` Richard Guy Briggs
2019-01-03 20:29           ` Richard Guy Briggs
2019-01-03 20:33           ` Paul Moore [this message]
2019-01-03 20:38             ` Richard Guy Briggs
2019-01-24 20:36         ` Richard Guy Briggs
2019-01-04  2:50   ` Guenter Roeck
2019-01-04 14:57     ` Richard Guy Briggs
2019-01-04 22:04       ` Guenter Roeck
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 02/10] audit: add container id Richard Guy Briggs
2018-07-31 20:07   ` Richard Guy Briggs
2018-08-24 16:01   ` Steve Grubb
2018-10-19 19:38   ` Paul Moore
2018-10-19 19:40     ` Paul Moore
2018-10-19 21:50     ` Richard Guy Briggs
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 03/10] audit: log container info of syscalls Richard Guy Briggs
2018-08-24 16:01   ` Steve Grubb
2018-08-24 16:01     ` Steve Grubb
2018-10-19 23:16   ` Paul Moore
2018-10-24 15:14     ` Richard Guy Briggs
2018-10-24 20:55       ` Paul Moore
2018-10-25  0:42         ` Richard Guy Briggs
2018-10-25  6:06           ` Steve Grubb
2018-10-25 10:49             ` Paul Moore
2018-10-25 12:27               ` Richard Guy Briggs
2018-10-25 12:27                 ` Richard Guy Briggs
2018-10-25 15:57                 ` Steve Grubb
2018-10-25 17:38                   ` Richard Guy Briggs
2018-10-25 20:40                     ` Paul Moore
2018-10-25 21:55                       ` Steve Grubb
2018-10-26  8:09                         ` Casey Schaufler
2018-10-28  7:53                           ` Paul Moore
2018-10-25  6:13           ` Paul Moore
2018-10-25  6:13             ` Paul Moore
2018-10-25  6:13             ` Paul Moore
2018-10-25 12:22             ` Richard Guy Briggs
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 04/10] audit: add containerid support for ptrace and signals Richard Guy Briggs
2018-10-19 23:16   ` Paul Moore
2018-10-26 22:15     ` Richard Guy Briggs
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 05/10] audit: add support for non-syscall auxiliary records Richard Guy Briggs
2018-10-19 23:17   ` Paul Moore
2018-11-01 18:48     ` Richard Guy Briggs
2019-01-03 20:10       ` Paul Moore
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 06/10] audit: add containerid support for tty_audit Richard Guy Briggs
2018-10-19 23:17   ` Paul Moore
2018-10-31 21:17     ` Richard Guy Briggs
2019-01-03 20:11       ` Paul Moore
2019-01-10 22:58         ` Richard Guy Briggs
2019-01-11  1:12           ` Paul Moore
2019-01-11  3:38             ` Richard Guy Briggs
2019-01-11 23:16               ` Paul Moore
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 07/10] audit: add containerid filtering Richard Guy Briggs
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 08/10] audit: add support for containerid to network namespaces Richard Guy Briggs
2018-07-31 20:07   ` Richard Guy Briggs
2018-10-19 23:18   ` Paul Moore
2018-10-19 23:18     ` Paul Moore
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 09/10] audit: NETFILTER_PKT: record each container ID associated with a netNS Richard Guy Briggs
2018-10-19 23:18   ` Paul Moore
2018-10-31 19:30     ` Richard Guy Briggs
2018-12-27 15:33       ` Richard Guy Briggs
2018-12-27 22:54         ` Paul Moore
2018-07-31 20:07 ` [PATCH ghak90 (was ghak32) V4 10/10] debug audit: read container ID of a process Richard Guy Briggs
2019-01-03 16:15 ` [PATCH ghak90 (was ghak32) V4 00/10] audit: implement container identifier Guenter Roeck
2019-01-03 17:36   ` Richard Guy Briggs
2019-01-03 18:58     ` Guenter Roeck
2019-01-03 20:20       ` Richard Guy Briggs
2019-01-03 20:12     ` Paul Moore

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHC9VhQTQuRnkF-8sJxwDvKbxJHvs5uLWsvLvL085SgyPiqLHQ@mail.gmail.com \
    --to=paul@paul-moore.com \
    --cc=containers@lists.linux-foundation.org \
    --cc=dhowells@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=eparis@parisplace.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-audit@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=rgb@redhat.com \
    --cc=serge@hallyn.com \
    --cc=simo@redhat.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.