Informations techniques sur les connexions mode sans-agent pour les systèmes Linux

L’utilisation de connexions mode sans-agent pour superviser des systèmes Linux est possible en fournissant à Cyberwatch un compte permettant la connexion à l’actif via le protocole SSH. Le protocole SSH fournit différentes méthodes pour gérer l’authentification (mots de passe, clés SSH) des comptes à autoriser.

Créer un compte SSH avec authentification par login / mot de passe

Par exemple, il est possible d’utiliser la commande suivante :

sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'
sudo passwd cyberwatch # Attention il faudra saisir ici le mot de passe à attribuer au compte

Explications : cette commande crée un compte nommé « cyberwatch » et permet de définir le mot de passe de ce compte.

Créer un compte SSH avec authentification par clé publique / clé privée

Génération de la clé SSH

Sur une machine Linux dédiée à la génération de clés, générer une clé RSA 4096 bits :

ssh-keygen -t rsa -b 4096

Par défaut, cette clé sera sauvegardée dans les fichiers ~/.ssh/id_rsa (clé privée) et ~/.ssh/id_rsa.pub (clé publique).

Les clés SSH avec une passphrase ne sont pas supportées.

Création de l’utilisateur et mise en place de la clé

Sur l’actif Linux à protéger, créer un utilisateur ‘cyberwatch’ via la commande :

sudo useradd --create-home --shell '/bin/bash' --comment 'CyberWatch SAS' 'cyberwatch'

Depuis la machine Linux dédiée à la génération de clés, transférer la clé publique générée au point 1 vers l’actif Linux à protéger. Cela peut être réalisé avec la commande :

cat ~/.ssh/id_rsa.pub | ssh [user]@[host] 'sudo tee -a /home/cyberwatch/.ssh/authorized_keys'

en veillant à remplacer [user] et [host] par les paramètres de connexion de l’actif à superviser.

Optionnel - donner les droits sudoers SANS TTY à Cyberwatch

Pour certaines opérations, comme le déploiement de correctifs, l’exécution de certains scans ou la vérification de scripts de conformité, les droits sudoers sont nécessaires pour l’exécution des commandes associées sur l’actif.

Fournir ces droits n’est pas strictement nécessaire, Cyberwatch est en mesure de lancer ses scans de vulnérabilité par défaut sans avoir de droits spécifiques sur les actifs supervisés.

Vous trouverez ci-dessous une des façons de mettre en place ces droits sur vos actifs afin de permettre à Cyberwatch de réaliser les opérations mentionnées.

Sur l’actif cible, via SSH, utiliser la commande suivante :

sudo visudo

Ajouter à la fin du fichier les lignes suivantes :

# cyberwatch privileges
cyberwatch ALL=(ALL) NOPASSWD:ALL
Defaults:cyberwatch !requiretty

Explications : cette commande modifie le fichier /etc/sudoers et configure les droits de l’utilisateur nommé « cyberwatch » de sorte à ce qu’il soit sudoer et désactive TTY.

Détail des droits sudoers minimums nécessaires pour déployer des correctifs sur les systèmes Linux

Les systèmes Linux fournissent des méthodes permettant de limiter les droits sudoers à l’utilisation de certaines commandes seulement. Cela peut être utile si vous souhaitez permettre à Cyberwatch d’effectuer certaines opérations spécifiques comme le déploiement de correctifs.

Cela ne sera cependant pas suffisant pour permettre à Cyberwatch de réaliser les analyses de conformité, car il n’est pas possible d’établir une liste complète des commandes susceptibles d’être lancées et qui nécessitent des droits sudoers.

Une façon de restreindre les droits sudoers de l’utilisateur utilisé pour la supervision d’un actif Linux est de limiter ses droits sudoers aux commandes suivantes :

id
apt-get/yum/pacman
shutdown
ss
dmidecode
docker

Voici une brève explication de pourquoi vous pourriez autoriser ces commandes :

  • id est la première commande exécutée par Cyberwatch lors de la connexion à un actif, elle permet de déterminer si Cyberwatch dispose ou non de droits sudoers sur l’actif ;
  • apt-get/yum/pacman sont des gestionnaires de paquets typiquement utilisés sur les différents systèmes Linux (liste non exhaustive), ceux-ci seront utilisés par Cyberwatch lors de déploiement de correctifs en fonction du système d’exploitation ;
  • shutdown sera utilisée si vous souhaitez déclencher un redémarrage de vos actifs depuis Cyberwatch ;
  • ss est utilisée pour le scan de ports, autoriser l’exécution de cette commande avec des droits sudoers permet à Cyberwatch de récupérer les processus derrière les différents ports ;
  • dmidecode est utilisée pour récupérer les métadonnées du BIOS, la commande requiert des droits sudoers ;
  • docker sert à effectuer le scan de vulnérabilités des images Docker trouvées sur l’actif.

Pour un actif utilisant apt, un exemple de configuration du fichier /etc/sudoers pourrait être :

# cyberwatch privileges
Cmnd_Alias CBW = /usr/bin/id, /usr/bin/apt-get, /sbin/shutdown, /usr/bin/ss, /usr/sbin/dmidecode, /usr/bin/docker
cyberwatch-agent ALL=(ALL) NOPASSWD:SETENV: CBW
Defaults:cyberwatch-agent !requiretty

Retour en haut