web-dev-qa-db-fra.com

Comment faire pour pénétrer n'importe quelle machine Linux avec grub2 secure?

Comment la capacité d’une personne ayant obtenu un accès physique à votre ordinateur d’obtenir root avec ces étapes est-elle sécurisée?

  1. Lorsque le menu Grub2 s'ouvre, appuyez sur e éditer les options de démarrage de Linux
  2. Changement:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    à:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Maintenant, vous avez un accès root, faites:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. redémarrez l'ordinateur et vous gagnez.

Ma question est la suivante: comment pénétrer sur une machine Linux avec grub2 secure? Je ne comprends pas ce fait à propos de Linux, merci pour vos réponses.

51
Clutchy

Comment la capacité d'une personne ayant obtenu un accès physique à votre ordinateur à obtenir un accès root [en utilisant Grub/Bash] est-elle sécurisée?

Parce que si Linux décidait de commencer à le faire, les pirates informatiques exploiteraient simplement d’autres failles de sécurité. La première règle de sécurité est que si j'ai un accès physique à votre système, la partie est finie. J'ai gagné.

De plus, imaginez que votre serveur X soit en panne et que vous n’ayez plus d’interface graphique. Vous devez démarrer dans une console de récupération pour résoudre le problème, mais vous ne pouvez pas le faire, car cela n’est pas sûr. Dans ce cas, vous vous retrouvez avec un système totalement défectueux, mais bon, au moins, il est "sécurisé!"

Mais Kaz, comment est-ce possible? J'ai défini un mot de passe sur mon Grub pour que vous ne puissiez pas changer mon init en Bash!

Oh, tu l'as fait? Intéressant, car cela ressemble à votre album photo. GRUB n'a aucun facteur de sécurité inhérent. C'est juste un chargeur de démarrage , pas une étape dans une chaîne de démarrage et d'authentification sécurisée. Le "mot de passe" que vous avez configuré est en fait assez facile à contourner.

Cela, et ce que l'administrateur système ne/ne porte pas un lecteur de démarrage sur eux en cas d'urgence?

Mais comment?! Vous ne connaissez pas mon mot de passe (qui n'est pas du tout P@ssw0rd btw)

Oui, mais cela ne m'empêche pas d'ouvrir votre ordinateur et d'extraire votre disque dur. À partir de là, quelques étapes simples vous permettront de monter votre lecteur sur mon ordinateur, ce qui me permettra d’accéder à l’ensemble de votre système. Cela a aussi l’avantage de contourner votre mot de passe BIOS. Cela, ou j'aurais pu simplement réinitialiser votre CMOS. Soit/ou.

Alors ... comment ne pas vous laisser accéder à mes données?

Simple. Gardez votre ordinateur loin de moi. Si je peux le toucher, accéder à un clavier, insérer mes propres clés USB ou le démonter, je peux gagner.

Alors, puis-je juste aimer mettre mon ordinateur dans un centre de données ou quelque chose? Ceux-ci sont assez sécurisés, non?

Oui, ils sont. Mais, vous oubliez que les humains sont également modifiables et que, avec suffisamment de temps et de préparation, je pourrais probablement entrer dans ce centre de données et siphonner toutes ces données intéressantes de votre ordinateur. Mais je m'égare. Nous avons affaire à realsolutions ici.

Ok, alors vous avez appelé mon bluff. Je ne peux pas le mettre dans un centre de données. Puis-je simplement chiffrer mon dossier de départ ou autre chose?

Sûr que vous pouvez! C'est ton ordinateur! Cela m'aidera-t-il à m'arrêter? Pas le moins du monde. Je peux simplement remplacer quelque chose d'important, comme /usr/bin/firefox par mon propre programme malveillant. La prochaine fois que vous ouvrirez Firefox, toutes vos données secrètes seront détournées vers un serveur secret situé quelque part dans le secret. Et vous ne saurez même pas. Ou, si j’ai fréquemment accès à votre ordinateur, je peux simplement configurer votre dossier personnel pour qu’il soit copié vers /usr/share/nonsecrets/home/ ou n’importe quel emplacement similaire (non chiffré).

Ok, qu'en est-il du cryptage intégral du disque?

C'est ... vraiment bien. Cependant, ce n'est pas encore parfait! Je peux toujours effectuer un attaque au démarrage à froid en utilisant mon fidèle bidon d'air comprimé. Ou, je peux simplement brancher un enregistreur de frappe matériel sur votre ordinateur. L'un est évidemment plus facile que l'autre, mais le chemin n'a pas d'importance.

Dans la vastemajorité des cas, c’est une bonne halte. Associez-le peut-être à TPM (voir ci-dessous) et vous êtes en or. À moins que vous n'ayez provoqué la colère d'une agence à trois lettres ou d'un pirate trèsmotivé, personne ne passera par les efforts requis après cette étape.

Bien sûr, je peux toujours vous faire installer des logiciels malveillants/portes dérobées en vous offrant un PPA ou similaire, mais cela rentre dans le domaine très sombre de la confiance des utilisateurs.

Alors ... comment les iPhones sont-ils si sécurisés? Même avec un accès physique, vous ne pouvez pas faire grand chose.

Eh bien oui et non. Je veux dire, si j'étais suffisamment motivé, je pourrais lire la puce flash et obtenir tout ce dont j'avais besoin. Mais les iPhones sont fondamentalement différents dans la mesure où ils constituent une plateforme entièrement verrouillée. Mais, en même temps, vous sacrifiez réellement la convivialité et la capacité de récupérer des défaillances catastrophiques. GRUB (sauf lorsque cela est très spécifiquement conçu) n'est pasdestiné à être une chaîne dans un système de sécurité. En fait, la plupart des systèmes Linux ont leurs chaînes de sécurité qui démarrent après le démarrage, donc après que GRUB ait fini de le faire.

De plus, les iPhones ont une application de signature cryptographique (également abordée ci-dessous), ce qui rend trèsdifficile aux logiciels malveillants de se faufiler dans votre téléphone par des voies légitimes.

Mais qu'en est-il de TPM/SmartCards/[insérer le crypto tech ici]?

Eh bien, maintenant que vous associez la sécurité physique à l'équation, cela devient encore plus compliqué. Cependant, ce n'est pas vraiment une solution, car les TPM sont relativement faibles et que tout le cryptage n'a pas lieu sur puce. Si votre TPM est (en quelque sorte) assez puissant là où il effectue le cryptage sur la puce elle-même (certains disques durs très sophistiqués ont quelque chose comme cela), la clé ne sera jamais révélée et des attaques de type démarrage à froid sont impossibles. Cependant, les clés (ou les données brutes) peuvent toujours être présentes dans le bus système, ce qui signifie qu'elles peuvent être interceptées.

Malgré tout, mon enregistreur de frappe matériel peut toujours obtenir votre mot de passe et je peux facilement charger des logiciels malveillants sur votre ordinateur, comme l'exploit de Firefox que j'ai mentionné plus tôt. Tout ce dont j'ai besoin est que vous quittiez votre maison/votre ordinateur pendant peut-être une heure.

Maintenant, si vous prenez votre TPM/carte à puce/quoi que ce soit avec vous et que tout le cryptage est en fait effectué sur la puce (ce qui signifie que votre clé n'est pas stockée dans RAM), alors c'est à peu près impossible pour que je puisse entrer, à moins que vous (l'utilisateur) ne vous laissiez tomber et oubliez quelque chose. Autrement dit, à moins que je ne trouve un moyen de lire la clé (non chiffrée) à partir du bus système.

Mais que se passe-t-il si je dois appliquer une forme d’application de la signature cryptographique/numérique sur tous mes programmes pour vérifier leur légitimité?

Comme l'ont démontré diverses entreprises de smartphones, il s'agit d'un trèsbon moyen de gérer la sécurité. Vous avez maintenant annulé ma capacité à injecter du code sur votre machine pour faire des choses néfastes, ce qui est un plus. En effet, vous avez désactivé ma capacité à conserver un accès persistant à distance à votre machine, ce qui est un avantage considérable.

Cependant, ce n'est toujours pas une méthode parfaite! L'application de la signature numérique n'arrêtera pas un enregistreur de frappe matériel, pour un. Il doit également être totalement exempt de bogues, ce qui signifie que je ne peux absolument pas trouver un exploit qui me permette de charger mon propre certificat dans le magasin de certificats de votre machine. De plus, cela signifie que chaque exécutable de votre système doit être signé. À moins que vous ne souhaitiez passer manuellement à travers tout cela, il sera très difficile de trouver les packages Apt et autres qui ont des signatures numériques sur tout. Dans le même esprit, cela bloque les utilisations légitimes des exécutables non signés, à savoir la récupération. Et si vous cassez quelque chose d'important et que vous n'avez pas l'exécutable (signé) pour le réparer? Eh bien, voilà votre système.

Quoi qu'il en soit, un effort pour le faire sur Linux a été pratiquement abandonné et ne fonctionne plus pour les nouveaux noyaux, vous devez donc créer le vôtre.

Donc, il est impossible de vous garder hors de mon ordinateur?

Effectivement, oui, désolé. Si j'ai un accès physique et suffisamment de motivation, il est toujours possible d'entrer dans un système. Aucune exception.

En réalité, cependant, la plupart des personnes perverses n'essaieront pas d'aller aussi loin pour quelques images de chat. En règle générale, un chiffrement intégral du disque (ou même simplement sous Linux!) Suffit à dissuader la plupart des script kiddies de jouir d'une célébrité de deux secondes.

TL; DR: Ne laissez pas les gens en qui vous ne faites pas confiance près de votre ordinateur. C'est généralement suffisant.

108
Kaz Wolfe

Si vous le souhaitez, utilisez un mot de passe . À partir du lien:

Remarques sur la protection par mot de passe GRUB 2

Grub 2 peut établir des exigences de mot de passe sur:

  • Tous les menus
  • Entrées de menu spécifiques
  • Pour des utilisateurs spécifiques: Par exemple, l'utilisateur "Jane" peut accéder à Ubuntu mais pas au mode de récupération Windows, qui n'est accessible que par "John", le super-utilisateur.
  • L'administrateur doit activer manuellement la protection par mot de passe en modifiant les fichiers système GRUB 2.

  • Les utilisateurs et les mots de passe doivent être identifiés dans le /etc/grub.d/00_header ou un autre fichier de script GRUB 2.

  • Sauf si la protection universelle de tous les menus est souhaitée, les entrées spécifiques doivent être identifiées:

    • Manuellement en éditant les scripts Grub 2 /etc/grub.d/ tels que 10_linux et 30_os-prober
    • Manuellement en modifiant un fichier de configuration personnalisé créé par l'utilisateur.

    • L’une des méthodes ci-dessus permet à GRUB 2 d’ajouter automatiquement l’exigence de mot de passe au fichier de configuration (grub.cfg) chaque fois que update-grub est exécuté.

    • Manuellement en éditant /boot/grub/grub.cfg. Les modifications apportées à ce fichier seront supprimées lorsque update-grub sera exécuté et la protection par mot de passe sera perdue.

  • Si l'une des formes de protection par mot de passe GRUB 2 est activée, le nom et le mot de passe du superutilisateur sont requis pour accéder à la ligne de commande GRUB 2 et aux modes d'édition des menus.

  • Le nom d'utilisateur et/ou le mot de passe ne doivent pas nécessairement être identiques au nom/au mot de passe de connexion Ubuntu.
  • À moins que la fonction de chiffrement du mot de passe de GRUB 2 ne soit utilisée, le mot de passe est stocké sous forme de texte brut dans un fichier lisible. Consultez la section Cryptage du mot de passe pour savoir comment utiliser cette fonctionnalité.

Par défaut (!), Dans ce cas, l'utilisabilité prime sur la sécurité. Si vous ne pouvez pas faire confiance aux personnes qui vous entourent, gardez la machine avec vous à tout moment. Les personnes qui ont besoin de plus de sécurité ont tendance à chiffrer l'ensemble de leur système, ce qui rend obligatoire la nécessité d'un mot de passe.

17
Rinzwind

Votre hack intentionnel commence par ceci:

  1. Quand le menu grub2 s'ouvre, pressez 'e' pour éditer les options de démarrage de Linux

Mais vous pouvez protéger l’option e avec un mot de passe, comme indiqué ci-après: Comment ajouter la protection par mot de passe GRUB au processus de chargement du système d’exploitation plutôt que lors de la modification des options de démarrage

Vous pouvez effectuer l'étape supplémentaire consistant à chiffrer le mot de passe grub, comme indiqué dans le lien. En effet, avec peut-être 3% de la population (estimation aléatoire) utilisant Linux/Ubuntu à la maison, les administrateurs système ont intérêt à se protéger contre la fonction e sur les systèmes de production au travail. J'imagine que si Ubuntu est utilisé au travail, 30 à 40% d'entre eux l'utilisent également à la maison et environ 10% d'entre eux apprendront comment utiliser le e sur leur système domestique.

Grâce à votre question, ils viennent d'apprendre plus. Avec le lien ci-dessus, les administrateurs système ont une autre tâche à accomplir pour protéger les environnements de production.

3
WinEunuuchs2Unix

Afin de sécuriser grub, vous devez en protéger l'accès. Cela peut être fait simplement avec un mot de passe de disque dur, et je parle ici de la sécurité du disque où il est stocké dans le firmware du disque lui-même. Le disque ne peut pas être lu ou écrit. Par conséquent, non seulement la bouffe est inaccessible sans mot de passe, vos données le sont aussi.

Comme le mot de passe est stocké sur le disque lui-même, le déplacer dans un autre système n'aidera pas le pirate informatique.

Il existe un logiciel permettant de supprimer le mot de passe des disques de certains fabricants, mais il efface également le disque. Donc, vos données sont toujours en sécurité.

0
Scooby-2