<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Текст Знак";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.a
        {mso-style-name:"Текст Знак";
        mso-style-priority:99;
        mso-style-link:Текст;
        font-family:"Calibri","sans-serif";}
span.hps
        {mso-style-name:hps;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:2.0cm 42.5pt 2.0cm 3.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="RU" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoPlainText"><span lang="EN-US">Hello, Steve,<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">thanks for a nice idea  about adding new context for pulseaudio. We'll try to configure SELinux in this way. Also I would ask you to give some info about the unfinished branch that was intended to provide the "exe"
 filtering. Probably our team could work it out. <o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><i><span lang="EN-US">I would be curious which rule you are getting hit with.
<o:p></o:p></span></i></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">I have attached the small piece of audit logs just for the case if you want to see what’s going on with pulseaudio. The vast majority of captured syscalls is #2 - syscall open.
<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText" style="margin-left:35.4pt"><i><span lang="EN-US">Normally, you design the rules so that a properly running system does not cause events. This means qualifying the rules with something like EPERM or EACCES so that you only log real problems
 and not normal system operation.<o:p></o:p></span></i></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">The main reason of making the audit.rules so
</span><span class="hps"><span lang="EN">exhaustive is our attempt to trace and log all  the user’s
</span></span><span lang="EN"> </span><span lang="EN-US">actions. Unfortunately /usr/bin/pulseaudio always has the uid value of a non-system user (>500). That’s why our logs are flooded.
<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Sincerelly, <o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Vitaly Isaev<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Software engineer<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Information security department<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Fintech JSC, Moscow, Russia</span><o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><span lang="EN-US" style="mso-fareast-language:RU">-----Original Message-----<br>
From: Steve Grubb [mailto:sgrubb@redhat.com] <br>
Sent: Wednesday, August 20, 2014 12:34 AM<br>
To: linux-audit@redhat.com<br>
Cc: </span><span style="mso-fareast-language:RU">Исаев</span><span style="mso-fareast-language:RU">
</span><span style="mso-fareast-language:RU">Виталий</span><span style="mso-fareast-language:RU">
</span><span style="mso-fareast-language:RU">Анатольевич</span><span lang="EN-US" style="mso-fareast-language:RU"><br>
Subject: Re: Excluding the single executable on the top of audit.rules</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText">Hello,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">On Tuesday, August 19, 2014 11:07:18 AM Исаев Виталий Анатольевич wrote:<o:p></o:p></p>
<p class="MsoPlainText">> I would like to ask for an explanation about making my audit.rules proper.<o:p></o:p></p>
<p class="MsoPlainText">> What am I trying to do is to exclude all the syscall events coming
<o:p></o:p></p>
<p class="MsoPlainText">> from exe="/usr/bin/pulseaudio" and its components. At the moment about
<o:p></o:p></p>
<p class="MsoPlainText">> 95% of audit log is filled with messages related to pulseaudio:<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> # aureport -x -if my.log --summary<o:p></o:p></p>
<p class="MsoPlainText">> Executable Summary Report<o:p></o:p></p>
<p class="MsoPlainText">> =================================<o:p></o:p></p>
<p class="MsoPlainText">> total  file<o:p></o:p></p>
<p class="MsoPlainText">> =================================<o:p></o:p></p>
<p class="MsoPlainText">> 1156923  /usr/bin/pulseaudio<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I would be curious which rule you are getting hit with. Normally, you design the rules so that a properly running system does not cause events. This means qualifying the rules with something like EPERM or EACCES so that you only log
 real problems and not normal system operation. That said, at the moment, the best way to remove a single process is to use selinux types in the audit event. However, this trick does not work in this case because pulseaudio has no SE Linux policy. You would
 almost want to give it a type that maps to unconfined_t. Then you could write a rule like:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-a exit,never -S all -F subj_type=pulseaudio_t<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">You would place that at the top of the rules so it matches first. There was work going on to match against an executable name. But I haven't seen any progress in a long time. If that were finished, it would solve your problem.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">-Steve<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">> 191719  /usr/libexec/pulse/gconf-helper<o:p></o:p></p>
<p class="MsoPlainText">> 49282  /usr/bin/gnome-volume-control-applet<o:p></o:p></p>
<p class="MsoPlainText">> 8035  /usr/libexec/gnome-settings-daemon<o:p></o:p></p>
<p class="MsoPlainText">> 1045  /usr/sbin/crond<o:p></o:p></p>
<p class="MsoPlainText">> 265  /usr/bin/nautilus<o:p></o:p></p>
<p class="MsoPlainText">> 23  /usr/sbin/sshd<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Please look through the current version of audit.rules. How should I
<o:p></o:p></p>
<p class="MsoPlainText">> modify them?<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> # First rule - delete all<o:p></o:p></p>
<p class="MsoPlainText">> -D<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> # Increase the buffers to survive stress events.<o:p></o:p></p>
<p class="MsoPlainText">> # Make this bigger for busy systems<o:p></o:p></p>
<p class="MsoPlainText">> -b 320<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> # Feel free to add below this line. See auditctl man page #-a
<o:p></o:p></p>
<p class="MsoPlainText">> exit,never -F exe=/usr/bin/pulseaudio -S open -a exit,always -F
<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F<o:p></o:p></p>
<p class="MsoPlainText">> auid!=429496729 -S open -a exit,always -F arch=x86_64 -F uid>=500 -F<o:p></o:p></p>
<p class="MsoPlainText">> gid>=500 -F ppid!=1 -F auid!=429496729 -S execve -a exit,always -F<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F auid!=429496729 -S
<o:p></o:p></p>
<p class="MsoPlainText">> fork -a exit,always -F arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1
<o:p></o:p></p>
<p class="MsoPlainText">> -F<o:p></o:p></p>
<p class="MsoPlainText">> auid!=429496729 -S vfork -a exit,always -F arch=x86_64 -F uid>=500 -F<o:p></o:p></p>
<p class="MsoPlainText">> gid>=500 -F ppid!=1 -F auid!=429496729 -S exit -a exit,always -F<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F auid!=429496729 -S
<o:p></o:p></p>
<p class="MsoPlainText">> exit_group -a exit,always -F arch=x86_64 -F uid>=500 -F gid>=500 -F
<o:p></o:p></p>
<p class="MsoPlainText">> ppid!=1 -F auid!=429496729 -S getdents -a exit,always -F arch=x86_64
<o:p></o:p></p>
<p class="MsoPlainText">> -F uid>=500 -F<o:p></o:p></p>
<p class="MsoPlainText">> gid>=500 -F ppid!=1 -F auid!=429496729 -S chmod -a exit,always -F<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F auid!=429496729 -S
<o:p></o:p></p>
<p class="MsoPlainText">> fchmod -a exit,always -F arch=x86_64 -F uid>=500 -F gid>=500 -F
<o:p></o:p></p>
<p class="MsoPlainText">> ppid!=1 -F<o:p></o:p></p>
<p class="MsoPlainText">> auid!=429496729 -S fchmodat -a exit,always -F arch=x86_64 -F uid>=500
<o:p></o:p></p>
<p class="MsoPlainText">> -F<o:p></o:p></p>
<p class="MsoPlainText">> gid>=500 -F ppid!=1 -F auid!=429496729 -S chown -a exit,always -F<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F auid!=429496729 -S
<o:p></o:p></p>
<p class="MsoPlainText">> fchown -a exit,always -F arch=x86_64 -F uid>=500 -F gid>=500 -F
<o:p></o:p></p>
<p class="MsoPlainText">> ppid!=1 -F<o:p></o:p></p>
<p class="MsoPlainText">> auid!=429496729 -S lchown -a exit,always -F arch=x86_64 -F uid>=500 -F<o:p></o:p></p>
<p class="MsoPlainText">> gid>=500 -F ppid!=1 -F auid!=429496729 -S fchownat -a exit,always -F<o:p></o:p></p>
<p class="MsoPlainText">> arch=x86_64 -F uid>=500 -F gid>=500 -F ppid!=1 -F auid!=429496729 -S
<o:p></o:p></p>
<p class="MsoPlainText">> unlink -a exit,always -F arch=x86_64 -F uid>=500 -F gid>=500 -F
<o:p></o:p></p>
<p class="MsoPlainText">> ppid!=1 -F<o:p></o:p></p>
<p class="MsoPlainText">> auid!=429496729 -S unlinkat<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> P.S. We're using RHEL 6.4 with audit-2.2-2.el6.x86_64.<o:p></o:p></p>
<p class="MsoPlainText">> <o:p></o:p></p>
<p class="MsoPlainText">> Sincerely,<o:p></o:p></p>
<p class="MsoPlainText">> Vitaly Isaev<o:p></o:p></p>
<p class="MsoPlainText">> Software engineer<o:p></o:p></p>
<p class="MsoPlainText">> Information security department<o:p></o:p></p>
<p class="MsoPlainText">> Fintech JSC, Moscow, Russia<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</body>
</html>