Pas Tout A Fait

Aller au contenu | Aller au menu | Aller à la recherche

Les bombes logiques

Dernière mise à jour le 30 août 2011

Les bombes logiques sont une attaque par déni de service contre un système informatique. Appelé "fork bomb" en anglais, un peu de connaissance en programmation permet de se douter qu'elle fait appel à la fonction fork.

Le principe de la bombe logique est de créer sur le système une nombre énorme de processus dans le but de le saturer, plus précisément de saturer la table des processus. Si cette table est remplie, il devient difficile de lancer le moindre nouveau processus, en sachant que la bombe logique cherche toujours à ce reproduire pendant ce temps là. De plus, elle occupe de l'espace en mémoire, et du temps processeur. Le système deviens donc plus ou moins rapidement totalement inutilisable, et les processus lancés avant la bombe ralentisse terriblement.

Une fois la bombe logique lancé, il est très délicat de s'en débarrasser sans un reboot de la machine... La seul solution consiste à tuer toutes les instances de la bombe, ce qui s'annonce difficile si la table des processus ou l'espace mémoire sont pleins, puisque détruire ces processus nécessite de lancer un processus...

Sous GNU/Linux, il est assez facile de limiter l'impact d'une bombe logique, en plaçant une limite au nombre maximum de processus qu'un utilisateur, voir même l'ensemble du système, peux lancer.

Le fichiers "/etc/security/limits.conf" permet d'imposer de tels limites. Par exemple, la ligne :

*              hard    nproc           100

permet de limiter le nombre total de processus sur le système à 100.


Quelques exemples de bombe logique

En HTML

Le code suivant dans un fichier "bomb.html" ouvre des cadres qui ouvrent les mêmes cadres qui ouvrent les mêmes...

 <html>
  <frameset>
   <frame src="bomb.htm" name="Fork1">
   <frame src="bomb.htm" name="Fork2">
  </frameset>
 </html>

En batch

Sous Windows, dans un fichier batch bomb.bat :

 :s
 start calc.exe
 goto s
En bash

Avec Bash sous GNU/Linux dans un terminal ou un fichier exécutable :

:(){ :|:& };:
Avec Perl

Le simple bout de code suivant :

perl -e "fork while fork" &
Matthieu Patout

Auteur: Matthieu Patout

Restez au courant de l'actualité et abonnez-vous au Flux RSS

Soyez le premier à réagir sur cet article

Ajouter un commentaire Fil des commentaires de ce billet

aucune annexe



Voir Aussi

torchat-logo.png

Messagerie instantanée sécurisée avec TorChat

Plusieurs solutions existent pour sécuriser les communications de messagerie instantanée. Il s'agit...

Lire la suite

hacker-rip.jpg

Vérifier l'intégrité d'un système de fichiers avec Integrit

Une bonne habitude pour surveiller qu'un serveur n'est pas compromis consiste à utiliser une...

Lire la suite


Découvrez le Nouveau « Pack Liberté »