Skip to content

Releases: USBGuard/usbguard

usbguard-0.5.11

13 Aug 11:41
Compare
Choose a tag to compare
usbguard-0.5.11 Pre-release
Pre-release

ChangeLog

WARNING: This release contains backwards incompatible changes. Read the Changed section bellow for details.

Added

  • Maintainer script for spellchecking source archive files
  • Rule::Attribute class for representing the rule attributes
  • USBDeviceID class for represing the USB device ID
  • configure script option to control the bundling of PEGTL source files
  • id attribute to the rule language for specifing the USB device ID
  • Added a parent device ID field (and methods) to the Device class which
    tracks the ID of the parent device
  • Implemented "parent-hash" attribute for associating a device with its
    parent device.
  • The QtSvg module/library is now needed to compile the Qt applet
  • Qt Applet: Device Dialog settings work now
  • Qt Applet: The settings state is now remembered (via Qt's QSettings class)
  • Qt Applet: Implemented serial number masking
  • Qt Applet: Initial implementation of DeviceDialog window position randomization
  • Qt Applet: IPC exceptions are shown in the message log
  • Qt Applet: added an initial implementation of the device list with the ability
    to change authorization target for each device
  • Qt Applet: show a grey version of the USBGuard icon in IPC disconnected state
  • usbguard-daemon.conf: added DeviceRulesWithPort setting (set to false by default)
  • Added support for selecting crypto backend library at compile time using the
    --with-crypto-library configure script switch

Changed

  • IMPORTANT: The device hash value computation was changed to include the
    USB descriptor data. Additionally, the algorithm was changed to SHA-256 and
    the hash value representation to base64. These changes are backwards incompatible
    and existing policies that use the hash attribute need to be updated.
  • Reimplemented the rule parser using PEGTL
  • Changed public API of the Rule and Device classes because of the new
    Rule::Attribute class rule attribute representation
  • Extended the public IPCClient::IPCDisconnected method to include exception
    related information
  • All rule attributes now support both the single and multivalued form
  • A rule attribute can now be specified only once
  • The default usbguard-daemon.conf and usbguard.service files now respect
    the paths set by the configure script
  • New Qt applet icons with
  • Fixed Qt applet so that it doesn't show an empty window when starting
  • Qt Applet: Reject button is hidden by default.
  • Updated usbguard-daemon manual page
  • Permanent device specific rules managed by allowDevice, blockDevice and
    rejectDevice actions are now handled properly. Existing device rules are
    updated instead of just appending new rules to the policy.
  • usbguard-daemon.conf: changed the default configuration value of
    PresentControllerPolicy to keep
  • Changed the device hashing algorithm to SHA-256
  • Switched hash value representation from hex to base64

Removed

  • Removed Quex related files
  • The "from Rule" Device class constructor was removed because it's use case
    is unclear and it wasn't used anywhere

Thanks

Many thanks to the following people for contributions to this release and to the USBGuard project:

SHA256(usbguard-0.5.11.tar.gz)= 9b156552d169593d91400e9f021ed84c0e83e9eabfa71a985fd1b00a461feee7

usbguard-0.5.10

08 Jul 22:27
Compare
Choose a tag to compare
usbguard-0.5.10 Pre-release
Pre-release

Major changes (since usbguard-0.4)

  • Changed versioning scheme to include a release number. Releases will be rolled out more often during a milestone (x.y -- currently 0.5) development.
  • Merged usbguard-applet-qt (sub)project into usbguard.
  • Added a D-Bus bridge component which exposes a D-Bus interface to usbguard.
  • Enhancements of the usbguard command-line interface.
  • Fixed USB descriptor data parsing. Previously, many real-world cases of descriptors weren't parsed correctly because of a naive implementation of the parser.
  • Fixed systemd integration.
  • Manual pages are now generated from their source (markdown) during the build process.
  • A default usbguard-daemon configuration file is now installed.
  • Fixed issues: #84, #83, #80, #79, #78, #77, #76, #75, #74, #73, #72, #71, #70, #69, #68, #56, #54, #53, #51, #50, #44.

Thanks

Many thanks to the following people for contributions to this release and to the USBGuard project:

SHA256(usbguard-0.5.10.tar.gz)= f51a302ad6222ba87ac5a2f96d033c9ba514c0d20027983798e97746d879ac28

usbguard-0.4

07 Feb 12:08
Compare
Choose a tag to compare
usbguard-0.4 Pre-release
Pre-release

Major changes

  • The daemon is now capable of dropping process capabilities and uses a seccomp based syscall whitelist. Options to enable these features were added to the usbguard-daemon command.
  • Devices connected at the start of the daemon are now recognized and the DevicePresent signal is sent for each of them.
  • New configuration options for setting the implicit policy target and how to handle the present devices are now available.
  • String values read from the device are now properly escaped and length limits on these values are enforced.
  • The library API was extended with the Device and DeviceManager classes.
  • Implemented the usbguard CLI, see usbguard(1) for available commands.
  • Initial authorization policies can be now easily generated using the usbguard generate-policy command.
  • Extended the rule language with rule conditions. See usbguard-rules.conf(5) for details.
  • Moved logging code into the shared library. You can use static methods of the Logger class to configure logging behaviour.
  • Removed the bundled libsodium and libqb libraries.
  • Fixed several bugs.
  • Resolved issues: #46, #45, #41, #40, #37, #32, #31, #28, #25, #24, #21, #16, #13, #9, #4

WARNING: Backwards incompatible changes

  • The device hashing procedure was altered and generates different hash values. If you are using the hash attribute in your rules, you'll have to update the values.
  • The bundled libsodium and libqb were removed. You'll have to compile and install them separately if your distribution doesn't provide them as packages.

Updating

If you are using Fedora or the USBGuard Copr repository, run:

$ sudo dnf update usbguard

Download

Tarballs can be downloaded here:

usbguard-0.3p3

14 Apr 11:24
Compare
Choose a tag to compare
usbguard-0.3p3 Pre-release
Pre-release

Major changes

  • use AC_CHECK_HEADER instead of a pkg-config based check for json and spdlog
  • make check target available

Download

Tarballs can be downloaded here:

usbguard-0.3p2

14 Apr 10:59
Compare
Choose a tag to compare
usbguard-0.3p2 Pre-release
Pre-release

Major changes

  • SHM permissions are set to uid of the client process and gid of the daemon with rw-rw---- mode (0660).
  • added --with-bundled-json and --with-bundled-spdlog configure options to enable/disable the usage of the bundled libraries

Updating

If you are using the USBGuard Copr repository, run:

$ sudo yum update usbguard usbguard-applet-qt

Download

Tarballs can be downloaded here:

usbguard-0.3p1

14 Apr 10:55
Compare
Choose a tag to compare
usbguard-0.3p1 Pre-release
Pre-release

Major changes

  • removed bundled cppformat copylib

Download

Tarballs can be downloaded here:

usbguard-0.3

09 Apr 16:07
Compare
Choose a tag to compare
usbguard-0.3 Pre-release
Pre-release

Major changes

  • Fixed appending of permanent rules
  • Implemented a DAC based IPC access control
  • Ship man pages for usbguard-daemon, usbguard-daemon.conf and usbguard-rules.conf
  • Ship the LICENSE file
  • Fixed distribution RPM spec file. Thanks to Petr Lautrbach and Ralf Corsepius for review.
  • Resolved issues: #18 #19 #13

Updating

If you are using the USBGuard Copr repository, run:

$ sudo yum update usbguard usbguard-applet-qt

Download

Tarballs can be downloaded here:

usbguard-0.2

03 Apr 17:10
Compare
Choose a tag to compare
usbguard-0.2 Pre-release
Pre-release

Major changes

  • Support for modifying permanent rules over the IPC interface.
  • Reworked device hashing.
  • Rule language changes
    • set operators
    • renamed "port" to "via-port"
    • added "with-interface" matching attribute
    • removed the "class" attribute
  • The IPCClient, ConfigFile, Rule and RuleSet classes are now shipped in a shared library.
  • Created abstract interface for OS specific USB device handling.
  • Changed default daemon config path to /etc/usbguard/usbguard-daemon.conf.
  • Implemented basic USB descriptor structure parsing and improved interface type handling
  • The IPC API was changed:
    • added new signal, DevicePresent, which signals that a device was already present at the start of the IPC session
    • the DeviceInserted and DevicePresent signals pass interface types that the device supports
    • the explicit string arguments of the signals are now passed as a map
  • Resolved issues: #1 #2 #5 #6 #10 #11

Updating

Note that the rule language syntax changed. USBGuard no longer recognizes the "class" attribute, which was removed, and the "port" attribute, which was renamed to "via-port".

If you are using the USBGuard Copr repository, run:

$ sudo yum update usbguard usbguard-applet-qt