On Fri, Mar 03, 2023 at 10:18:39AM -0800, Andrea Bolognani wrote:
On Fri, Mar 03, 2023 at 06:06:05PM +0000, Daniel P. Berrangé wrote:
> On Fri, Mar 03, 2023 at 09:56:55AM -0800, Andrea Bolognani wrote:
> > Right, but wouldn't the idea of poking at the filesystem to retrieve
> > the label from the binary (passt_exec_t) and then applying a text
> > transformation to obtain the runtime label (passt_t) go directly
> > against the idea of not hardcoding information about a specific
> > policy implementation into libvirt?
>
> I'm not suggesting applying a text transformation. The example code
> using libselinux I described in the other reply actually askes the
> kernel to tell us what the target type will be when a process
> labelled passt_exec_t is execd.
Yeah, that's a lot better.
> > As I understand it, such a policy would allow virtqemud (virtd_t) to
> > execute passt (passt_exec_t) and automatically result in a transition
> > of the process to the desired context (passt_t).
>
> Yes, and I'm saying we must ask the kernel to tell us what that target
> context will be for the loaded policy, given the source file context.
I still don't understand why we can't simply execute passt and let
the domain transition defined in the policy take care of switching to
the appropriate label from us, like we do for dnsmasq and other
tools? Why do we need to do things differently for passt?
That won't get the per-VM label applied. It will end up running
passt_t:s0:c0.c1023, but we want it to be passt_t:s0:c342,155.
To transition from non-MCS to MCS, you have to explicitly tell
the kernel what to do instead of relying on the plain automatic
transition.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|