auditing access to directories with restricted access

Steve Grubb sgrubb at redhat.com
Wed Jun 4 21:57:30 UTC 2014


Hello,

On Wednesday, June 04, 2014 12:13:02 PM jon.bird at generaldynamics.uk.com wrote:
> I am trying to set up some audit rules to monitor failed accesses to a given
> folder - here is the basics:
> 
> -a exit,always -S open -k fk_open -F dir=/recorder/ -F success=0
> 
> Here are the permissions on the folder:
> 
> drwxrwx---    3 red      red           4096 Jun  4 10:39 recorder
> 
> and the contents:
> 
> drwxrwx---    3 red      red           4096 Jun  4 12:05 .
> drwxr-xr-x   21 root     root          1024 Jun  4 10:38 ..
> drwx------    2 root     root         16384 Apr 24 15:49 lost+found
> -rw-rw----    1 root     root             6 Jun  4 12:05 test.txt
> 
> If I run as user "red" ie. Who does have permission to write to this folder
> but then try and replace the "text.txt" file (which is owned by root) I
> get:
> 
> reduser at unit:~ echo test >test.txt
> -sh: can't create test.txt: Permission denied
> 
> Along with a corresponding entry in the audit log which is what I'm
> expected.
> 
> However if I run as another use which does not have permission to access
> this folder and try the same thing:
> 
> blackuser at unit:~ echo test >/recorder/test.txt
> -sh: can't create /recorder/test.txt: Permission denied
> 
> But I don't get anything captured in the audit log. I've tried a few
> incarnations of the rule, including setting up similar arrangements and
> having the daemon monitor the parent folder (thinking the access will show
> up there) but I can't get this scenario to be detected by the audit daemon.
> If I remove the file system filter (ie. So I see all failed accesses) then
> it does get logged but this generates way too much traffic to be of much
> use. I've also done an strace call around the command and verified that (in
> this latter scenario) is it definitely the open call which is generating
> the permission denied error and it is.
> 
> This is using audit-2.3.6 on a 3.2.55 kernel.
> 
> Any help appreciated,

This is a kernel problem. I recall seeing a patch on this mail list over a 
year ago purporting to allow audit events when path resolution failed. The 
issue as I remember goes something like this...

Files are really identified by device and inode number. In order to be more 
user friendly, we allow watches which pass a path name. The kernel really 
converts that to device and inode and watches for that. When an access gets 
denied such that the path cannot be converted to the device and inode to see 
if it matches a rule, then you won't get an event.

Like I said, I have seen a patch that supposedly fixed it by Eric Paris. But I 
don't know if it got replaced during some re-writes, or it didn't make it 
upstream, or it only provides results some of the time. But I really think its 
reasonable to expect to get a denied event as you described above. Maybe Eric 
can chime in about this.

-Steve




More information about the Linux-audit mailing list