79 votes

Comment protéger Ubuntu d'une bombe fork

J'ai entendu quelqu'un parler d'une bombe à fourche, j'ai fait quelques recherches et j'ai trouvé des informations terribles sur des caractères étranges que les gens peuvent vous faire taper à la ligne de commande et ainsi faire de mauvaises choses sur l'ordinateur. Je ne lancerais certainement pas de commandes que je ne comprends pas, mais on ne sait jamais ce qui peut arriver.

J'ai entendu dire que certains systèmes d'exploitation permettent à l'administrateur de limiter le nombre de processus utilisateur afin d'atténuer les effets des bombes à fourche. Cette protection existe-t-elle par défaut dans Ubuntu ou une personne ayant le privilège sudo doit-elle la définir ? Si oui, comment ?

77voto

Redbaron Points 523

Vous pouvez facilement limiter le nombre de processus qui peuvent être créés dans Ubuntu et la plupart des autres distributions Linux en modifiant les paramètres suivants /etc/security/limits.conf

sudoedit /etc/security/limits.conf

Ajoutez ensuite cette ligne au bas de ce fichier :

*    hard     nproc     nnn

où :

  • hard fixe la limite au niveau du noyau de sorte qu'elle ne puisse être modifiée sans redémarrage.
  • nproc est le nombre maximum de processus par utilisateur.
  • nnn est un nombre que vous devez calculer pour votre système :

    ps aux -L | cut --delimiter=" " --fields=1 | sort | uniq --count | sort --numeric-sort | tail --lines=1

La commande ci-dessus listera tous les processus pour tous les utilisateurs y compris les fils Dans le cas d'un ordinateur de bureau, faites le total et indiquez le nom de l'utilisateur qui a le plus grand nombre de processus. Pour plus de sécurité, ouvrez autant d'applications que vous en avez normalement besoin avant d'exécuter la commande ci-dessus, puis doublez ce nombre par sécurité.

Après la mise en place de cette limite, vous devrez redémarrer, mais cela affectera tous les ordinateurs de l'entreprise. non racine utilisateur sur le système. Ainsi, si une bombe fork est exécutée par un utilisateur non root, elle sera soumise à cette limite stricte.

Les limites de groupes et de caractères génériques ne s'appliquent pas à l'utilisateur root par défaut. . Utilisez le nom d'utilisateur littéral root dans les règles si vous voulez appliquer une règle au superutilisateur.

De plus, si vous ne cherchez pas à redémarrer de sitôt, vous pouvez utiliser sudo ulimit -u 800 qui placera la restriction uniquement sur la session en cours d'exécution mais peut être facilement contourné par une bombe à fourche avec sudo des privilèges !

Après le redémarrage, tout ce qui se trouve dans /etc/security/limits.conf sera alors utilisé.

Quelques informations supplémentaires sur les bombes à fourche : Il ne s'agit pas de logiciels malveillants ou de quoi que ce soit d'épouvantable. Elles consistent généralement en quelque chose d'aussi basique qu'un script qui s'appelle lui-même deux fois - augmentant ainsi sa présence sur la machine de manière exponentielle. Même s'ils ont une faible empreinte mémoire, compte tenu de la rapidité avec laquelle ils se multiplient, ils remplissent rapidement toute la RAM disponible et la machine se bloque ou redémarre. Le seul danger est de perdre des informations non sauvegardées. Je classerais un forkbomb beaucoup plus comme une farce que comme un logiciel malveillant.

Un rappel important :

Vous devriez rarement exécuter quelque chose en ligne de commande si vous n'êtes pas sûr à 98% de son action. Si vous ne pouvez pas lire les commandes que vous exécutez, ne le faites pas. Cela s'applique aussi aux morceaux illisibles de caractères hexa/base64, qui peuvent être utilisés pour masquer toutes sortes de méchancetés. Si vous n'êtes pas sûr d'une commande, vous pouvez toujours rechercher ses actions dans le fichier Manpages Ubuntu et soyez très prudent lorsque vous utilisez sudo puisque cela s'exécutera en tant qu'utilisateur root.

0voto

Adrian Webster Points 19

Un moyen simple que j'apprécie est de créer un alias, bien que les alias ne soient pas toujours appliqués, consultez la réponse ci-dessus.

alias :="echo No."

Maintenant

$ :(){ :|: & };:
bash: syntax error near unexpected token `('

0voto

Chaque système est vulnérable aux bombes à fourche, comme Windows.

:fork
start example.bat

ou linux

:(){ :|: & };:

Il existe également une version Mac mais je ne la connais pas.

Vous devez exécuter les commandes pour que cela fonctionne, la première bombe à fourche date de 1974, et si vous n'entrez pas ces commandes, votre PC ne se plantera pas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X