Re: [PATCH ghak90 V6 02/10] audit: add container id
From: Paul Moore <paul@paul-moore.com>
Date: 2019-07-15 20:38:39
Also in:
linux-api, linux-fsdevel, lkml, netfilter-devel
On Mon, Jul 8, 2019 at 1:51 PM Richard Guy Briggs [off-list ref] wrote:
On 2019-05-29 11:29, Paul Moore wrote:
...
quoted
The idea is that only container orchestrators should be able to set/modify the audit container ID, and since setting the audit container ID can have a significant effect on the records captured (and their routing to multiple daemons when we get there) modifying the audit container ID is akin to modifying the audit configuration which is why it is gated by CAP_AUDIT_CONTROL. The current thinking is that you would only change the audit container ID from one set/inherited value to another if you were nesting containers, in which case the nested container orchestrator would need to be granted CAP_AUDIT_CONTROL (which everyone to date seems to agree is a workable compromise). We did consider allowing for a chain of nested audit container IDs, but the implications of doing so are significant (implementation mess, runtime cost, etc.) so we are leaving that out of this effort.We had previously discussed the idea of restricting orchestrators/engines from only being able to set the audit container identifier on their own descendants, but it was discarded. I've added a check to ensure this is now enforced.
When we weren't allowing nested orchestrators it wasn't necessary, but with the move to support nesting I believe this will be a requirement. We might also need/want to restrict audit container ID changes if a descendant is acting as a container orchestrator and managing one or more audit container IDs; although I'm less certain of the need for this.
I've also added a check to ensure that a process can't set its own audit container identifier ...
What does this protect against, or what problem does this solve? Considering how easy it is to fork/exec, it seems like this could be trivially bypassed.
... and that if the identifier is already set, then the orchestrator/engine must be in a descendant user namespace from the orchestrator that set the previously inherited audit container identifier.
You lost me here ... although I don't like the idea of relying on X namespace inheritance for a hard coded policy on setting the audit container ID; we've worked hard to keep this independent of any definition of a "container" and it would sadden me greatly if we had to go back on that. -- paul moore www.paul-moore.com