From: Richard Guy Briggs <rgb@redhat.com>
To: Paul Moore <pmoore@redhat.com>
Cc: linux-audit@redhat.com, linux-kernel@vger.kernel.org,
sgrubb@redhat.com, eparis@redhat.com, v.rathor@gmail.com,
ctcard@hotmail.com
Subject: Re: [PATCH V1] audit: add warning that an old auditd may be starved out by a new auditd
Date: Fri, 11 Sep 2015 06:21:14 -0400 [thread overview]
Message-ID: <20150911102114.GP8140@madcap2.tricolour.ca> (raw)
In-Reply-To: <4246819.OGLW0CmS4i@sifl>
On 15/09/09, Paul Moore wrote:
> On Monday, September 07, 2015 12:58:18 PM Richard Guy Briggs wrote:
> > On 15/09/07, Richard Guy Briggs wrote:
> > > Nothing prevents a new auditd starting up and replacing a valid
> > > audit_pid when an old auditd is still running, effectively starving out
> > > the old auditd since audit_pid no longer points to the old valid auditd.
> > >
> > > There isn't an easy way to detect if an old auditd is still running on
> > > the existing audit_pid other than attempting to send a message to see if
> > > it fails. If no message to auditd has been attempted since auditd died
> > > unnaturally or got killed, audit_pid will still indicate it is alive.
> > >
> > > Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
> >
> > Ok, self-nack on this one for a couple of problems...
> > netlink_getsockbyportid() is static to af_netlink.c and "pid" should be
> > task_tgid_vnr(current). Otherwise, any opinions on this approach?
> >
> > > ---
> > > Note: Would it be too bold to actually block the registration of a new
> > > auditd if the netlink_getsockbyportid() call succeeded? Would other
> > > checks be appropriate?
>
> Hmm. It seems like we should prevent the registration of a new auditd if we
> already have an auditd instance connected, although as you say, that isn't the
> easiest thing to do.
I wanted to do that, but I feared it would carry some risk that an
intentional act would be blocked. In that case, an intentional act
could include explicitly killing the old auditd (or process registered
as such).
> How painful would it be to return -EAGAIN to the new auditd while sending some
> sort of keep-alive/ping/etc. message to the old daemon to check its status?
Well, if it turns out that the only reason it ever fails is
-ECONNREFUSED, then we just need to check with netlink_getsockbyportid()
to see if it fails before accepting the new auditd.
If it is one of the others, can we put the new auditd task on a wait
queue until we hear back one way or the other or just timeout on
contacting the old auditd?
I'll let Steve speak to dealing with -EAGAIN. auditlib already deals
with -EAGAIN and -EINTR for some cases. I have a patch that added
-ENOBUFS to those cases since I had seen some reports that -ENOBUFS had
been returned in some cases (don't remember the circumstances).
> paul moore
- RGB
--
Richard Guy Briggs <rbriggs@redhat.com>
Senior Software Engineer, Kernel Security, AMER ENG Base Operating Systems, Red Hat
Remote, Ottawa, Canada
Voice: +1.647.777.2635, Internal: (81) 32635, Alt: +1.613.693.0684x3545
next prev parent reply other threads:[~2015-09-11 10:21 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-07 16:48 [PATCH V1] audit: add warning that an old auditd may be starved out by a new auditd Richard Guy Briggs
2015-09-07 16:58 ` Richard Guy Briggs
2015-09-09 20:50 ` Paul Moore
2015-09-11 10:21 ` Richard Guy Briggs [this message]
2015-09-11 18:56 ` Paul Moore
2015-09-13 16:08 ` Richard Guy Briggs
2015-09-14 19:37 ` Paul Moore
2015-09-16 10:24 ` Richard Guy Briggs
2015-09-16 21:45 ` Paul Moore
2015-09-17 11:35 ` Richard Guy Briggs
2015-09-17 22:40 ` Paul Moore
2015-09-08 14:57 ` Eric Paris
2015-09-09 6:31 ` Richard Guy Briggs
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=20150911102114.GP8140@madcap2.tricolour.ca \
--to=rgb@redhat.com \
--cc=ctcard@hotmail.com \
--cc=eparis@redhat.com \
--cc=linux-audit@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pmoore@redhat.com \
--cc=sgrubb@redhat.com \
--cc=v.rathor@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox