Comment protéger votre ordinateur Linux contre les clés USB malveillantes

Publié: 2023-01-23
La main d'une personne connectant une clé USB à un ordinateur.
Freer/Shutterstock.com
Installez USBGuard pour contrôler et gérer les clés USB pouvant être utilisées sur votre ordinateur Linux. Agissant comme une sorte de pare-feu pour les périphériques USB, il vous permet de créer un ensemble de règles qui autorisent, bloquent ou rejettent des lecteurs spécifiques.

Les clés USB peuvent être utilisées pour voler des données sur votre ordinateur Linux. USBGuard vous permet de définir des règles régissant l'utilisation des clés USB, comme un pare-feu pour les périphériques de stockage USB. Voici comment cela fonctionne et comment vous pouvez le configurer.

Table des matières

La clé USB et ses dangers
Qu'est-ce qu'USBGuard ?
Comportement normal avec des clés USB sous Linux
Installation d'USBGuard
Configuration d'une stratégie de base
Ajout d'un autre périphérique USB
Suppression de l'accès d'un périphérique USB

La clé USB et ses dangers

Nous avons probablement tous au moins une clé USB ou un périphérique de stockage USB comme un lecteur externe USB. Ils sont bon marché, efficaces, portables et faciles à utiliser.

De nos jours, vous pouvez simplement en brancher un sur votre ordinateur Linux pour qu'il soit identifié comme un périphérique de stockage et monté automatiquement. Fini le temps où il fallait les monter à la main sur la ligne de commande. Cette commodité signifie que n'importe qui peut en mettre un dans un ordinateur Linux et copier les données de la clé USB sur l'ordinateur, ou de l'ordinateur sur la clé USB.

Si d'autres personnes utilisent votre ordinateur, vous souhaiterez peut-être limiter ce qu'elles peuvent faire avec des clés USB. Si votre ordinateur se trouve chez vous, il est peu probable qu'un opportuniste malveillant passe à côté lorsque votre ordinateur est allumé et sans surveillance, mais cela peut arriver sur un lieu de travail.

Comment les clés USB peuvent être un danger pour votre ordinateur
CONNEXION Comment les clés USB peuvent être un danger pour votre ordinateur

Mais même avec un ordinateur dans votre maison familiale, vous voudrez peut-être limiter l'accès USB. Peut-être que vos enfants ont régulièrement des amis pour jouer. Verrouiller l'accès USB est une précaution raisonnable pour les empêcher de causer des problèmes par inadvertance.

Lorsque quelqu'un trouve une clé USB, il souhaite immédiatement la brancher sur quelque chose pour voir ce qu'elle contient. Les cybermenaces qui ciblent les ordinateurs Linux sont beaucoup plus rares que celles conçues pour les ordinateurs Windows, mais elles existent toujours.

Qu'est-ce qu'USBGuard ?

USBGuard peut vous protéger contre les menaces logicielles qui sont distribuées sur des clés USB compromises, telles que BadUSB, où l'attaque commence lorsque vous êtes manipulé pour ouvrir ce qui ressemble à un document mais qui est un exécutable déguisé. USBGuard ne peut pas vous protéger contre les menaces matérielles telles que les périphériques USB Killer qui causent des dommages physiques à votre ordinateur en libérant une décharge haute tension dans votre machine.

En fait, USBGuard vous permet de configurer des règles pour toutes sortes de périphériques USB différents, y compris les souris, les webcams et les claviers. Ce n'est pas seulement pour les clés USB. Votre ordinateur connaît l'ID de chaque périphérique USB, vous pouvez donc choisir les périphériques USB qui fonctionnent sur votre ordinateur et ceux qui ne le peuvent pas. C'est quelque chose comme un pare-feu pour la connectivité USB.

Avertissement : Le démon USBGuard s'exécute dès qu'il est installé. Assurez-vous de configurer USBGuard juste après l'avoir installé. Si vous ne le faites pas, tous vos périphériques USB seront bloqués lorsque vous redémarrerez votre ordinateur.

Comportement normal avec des clés USB sous Linux

Avant de faire quoi que ce soit, nous allons vérifier le comportement par défaut sur notre ordinateur Ubuntu 22.10. C'est un processus simple. Nous insérons une clé USB et voyons ce qui se passe.

Nous entendons un son d'alerte audible et une icône de clé USB apparaît dans le dock.

L'ouverture du navigateur de fichiers montre qu'une entrée a été ajoutée à la liste des emplacements dans la barre latérale. Le nom affiché est celui donné au périphérique lors de son formatage.

L'ouverture d'un terminal et l'utilisation de la commande lsusb répertorient les périphériques USB connectés. L'entrée du haut est la clé USB en question, qui se trouve être un appareil de marque TDK.

 lsusb 

Utilisation de lsusb pour lister les périphériques USB connectés

CONNEXION: Comment répertorier les périphériques de votre ordinateur à partir du terminal Linux

Installation d'USBGuard

USBGuard a des dépendances sur usbutils et udisks2 . Sur les dernières versions de Manjaro, Fedora et Ubuntu que nous avons testées, celles-ci étaient déjà installées.

Pour installer USBGuard sur Ubuntu, utilisez cette commande :

 sudo apt installer usbguard 

Installer USBGuard sur Ubuntu avec apt

Sur Fedora, vous devez taper :

 sudo dnf installer usbguard 

Installer USBGuard sur Fedora avec dnf

Sur Manjaro, la commande est :

 sudo pacman -S usbguard 

Installer USBGuard sur Manjaro avec pacman

Configuration d'une stratégie de base

USBGuard a une astuce intéressante. Il a une commande qui crée une règle permettant à tous les périphériques USB actuellement connectés de continuer à fonctionner sans entrave. Cela signifie que vous pouvez créer une configuration de base pour tous vos appareils toujours nécessaires. Cet ensemble de règles est appelé stratégie de base.

USBGuard utilise trois types de règles.

  • Autoriser : les règles d'autorisation permettent à un périphérique spécifié de fonctionner sans entrave, comme d'habitude. Ceci est utilisé pour les appareils qui sont toujours connectés, tels que les claviers filaires, les souris, les trackballs, les webcams, etc. Il est également utilisé pour les appareils qui sont connectés par intermittence, et qui sont connus et fiables.
  • Bloquer : les règles de blocage empêchent les périphériques USB de fonctionner. Le périphérique USB n'est pas du tout visible pour l'utilisateur.
  • Rejeter : les règles de rejet empêchent également les périphériques USB de fonctionner, mais le périphérique USB est visible pour l'utilisateur utilisant lsusb .

USBGuard a une astuce intéressante. Il a une commande qui créera une politique de base avec une règle d'autorisation pour chacun des périphériques USB actuellement connectés . C'est un excellent moyen de configurer rapidement les appareils qui sont toujours connectés à votre ordinateur, comme les claviers et les webcams. C'est également un moyen pratique de capturer des appareils intermittents de confiance. Assurez-vous simplement que tous vos appareils de confiance sont connectés à votre ordinateur lorsque vous exécutez la commande.

Comment contrôler l'accès sudo sous Linux
CONNEXION Comment contrôler l'accès sudo sous Linux

Une bizarrerie étrange vous oblige à le faire en tant que root. L'utilisation de sudo avec la commande ne fonctionne pas. Nous devons utiliser la commande sudo -i (login) pour ouvrir un shell en tant que root, puis lancer la commande. Assurez-vous d'utiliser la commande exit pour quitter la session de connexion root une fois que vous avez terminé.

 sudo-i
 usbguard generate-policy -X -t rejet > /etc/usbguard/rules.conf
 sortir

L'option -X (–no-hashes) empêche USBGuard de générer des attributs de hachage pour chaque périphérique. L'option -t (cible) définit une cible par défaut pour tous les périphériques USB non reconnus. Dans notre cas, nous avons choisi "rejeter". Nous aurions également pu choisir « bloquer ».

Création d'une politique USBGuard de base avec une session de terminal racine

Pour voir nos nouvelles règles, nous pouvons utiliser cat .

 chat sudo /etc/usbguard/rules.conf 

Utilisation de cat pour répertorier les règles générées automatiquement dans /etc/usbguard/rules.conf

Sur notre ordinateur de test, cela a détecté trois périphériques USB et créé des règles «autoriser» pour eux. Il a ajouté "rejeter" comme cible pour tous les autres périphériques USB.

Ajout d'un autre périphérique USB

Maintenant, si nous branchons la même clé USB que nous avons utilisée précédemment, elle n'est pas autorisée à fonctionner. Il n'est pas ajouté au dock, il n'est pas ajouté au navigateur de fichiers et nous ne recevons pas d'alerte sonore.

Mais parce que nous avons utilisé une cible de "rejet" pour les appareils non reconnus, lsusb peut lister ses détails.

 lsusb 

Utilisation de lsusb pour lister les périphériques USB connectés

Si nous avions utilisé une cible "bloquer" dans notre politique de base, nous aurions besoin d'utiliser la commande list-devices avec l'option -b (blocked devices).

 sudo usbguard liste-périphériques -b 

Utilisation de la commande list-devices pour répertorier les appareils bloqués et connectés

Cela montre les périphériques USB actuellement connectés, mais bloqués.

Nous utiliserons certaines des informations de cette commande pour permettre à notre périphérique USB rejeté d'avoir un accès temporaire ou un accès permanent. Pour donner à notre appareil un accès temporaire, nous utiliserons le numéro d'identification de l'appareil. Dans notre exemple, il s'agit de "10".

 sudo usbguard allow-device 10 

Donner un accès temporaire à un périphérique USB

Notre appareil est connecté et apparaît dans le dock et le navigateur de fichiers. Si nous demandons à USBGuard de répertorier les périphériques bloqués, aucun n'est répertorié.

 sudo usbguard liste-périphériques -b 

USBGUard ne trouve aucun périphérique bloqué

Nous pouvons rendre l'autorisation permanente en utilisant l'option -p (permanent). Cela crée une règle pour nous et l'ajoute à notre politique.

 sudo usbguard allow-device 10 -p 

Accorder un accès permanent à un appareil en ajoutant une règle d'autorisation à la stratégie

Nous pouvons maintenant utiliser ce périphérique USB normalement.

Suppression de l'accès d'un périphérique USB

Si vous changez d'avis à propos d'un périphérique USB (peut-être avez-vous perdu une clé USB et souhaitez-vous supprimer son accès), vous pouvez le faire avec la commande block-device .

Nous devons connaître l'ID de l'appareil. Nous pouvons le trouver en listant les appareils autorisés. Notez que ce numéro peut ne pas être le même que celui que vous avez utilisé pour ajouter la règle à la liste, vérifiez donc avant d'émettre la commande block-device .

 sudo usbguard liste-périphériques -a 

Obtention du numéro d'identification d'un périphérique USB à l'aide de la commande list-devices

Dans notre cas, l'ID est "13". Nous l'utiliserons avec la commande block-device et l'option -p (permanent) pour supprimer définitivement son accès.

 périphérique de bloc sudo usbguard 13 -p 

Blocage permanent de l'accès d'un périphérique USB à l'aide de la commande block-device

Notez que cela déconnecte immédiatement l'appareil. N'utilisez cette commande que lorsque vous avez fini d'utiliser des données sur l'appareil.


USBGuard vous offre un moyen efficace et robuste de prendre le contrôle et de gérer les périphériques USB pouvant être utilisés sur votre ordinateur.

C'est votre ordinateur, il est donc juste que vous puissiez choisir.

CONNEXION: Comment monter et démonter des périphériques de stockage à partir du terminal Linux