La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours Architecture des Systèmes Informatiques

Présentations similaires


Présentation au sujet: "Cours Architecture des Systèmes Informatiques"— Transcription de la présentation:

1 Cours Architecture des Systèmes Informatiques
Jean-Jacques Girardot Huitième séance

2 Plan : sécurité et virus
Malfonctions et attaques d’un système informatique Qu’est-ce qu’un virus PC et DOS, cibles privilégiées Fonctionnement d’un virus PC Virus et anti-virus La législation

3 Malfonctions d’un système informatique
Pertes de données Catastrophes naturelles ou provoquées Incendies, inondations, tremblements de terre, rats… Erreurs matérielles ou logicielles Dysfonctionnements divers, disques illisibles, erreurs de télécommunications, bugs… Erreurs humaines Erreur de commande, perte ou détérioration accidentelle d’un support magnétique, etc… Règles strictes, sauvegardes multiples, etc…

4 Malfonctions d’un système informatique
Intrusions passives ou actives Curiosité des personnes autorisées à travailler sur une machine Sécurités mises en place ressenties comme un challenge par les étudiants, programmeurs, opérateurs, techniciens… Actions individuelles en vue d’un profit Banques : espionner/casser les protections, reversements, chantages Espionnage industriel ou militaire Moyens matériels très élaborés Solutions différentes selon le niveau de protection désiré, ou les types d’intrusions redoutés

5 Exemples : mise à profit de bugs
UNIX Fichier /etc/passwd très sensible diverses bugs des utilitaires UNIX permettaient de le modifier Programmes “SETUID” très fragiles TENEX [DEC PDP 10] Décoder un mot de passe en utilisant les fautes de page OS/360 [IBM] Utiliser des interruptions pour interrompre des routines systèmes critiques et modifier les données sur lesquelles elles travaillent

6 Techniques d’attaque génériques…
Allouer de la mémoire, lire le contenu sans écrire au préalable => reste des programmes antérieurs Utiliser des appels système illégaux, des paramètres incorrects ou insensés Interrompre des séquences critiques de l’OS (login, logout, ES) Modifier les blocs de contrôle durant les E/S Espionner les utilisateurs avec de faux “login:” [spooffing] Lire les manuels du système. Faire tout ce qu’on dit de ne pas faire Chercher, ou se renseigner sur les “trapdoors” Draguer la secrétaire du patron…

7 Règles génériques sur la protection…
La conception de la sécurité doit être rendue publique Aucun système ne peut reposer sur un “secret de fabrication” Sécurité par “autorisations” et non par “interdictions” Vérification des droits à chaque accès Chaque processus doit avoir les privilèges minimaux Mécanismes de protection simples, uniformes, inclus dans le noyau du système Mais… psychologiquement acceptables…

8 Les mots de passe Étude de Morris et Thompson (1979) Parades :
Liste de mots de passe potentiels (prénoms, noms communs, etc…) Test sur ensemble de mots de passe effectifs : 86% découverts Parades : Imposer des changements du mot de passe fréquents Compléter le mot de passe par des chaînes aléatoires Identification de l’utilisateur par questions/réponses personnelles, algorithme… Identification de caractéristiques physiques de l’utilisateur carte magnétique, empreintes, fond de l’œil, voix…

9 Qu’est-ce qu’un virus ? CPA : Code Parasite Autopropageable
Presque toujours un segment de code machine Se propage à l’intérieur d’un système, ou entre systèmes Peut s’autodupliquer et s’insérer dans un programme exécutable En général, conçu pour provoquer une nuisance Nom : analogie avec les virus biologiques Nombreuses similitudes, renforcées par l’utilisation de termes propres aux virus : contagion, infection, épidémie, vaccin, antidote, temps d’incubation ou de latence, etc.

10 Les autres… Voir aussi :
Bug (ou bogue) : erreur involontaire du programmeur dysfonctionnement du programme parfois confondue avec l’action d’un virus [ex: panne teleph. 1990] dans les logiciels “sensibles”, peut être utilisée pour des attaques Cheval de Troie : code caché à l’intérieur d’un autre code “public” ex : “On en a marre de Microsoft et de ses chevaux de Troie” “Vers” (worm) internet, etc. Codes Mobiles Autres supports d’attaque : macros Word, Postscript, , etc. Fausses alertes, canulars (hoaxes)

11 Chevaux de Troie Des fonctions “inconnues” cachée dans un logiciel
Ex : l’utilisateur de Microsoft est à la merci (rumeurs) de logiciels qui Peuvent explorer son disque dur à la recherche de versions “illégales” de logiciels Peuvent envoyer un message à Microsoft Peuvent rendre inopérants certains logiciels non approuvés par MS Solution : des logiciels équivalents du domaine public, dont les sources sont disponibles LINUX et ses produits de bureautique…

12 Codes mobiles Définition : morceaux de code, téléchargés à la demande, en vue d’une exécution immédiate Ex : Java (Sun), Java Script Des outils propriétaires, dont la réalisation est inconnue (source non disponible) ; des codes mobiles qui parviennent sous forme “compilée” Sont supposés ne pas pouvoir toucher le disque dur ActiveX (Microsoft) Idem : outil propriétaire, code non disponible => aucune garantie de sécurité Un exemple : un programme ActiveX débitant votre compte en banque par l’intermédiaire du package Quicken…

13 Les canulars (hoaxes)…
Arrivent par sous la forme de “chain letters” “Attention : si vous recevez un mail intitulé “Good Times”, ne le lisez pas, jetez le, sinon votre disque dur sera détruit, etc… et envoyez une copie de cette lettre à toutes les personnes de votre connaissance…” Quelques uns : Good Times, PKZ300, Irina, Deeyenda, Penpal Greetings, Make Money Fast, Join the Crew, AOL V4.0, etc… Que faire ? Ne jamais propager l’avertissement ! Ne pas répondre (les références et adresses de retour sont fausses) Le détruire (votre homme système en a déjà reçu “n” copies)

14 Pourquoi des virus sur le PC ?
Ce sont souvent des virus sous DOS DOS est un système aux protections rudimentaires Il est mono-utilisateur, mono-tâche, donc “simple” à comprendre Virus “faciles” à écrire, à comprendre, à modifier… Les PC sont très répandus… Attaquent aussi Windows 3.X et dans une moindre mesure W.95 Autres types d’operating systems OS/2, Unix : systèmes mieux protégés, plus complexes Macintosh : plus complexe, moins nombreux => virus plus rares Intéressent des classes différentes d’individus…

15 Rappel : interruptions
8h Horloge temps réel (55 ms) 9h Clavier 10h Affichage 11h Périphériques disponibles sur PC 12h Calcul de la taille de la mémoire 13h Lecture, écriture, formatage de secteurs 14h Communications 16h Clavier 17h Impression 19h Réinitialisation du PC (reset) 1Ah Lire/modifier l’heure 1Ch Appelée par 8h - exécute un code à chaque top 20h Arrêt du programme 21h Appel du DOS

16 Le boot d’un PC depuis une disquette
Le PC exécute le code situé dans la ROM en FFFF0h Ce code détecte et initialise les périphériques, - met en place les vecteurs d’interruption, - appelle l’interruption 19h qui lit le 1er secteur de la disquette c.f. secteur “boot” cours 7 erreur si pas de disquette (ou de disque dur) place le secteur lu en 07C00h Le secteur doit comporter “55AA” dans les octets 1 et 2 Le PC continue l’exécution en 07C000h Le code charge le “système”, par exemple IO.SYS et MSDOS.SYS

17 Boot depuis le disque dur
Même processus jusqu’à la lecture du secteur 1 du DD Le secteur se recopie en A0000h Charge le secteur 1 de la partition “bootable” du DD en 07C00h Ce nouveau code charge alors le système : Initialisation : pile, table de base du disque (description physique) table pointée par le vecteur d’interruption 1Eh Charge IO.SYS en 00700h, lui donne la main Charge MSDOS.SYS en 00700h, lui donne la main Charge COMMAND.COM et lui donne la main : on est sous DOS…

18 Fichiers .COM Les plus simples de fichiers exécutables
Image binaire d’un segment : 64 ko maximum Le segment peut contenir programme et données Le code a été conçu pour être exécuté avec tous les registres de base [CS,DS,ES,SS] pointant sur le début du segment

19 Lancement d’un fichier .COM
Recherche (par DOS) du fichier (exécutable) Allocation d’une zone de mémoire Mise en place d’une zone PSP Chargement, derrière le PSP, du fichier .COM Les registres de segments CS, DS, SS et ES pointent sur le code Le registre SP pointe sur le dernier octet du segment Le contrôle est donné à l’adresse 0 du code Le programme peut se terminer par Appel INT 20h [21h ,AH=0], ou encore INT 27h [21h, AH=31h]

20 PSP : Program Segment Prefix
Zone de données (256 o) placée en tête du programme 0h(2) VI (Vecteur d’interruption) 20h 2h(2) Adresse du dernier segment alloué 5h(5) Informations pour DOS ? Ah(4) VI 22h (fin programme) Eh(4) VI 23h (intercepter “Ctl-C”) 12h(4) VI 24h (erreurs irrécupérables) 2Ch(2) Segment où se trouve le DOS 50h(3) Traitement de RETF de int 21h 5Ch(16) Fichier contrôle bloc 1 6Ch(16) Fichier contrôle bloc 2 80h(128) DTA pour paramètres ligne commande

21 Fichiers .EXE Fichiers exécutables à structure plus complexe
En-tête de définition Informations sur le programme Table de relocation Différents segments de code et de données Mettre à jour, une fois le code chargé en mémoire, des adresses ou des parties d’instructions qui dépendent de la position du code en mémoire physique

22 En-tête d’un .EXE 0(2) Octets ‘M‘ et ‘Z’ caractérisant le type 2(2) Nombre d’octets dans la dernière page 4(2) Nombre de pages (de 512 o) du fichier 6(2) Nb. entrées de la table de relocation (TR) 8(2) Taille en-tête+TR en § de 16 octets Ah(2) Nb de § (*16) minimum nécessaires Ch(2) Nb max. de § utilisés par le programme Eh(2) Valeur de SS par rapport au début du code 10h(2) Valeur de SP par rapport au début du code 12h(2) Checksum de contrôle (sur tout le fichier) 14h(2) Valeur initiale de IP 16h(2) Valeur de CS par rapport au début du code 18h(2) Offset de début de la table de relocation 1Ah(2) Nombre d’overlays (0 pour seg. résidents)

23 Lancement d’un fichier .EXE
Similaire aux .COM Allocation d’une zone de mémoire par segment Mise en place d’une zone PSP Chargement, derrière le PSP, des différents segments Mise à jour des adresses grâce à la table de relocation M.A.J. des registres de segments CS, DS, SS, SP, ES, IP Le contrôle est donné à l’adresse CS:IP du code Le programme peut se terminer par Appel INT 20h [21h ,AH=0], ou encore INT 27h [21h, AH=31h]

24 Classification des virus
Résident/non résident[cas rare] S’installe en mémoire, détourne les interruptions Infecteur de boot Le boot est exécuté au démarrage du PC… Infecteur de programmes les .COM et .EXE essentiellement, car très nombreux les .BAT sont des fichiers de commandes : difficile et repérable les .SYS et .OVL sont gérés différemment => peu de virus

25 Éléments d’un virus Recherche & sélection d’un fichier à infecter
Attaque des .EXE ou .COM Recherche (sur disque) et validation : est-il infectable ? Duplication / insertion du code Modifier un fichier existant pour insérer le code Rendre l’infection “invisible” Temporisation Quand se manifester ? Quand infecter d’autres programmes ?

26 Fonctionnement d’un .COM infecté
Schéma typique : Le début physique du segment est remplacé par un saut vers le code du virus Une fois chargé en mémoire, DOS donne la main au segment… qui exécute immédiatement le code du virus sauvegarde les registres peut vérifier s’il est déjà présent en mémoire, et sinon implanter une copie de lui-même en mémoire afin de devenir résident Son affaire terminée, le virus place en début du segment les instructions originelles du programme, restaure les registres, et donne la main au programme.

27 Le virus “MIX1” Réserve de la place dans la pile, sauve les registres
Regarde s’il est déjà présent [77h en 33Ch]; si oui, rend la main au programme Demande de la mémoire haute, se recopie, redirige les interruptions 21h 17h&14h Vérifie s’il en est à la 5eme génération. Si non, rend la main au programme Redirige les interruptions 8h (horloge) et 9h (clavier) Si fonction 4Bh du DOS [exécution d’un fichier], va tenter d’infecter celui-ci Convertit certains caractères envoyés à l’imprimante (fct. 17h) Idem pour les octets envoyés sur le port série (fct. 14h) Annule les effets de CTRL-ALT-DEL, et Shift/Shift Lock au bout de 50 minutes Utilise l’interruption 8h pour compter 50’ ; au bout d’une heure, fait rebondir un “o” à l’écran

28 Dégâts des virus Tout et n’importe quoi… mais surtout perte de temps
de l’inoffensif à l’effaceur de disque “Bad Brains” : pas d’effet observé “Shiny Happy Virus” : transforme :-) en :-( “Storyteller” : affiche un poème de Theodore Watts-Dunton “911” : appelle le 911 (police/fire/emergency) sur le modem “10 past 3” : s’active de 15:10 à 15:13, et selon les jours bloque le clavier, les disques, l’écran, reboute la machine, etc… “Joshi” : le 5 janvier, affiche “Type Happy Birthday Joshi”… parfois plus dangereux par leurs bugs que par leurs effets pas d’action sur le matériel, sauf cas exceptionnel

29 Quelques virus célèbres
“Vendredi 13” (octobre 87, Israël) Augmente la taille des fichiers infectés de 408, 544 ou 1808 octets. Si un fichier atteint est exécuté un vendredi 13, il est détruit. “Brain” (1986, Pakistan, secteur boot) Remplace le nom du volume par “© Brain” “Flip” (1990, Allemagne de l’Ouest) Augmente la taille des fichiers de 2343 octets ; le 2eme jour du mois, les caractères apparaissent inversés à l’écran “Anti-Pascal” (1990, Bulgarie, .COM) Détruit les fichiers .BAK et .PAS

30 Virus des macros de Word
MS Word offre la possibilité d’écrire des “macros” Textes : suite de commandes équivalentes à des choix de menus, etc. Automatiser les tâches répétitives Peuvent être associées à des évènements : ouverture de fichier, etc. Sont peu visibles, mais détectables Quelques virus Concept : ouvre une boîte de dialogue avec le chiffre 1 Nuclear : “Stop all french nuclear testing in the pacific” Wazzu : insère le mot “Wazzu” dans le document C.f.

31 Virus et Internet Comment attrape-t-on des virus avec Internet ?
Par téléchargement de logiciels et documents (macros virus) Par documents “attachés” pouvant contenir des virus (certains outils de mail ouvrent automatiquement ces documents…) Des virus peuvent se trouver dans des “add-on” proposés pour visualiser des types spécifiques de documents Les pages Web peuvent contenir des scripts (Java/Javascript), en principe inoffensifs… Mais Internet permet de comprendre et de se protéger ex : le site CIAC :

32 Se protéger… Prévention… Outils anti-virus
Les virus viennent de l’extérieur disquettes prêtées ou utilisées sur une machine contaminée, logiciels obtenus sur Internet, etc. Reformater ses disquettes, les utiliser en “write protect” si possible Faire des sauvegardes fréquentes, sur des disques différents Outils anti-virus Prévention Détection Suppression

33 Se protéger… mieux… Travailler sous anti-virus
Utiliser une machine isolée pour tester tous les nouveaux logiciels, dont le disque dur peut être aisément reformaté… Conserver en sécurité tous ses originaux, sur des supports en lecture seule Se méfier des documents importés, des add-on, etc… Désactiver l’exécution des codes mobiles sur son navigateur Consulter un vrai spécialiste quand on soupçonne la présence d’un virus sur sa machine…

34 Les outils anti-virus : prévention
Un virus modifie un programme Un scanner peut détecter la présence de virus connus Analyse les .COM et .EXE à la recherche de la “signature” de virus signature : segment de code ou de données caractéristique Nécessite une MAJ lors de l’apparition de nouveaux virus Checksum d’un programme, & comparaison avec valeur standard Un scanner peut rechercher des “messages” suspects : “Formatting your hard disk”, “Ha ha!”, etc. Utiliser ces outils pour vérifier disquettes et fichiers exécutables, y compris les programmes du commerce…

35 Les outils anti-virus : détection
Un virus peut être observé quand il modifie un programme “watchdog” : programme résident, qui va vérifier certaines opérations “critiques” en les interceptant ex : écriture dans un .EXE scan de la mémoire, à la recherche de la signature d’un virus détection heuristique (suites d’instructions) Mais… le watchdog va parfois émettre des avertissements intempestifs…

36 Les outils anti-virus : réparation
Si possible, supprimer le programme contaminé et mettre en place une version saine Utiliser un outil qui efface physiquement le programme “Scanner” la sauvegarde… Dans le cas d’un secteur de boot, utiliser un outil de réparation Certains programme de réparation vont rendre le virus inactif, tout en laissant le code quasi intact Le programme “assaini” est parfois immunisé, mais peut être indiqué comme “contaminé” par un scanner

37 Comment les virus résistent…
Dissimulation : cacher ses traces Encryptage : masquer son code Polymorphisme : se dupliquer avec des différences Inactivité : ne se manifester que rarement Et grâce à l’inconscience des utilisateurs…

38 Se dissimuler Cacher son code Cacher ses traces
Par exemple, dans des secteurs du disque que l’on indique comme “défectueux” Cacher ses traces Faire croire à son absence Restaurer la date de modification des fichiers Détourner les E/S et les appels à DOS, pour tromper les anti-viraux Modifier les informations des répertoires, pour faire croire que les programmes n’ont pas changé de taille

39 Encrypter le code Encryptage
Encrypter, dans le programme infecté, la quasi-totalité du code d’un virus, pour empêcher sa détection Il est difficile de détecter le virus quand il est encrypté dans un programme inactif Quelques instructions suffisent à décrypter le tout une fois chargé Le code du virus n’est accessible qu’une fois activé ; il peut s’auto-détruire une fois son “travail” terminé Il existe de nombreuses méthodes simples pour encrypter du code : xor, addition, décalages, avec des valeurs fixes ou “glissantes”, etc.

40 Virus polymorphe (1) Décryptage d’un code encrypté par un XOR 55h mov si,crypted_code ; pointe sur code mov cx, ; 100 octets à décrypter boucle: xor byte ptr[si],55 ; XOR sur 1 octet inc si ; pointe sur suivant loop boucle ; contrôlé par cx crypted_code : ; début du code crypté Reste du code : encrypté Difficile à reconnaître [256 encryptages possibles] Boucle de décryptage facile à déceler [XOR, structure]

41 Virus polymorphe (2) Perturber la boucle de décryptage mov si,crypted_code ; pointe sur code nop ; no-operation, ne fait rien nop ; mais occupe un octet mov cx, ; 100 octets à décrypter boucle: nop xor byte ptr[si],55 ; XOR sur 1 octet inc si ; pointe sur suivant nop nop loop boucle ; contrôlé par cx

42 Virus polymorphe (3) Encore mieux… mov si,crypted_code ; pointe sur code mov dx, ; code bidon or al,cl ; code bidon mov cx, ; 100 octets à décrypter boucle: add al,dx ; code bidon xor byte ptr[si],55 ; XOR sur 1 octet inc si ; pointe sur suivant sub dx,al ; code bidon dec dx ; code bidon loop boucle ; contrôlé par cx

43 Virus polymorphe (4) Le virus peut modifier son code :
insertion d’instructions inutiles cryptages divers, avec divers codes peut générer diverses boucles de décryptage plusieurs structures différentes de la boucle structures “schéma”, avec utilisation de registres divers insertion d’instructions ineffectives [10 à 100/inst. effective] Il est impossible à détecter par “signature” Méthodes heuristiques => fausses alertes possibles…

44 Autres techniques EPO : “Entry point obscuring”
Le virus ne remplace pas la première instruction du programme, mais trace celui-ci, et insère des instructions plus loin dans le code Rétrovirus : attaque des antivirus Le virus recherche la présence en mémoire et sur disque de logiciels antiviraux susceptibles de le détecter et tente de les rendre inactifs…

45 Loi du 5 janvier 1988 (1) Article Quiconque, frauduleusement, aura accédé ou se sera maintenu dans tout ou partie d’un système de traitement automatisé de données sera puni d’un emprisonnement de deux mois à un an et d’une amende de 2.000F à F ou de l’une de ces deux peines. Lorsqu’il en sera résulté soit la suppression ou la modification de données contenues dans le système, soit une altération du fonctionnement de ce système, l’emprisonnement sera de deux mois à deux ans et l’amende de F à F.

46 Loi du 5 janvier 1988 (2) Article Quiconque aura, intentionnellement et au mépris des droits d’autrui, entravé ou faussé le fonctionnement d’un système de traitement automatisé de données sera puni d’un emprisonnement de trois mois à trois ans et d’une amende de F à F ou de l’une de ces deux peines.

47 Loi du 5 janvier 1988 (3) Article Quiconque aura, intentionnellement et au mépris des droits d’autrui, directement ou indirectement, introduit des données dans un système de traitement automatisé ou supprimé ou modifié les données qu’il contient ou leurs modes de traitement ou de transmission sera puni d’un emprisonnement de trois mois à trois ans et d’une amende de 2.000F à F ou de l’une de ces deux peines. Article La tentative des délits prévus par les articles à est punie des mêmes peines que le délit lui-même.

48 Plus d’information… De nombreuses pages sont consacrées sur Internet aux virus. Points de départ : La section “Virus” de la page Rechercher “Virus”, associé à quelques autres mots-clefs, sur les outils de recherches traditionnels (Alta Vista, etc.)


Télécharger ppt "Cours Architecture des Systèmes Informatiques"

Présentations similaires


Annonces Google