From: Steve Grubb <sgrubb@redhat.com>
To: "Marius.bao" <marius.bao@gmail.com>
Cc: linux-audit@redhat.com
Subject: Re: What does each audit record field mean?
Date: Tue, 29 Jan 2008 13:02:17 -0500 [thread overview]
Message-ID: <200801291302.18083.sgrubb@redhat.com> (raw)
In-Reply-To: <b807c37c0801282316i3e522ac7m1e8216bccc539850@mail.gmail.com>
On Tuesday 29 January 2008 02:16:44 Marius.bao wrote:
> 1. My audit rule is auditctl -a exit,always -S open -F success=0,
> why in the audit record, the success field is no. And if I use the
> opposite rule auditctl -a exit,always -S open -F success!=0, the
> records' "success" field is yes?
in the auditctl man page is this: When writing a rule, use a 1 for true/yes
and a 0 for false/no. It looks like its working the way its documented to
work.
> 2. In some audit records, the "success" is yes, but with a non-zero
> exit code. When does this situation occur(A syscall successes with a
> non-zero exit code)?
Many times. You would have to look on a per syscall basis. Each one is
different. For example, open could return a 1 for the descriptor number or
a -1 to indicate an error. In both cases, it is non-zero. If open returned a
0, that is also success since that would be stdin. In general, if the exit
code is < 0, there is an error and >= 0 is success.
> 3.Have anyone ever tested the system performance impact when the
> kernel audit functionality is turned on?
Yes we've done much testing over the years.
> I've tested with the following audit rules
> auditctl -a exit,always -S read -F success=0
> auditctl -a exit,always -S readv -F success=0
> auditctl -a exit,always -S write -F success=0
> auditctl -a exit,always -S writev -F success=0
> auditctl -a exit,always -S fork -F success=0
> auditctl -a exit,always -S clone -F success=0
> auditctl -a exit,always -S truncate -F success=0
> auditctl -a exit,always -S ftruncate -F success=0
> auditctl -a exit,always -S link -F success=0
> auditctl -a exit,always -S unlink -F success=0
> auditctl -a exit,always -S symlink -F success=0
> auditctl -a exit,always -S chown -F success=0
> auditctl -a exit,always -S chmod -F success=0
> auditctl -a exit,always -S fchown -F success=0
> auditctl -a exit,always -S fchmod -F success=0
> auditctl -a exit,always -S kill -F success=0
> auditctl -a exit,always -S mmap -F success=0
> auditctl -a exit,always -S signal -F success=0
This is going to suck performance-wise. If you wanted to audit the above, I'd
re-write the rules as:
auditctl -a exit,always -S read -S readv -S write -S writev -S fork -S
clone -S truncate -S ftruncate -S link -S unlink -S symlink -S chown -S
chmod -S fchown -S fchmod -S kill -S mmap -S signal -F success=0
This means that the kernel will evaluate just one rule that does the same
thing. I can do it this way because all syscalls are on the same filter and
with the same action and they check the success field the same way.
When doing syscall auditing always try to combine rules where you can. Each
syscall rule gets evaluated for every syscall every program makes. It adds
up. Try to use file based auditing whenever you can since its not as big of a
performance hit.
> It turned out that with some of the audit rule set, the kscope
> source compile process takes double time. I wonder why it has so heavy
> impact on the system's performance.
See above.
> I also read some papers(<<Automatic high-performance
> reconstruction and recovery>>) on other audit systems. The system's
> impact is relatively low,about 6%~8% with all syscall information
> audited.
If you can think of a faster way to do what we are doing, please submit kernel
patches. Any performance improvements would be appreciated.
-Steve
prev parent reply other threads:[~2008-01-29 18:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-27 8:25 What does each audit record field mean? Marius.bao
2008-01-27 13:15 ` Steve Grubb
2008-01-29 7:16 ` Marius.bao
2008-01-29 18:02 ` Steve Grubb [this message]
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=200801291302.18083.sgrubb@redhat.com \
--to=sgrubb@redhat.com \
--cc=linux-audit@redhat.com \
--cc=marius.bao@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