From: Steve Grubb <sgrubb@redhat.com>
To: Lenny Bruzenak <lenny@magitekltd.com>
Cc: linux-audit@redhat.com
Subject: Re: Not seeing access denied audit messages in restricted subdirectories
Date: Sat, 9 Nov 2019 11:08:41 +0100 [thread overview]
Message-ID: <20191109110841.7760c408@ivy-bridge> (raw)
In-Reply-To: <4f152216-63dc-4785-d878-fc57f48217f0@magitekltd.com>
On Sat, 9 Nov 2019 20:18:45 +1100
Lenny Bruzenak <lenny@magitekltd.com> wrote:
> On 11/9/19 8:39 AM, Steve Grubb wrote:
>
> > On Fri, 8 Nov 2019 13:39:58 -0700
> > "John T Olson" <jtolson@us.ibm.com> wrote:
> >
> >> Greetings,
> >>
> >> I have the following 2 audit rules set up:
> >>
> >> -a always,exit -F arch=b64 -S all -F exit=-EACCES -F dir=/gpfs/fs1
> >> -a always,exit -F arch=b64 -S all -F exit=-EPERM -F dir=/gpfs/fs1
> >>
> >> I have a directory structure like the following:
> >>
> >> (13:15:26) zippleback-vm1:~ # ls -la /gpfs/fs1/test/
> >> total 257
> >> drwx------. 3 root root 4096 Nov 7 12:46 .
> >> drwxr-xr-x. 15 root root 262144 Nov 7 12:50 ..
> >> drwx------. 2 root root 4096 Nov 7 12:46 test2
> >>
> >> Essentially, directory "/gpfs/fs1/test/" is owned by root and has
> >> permissions 700. The subdirectory underneath it (with
> >> path /gpfs/fs1/test/test2) is also owned by root and has
> >> permissions 700.
> >>
> >> When I have a non-root user attempt to list the contents of
> >> directory "/gpfs/fs1/test/" I receive an audit message for the
> >> denied access. However, when the non-root user attempts to list
> >> the contents of the subdirectory (/gpfs/fs1/test/test2), there is
> >> no audit message generated. Does anyone know why this is and how I
> >> get audit messages in both cases?
> > Yes, the reason is because the path did not resolve so audit never
> > saw it. This has been this way for quite some time. In the past, it
> > was said because the path never resolved, a PATH record with all
> > attributes could not be generated. I have mentioned to kernel
> > maintainers, that the path is available as a syscall argument.
> > While a full PATH record cannot be generated with file attributes,
> > an abbreviated one could be generated. So, far...no one has saw
> > this as a big enough problem to fix. Personally, I think it should
> > be fixed.
> At first blush, I completely agree. However, I'm wondering if the
> first attempt completely failed, how would the second one even have
> the knowledge of the unattainable path?
Because it was an argument to the syscall. For example, if its the open
syscall, then arg0 points to the path. You cannot create a completed
PATH record because you have no device, inode, or mode. But you do have
the attempted path.
> In the real world if the first one failed (in this example
> /gpfs/fs1/test), because although the parent directory would list the
> test directory, it is not reachable. But the listing of that one
> would not happen at all (/gpfs/fs1/test/test2), because the non-root
> user had no access to the listing dir (/gpfs/fs1/test). The caller
> would have had to gain knowledge of its existence through other means.
>
> I wonder if even acknowledging its existence via a "denied access"
> event would be slightly counter-productive? The abbreviated PATH
> would be nice, and since it is there, sure, why not? Then, if all
> calls either to non-existent or say access-denied paths looked the
> same, then that would be fine I think. I would not be as happy if one
> could sniff out inaccessible directories (as opposed to non-existent)
> from audited events though.
Only sysadmins have access to the audit trail. And I think you can
sniff out inaccessible directories with a little shell or python
scripting as a non-admin user. Of course doing so should cause some
metric to spike.
-Steve
next prev parent reply other threads:[~2019-11-09 10:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-08 20:39 Not seeing access denied audit messages in restricted subdirectories John T Olson
2019-11-08 21:39 ` Steve Grubb
2019-11-09 9:18 ` Lenny Bruzenak
2019-11-09 10:08 ` Steve Grubb [this message]
[not found] ` <OF2EB856B2.9F56FBC0-ON002584AE.001B1E42-072584AE.001B5554@notes.na.collabserv.com>
2019-11-10 15:48 ` Steve Grubb
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=20191109110841.7760c408@ivy-bridge \
--to=sgrubb@redhat.com \
--cc=lenny@magitekltd.com \
--cc=linux-audit@redhat.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