{{tag>tutoriel sécurité BROUILLON}} ---- ====== Comment se protéger des Fork Bomb ? ====== ===== Introduction ===== ==== Qu'est-ce qu'une fork bomb ? ==== 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 : :(){ :|:& };: Comme expliqué précédemment, la commande ci-dessus va rapidement faire planter votre système : son utilisation est donc à proscrire... ==== Comment s'en protéger ? ==== 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. ===== Limiter le nombre de processus ===== Il va falloir [[:tutoriel:comment_editer_un_fichier|é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 Cette ligne limite à 500 le nombre de processus, vous pouvez modifier ce chiffre à votre convenance. **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// :-P), utilisez la commande : ulimit -u Qui doit renvoyer : ''500''. Si c'est le cas, les //fork bomb// ne sont plus qu'un mauvais souvenir ! Si cela ne fonctionne toujours pas, vérifiez que vous avez bien la ligne session required /lib/security/pam_limits.so dans * **/etc/pam.d/common-session** * **/etc/pam.d/login** * **/etc/pam.d/su** * **/etc/pam.d/xdm** * **/etc/pam.d/gdm** * **/etc/pam.d/kde** (Pour Kubuntu) * **/etc/pam.d/sshd** Pour ssh, pensez à mettre l'option UsePAM yesdans **/etc/ssh/sshd_config** ;-) (Sous la verison 8.04 Server, je ne les avais pas.) ===== Quelques liens ===== * [[https://fr.wikipedia.org/wiki/Fork_bomb|Article de Wikipédia sur les fork bomb]] * [[http://www.debian.org/doc/manuals/securing-debian-howto/ch4.en.html#s-user-limits|Le fichier limits.conf dans la documentation Debian]] ---- // Contributeurs : [[utilisateurs:Nicoz]]//