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

52

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. Quand le menu grub2 s'ouvre, pressez e pour é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.

Clutchy
la source
51
Qui a dit que l'accès physique doit être rendu impossible? Quand quelqu'un a un accès physique, TOUS les paris sont OFF. Le propriétaire d'une machine devrait - TOUJOURS - avoir accès à sa machine lorsqu'il est à côté. Sinon, il serait possible de le bricoler sans aucun moyen de récupérer.
Rinzwind
7
et vous pouvez vous plaindre à ce sujet: mais pourquoi ne pas insérer un DVD / USB en direct dans le système? Ou en retirant le disque, le mettre dans une autre machine et ddle disque? Et "linux"? Fonctionne pour les autres systèmes qui utilisent aussi grub ... Windows en revanche ... Lorsque Windows se brise ... vous ne pouvez probablement formater le système que: P
Rinzwind
10
Pour être totalement sécurisé, vous avez besoin de cette solution
Anwar
5
Oh non commerades! @ Clutchy a découvert notre secret. Nous devons tous prendre les capsules de cyanure maintenant.
paulzag
3
@ Paulzag Bien compris, je vais déclencher le mécanisme d'autodestruction de la salle des serveurs. Gloire à RMS!
Kaz Wolfe

Réponses:

108

Comment la capacité d'une personne ayant obtenu un accès physique à votre ordinateur à accéder à root [à l'aide de Grub / Bash] de manière 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 afin que vous ne puissiez pas changer mon initen 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 quel administrateur système ne porte pas un lecteur de démarrage sur eux en cas d'urgence?

Mais comment?! Vous ne connaissez pas mon mot de passe (ce qui n'est absolument pas le cas P@ssw0rd)

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?

Facile. 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 à de vraies solutions 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/firefoxavec 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é dans /usr/share/nonsecrets/home/un autre 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 une attaque de 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 grande majorité 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 informatique très motivé, personne ne passera par les efforts requis au-delà de 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 lorsqu'il est très spécifiquement conçu) n'est pas destiné à ê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ès difficile pour les logiciels malveillants de se faufiler sur 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 fort 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 la RAM), il est pratiquement impossible pour moi d'entrer dans tout, à moins que vous (l'utilisateur) glissiez 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 j'ai une forme d'application de la signature cryptographique / numérique sur tous mes programmes pour m'assurer de leur légitimité?

Comme l'ont démontré diverses sociétés de smartphones, il s'agit d'un très bon 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 avantage. 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 faire cela 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 cryptage sur disque complet (ou même sur Linux!) Suffit à dissuader la plupart des enfants scriptant d’avoir leurs deux secondes de gloire.

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.

Kaz Wolfe
la source
Ou cryptez simplement votre partition personnelle.
user13161
5
@ user13161 Cela permet toujours à une entité malveillante de remplacer quelque chose comme /bin/bashavec son propre script diabolique, ce qui ferait de mauvaises choses avec un dossier personnel non chiffré.
Kaz Wolfe
GRUB vous permet d'utiliser une partition de démarrage chiffrée par LUKS. Dans ce cas, le mot de passe à démarrer ne peut pas être ignoré. Voir wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4
@ v7d8dpo4: Le cryptage /bootest en réalité inutile. Cela ajoutera un mot de passe de démarrage, mais vous aurez toujours besoin de décrypter /pour pouvoir faire quoi que ce soit d’utile. Vous n’ajoutez donc que des frais supplémentaires pour un bénéfice minime, voire nul. De plus, je peux simplement utiliser mon propre disque Grub pour contourner votre démarrage chiffré si seulement il /boot est protégé. Ou je peux juste lire le lecteur comme d'habitude.
Kaz Wolfe
2
Les iPhones (à partir de 6 ans, je pense) ont non seulement un cryptage "disque" complet, mais ils sont également liés à la connexion par code secret / biométrique. Ainsi, si vous souhaitez que votre ordinateur refuse de démarrer sans intervention, vous pouvez également associer son chiffrement de disque à un module de jeton matériel / mot de passe / TPM. C'est juste beaucoup de travail.
pjc50
17

Si vous le souhaitez, utilisez un mot de passe . 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_headerou un autre fichier 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 /etc/grub.d/scripts Grub 2 tels que 10_linuxet30_os-prober
    • Manuellement en modifiant un fichier de configuration personnalisé créé par l'utilisateur.

    • L’une ou l’autre 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 lors de update-grubson exécution et la protection par mot de passe sera perdue.

  • Si une forme quelconque de protection par mot de passe GRUB 2 est activée, le nom et le mot de passe du superutilisateur sont nécessaires pour accéder à la ligne de commande GRUB 2 et aux modes de modification de 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.

Rinzwind
la source
Soyons honnêtes, ces mots de passe peuvent facilement être contournés avec un accès physique. Ils protègent un système des noobs, mais pas des attaquants possédant des compétences de base (utiliser Google peut-être déjà suffisant) et des accès physiques.
Byte Commander
3

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’ eoption par 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 au lieu de modifier les options d’amorçage

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, il est une bonne idée pour les administrateurs système de se protéger contre la efonction 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 à utiliser le esystème d'origine.

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.

WinEunuuchs2Unix
la source
1
Soyons honnêtes, ces mots de passe peuvent facilement être contournés avec un accès physique. Ils protègent un système des noobs, mais pas des attaquants possédant des compétences de base (utiliser Google peut-être déjà suffisant) et des accès physiques.
Byte Commander
@ByteCommander Tout est question d'accès physique. Le BIOS peut être configuré avec un mot de passe administrateur afin qu'il ne puisse jamais démarrer à partir d'un lecteur USB ou DVD. Quelqu'un peut ouvrir le boîtier, deux broches courtes sur la carte mère et le mot de passe est réinitialisé (aucun mot de passe requis pour changer l'ordre de démarrage du BIOS).
WinEunuuchs2Unix
0

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é.

Scooby-2
la source
Commentaire tardif, mais je voudrais préciser que cela peut parfois être vaincu de manière simple. Certaines commandes du fabricant (documentées) permettent d'effacer un mot de passe de disque dur sans déclencher de format. De même, je pourrais peut-être simplement "emprunter" les plateaux de disque dur et les mettre dans mon propre contrôleur - le mot de passe est (généralement) stocké dans la NVRAM du contrôleur, pas sur les plateaux eux-mêmes.
Kaz Wolfe
@Kaz, vous avez absolument raison dans ce que vous dites, mais vous devez mettre l'accent sur le mot "occasionnellement" dans votre phrase "cela peut parfois être vaincu de manière simple". Alors que la technologie des disques durs continue de s’améliorer, contrairement à ce que vous dites, presque tous les fabricants stockent maintenant leurs microprogrammes et leurs mots de passe sur les plateaux, de sorte que le changement de la carte contrôleur n’aidera pas. Il existe un logiciel permettant de déverrouiller les lecteurs sans effacer les données, mais il ne fonctionne que sur les anciens lecteurs.
Scooby-2