srg_requirement: |-
    {{{ full_name }}} must block unauthorized peripherals before establishing a connection.

vuldiscussion: |-
    The USBguard-daemon is the main component of the USBGuard software framework. It runs as a service in the background and enforces the USB device authorization policy for all USB devices. The policy is defined by a set of rules using a rule language described in the usbguard-rules.conf file. The policy and the authorization state of USB devices can be modified during runtime using the usbguard tool.

    The system administrator (SA) must work with the site information system security officer (ISSO) to determine a list of authorized peripherals and establish rules within the USBGuard software framework to allow only authorized devices.

checktext: |-
    Note: If the system is virtual machine with no virtual or physical USB peripherals attached, this is Not Applicable.

    Verify the USBGuard has a policy configured with the following command:

    $ sudo usbguard list-rules

    allow id 1d6b:0001 serial

    If the command does not return results or an error is returned, ask the SA to indicate how unauthorized peripherals are being blocked.

    If there is no evidence that unauthorized peripherals are being blocked before establishing a connection, this is a finding.

fixtext: |-
    Configure the operating system to enable the blocking of unauthorized peripherals with the following command:

    Note: This command must be run from a root shell and will create an allow list for any usb devices currently connected to the system.

    # usbguard generate-policy --no-hash &gt; /etc/usbguard/rules.conf

    Note: Enabling and starting usbguard without properly configuring it for an individual system will immediately prevent any access over a usb device such as a keyboard or mouse.


