<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Hello <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I'm writing this message, because I would like to, at last, finish logrotate profile updates. It's near the end. I hope so. Please read my post and help me with made a decisions. Especially with changing 'Ux' to 'PUx' mode for some rules and the matter of change access mode for "/usr/sbin/invoke-rc.d". (For now, it's "mrix," but it is responsible for many log entries, so it definitely should be changed to, for example, 'PUx'. See below.) <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Since last year, I'm trying (with a great help from Mr Seth Arnold and Christian Boltz, thanks!) to update "/etc/cron.daily/logrotate" profile, because it's pretty important to protect, for example, CRON's tasks with AppArmor profiles. <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">After many changes logrotate profile worked OK. Unfortunately, it turned out, that it was not all. Another tests showed, that we need add some new rules. For example: <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ capability setgid, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /etc/rc?.d/ r, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /etc/default/rsyslog r, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /usr/bin/xargs mrix, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /bin/echo mrix, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">And so on. However, new capability is also needed. (Which is: "capability setgid,") Next issue; Mr Seth Arnold suggested 'Ux' mode for two rules: "/{usr/,}sbin/initctl" and "/{usr/,}sbin/runlevel" [1]. But, "Ux" is not really a secure solution, right? "Ux" mode should be used in a very special cases. Am I right? With this mode in use, processes runs without any AppArmor protection. <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Why am I mentioning it? Because at least two rules in a logrotate profile contains such an access. (Please see; "initctl" and "runlevel" above.) According to several AppArmor's documentations, this option introduces a security vulnerability, that could be used to exploit AppArmor. <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Of course 'Ux' can be used, but as a last resort. I would like to ask if 'PUx' mode is not more secure solution? What do you think? Can it be changed in a logrotate  profile? I'm just asking. Nothing more, nothing less. (Mr Seth Arnold answer about "Ux" - see [3b]) <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Anyway, tests shows, that "invoke-rc.d" with "mrix," access mode produce many DENIED actions. Log files contains several entries related to this issue. Some examples: <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ apparmor="DENIED" operation="exec" profile="/etc/cron.daily/logrotate" name="/bin/which" pid=2592 comm="invoke-rc.d" requested_mask="x" denied_mask="x" fsuid=0 ouid=0 <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ apparmor="DENIED" operation="exec" profile="/etc/cron.daily/logrotate" name="/bin/systemctl" pid=2593 comm="invoke-rc.d" requested_mask="x" denied_mask="x" fsuid=0 ouid=0 <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ apparmor="DENIED" operation="exec" profile="/etc/cron.daily/logrotate" name="/usr/bin/basename" pid=2595 comm="invoke-rc.d" requested_mask="x" denied_mask="x" fsuid=0 ouid=0 <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">As we can see, "mrix," mode for '/usr/sbin/invoke-rc.d' seems to be wrong, because there are many binary files, to which "invoke-rc.d" is recalled (see above log entries; there is many more of them.) What about using 'PUx' mode (which seems to be a better solution from a security point o view.)? Again: that's only a question. Leaving it as is - using "mrix" mode - will require to add many new rules (according to a log messages). So, my proposition is simple: <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✗ /{usr/,}sbin/initctl Ux, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✗ /{usr/,}sbin/runlevel Ux, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✗ /usr/sbin/invoke-rc.d mrix, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /{usr/,}sbin/initctl PUx, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /{usr/,}sbin/runlevel PUx, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">✓ /usr/sbin/invoke-rc.d PUx, <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Generally, "/usr/sbin/invoke-rc.d" access mode should be changed. (And probably, in all of these rules, "Ux" mode should be using instead of "PUx".) <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">If it's OK, then We can change above rules, next add a missing ones (see above) and logrotate profile should be complete(?) So, what is your opinion about using 'PUx' instead of 'Ux' mode, also for this rule: '/usr/sbin/invoke-rc.d'? <br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Summarizing: logrotate profile needs at least five new rules. If my propositions are OK, Mr Christian Boltz will be able to update a "new" profile to e.g.; <a href="http://bazaar.launchpad.net">bazaar.launchpad.net</a>, apparmor v2.X etc. And most important: it seems, that "/etc/cron.daily/logrotate" was added to the AppArmor v2.11.1 (see "Policy" subtitle.) <span id="result_box" class="short_text" lang="en"><span class="">[2] Please also see some important messages [3] <br></span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I'm sorry for such a long message, <span id="result_box" class="" lang="en"><span class="">I wanted to describe all the important things. <br></span></span></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Thanks, best regards. <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">____________________</div><div class="gmail_default" style="font-family:verdana,sans-serif">[1] <a href="https://lists.ubuntu.com/archives/apparmor/2016-December/010359.html">https://lists.ubuntu.com/archives/apparmor/2016-December/010359.html</a> <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">[2] <a href="http://wiki.apparmor.net/index.php/ReleaseNotes_2_11_1">http://wiki.apparmor.net/index.php/ReleaseNotes_2_11_1</a> <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">[3] <a href="https://lists.ubuntu.com/archives/apparmor/2017-April/010719.html">https://lists.ubuntu.com/archives/apparmor/2017-April/010719.html</a> <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">[3a] <a href="https://lists.ubuntu.com/archives/apparmor/2016-December/010420.html">https://lists.ubuntu.com/archives/apparmor/2016-December/010420.html</a> <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">[3b] <a href="https://lists.ubuntu.com/archives/apparmor/2016-December/010359.html">https://lists.ubuntu.com/archives/apparmor/2016-December/010359.html</a> <br></div><div class="gmail_default" style="font-family:verdana,sans-serif">.</div><div class="gmail_default" style="font-family:verdana,sans-serif">.<br></div></div>