ISEC
Codes malveillants
Jean Leneutre
jean.leneutre@telecom-paristech.fr Bureau C234-4
q Code malveillant (« malware » ou « rogue program »)
§ Ensemble d’instruction permettant intentionnellement de mettre en défaut une politique de sécurité
§ Programme simple ou auto-reproducteur s’installant dans un système d’information à l’insu des utilisateurs, en vue de porter atteinte à la confidentialité, l’intégrité, la disponibilité ou
d’impersonnifier un utilisateur (afin de réaliser un délit et de l’incriminer à tort)
q Les codes malveillants existent depuis longtemps
§ Découverte des virus : Cohen, 1984
§ Références à menaces et vulnérabilités découlant de failles de
programmes remontant bien avant : Ware, 1970 et Anderson, 1972
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Cible : tout système comprenant
§ de la mémoire non volatile dans laquelle le programme infecté se trouve sous forme inactive
§ de la mémoire vive dans laquelle est copié le programme qd il est exécuté
§ un processeur ou un micro-contrôleur pour l’exécution
§ un système d’exploitation
q Non limité aux ordinateurs
§ Cheval de Troie « Phage » sur Palm Pilot
§ Virus Cabir pour les portables et smart phones utilisant l’OS
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Classification des infections informatiques
Codes malveillants
Programmes Simples Programmes Auto-reproducteurs
Bombes logiques
Chevaux
de Troie Virus Vers
q Bombe logique
§ Programme attendant un événement appelé « gâchette » pour exécuter sa fonction offensive.
§ Correspond à la charge finale d’un virus
§ Exple : CIH se déclenchant le 26 avril
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Cheval de troie (« Trojan Horse »)
§ Programme ayant des effets de bords cachés (non documentés et non prévus par l’utilisateur exécutant le programme)
§ Porte dérobée (« Trapdoor » ou « Backdoor ») : fonctionnalité non
documentée d’un programme permettant d’obtenir un accès au système autrement que par la procédure documentée
Ø Module serveur/module client
Ø Exple : Back Orifice (protocole UDP, port 31337), Netbus (TCP, port 12345)
Ø Peuvent être répandus par des vers
Ø « ratware » : porte dérobée qui transforme des ordinateurs en « zombie » pour envoyer du spam
§ Logiciel espion (« Spyware ») : petits modules insérés dans des logiciels commerciaux pour renseigner l’éditeur du logiciel
§ Leurre : programme imitant le fonctionnement normal d’un programme légitime du système
Ø Fausse bannière de connexion Unix
Ø Espion de clavier (« Keylogger ») : logiciel copiant et envoyant les frappes de clavier
q Virus
§ Code attaché à un programme non malveillant, pouvant s’auto- reproduire en infectant d’autres programmes non malveillants, et contenant une charge (« payload »)
q Vers (worm)
§ Programme s’auto-reproduisant à travers un réseau mais n’infectant pas forcément d’autres programmes
q Rabbit
§ Virus ou vers qui s’auto reproduit localement sans limite pour épuiser des ressources
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Fonctionnement général d’un virus
§ Le programme infectant est porté par un programme hôte (« dropper »)
§ Lorsque le dropper est exécuté
Ø Le programme infectant prend la main et le programme hôte est temporairement mis en sommeil,
Ø Puis il rend la main au programme hôte qui s’exécute normalement sans trahir la présence du programme infectant.
§ L’infection d’un utilisateur n’est possible que s’il a exécuté le dropper ou importé des données corrompues (virus de document)
Ø basé sur l’ingénierie sociale
Ø dropper= jeu, animation anodine, mail racoleur …, afin d’inciter la victime a l’exécuter.
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Installation du virus
§ Mode transient : s’exécute qd le programme auquel il est attaché est exécuté, et termine qd le programme termine
§ Mode résident : se copie en mémoire, peut rester actif ou être activé même si l’exécution du programme auquel il est attaché est
terminée
§ Mode furtif : le processus n’est pas visible lors de l’affichage des processus en cours
§ Mode persistant : en cas d’effacement ou de désinstallation, le
programme infectant est capable de se réinstaller indépendamment d’un dropper
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Virus d’exécutable
§ Une copie du virus est ajoutée dans le fichier de l’exécutable cible
§ Il en résulte une hétérogénéité du code source
q Virus de code source
§ Une copie du source du virus est ajoutée dans le fichier du source du programme cible
§ Permet d’infecter des machines dont l’environnement n’est pas connu
q Virus de document
§ Code viral contenu dans un fichier de données non exécutable.
§ L’activation du code viral est réalisée soit par une fonctionnalité prévue dans l’application associée à ce format de fichier, soit en vertu d’une faille de l’application considérée
§ Exemples : macro-virus word/excel/powerpoint
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Virus de démarrage :
§ Vise et utilise les organes spécifiquement destinés à amorcer le système d’exploitation (BIOS, secteurs de démarrage)
§ Permet de court-circuiter les contrôles fait au niveau de l’OS
q Virus multi-cibles
§ Virus infectant plusieurs cibles
§ Exemple : CrazyEddie infectant secteur de démarrage et fichiers exécutables
q Virus multi-formats
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Virus psychologique (hoax) :
§ Désinformation incitant l’utilisateur, par des techniques d’ingénierie sociale, à produire des effets équivalents à celui d’un virus ou d’un ver.
§ Reproduction : transmission de la désinformation par mail
§ Charge finale : effacement de fichier (kernel32.ddl par exemple)
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q
Modes d ’ action des virus d ’ exécutables (1)
§ Par écrasement de code
En-tête Code Virus
En-tête
Code
Programme cible
En-tête
Programme infecté En-tête
Code Virus
Reliquat cible
Petite taille, pas de charge
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q
Modes d ’ action des virus d ’ exécutables
§ Par recouvrement de code
Virus
En-tête
Code
Programme cible
Programme infecté Code
Ø Le code du virus est accolé à celui de l’exécutable (en général à la fin)
Ø Augmentation de taille, mais pas de perturbation du fonctionnement
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Modes d’action des virus d’exécutables
§ Par entrelacement de code
Virus Code
En-tête
Programme cible
Section1 Section2
Section n
. . . .
. .
Programme infecté
Section1 Section2
Section n
. . .
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q
Modes d ’ action des virus d ’ exécutables
§ Par accompagnement de code
Ø L’intégrité du code cible est conservée Virus
En-tête
Code
Programme cible Code
Virus
En-tête
Code
Programme cible Code
1 2
Exécution
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Mécanismes anti-anti-viraux
§ Furtivité : dissimulation dans des secteurs faussement déclarés défectueux
§ Rootkit :
Ø Programme inséré dans le système une fois que l’attaquant a pris le contrôle
Ø Inclut des fonctions permettant d’effacer les traces de l’attaque
Ø Se situe au niveau du noyau de l’OS afin de cacher leur présence
§ Polymorphisme :
Ø Variation lors d’une copie d’un virus (utilisation de chiffrement, réécriture de code par code équivalent)
Ø Permet de contourner la vérification par signature
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
q Vers simples (worm)
§ Exploite des failles logicielles permettant l’exécution de programmes sur une machine distante, et des faiblesses de protocoles pour se disséminer
§ Exemple : Codered profitant d’une vulnérabilité des serveurs Web IIS
q Macro-vers
§ Programmes hybrides virus (infection de support transmis par le réseau)/
vers (utilisation du réseau pour la transmission)
§ Activation causée par une action humaine
§ Dissémination : pièces jointes contenant des documents bureautiques infectés
§ Exemple : Melissa
q Vers d’email (mass-mailing worm)
§ Activation causé par une action humaine ou par une faille
§ Exemple : ILOVEYOU
III- Vulnérabilités et attaques usuelles
2. Codes malveillants
Techniques anti-virales
q Techniques statiques
§ Recherche de signature
Ø Recherche d’une suite de bits caractéristique (discriminante et non incriminante)
Ø Correspond à une séquence d’instructions ou à un message affiché par le virus, ou la signature que le virus utilise lui-même pour éviter la surinfection d’un
exécutable
Ø Limitée aux virus connus
Ø Mise à jour de la base des signatures
§ Analyse spectrale
Ø Recherche des instructions caractéristiques de virus ou de vers
Ø Un compilateur n’utilise qu’une partie du jeu d’instructions, alors qu’un virus utilise un jeu plus large pour améliorer son efficacité
Ø Modélisation statistique de la fréquence des instructions et comportement en