Sécurité Linux : Découverte de LBSA
Sommaire
I. Présentation de LBSA
La sécurisation d'un système sous Linux passe souvent par la vérification régulière des paramétrages et des configurations qui sont d'ailleurs souvent communes à plusieurs systèmes. Prenons par exemple un parc de 50 serveurs Linux sur lesquels on souhaite changer le port par défaut du service SSH, il peut être utile d'avoir un outil nous permettant rapidement de savoir si la configuration a été faite. C'est un exemple dans lequel LBSA (Linux Basic Security Audit script) peut être utilisé.
Ce script bash (.sh) a pour but d'effectuer un ensemble de vérification sur la sécurité du système afin d'établir un rapport final sur les points à améliorer. Le but est donc d'avoir un ensemble de points de sécurité vérifiés pour établir une base sur la sécurité du système.
Parmi les vérifications faites par le script :
- Droit sur les répertoires .ssh des utilisateurs
- Vulnérabilité dans le montage ou les droits affectés à des montages et des répertoires courants (ex : /tmp)
- Configuration SSH (Port, RootPermitLogin, ...)
- Type et robustesse du hash utilisé dans le fichier /etc./shadow
- etc.
Il est important de savoir que le script est loin d'être exhaustif et ce n'est pas parce qu'il ne renvoie pas de points à améliorer que votre système est à 100 % sécurisé. LBSA vérifia uniquement les points de sécurité qu'il est conçu pour vérifier et n'ira surement pas au-delà. LBSA est juste là pour avoir une base de vérification sur le système.
II. Utilisation du script LBSA
La première chose à faire est d'écrire le script sur notre système, pas de panique, on peut le trouver très rapidement sur le site suivant : LBSA - Linux Basic Security Audit script
Il suffit alors sur notre système d'ouvrir un fichier (que je nomme pour ma part lbsa.sh) avec votre éditeur de texte préféré puis d'écrire le contenu du script dedans (en copier-coller Ne vous amusez pas à le recopier à la main 🙂 ), on va ensuite sauvegarder ce fichier et le rendre exécutable, on pensera également à ajuster les droits pour ne pas qu'il puisse être modifié par n'importe qui :
chmod 500 lbsa.sh
On pourra alors exécuter le script pour qu'il effectue ses vérifications :
./lbsa.sh
Note : Il est important de savoir que LBSA n'effectue aucune modification de configuration ou écriture sur le système.
On pourra alors, selon la configuration de votre système, voir un ensemble de conseils. Pour ma part, sur un système Debian 7 avec SSH configuré par défaut par exemple, on peut voir les conseils suivants :
Le script LBSA me conseille en effet de durcir le hash utilisé dans le fichier /etc./shadow, par défaut hashé une fois (1 round), LBSA me conseille de configurer plusieurs "tours" (round) de hashage pour rendre le crack de ce hash plus complexe et plus long, il me donne même la ligne de commande associée.
Voici des conseils sur les droits à positionner sur la configuration SSH pour qu'elle ne soit plus modifiable facilement. Je trouve également sur l'exécution de ce script sur mon système des recommandations concernant les droits à affecter sur mes répertoires SSH.
Une utilisation qui est souvent faite de LBSA est de configurer son exécution régulièrement afin de détecter des changements de configuration qui pourraient trahir la présence d'une intrusion. Lors d'une intrusion, un pirate va souvent chercher à changer quelques configurations pour revenir plus tard ou avoir des privilèges plus importants, LBSA et le différentiel de ses résultats peut alors mettre en évidence un changement de configuration ou une modification de droit par rapport à une vérification précédente par exemple.
III. Modification et personnalisation de LBSA
Le fait que ce script soit en bash rend sa modification et son adaptation à tout environnement très simple si l'on possède quelques notions de bash. En effet, on peut tout à fait imaginer faire correspondre les vérifications de sécurité à une politique de sécurité d'entreprise en ajoutant des vérifications supplémentaires directement intégrées dans le script.
Pour ma part, je rajoute par exemple la vérification de différents droits sur un dossier personnel, mais cela peut-être d'autres vérifications plus complexes, il suffit pour cela de comprendre la façon dont le script a été écrit et d'y ajouter nos propres vérifications, tout en profitant de la base de vérification que fournit LBSA.