On 8/23/25 22:43, Aaron Rainbolt wrote:
> In Kicksecure 18 and higher, we're going to be shipping USBGuard,
> enabled by default, with a configuration that allows all devices that
> are present in the system on bootup, and blocks all non-whitelisted
> devices that are plugged in after bootup. By default, the whitelist in
> Kicksecure will allow USB mass storage devices, and will allow a single
> mouse and keyboard at a time (additional keyboards are rejected). All
> other devices are rejected, including devices that combine a USB mass
> storage interface with anything else, and devices that combine a
> keyboard or mouse interface with anything (except for "unified"
> keyboard/mouse devices like are common with some wireless receivers).
> The goal is to allow a limited subset of common USB devices to work out
> of the box, while also thwarting devices like the USB "rubber ducky".
> 
> This feature set makes good sense for Kicksecure on the desktop, but
> we're unsure if it makes sense in Qubes OS, if a user chooses to use
> Kicksecure on sys-usb. On the one hand, USBGuard in sys-usb could
> substantially increase the security of users who have to pass through
> USB keyboards and mice to dom0 (only one keyboard and mouse would be
> allowed, a keystroke injection device would be rejected so long as it
> was not present when sys-usb booted and a legitimate USB keyboard was
> already plugged in). On the other hand, USBGuard could frustrate users
> who need to work with things such as USB headsets, webcams,
> touchscreens, and other "advanced" devices. In theory a user could
> reboot sys-usb to get these devices to work (assuming our configuration
> actually does trust everything present on bootup), but maybe that's too
> much hassle?
> 
> The USBGuard configuration we intend to ship in Kicksecure 18 can be
> seen at [1].
> 
> Would enabling USBGuard in Kicksecure's Qubes OS templates make sense,
> or would this cause too many problems for users? If it should be
> included, does our default configuration make sense, or is it too
> restrictive? (On the topic of whether or not the existing configuration
> is too restrictive, I made a post on the Kicksecure forums asking for
> feedback at [2].)
> 
> [1] 
> https://github.com/Kicksecure/security-misc/blob/master/etc/usbguard/rules.d/30_security-misc.conf
> [2] 
> https://forums.kicksecure.com/t/usbguard-what-should-we-allow-or-disallow-by-default/1248

My personal setup is:

- sys-usb has usbcore.authorized_default=0 and USBGuard is set to only
  allow my YubiKey and the internal camera.  The USBGuard configuration
  includes the port number, so USB devices plugged into other ports
  can't impersonate devices I have chosen to trust.

- All other VMs allow all USB devices, but have none assigned by default.

- The firmware USB stack is disabled via a Dasharo feature.

Generally, I recommend using USB device assignment rather than handling
devices in sys-usb directly.  The only exception is devices (like the
aforementioned camera and YubiKey) which are known to be trusted.
-- 
Sincerely,
Demi Marie Obenour (she/her/hers)

-- 
You received this message because you are subscribed to the Google Groups 
"qubes-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to qubes-devel+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/qubes-devel/0f5d04a2-ecfb-4b0e-9c1e-d19fb3241eaf%40gmail.com.

Attachment: OpenPGP_0xB288B55FFF9C22C1.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to