Une fork bomb (parfois appelée logic bombe, bombe logique), est une attaque par déni de service qui peut aller jusqu'à rendre votre ordinateur complètement inutilisable. Elle agit en se dupliquant infiniment jusqu'à saturer la table des processus.
Elle peut autant être le fruit d'une attaque (sur un serveur par exemple), que celui d'une erreur de programmation. Heureusement, il existe des moyens de se protéger des fork bomb.
A titre d'exemple (et donc à ne pas tester ), une fork bomb pour le shell Bash :
:(){ :|:& };:
Vu qu'une fork bomb a pour but de saturer la table des processus, un moyen simple et efficace de s'en prémunir consiste à limiter le nombre de processus que peut exécuter un utilisateur (sachant que par défaut il n'y a pas de limite). Pour cela, il suffit de modifier le fichier /etc/security/limits.conf comme je vous propose de le faire ci-dessous.
Il va falloir éditer le fichier /etc/security/limits.conf en super utilisateur, avec par exemple :
gksudo gedit /etc/security/limits.conf
Le fichier qui s'ouvre est entièrement commenté. Afin de limiter le nombre de processus que peuvent exécuter les utilisateurs, il va falloir rajouter la ligne suivante :
* hard nproc 500
Juste avant :
# End of file
Attention toutefois d'utiliser cette commande avec parcimonie, celle-ci peut bloquer votre ordinateur si vous mettez une valeur trop basse, voir ici : https://forum.ubuntu-fr.org/viewtopic.php?id=399827
Redémarrez ensuite votre ordinateur pour que les nouveaux paramètres soient pris en compte. Pour le vérifier (non, n'allez pas tester la fork bomb ), utilisez la commande :
ulimit -u
Qui doit renvoyer : 500
.
Si c'est le cas, les fork bomb ne sont plus qu'un mauvais souvenir !
session required /lib/security/pam_limits.so
dans
Pour ssh, pensez à mettre l'option
UsePAM yes
dans /etc/ssh/sshd_config
(Sous la verison 8.04 Server, je ne les avais pas.)