Oxygène PC

Astuces, Sécurité & Aide informatique

Comment les failles de sécurité vous mettent en danger

Ici, vous pouvez poser toutes vos questions pour apprendre comment mieux sécuriser votre PC, ou comment dépanner un logiciel de sécurité tel que les antivirus, pare-feux, antispywares, contrôleurs d'intégrité, proxy etc...

Modérateurs: Modérateurs, Visiteurs Sécu

Comment les failles de sécurité vous mettent en danger

Messagepar Piero » Dim 11 Jan 2009 16:59

Exploitation des failles de sécurité de vos logiciels

Bonjour

Aujourd'hui, quiconque navigue sur internet s'expose à des attaques de logiciels malveillants (virus, vers,...). Et toutes ces attaques « exploitent » des failles de logiciels que vous avez sur vos PC.
L'objectif de cet article est de vous expliquer le plus simplement possible comment les failles logiciels sont exploitées et de vous sensibiliser à la sécurité informatique.

Le terme de virus pour désigner certains programmes malveillants est particulièrement bien choisi. En biologie, un virus est un fragment d'ADN qui vient parasiter une cellule pour se reproduire.
En informatique c'est pareil... un virus est un morceau de code qui va venir parasiter un autre programme, exploiter des failles de ce programme pour lui faire exécuter ce qu'il veut...

Alors comment cela fonctionne.

Pour comprendre cela, il faut d'abord voir comment un programme fonctionne. Un programme c’est un ensemble de fonctions qui sont appelées les unes dans les autres, les unes après les autres... Toutes ces fonctions vont se traduire au niveau du processeur par des opérations simples. Lorsque depuis une fonction on appelle une autre fonction, on met les paramètres de celle-ci en mémoire sur ce qu’on appelle la pile, toujours sur cette pile on sauvegarde l’état dans lequel on est pour la fonction en cours ( en particulier à quelle adresse la code de la fonction en cours est stocké) et ensuite on « saute » vers le code de la fonction appelée.

Voici un schéma de l'organisation de la mémoire :
ImageAu début, la pile a l'état suivant :ImageOn a deux registres qui pointent vers le début et la fin de l'environnement mémoire de la fonction. On a aussi un registre qui contient l'adresse de l'instruction que l'on est en train d'exécuter.

Lorsqu’on va depuis cette fonction appeler une autre fonction, on va sauvegarder l’état de nos registres :
ImagePuis on va passer les paramètres de notre fonction et aller exécuter le code de la fonction appelée :ImageUne fois le code exécuté, on revient à l'état initial :ImageAlors que peut-il se passer?
Eh bien, si le programme contient des failles de sécurité, il est possible que les variables passées sur la pile viennent écraser les sauvegardes d’environnement qui ont été faites… Dans ce cas la, lorsque la fonction appelée sera terminée elle ne va pas trouver son adresse de retour, puisqu’il y aura à sa place une donnée qui ne correspond à rien… et le programme va se terminer en erreur…

Mais ce peut être plus vicieux… on peut arriver à mettre dans cette adresse une adresse mémoire valide (par exemple l’adresse des variables locales de la fonction…)
On exécute du injecté dans notre programme : c’est un payload !
ImageDe plus, le code chargé dans notre programme est exécuté avec les droits de l’utilisateur qui a lancé le programme initial… si c’est un administrateur, le programme a tous les droits !

Par exemple, prenons la faille présentée ici : http://www.adobe.com/support/techdocs/321644.html
Cette faille touche Adobe Acrobat Reader : il suffit qu'un internaute ouvre un fichier pdf corrompu qui provoque un buffer overflow dans l'application pour que du code malicieux puisse être exécuté sur le poste de l'internaute...
Il est donc "très facile" de se faire avoir...

Deux leçons primordiales à retenir donc :



:bye:
Avatar de l’utilisateur
Piero
Admin
 
Messages: 726
Enregistré le: Jeu 28 Fév 2008 21:29

Retourner vers Prévention & Sécurité informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités