Ubuntu en milieu hostile
Par Administrateur le samedi, mars 31 2007, 21:04 - Planet - Lien permanent
J'aurai pu décider d'une mise en scène différente de celle qui m'a inspiré ce billet mais elle est bien réelle (malheureusement). A l'origine, le 2ème semestre d'étude, qui a été l'occasion de découvrir une nouvelle classe dont le passe-temps favori est de changer le mot de passe du système d'exploitation des collègues (sic, je suis tombé où). Alors généralisons en disant juste que j'essaye de me prémunir d'un accès malveillant à mon laptop 
N'importe qui ayant un accès physique à une machine peut très facilement changer un mot de passe, que ce soit sous Linux (mode recovery), sous Mac (S au démarrage), ou sous Windows (booter sur un cd fait pour). C'est une sécurité, pas une faille.
Les méthodes permettant d'obtenir un accès à un ordinateur en root sans se logguer sont très bien documentées sur la documentation d'Ubuntu-fr (chapitre 8)
Notre objectif ? Éviter ça !
1. On va commencer par éviter qu'un utilisateur mal intentionné (que nous appellerons John) ne puisse modifier les options de démarrage du noyau dans Grub pour obtenir un accès root.
On tout d'abord récupérer un mot de passe crypté en MD5 avec la commande :
2. Mais rien n'empêche John de lancer le système directement en rescue mode depuis Grub...
Pour éviter cela, nous allons restreindre le lancement des entrées de type "Recovery mode" associées à chaque noyau par un mot de passe.
Il suffit de positionner à 'true' la valeur de la ligne suivante dans le fichier /boot/grub/menu.lst
3. John, qui persévère dans ses mauvaise intentions sans se rendre compte de ce qu'il risque -(vos idées sont les bienvenues)-, pourrait utiliser le cd d'installation d'Ubuntu...
En ayant accès au BIOS, il peut le configurer de manière à démarrer à partir d'un CD-ROM et ainsi entrer dans un mode de secours qui lui permettrait de contourner les restrictions mise en place précédemment.
Je vous invite donc à mettre un mot de passe pour votre BIOS afin d'empêcher toute modification des paramètres du BIOS, voir d'empêcher le démarrage complet du système, et surtout de paramétrer le boot sur le lecteur cd après le disque dur dans le bios !
Voilà votre ordinateur relativement bien protégé contre John mais cela n'exclue pas une certaine vigilance :
Et si John démonte le disque dur me direz vous ? Et bien c'est là que l'utilisation d'un système de fichier crypté aurait été utile. Quelques solutions (cryptoloop, cryptsetup, encfs...) sont décrites dans la documentation mais ne me paraissent pas encore suffisamment simple à mettre en oeuvre. Une fonctionnalité des futures versions d'Ubuntu ? Je l'espère !
A bientôt, je retournecombattre John étudier avec mes gentils camarades, en espérant que ces mesures préventives suffiront 

N'importe qui ayant un accès physique à une machine peut très facilement changer un mot de passe, que ce soit sous Linux (mode recovery), sous Mac (S au démarrage), ou sous Windows (booter sur un cd fait pour). C'est une sécurité, pas une faille.
Les méthodes permettant d'obtenir un accès à un ordinateur en root sans se logguer sont très bien documentées sur la documentation d'Ubuntu-fr (chapitre 8)
Notre objectif ? Éviter ça !
1. On va commencer par éviter qu'un utilisateur mal intentionné (que nous appellerons John) ne puisse modifier les options de démarrage du noyau dans Grub pour obtenir un accès root.
On tout d'abord récupérer un mot de passe crypté en MD5 avec la commande :
sydtux@ubuntu:~$ grub-md5-crypt Password: Retype password: $1$WIT/v1$/bgbczLolNI//7BFJ/WTq.Ensuite, copier le mot de passe crypté dans votre fichier de configuration /boot/grub/menu.lst :
## password ['--md5'] passwd # If used in the first section of a menu file, disable all interactive editing # control (menu entry editor and command-line) and entries protected by the # command 'lock' # e.g. password topsecret # password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/ password --md5 $1$WIT/v1$/bgbczLolNI//7BFJ/WTq.À partir de là, il est possible de démarrer sur chacun des menus de Grub mais pas de les modifier sans saisir de password (le mot de passe est à saisir en QWERTY dans Grub).
2. Mais rien n'empêche John de lancer le système directement en rescue mode depuis Grub...
Pour éviter cela, nous allons restreindre le lancement des entrées de type "Recovery mode" associées à chaque noyau par un mot de passe.
Il suffit de positionner à 'true' la valeur de la ligne suivante dans le fichier /boot/grub/menu.lst
# lockalternative=truePuis mettre à jour Grub
sudo update-grub
3. John, qui persévère dans ses mauvaise intentions sans se rendre compte de ce qu'il risque -(vos idées sont les bienvenues)-, pourrait utiliser le cd d'installation d'Ubuntu...
En ayant accès au BIOS, il peut le configurer de manière à démarrer à partir d'un CD-ROM et ainsi entrer dans un mode de secours qui lui permettrait de contourner les restrictions mise en place précédemment.
Je vous invite donc à mettre un mot de passe pour votre BIOS afin d'empêcher toute modification des paramètres du BIOS, voir d'empêcher le démarrage complet du système, et surtout de paramétrer le boot sur le lecteur cd après le disque dur dans le bios !
Voilà votre ordinateur relativement bien protégé contre John mais cela n'exclue pas une certaine vigilance :
- Ne pas laisser un terminal ouvert après une commande 'sudo' car le mot de passe est mémorisé pour une durée de 15 minutes (pour terminer la session sudo avant ce laps de temps, exécuter la commande sudo -k)
- Faire attention aux logiciels qui proposent de mémoriser les mots de passe et ne les protègent pas, comme Firefox qui propose par défaut l'option d'afficher en clair tous les mots de passe mémorisés
- Et bien sur, verrouiller votre ordinateur lorsqu'il n'est pas utilisé.
Et si John démonte le disque dur me direz vous ? Et bien c'est là que l'utilisation d'un système de fichier crypté aurait été utile. Quelques solutions (cryptoloop, cryptsetup, encfs...) sont décrites dans la documentation mais ne me paraissent pas encore suffisamment simple à mettre en oeuvre. Une fonctionnalité des futures versions d'Ubuntu ? Je l'espère !
A bientôt, je retourne
