fbpx
O F E P

Loading

Scanning de vulnérabilités de serveurs Linux: Qualys et le scan authentifié avec clé SSH

Pourquoi un scan authentifié, ou « authenticated scan » en anglais, avec Qualys avec un clé ssh ? Un scan réseau Qualys est souvent trop limité en scannant uniquement les ports TCP/UDP pour construire une vue complète sur l’ensemble des vulnérabilités d’un serveur.

Entre les applications non exposées sur le réseau, les seveurs à multiples interfaces réseau, les services exposés partiellement (par exemple avec un filtre ip) ou les authentifications web de type SAML et openidconnect, il est difficile d’avoir une vue d’ensemble exhaustive sur les vulnérabilités présentes sur le serveur. Tout bon CISO ou expert en sécurité doit avoir une vue exhaustive afin d’être en mesure les risques et faire les bons choix.

qualys scan ssh Logo vulnérabilités
Scanning de vulnérabilités de serveurs Linux: Qualys et le scan authentifié avec clé SSH 3

Le scanning authentifié SSH résout ce problème, encore faut-il pouvoir l’implémenter correctement. De nombreuses organisations se limitent à définir le même login et mot de passe sur chaque serveur et configurer l’accès dans la console Qualys. Bien que l’approche semble facile à mettre en place, on peut se poser des questions sur de telles pratiques.

Création d’un compte technique du scanneur de vulnérabilités Qualys SSH

Le compte SSH a besoin des droits « root » (ou « sudo » – « root equivalent ») afin de pouvoir réaliser un inventaire complet des vulnérabilités. Nous aurions aimé que Qualys publie une liste mise à jour des commandes requises. Cette approche permettrait de mettre en place une politique de « least privileges ». Nous évitons d’éventuels abus liés au compte technique utilisé par le scanner Qualys.

Qualys indique clairement sur son site qu’ils ne publient pas ces informations et qu’ils n’ont pas l’intention de le faire: « Customers should be strongly discouraged from placing granular controls around the Qualys service account because of the reasons stated above.« 

Stratégie de protection du compte SSH (qualys)

Afin d’éviter les abus d’utilisation du compte technique Qualys, nous recommandons la stratégie suivante

  • Authentication sur base d’une clé SSH et protégée par une passphrase
  • Procédure pour la génération de la clé SSH, la passphrase et l’import dans Qualys pour garantir l’intégrité de la clé et éviter de maldadroites copies (ou l’envoi de la clé par via un canal non insécurisé ou non approprié)
  • Forcer l’utilisation de la clé SSH pour le compte Qualys (et donc interdire l’utilisation d’un mot de passe). Dans certains cas, il se pourrait que le compte nécessite une clé SSH et un mot de passe, en fonction des règles existantes définies sur le serveur
  • Limiter les connexions à l’ip du serveur Qualys (souvent une ip fixe et whitelisté dans les firewalls)
  • Automatiser le déploiement sur les serveurs via le « configuration management tool » préféré (ansible, puppet, chef,..): création de l’utilisateur, déploiement de la clé publique, déploiement sudo

Déploiement sudo (compte qualys)

Nous recommandons la configuration suivante pour le fichier sudoers

sudoers file

# Cmnd alias specification
Cmnd_Alias SU=/bin/su
# User privilege specification
qualysuser ALL= NOPASSWD:SU

qualysuser désigne ici l’utilisateur technique Qualys utilisé par le scanner.

NOPASSWD signique que le compte n’a pas besoin de mot passe pour devenir « root equivalent ». Ceci est nécessaire si aucun mot de passe n’est configuré et que l’authentication est uniquement basée sur la clé SSH.

Limiter la source ip au scanner Qualys

Pour limiter l’ip source, nous configurons le filtrage suivant sur le fichier /home/qualysuser/.ssh/authorized_keys.

ssh file

from="<ip scanner>" ssh-rsa AAAAB3N....................U7= qualyuser@qualysscanner

Configuration /etc/ssh/sshd_config

Match User qualysuser   
PasswordAuthentication no
Match Address 1.2.3.4
PasswordAuthentication no

Conclusion

Nous avons vu comment il est possible de facilement déployer une configuration à grande échelle permettant à Qualys d’avoir une meilleure vue sur les vulnérabilités.

L’article porte sur Qualys mais la configuration est très probablement identique pour un produit concurrent comme Tenable Nessus.

Il est possible d’aller encore plus loin, par exemple:

  • Protéger la clé SSH dans un Vault
  • Intégrer les logs avec un SIEM pour détecter tout abus lié au compte
    • par exemple tentative de login depuis une autre ip,
    • ou une authentication via un mot de passe,
    • une authentication échouée..
  • Désactiver les comptes techniques sur les serveurs Linux lorsque le scanner n’est pas en fonction si les scans sont réalisés de manière sporadique
  • Mettre en place une procédure pour changer la clé SSH à interval régulier (par exemple annuellement). Du côté des machines Linux, il faut simplement modifier la clé publique, tâche assez facilement réalisable avec un configuration management tool.

Ubuntu « You may need to re-run your boot loader[grub] »

Suite à une mise à jour du kernel, vous pourriez voir apparaître le message suivant:

« you may need to re-run your boot loader[grub] »

Si tel est le cas, la solution est simple:

Selection 024
Ubuntu "You may need to re-run your boot loader[grub]" 7

update-grub va regénérer la configuration et le tour est joué!

Assurez-vous que /initrd.img existe et pointe vers un fichier valide.

Selection 025
Ubuntu "You may need to re-run your boot loader[grub]" 8

(Français) Poursuivre une mise à jour Ubuntu « do-release-upgrade »

[:fr]

screen pic2
(Français) Poursuivre une mise à jour Ubuntu "do-release-upgrade" 11

Une coupure de courant, une coupure réseau, un moment d’inattention suite à une mise en veille du laptop et vous voilà déconnecté d’une session SSH lors d’une mise à jour majeure de votre serveur Linux Ubuntu.

Pas de panique, il est possible de reprendre la session!
Ubuntu lance le process d’upgrade dans un « screen« , ce qui permet de faire « screen resume » par la suite et de reprendre où on en était.

En lisant le « man », on peut lire:

-D -r
Reattach a session. If necessary detach and logout remotely first.

Ceci nécessite que vous avez uniquement perdu la connexion. Ca ne fonctionnera pas si vous avez stoppé la mise à jour.

$
ssh: connect to host x.x.x.x port 22: Connection timed out

(déconnexion)

$ ssh clv20478

(reconnexion au serveur et ensuite on « resume » la session grâce à « screen »)
$ sudo screen -D -r

La mise à jour reprend où on en était, on ne perd pas de temps.[:]

(Français) Déplacer les boutons de la barre de titre (minimiser, maximiser, fermer) vers la droite avec Ubuntu 16.10

[:fr]

Déplacer les boutons de la barre de titre (minimiser, maximiser, fermer) vers la droite avec Ubuntu 16.10

Par défaut, les boutons minimiser, maximer et fermer sont affichés du côté gauche dans la barre de titre.

Par habitude, il est parfois préférable de les avoir du côté droit de la barre de titre.

La commande a tapé dans un terminal est la suivante:

$ gsettings set org.gnome.desktop.wm.preferences button-layout ‘:minimize,maximize,close’

barre de titre ubuntu

 

Inutile de fermer la fenêtre, le changement est immédiat.[:]