On Wed, Jan 15, 2025 at 11:49:43AM -0300, Georgia Garcia wrote: > On Tue, 2025-01-14 at 12:13 -0600, Andrea Bolognani wrote: > > Going by the example presented in [1], IIUC your change would make it > > so the lines needed for macvtap use, specifically > > > > "/dev/net/tun" rwk, > > "/dev/tap82" rwk, > > > > would be written to .runtime_files instead of .files. That's good > > enough to safeguard them from disappearing when disks are unplugged, > > but what if the macvtap interface itself is? Wouldn't those lines > > linger around despite being no longer needed? > > Yes, they would, and that is the current behavior - if you remove only > the macvtap, it will not be removed from .files > > That's the current limitation because there are no security hooks > called when macvtap devices are unplugged. I thought it would be better > to be over-permissive (fd permissions linger throughout the runtime of > the vm) than over-restrictive to fix the issue given what's available > in the security side of libvirt.
>From a functional standpoint sure, leaving rules behind is not a problem. But considering that the whole point of a security driver is to prevent the QEMU process from accessing resources that it shouldn't have access to, I would consider it a pretty serious flaw. > > So I think we really need a --remove-file option that can be used to > > carefully undo the changes applied by an earlier use of --add-file. > > > > Unfortunately this will likely involve a far more significant rework > > of the AppArmor driver, and we will certainly have to be careful > > about not introducing regressions in the process, but I'm really not > > a fan of half measures unless the trade-off is overwhelmingly stacked > > in their favor... > > As I said earlier, it would also involve the addition of at least one > security hook, impacting all security drivers. But yes, this change > would basically involve rewriting the entire AppArmor driver and a part > of virt-aa-helper. While I'm not against it, unfortunately I will not > be able to dedicate the amount of time needed for such a significant > change. I haven't looked in detail at how much work adding the ability to remove rules on device unplug would require, but surely "basically rewrite the entire driver" is an overexaggeration? Look, I understand that you probably just want to fix the issue that's affecting your customers then move on with your life, and generally speaking I don't really have a problem with partial fixes that merely get us closer to the solution instead of all the way there. However, the changes you're proposing here alter how the driver operates in a pretty fundamental and, critically, user-visible way. I'm not keen on switching to a new approach while already being aware of the fact that a full fix with require yet another pivot... -- Andrea Bolognani / Red Hat / Virtualization