Table des matières. Introduction

Dimension: px
Commencer à balayer dès la page:

Download "Table des matières. Introduction"

Transcription

1 Table des matières 1 Formalisation des virus informatiques Les machines de Turing Formalisation de Fred Cohen Définition d un virus informatique Les Quines Etudes de propriétés de l ensemble viral Quelques propriétés élémentaires Problème d arrêt d une machine de Turing Théorèmes de la non décidabilité de la détection viral Réflexion sur la possibilité de détection virale Illustrations et ouvertures L évolution virale Exemple d ensemble V de cardinal infini Virus montrant une des difficultés de la détection par émulation Les problèmes liés aux signatures Analyse spectrale Analyse critique d un virus élémentaire Remarque sur le comportement humain La Désinfection Les virus «utiles» Ouverture sur la notion de virus Introduction Le terme de virus informatique est aujourd hui très présent dans le grand public et les medias. Il est souvent improprement employé pour désigner un programme informatique malicieux conçu pour nuire. Cette définition correspond plutôt à ce que l on nomme communément les logiciels malveillants (ou malware). La notion de virus désigne de façon assez générale un fragment de programme capable de se répliquer (en mutant ou non). Le terme de virus a été introduit par Fred Cohen en 1985, dans sa thèse [1] sur laquelle nous nous sommes basés pour la partie théorique de cette étude. Nous allons ainsi formaliser la notion de virus grâce aux machines de Turing, puis nous énoncerons quelques résultats sur l ensemble viral, et en particulier un théorème de non décidabilité de la détection virale. Enfin nous présenterons des illustrations des résultats théoriques, des stratégies mises en place par les virus ou par les antivirus pour la détection et quelques réflexions générales sur la virologie. 1

2 1 Formalisation des virus informatiques 1.1 Les machines de Turing Le but de ce travail n étant pas l étude des machines de Turing, nous ne développerons que très peu cet aspect et nous admettrons de façon générale, qu elles nous fournissent une description universelle et abstraite des ordinateurs grâce aux machines de Turing universelles (le lecteur intéressé par cette question pourra se référer au livre de Eric Filiol [3] pour de plus amples informations ou à un cours plus complet sur les machines de Turing). Nous en donnons cependant une description succincte, et intuitive, en annexe. 1.2 Formalisation de Fred Cohen Le but de cette partie est de poser des notations relative aux machines de Turing et de présenter une définition formelle de la notion d ensemble viral et donc de virus. Définition Une machine de Turing M est définie par la donnée d un ensemble de n + 1 états S M = {s 0, s 1,..., s n }, d un ensemble de m + 1 symboles I M = {i 0, i 1,..., i m }, d un ensemble d = { 1, 0, 1} décrivant les mouvements possibles pour la tête de lecture et d écriture, d une fonction de sortie O M : S M I M I M, d une fonction de transition N M : S M I M S M d une fonction de déplacement D M : S M I M d La machine est alors désignée par le quintuplet (S M, I M, O M, N M, D M ), et l ensemble des machines de Turing sera noté M. L on peut alors définir les trois fonctions «temporelles» de suivi de la machine : la fonction temporelle d état $ M : N S M qui pour chaque indice de pas, donne l état correspondant à l issue ; la fonction temporelle de bande M : N N I M qui fournit le contenu d une cellule en fonction de son numéro et de son indice de pas ; la fonction temporelle de cellule P M : N N donnant le numéro de la cellule après le déplacement de la tête de lecture en fonction de l indice de pas. et l historique à l instant t donné est défini par H M = ($ M (t), M (t, i), P M (t)) pour un i fixé. Définissons alors la notion d arrêt d une machine de Turing : Définition On dit que le calcul de la machine M s arrête à l instant t si t > t on a $ M (t) = $ M (t ) et i N on a M (t, i) = M (t, i) et P M (t) = P M (t ). Et l on dit que le calcul de la machine M s arrête s il existe un instant t pour lequel M s arrête. Définition L on note T S M un sous ensemble non vide de I M 2

3 1.2.1 Définition d un virus informatique On peut alors donner la définition formelle de l ensemble viral V, notons qu un élément de cet ensemble est un couple constitué d une machine de Turing et d un ensemble de mots, ainsi cet ensemble est viral relativement à la machine de Turing : Définition On dit que (M, V ) V si [ M M et V T S M et si pour tout v V, on a [ quelque soit H M, t et j, tels que P M (t) = j et $ M (t) = $ M (0) et ( M (t, j),..., M (t, j + v 1)) = v ] [ v V et pour un instant t > t il existe un j tel que (j + v ) j ou (j+ v ) j et ( M (t, j ),..., M (t, j + v 1)) = v et les cellules d indices compris entre j et (j + v 1) sont effectivement remplis par M entre les instants t et t ] ] On comprend, alors, qu un virus est un «mot» qui est capable de se reproduire, ou éventuellement de se reproduire en ayant évolué, il génère en tous cas un autre programme qui a la même propriété que lui. On dira alors qu un virus v est une forme évoluée de v relativement à M si en faisant exécuter M sur v l on obtient (de façon éventuellement indirecte, c est-àdire en faisant s exécuter M sur le virus issu directement de v et ainsi de suite) le virus v On remarque alors que la notion de virus est bien différente de la notion de programme malveillant, et on remarque même que la présence d une charge finale est absente de la définition, et donc les virus ne sont même pas un sous ensemble des logiciels malveillants. 1.3 Les Quines Ainsi, des exemples très simples de virus sont des programmes qui recopient leur propre code.les programmes de ce type s appelle les quines. Une quine en français pourrait être : Recopier puis recopier entre guillemets, sans oublier le point final, la phrase «Recopier puis recopier entre guillemets, sans oublier le point final, la phrase». Ce qui pourrait s écrire en Caml : print string s ; print char (char of int 34) ; print string s ; print char (char of int 34) ; print char ; ; print char ; ; where s="print string s ; print char (char of int 34) ; print string s ; print char (char of int 34) ; print char ; ; print char ; ; where s=" ; ; 1. Il est interdit pour une quine de faire appel à une source extérieure ; par exemple, cela ne correspondrait pas à une quine de faire # let fausse quine= print string "fausse quine () ; ;" ; ; puis # fausse quine () ; ;. 2 Etudes de propriétés de l ensemble viral Maintenant que la notion de virus est précisée nous allons présenter quelques résultats sur ces ensemble, et en particulier la non décidabilité de la détection 1 Nous avons utilisé le code ASCII, car ici les séquences d échappement ne peuvent convenir, en effet, il faut que la phrase entre guillemets soit identique à celle d avant, ce qui ne serait pas le cas avec les séquences d échappement. 3

4 viral. 2.1 Quelques propriétés élémentaires Proposition 2.1. Il existe des machines de Turing pour lesquelles il n existe pas d ensemble qui soit viral relativement à cette machine de Turing Cette propriété est relativement trivialement démontrée, en prenant la machine de Turing qui s arrête immédiatement par exemple. Mais elle nous rappelle qu il est possible de faire des systèmes plus ou moins sécurisés face aux virus. Mais les systèmes proposés actuellement et qui garantissent une totale sécurité, sont tellement contraignant qu ils annulent presque les avantages de l informatique. Proposition 2.2. Il existe une machine de Turing M et V T S M tels que (M, V ) V et V = N On peut démontrer cette propriété en créant une telle machine et un tel ensemble. Il est a noter que pour presque tous les langages de programmation moderne l on peut créer un tel ensemble, nous en verrons un exemple dans Cela nous montre donc que la détection de virus par simple scanning (comparaison avec de codes déjà répertorié) a ses limites. 2.2 Problème d arrêt d une machine de Turing Avec la définition que l on a donné des machines de Turing, il est légitime de se demander si elles s arrêtent ou non, l on peut en effet créer des machines de Turing qui ne s arrêtent jamais. Nous allons montrer que le problème d arrêt est indécidable, en d autres termes, que l on ne peut pas avoir de machine Turing qui réponde à la question «es ce qu un machine Turing va s arrêter ou non?» Définition notons alors ϕ p (x) si le résultat du calcul de p sur x n est pas défini et ϕ p (x) si il est défini. Enonçons alors le théorème de non décidabilité du problème d arrêt : Théorème 2.3. Il n existe pas de programme (de machine de Turing) qui s arrête toujours et qui donne le résultat «vrai» si ϕ p (x) et «faux» si ϕ p (x) Démonstration. Raisonnons par l absurde : si un tel programme P existe. Nous allons alors le modifier pour obtenir un programme Π qui est tel que sa représentation fonctionnelle ψ vérifiée : { si ϕp (< p, x >) ψ(p, x) = sinon Mais, par construction ψ(.) représente le programme Π. Mais alors, comment se comporte ce programme quand un codage de lui-même lui est présenté? autrement dit que vaut ψ(π, Π)? Par définition on a : 4

5 { si ϕp (< Π, Π >) ψ(π, Π) = sinon donc si ψ(π, Π) alors par définition, nous avons ψ(π, Π) et si ψ(π, Π) on a alors ψ(π, Π). D où la contradiction. Ce théorème vas nous servir à démontrer les théorème de non décidabilité de la détection viral. 2.3 Théorèmes de la non décidabilité de la détection viral Maintenant que la notion de virus est précisée, nous allons pouvoir démontrer que le problème de la détection virale est un problème indécidable. Théorème 2.4. Il n existe pas de programme (de machine de Turing), qui pour toute machine de Turing et tout ensemble V, s arrête toujours et qui donne le résultat «vrai» si (M, V ) V, et «faux» sinon Démonstration. L idée de la preuve est de se ramener au problème d arrêt d une machine de Turing. Pour une machine M et une donnée v arbitraires, on va alors créer une machine M et un mot v tels que (M, {v}) V si et seulement si ϕ p (x). Ainsi, déterminer si (M, {v}) V sera équivalent à déterminer si la machine de Turing M avec la donnée d entré v s arrête ou non, or comme M et v sont arbitraires alors si on pouvait déterminer si (M, {v}) V l on résoudrait le problème d arrêt des machines de Turing, qui est indécidable, donc une telle machine n existe pas. Montrons alors comment on peut créer un tel couple (M, {v}), pour ce faire, nous allons décrire simplement en substance ce que fait cette machine (la mise en place des notations serait lourde et peu utile). Tout d abord nous admettrons que l on dispose des machines de Turing élémentaires que l on pourra intégrée à des machines de Turing plus complexes : G(z) qui fait parcourir la bande de calcul vers la gauche à la tête jusqu à rencontrer la lettre z D(z) qui fait parcourir la bande de calcul vers la droite à la tête jusqu à rencontrer la lettre z CP I(x, y, z) qui pour les trois lettres x, y et z (classées dans cette ordre sur la bande de calcul) copie les caractères se trouvant entre x et y après le premier caractère z rencontré en allant vers la droite après y. Ensuite il nous faut remarquer que l on peut supposer que pour la machine M on a : G, D, g, d I M (quitte à changer de caractère) et l on peut aussi supposer que la bande de calcul n est utilisé que vers la droite (quitte à ajouter des états à la machine et utiliser les cases vides paires comme les case de gauche et les cases vides impaires comme les case de droite, cela est possible puisque la donnée v de départ sera délimité par g et d, donc on peu aller et venir facilement d un bout à l autre du mot, et le caractère d peu servir de marqueur à d entré de la zone où les cellules sont alternés). 5

6 Ensuite l on considère la machine M qui s arrête immédiatement si le premier caractère n est pas un G, puis applique CP I( g, d, D ) puis se place au début de cette copie puis simule l action de M sur cette copie (ce qui est possible en ajoutant les états de cette machine à ceux de M), ce qui ne pause aucun problème puisque l on a supposé que la bande n est utilisée que vers la droite. Enfin, si le calcul de M ne se termine pas, la machine tourne indéfiniment, sinon une foi le clacul de M terminé l on fait recopier à M la séquence originale (grâce à CP I( G, D, D )). Comme G I M alors la simulation de M ne peut pas produire un virus pour M, car tout programme qui ne s arrête pas immédiatement dans M doit commencer par G. Ainsi pour v = Ggv dd on a bien que (M, {v}) V si et seulement si ϕ p (x). Et avec le raisonnement vu ci-dessus et le théorème de non décidabilité de l arrêt d une machine de Turing l on a le résultat. Ainsi l on montre qu une détection virale parfaite (qui détecte touts les virus et qui ne produit jamais de fausse alerte) est impossible et nous invite à une vigilance constante en matière de sécurité informatique Réflexion sur la possibilité de détection virale Par un raisonnement similaire l on peut également démontrer que déterminer si un virus v est une évolution d un autre virus v est un problème indécidable. Ainsi cela nous montre que la détection qui serait basée sur une analyse de l évolution a aussi ses limites. A un tout autre niveau que celui des machines de Turing, l on pourrait faire un raisonnement par l absurde pour montrer le théorème 2.4. S il existait un programme D qui permettait de déterminer si un programme est viral ou non, alors on pourrait écrire le programme, avec un langage de haut niveau : CV()= {... {si non D(CV()) alors infection() ;} fin si aller au programme suivant} Ainsi si D(CV())= vrai alors l infection n aura pas lieu et donc le programme ne sera pas viral, et si D(CV())=faux alors l infection aura lieu et donc le programme D n aura pas détecté un programme viral. Ainsi un tel programme D ne peut pas exister, et donc là encore, cela prouve que la détection virale parfaite est impossible dés qu il est possible d écrire un code de ce type. Face à ce constat d impossibilité d obtenir une détection parfaite, il s agit de développer les outils les plus performants possibles. Ce qui sera l objet de la partie suivante. 6

7 3 Illustrations et ouvertures Dans cette partie nous présenterons quelques illustrations de propriétés montrées dans les travaux théoriques de Fred Cohen, mais aussi des illustrations des méthodes utilisées par les concepteurs de virus ou d antivirus 2. Ces illustrations seront présentées en langage Caml. Dans la mesure ou Caml-light ne se prête pas excessivement bien à l écriture de virus qui nécessite de faire des recherches de fichiers, mais aussi des fonction performantes d accès en écriture aux fichiers, afin de les infecter, nous ne présenterons donc qu une quine 3, ou une partie seulement du code. Mais ces exemples ont pour but de compléter de façon personnelle l exposé théorique et la formalisation présentée précédemment. Nous nous limiterons donc aux virus en code source, qui ne représentent qu une infime partie des virus informatiques, mais nous suffisent pour les exemples que nous avons choisi de présenter. Nous finirons enfin avec des réflexions plus générales sur les virus et notre cohabitation avec eux. 3.1 L évolution virale Exemple d ensemble V de cardinal infini. Comme nous l avons vu précédemment, on peut démontrer qu il existe une machine de Turing M, et un ensemble V tels que (M, V ) V et V = N. Nous allons illustrer cette propriété en proposant une quine en Caml qui recopie son propre code, mais ajoute un caractère aléatoire de commentaire à chaque exécution. Ainsi on comprend bien comment on peut créer un tel ensemble 4 (nous supposerons que le module random est déjà ouvert ; bien qu il soit possible de le faire ouvrir par le programme) : print string s ; print string r ; print char (char of int 34) ; print string s ; print char ( ; print char * ;print char (char of int (random int 42)) ;print char * ; print char ) ; print char (char of int 34) ;print char a ;print char n ;print char d ;print char ;print char r ;print char = ;print char (char of int 34) ; print string r ; print char (char of int 34) ; print char ; ; print char ; ; where s="print string s ; print string r ; print char (char of int 34) ; print string s ; print char ( ; print char * ;print char (char of int (random int 128)) ;print char * ; print char ) ; print char (char of int 34) ;print char a ;print char n ;print char d ;print char ;print char r ;print char = ;print char (char of int 34) ; print string r ; print char (char of int 34) ; print char ; ; print char ; "and r=" ; where s=" ; ; 2 Bien qu une détection viral soit parfaite les antivirus atteignes aujourd hui des taux de détection de prés de 99% sur les virus connus et de 80% sur des virus inconnues. 3 Il suffirait alors simplement d ajouter un module de recherche de fichiers et de copier le virus vers ce canal, plutôt que vers l écran, pour rendre le programme viral. 4 Si l on trouve que l ajout d un caractère en note ne change pas réellement le programme, l on pourrait pas exemple ajouter la commande d impression d un espace. 7

8 Cette quine se recopie et intègre un commentaire dans un des deux les texte entre guillemets qu il lui permet de se recopier, ainsi à l étape suivante ce commentaire s ajoutera au code, et ainsi de suite. Ce type de virus permet de montrer la limite de la détection par recherche de code (le scanning). En effet, ici, une simple recherche de code ne permet pas de garantir ou non la présence du virus. L on pourrait alors développer des moyens plus subtils que la simple recherche de code ; mais alors, il serait possible de développer des moyens plus habiles de parade contre ces méthodes. Par exemple, il pourrait être possible de rajouter aléatoirement des espaces Virus montrant une des difficultés de la détection par émulation Afin d illustrer la propriété de non décidabilité de la détection virale, l on pourrait créer un virus résident produisant un descendant dont le temps de «reproduction» serait doublée à chaque génération, ainsi l on aurait un exemple de virus qui montrerait bien le lien entre la non décidabilité de la détection virale et le problème de l arrêt du calcul d une machine de Turing. En effet, la difficulté du problème d arrêt repose sur le fait que l on ne connait pas à priori le temps de calculs (s il se finit), et ce virus lui aussi aurait un temps avant infection qui pourrait devenir aussi long que l on veut. Ainsi ce virus illustrerait la difficulté de la détection viral. Ce virus ne représenterait pas un danger majeur car son activité deviendrait vite insignifiante Les problèmes liés aux signatures Afin d éviter la sur-infection les virus marquent (en entête par exemple) les programmes infectés, cela permet de limiter au maximum les opérations (et l espace mémoire occupé), qui pourraient alerter l utilisateur si elles sont en trop grand nombre. Mais cette signature est bien souvent utilisée par des antivirus pour détecter leur présence. Des virus plus aboutis ont un système de signature mouvante qui lui permet de repérer sa présence mais rend beaucoup plus difficile la détection. 3.2 Analyse spectrale Comme cela est pratiqué en cryptanalyse (qui est d ailleurs utile pour certains virus cryptés) on peut procéder par analyse spectrale pour rechercher des programmes potentiellement infectés. Pour nous, il s agit de rechercher des commandes «exotiques» qui sont couramment utilisées en programmation virale, mais beaucoup plus rarement en programmation traditionnelle. Ainsi par exemple la commande char of int 34 est relativement rare en programmation traditionnelle, mais est très utile pour les exemples présentés précédemment. Nous supposerons définie la fonction recherche occurrence qui pour recherche occurrence fichier n recherche le nombre d occurrences de la chaîne n dans le fichier. On peut ainsi mesurer la probabilité moyenne d apparition dans des programmes Caml 8

9 de tel ou tel chaîne, et si la valeur mesurée sur le fichier est supérieure et significativement supérieure à la moyenne 5. Ainsi un tel algorithme pourrait être : analyse spectrale canal n seuil moy pr n= let a =recherche occurrence canal n and b=in channel length canal in if (float of in a /. float of int b)/.moy pr n > seuil then print string "risque" ; ; De tels algorithmes peuvent servir dans des antivirus (avec un seuil relativement haut) et peuvent aussi être utilisés par les laboratoires cherchant à localiser des virus encore inconnus pour les ananlyser, et fournir une description utilisable par les antivirus, pour permettre la détection et la désinfection. 3.3 Analyse critique d un virus élémentaire Afin de présenter concrètement les caractéristiques essentielles que doivent présenter les virus modernes, nous allons réaliser une critique d un virus rudimentaire écrit en bash : for i in.sh ; do # pour tout fichier avec l extension sh if test "./$i"!="$0" ; then # si cible du fichier infectant tail -n 5 $ 0 cat >>$i ; # ajouter le code du virus fi done Ce programme recherche tous les autres fichiers comportant l extension.sh et ajoute son propre code à la fin de ces fichiers. Nous allons présenter en deux parties les arguments en faveur et en défaveur de ce virus élémentaire : Ce programme ne fait que 91 octets ce qui le rend très discret. D autre part, il vient s ajouter à la fin d un script, ce qui réduit le nombre d opérations à réaliser pour l infection. Le fait que le virus soit situé à la fin du programme fait qu il est exécuté en toute fin et don,c qu il n est pas systématiquement exécuté lorsque le programme qu il parasite l est. Le code comme présenté ici est très lisible, ce qui le rend facilement détectable par un lecteur. Ce virus a une action limitée au répertoire courant. De plus les fichier d extension.sh sont relativement peu courants, ce qui limite l action de ce virus. D autre part le virus ne vérifie pas si le fichier qu il va infecter est déjà infecté, ce qui peut produire une surinfection qui sera rapidement démasquée par l utilisateur qui remarquera la présence de ces lignes de code en nombre à la fin de son fichier, ou alors, l augmentation de la taille alertera l utilisateur. De plus la petite taille de ce code peut constituer une signature qui sera recherchée par un antivirus (car ce virus n est pas polymorphe). Enfin, bien que cela ne soit en aucun cas une caractéristique d un virus, ce virus ne comporte pas de charge finale, cela produit donc un virus qui est relativement peu «utile», 5 Là encore il n est bien sûr pas question de détecter tous les codes viraux et seulement ceux là, et donc, le seuil peut être fixé en fonction du niveau de sécurité que l on souhaite obtenir, au risque de déclencher de fausses alertes. 9

10 ce virus peut constituer une charge finale en lui-même en alourdissant les fichiers si l utilisateur ne l élimine pas. Ainsi ce virus est un relativement mauvais virus. Mais certains points évoqués précédemment pourraient bien sûr être améliorés. 3.4 Remarque sur le comportement humain Comme nous l avons déjà évoqué, créer un système empêchant les virus de se propager, reviendrait à se priver de bien des utilités de l informatique. C est alors à l utilisateur de comprendre cela et d adopter une position de prudence en la matière. Car dans les infections informatiques le facteur humain est souvent très important. On se rappelle par exemple 6 du ver I love you qui a causé de très importants dégâts, et qui utilisait l argument d une lettre d amour pour inciter l utilisateur à ouvrir le message. Le paroxysme de ce phénomène est atteint avec les chaînes envoyées par , et qui demandent à être recopiées intégralement et envoyées à de nouveaux correspondants, ainsi on est face à un «virus» qui n a comme moyen de propagation que la persuasion du lecteur. Ainsi l on prend la mesure de l importance de l ingénierie sociale dans la conception d un virus. 3.5 La Désinfection Le problème de la désinfection est conditionné par la détection mais aussi par la connaissance du virus. Ainsi il faut pouvoir le supprimer dans les fichiers sans endommager le fichier. Mais là encore, les virus ont des moyens de défenses, certains procèdent par remplacement de code, cela a donc pour effet de détruire le programme original, et donc ce type de virus est presque impossible à désinfecter sans supprimer les fichiers. D autres virus, à l image des rétrovirus, s attaquent spécifiquement aux systèmes antivirus, cela peut alerter l utilisateur mais empêche la désinfection. Enfin pour certains virus à infection très rapide, l antivirus peut se révéler plus lent que le virus, ce qui fait que le bilan est négatif et le virus gagne immanquablement du terrain, et n est donc pas supprimé. Ce problème de vitesse a été résolu dans certain cas 7 par une désinfection par un autre virus informatique lancé sur les ordinateurs, ce virus devait désinfecter les fichiers infecter et se désinfecter lui même à partir d une date donnée. Ce dernier exemple nous montre que bien que nous soyons condamnés à vivre avec les virus il peuvent aussi nous apporter. 3.6 Les virus «utiles» Bien que cette notion ne soit pas très bien vue par les éditeurs d antivirus, il est possible de créer des virus utiles, qui permettent, par exemple, d assurer des taches d administration sur un réseau (sans avoir de programme résident). Il a déjà été envisagé par exemple de créer un virus qui gérerait la compression de fichiers 6 Les exemple de ce genre son plethore. 7 Comme par exemple dans la cas du ver Creeper qui devait éliminer un autre ver qui avais infecté un système de contrôle aérien. 10

11 peu utilisés, en les cherchant, puis en les compressant et enfin en s y copiant. Enfin des vers (qui sont des virus adaptés aux réseaux) peuvent permettre de maintenir à jour, ou faire du calcul distribué. 3.7 Ouverture sur la notion de virus Nous avons montré au 3.1 comment produire un ensemble potentiellement infini de ces pseudos virus. On pourrait même imaginer de faire un virus qui, à certaines duplications change de façon aléatoire des parties de son code. Dans bien des cas cette évolution rendrait non exécutable le programme, mais parfois elle pourrait produire des améliorations du programme. Ainsi l on peut fantasmer une évolution darwinienne dans un ordinateur où les meilleurs programmes prendraient le pas sur les virus ne pouvant pas faire face à la pression exercée par les autres virus pour occuper l espace mémoire. On retrouve cette idée dans le jeu corwar 8 où deux programmes s affrontent sur un espace mémoire très limité et doivent éliminer leur adversaire, mais dans ce jeu il n est pas question d évolution, il illustre simplement comment peut se faire une «sélection naturelle». Il est à noter que le nom de virus est particulièrement bien choisi car le parallèle avec la biologie peut être poussé assez loin, en effet les mécanismes sont assez proches, et les programmateurs se sont inspiré des mécanismes naturels pour programmer de virus. Conclusion La notion de virus est encore mal connue aujourd hui. Elle est mystifiée par des professionnels de la sécurité informatique qui souhaitent souvent conserver un monopole intellectuel sur ce sujet. Il est ainsi courant de rencontrer un refus catégorique lorsque sont proposés des tests grandeur nature d évaluation de sécurité des systèmes informatiques, car il est fréquent que des décideurs pensent qu un problème non diagnostiqué n existe pas. Ainsi il est important de reprendre la définition et de rappeler les possibles et les impossibles en la matière 9. Mais il est important aussi que la virologie informatique se développe car le potentiel stratégique des virus informatiques est énorme. En effet, d importants dégâts ont été causés par des virus développés par des individus seuls. On peut donc imaginer les conséquences que pourraient avoir une attaque massive menée par un état. 8 C est d ailleurs pour ce jeu qu ont été crées les premiers virus informatiques 9 Le théorème de non décidabilité de la détection virale contre bien des slogans outranciers de sociétés commercialisant des antivirus. 11

12 Références [1] Fred Cohen (1985) Computer Viruses [2] Fred Cohen (1994) A Short Course on Computer viruses [3] Eric Filiol (2004) Les virus informatiques : théorie, pratique et applications [4] Article Wikipedia sur les Machines de Turing 12

13 Annexe Description succincte, et intuitive des machines de Turing Une machine de Turing M est composée de trois parties Une unité de stockage (ou bande de calcul), qui est de longueur infinie et est divisée en cellules qui contiennent chacune un caractère d un alphabet (fini) donné, dont le vide est un caractère. Le nombre de cellules non vides sera fini. Cette bande permet en début de calcul d apporter les données du calcul à la machine, en cours de calcul de servir d unité de stockage, puis en fin de calcul de donner les données de sortie. Une tête de lecture et d écriture qui se déplace le long de la bande de calcul, en traitant une cellule à la fois, puis se déplace vers la droite ou la gauche. Cette tête permet ainsi de désigner la cellule courante et permet de lire, puis d écrire un nouveau caractère sur la bande, avant de se déplacer. Une fonction de contrôle qui pilote la tête. Cette fonction contient l état de la machine qui est une forme de mémoire de cette machine. Ainsi si S désigne l ensemble fini des états de la machine et I l alphabet, on a que F : S I S I {G, 0, D}. Ainsi la fonction est dans un état donné et la tête lui transmet le caractère lu sur la bande de calcul. La fonction va passer dans un nouvel état, va faire remplacer le caractère contenu dans la cellule de la bande de calcul, et va indiquer à la tête si elle doit rester dans la même position, ou aller sur la cellule de gauche ou de droite. Si bien que la machine M est caractérisée par sa fonction F. Ainsi, si le calcul de la machine de Turing s arrête, Lorsque l on est en situation ou la tête ne bouge plus,et l état non plus tout comme le caractère contenu par la cellule courante. Cette notion de machine de Turing ne semble pas suffisante pour décrire le fonctionnement des ordinateurs actuels, car une machine correspond à une seule fonction à priori. Ainsi nous allons définir la notion de machine de Turing universelle. Définition Une machine de Turing universelle U est une machine de Turing qui, sur des données d entrée décrivant d une part une machine de Turing M donnée, et d autre part une donnée d entrée x pour cette machine, simule l action de M sur x, autrement dit calcule M(x). On note U(M; x) = M(x). Une telle machine peut émuler l action de toute autre machine sur une donnée. Nous ne développerons pas les techniques de représentation d une telle machine M sur la bande de calcul, mais nous supposerons que cela est possible. 13

LES DECIMALES DE π BERNARD EGGER

LES DECIMALES DE π BERNARD EGGER LES DECIMALES DE π BERNARD EGGER La génération de suites de nombres pseudo aléatoires est un enjeu essentiel pour la simulation. Si comme le dit B Ycard dans le cours écrit pour le logiciel SEL, «Paradoxalement,

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES

RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES LE GUIDE RÈGLE N 1 : SAUVEGARDEZ VOS DONNÉES On ne le répétera jamais assez : sans protection, les virus, vers et autres chevaux de Troie peuvent s inviter en moins d une seconde sur votre PC. Même si

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Texte Agrégation limitée par diffusion interne

Texte Agrégation limitée par diffusion interne Page n 1. Texte Agrégation limitée par diffusion interne 1 Le phénomène observé Un fût de déchets radioactifs est enterré secrètement dans le Cantal. Au bout de quelques années, il devient poreux et laisse

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Utilisez Toucan portable pour vos sauvegardes

Utilisez Toucan portable pour vos sauvegardes Utilisez Toucan portable pour vos sauvegardes Préambule Toucan est un logiciel libre et gratuit, permettant de réaliser des sauvegardes ou synchronisation de vos données. Il est possible d automatiser

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

Modèles et simulations informatiques des problèmes de coopération entre agents

Modèles et simulations informatiques des problèmes de coopération entre agents Modèles et simulations informatiques des problèmes de coopération entre agents Bruno Beaufils LIFL Axe CIM Équipe SMAC Laboratoire d'informatique Plan 1. Motivations 2. Dilemme itéré du prisonnier 3. Simulations

Plus en détail

Suites numériques 3. 1 Convergence et limite d une suite

Suites numériques 3. 1 Convergence et limite d une suite Suites numériques 3 1 Convergence et limite d une suite Nous savons que les termes de certaines suites s approchent de plus en plus d une certaine valeur quand n augmente : par exemple, les nombres u n

Plus en détail

Transmission d informations sur le réseau électrique

Transmission d informations sur le réseau électrique Transmission d informations sur le réseau électrique Introduction Remarques Toutes les questions en italique devront être préparées par écrit avant la séance du TP. Les préparations seront ramassées en

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D

ÉPREUVE COMMUNE DE TIPE 2008 - Partie D ÉPREUVE COMMUNE DE TIPE 2008 - Partie D TITRE : Les Fonctions de Hachage Temps de préparation :.. 2 h 15 minutes Temps de présentation devant le jury :.10 minutes Entretien avec le jury :..10 minutes GUIDE

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Notions de sécurités en informatique

Notions de sécurités en informatique Notions de sécurités en informatique Bonjour à tous, voici un article, vous proposant les bases de la sécurité informatique. La sécurité informatique : Vaste sujet, car en matière de sécurité informatique

Plus en détail

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN

Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Nombres, mesures et incertitudes en sciences physiques et chimiques. Groupe des Sciences physiques et chimiques de l IGEN Table des matières. Introduction....3 Mesures et incertitudes en sciences physiques

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun> 94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue

Plus en détail

Problèmes de Mathématiques Filtres et ultrafiltres

Problèmes de Mathématiques Filtres et ultrafiltres Énoncé Soit E un ensemble non vide. On dit qu un sous-ensemble F de P(E) est un filtre sur E si (P 0 ) F. (P 1 ) (X, Y ) F 2, X Y F. (P 2 ) X F, Y P(E) : X Y Y F. (P 3 ) / F. Première Partie 1. Que dire

Plus en détail

La fonction exponentielle

La fonction exponentielle DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction

Plus en détail

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2) Objectifs du cours d aujourd hui Informatique II : Cours d introduction à l informatique et à la programmation objet Complexité des problèmes Introduire la notion de complexité d un problème Présenter

Plus en détail

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs!

CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE. Information importante : Ces conseils ne sont pas exhaustifs! CONSEILS POUR LA REDACTION DU RAPPORT DE RECHERCHE Information importante : Ces conseils ne sont pas exhaustifs! Conseils généraux : Entre 25 et 60 pages (hormis références, annexes, résumé) Format d un

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Jean-Pierre Lovinfosse. En finir. avec les virus. Groupe Eyrolles,2004 ISBN 2-7464-0496-6

Jean-Pierre Lovinfosse. En finir. avec les virus. Groupe Eyrolles,2004 ISBN 2-7464-0496-6 Jean-Pierre Lovinfosse En finir avec les virus Groupe Eyrolles,2004 ISBN 2-7464-0496-6 Introduction............................................ 7 Chapitre 1 : Historique...................................

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Désinfection de Downadup

Désinfection de Downadup Désinfection de Downadup Historique des versions de documentations N de version Eléments modifiés Date Rédacteur 1.0 Version Initial 15/03/2010 BOURGINE Christopher 1 BitDefender propose un outil de désinfection

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

Eteindre. les. lumières MATH EN JEAN 2013-2014. Mme BACHOC. Elèves de seconde, première et terminale scientifiques : MTH EN JEN 2013-2014 Elèves de seconde, première et terminale scientifiques : Lycée Michel Montaigne : HERITEL ôme T S POLLOZE Hélène 1 S SOK Sophie 1 S Eteindre Lycée Sud Médoc : ROSIO Gauthier 2 nd PELGE

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Consignes pour les travaux d actualité Premier quadrimestre

Consignes pour les travaux d actualité Premier quadrimestre Consignes pour les travaux d actualité Premier quadrimestre Principes de base Durant le premier semestre, vous serez amenés à remettre un travail effectué en groupe. Le but de celui-ci est de s intéresser

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34 Capacité d un canal Second Théorème de Shannon Théorie de l information 1/34 Plan du cours 1. Canaux discrets sans mémoire, exemples ; 2. Capacité ; 3. Canaux symétriques ; 4. Codage de canal ; 5. Second

Plus en détail

Perspective : la sauvegarde croisée

Perspective : la sauvegarde croisée A Perspective : la sauvegarde croisée Et si, grâce à la redondance et au chiffrement, les réseaux pair-à-pair assuraient bientôt la sauvegarde de vos données? La quantité de données personnelles stockées

Plus en détail

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France. La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of

Plus en détail

TUTORIEL Qualit Eval. Introduction :

TUTORIEL Qualit Eval. Introduction : TUTORIEL Qualit Eval Introduction : Qualit Eval est à la fois un logiciel et un référentiel d évaluation de la qualité des prestations en établissements pour Personnes Agées. Notre outil a été spécifiquement

Plus en détail

Introduction à l étude des Corps Finis

Introduction à l étude des Corps Finis Introduction à l étude des Corps Finis Robert Rolland (Résumé) 1 Introduction La structure de corps fini intervient dans divers domaines des mathématiques, en particulier dans la théorie de Galois sur

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Limites finies en un point

Limites finies en un point 8 Limites finies en un point Pour ce chapitre, sauf précision contraire, I désigne une partie non vide de R et f une fonction définie sur I et à valeurs réelles ou complees. Là encore, les fonctions usuelles,

Plus en détail

Cryptographie et fonctions à sens unique

Cryptographie et fonctions à sens unique Cryptographie et fonctions à sens unique Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Octobre 2012 P.Rouchon (Mines ParisTech) Cryptographie et fonctions

Plus en détail

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB

Mode d emploi de la clef USB de l I.P.I. Philosophie de la clef USB Mode d emploi de la clef USB de l I.P.I. Ce mode d emploi est destiné aux étudiant(e)s qui suivent l enseignement de la Phytothérapie Clinique prodigué par l I.P.I. (Institut de Phytothérapie International)

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

Image d un intervalle par une fonction continue

Image d un intervalle par une fonction continue DOCUMENT 27 Image d un intervalle par une fonction continue La continuité d une fonction en un point est une propriété locale : une fonction est continue en un point x 0 si et seulement si sa restriction

Plus en détail

Faits techniques et retour d'expérience d'une cellule d'expertise dans la lutte contre le code malveillant. EdelWeb / Groupe ON-X

Faits techniques et retour d'expérience d'une cellule d'expertise dans la lutte contre le code malveillant. EdelWeb / Groupe ON-X 1 OSSIR 2007/11/12 Faits techniques et retour d'expérience d'une cellule d'expertise Jérémy Lebourdais Mickaël Dewaele jeremy.lebourdais (à) edelweb.fr mickael.dewaele (à) edelweb.fr EdelWeb / Groupe ON-X

Plus en détail

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples.

LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples. LEÇON N 7 : Schéma de Bernoulli et loi binomiale. Exemples. Pré-requis : Probabilités : définition, calculs et probabilités conditionnelles ; Notion de variables aléatoires, et propriétés associées : espérance,

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Seconde Généralités sur les fonctions Exercices. Notion de fonction. Seconde Généralités sur les fonctions Exercices Notion de fonction. Exercice. Une fonction définie par une formule. On considère la fonction f définie sur R par = x + x. a) Calculer les images de, 0 et

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail

Chapitre 1 Qu est-ce qu une expression régulière?

Chapitre 1 Qu est-ce qu une expression régulière? Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en

Plus en détail

Des applications locales à l infonuagique: comment faire la transition?

Des applications locales à l infonuagique: comment faire la transition? : comment faire la transition? Congrès des milieux documentaires 30 novembre 2011 / m.sevigny@umontreal.ca Directeur Bureau des systèmes Direction des bibliothèques - UdeM 2 / 15 Plan de la présentation

Plus en détail

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité?

Xi Ingénierie. La performance technologique au service de votre e-commerce. Comment exploiter les cookies sur vos applications web en toute légalité? Xi Ingénierie La performance technologique au service de votre e-commerce Comment exploiter les cookies sur vos applications web en toute légalité? Copyright 2012 Xi Ingénierie Toute reproduction ou diffusion

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

ISEC. Codes malveillants

ISEC. Codes malveillants ISEC s malveillants Jean Leneutre jean.leneutre@telecom-paristech.fr Bureau C234-4 Tél.: 01 45 81 78 81 INF721, 2011-12. Page 1 q malveillant («malware» ou «rogue program») Ensemble d instruction permettant

Plus en détail

Qu'est-ce qu'un virus?

Qu'est-ce qu'un virus? Page Page 2 Qu'est-ce qu'un virus? Un virus est un programme qui a plusieurs objectifs distincts : -le principe même d un virus est de s'étendre de machine en machine (le code est dit auto-reproductible).

Plus en détail

La mémoire. Un ordinateur. L'octet. Le bit

La mémoire. Un ordinateur. L'octet. Le bit Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

TP 1 Prise en main de l environnement Unix

TP 1 Prise en main de l environnement Unix Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

TP : Gestion d une image au format PGM

TP : Gestion d une image au format PGM TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

Méthode universitaire du commentaire de texte

Méthode universitaire du commentaire de texte Méthode universitaire du commentaire de texte Baptiste Mélès Novembre 2014 L objectif du commentaire de texte est de décrire la structure argumentative et de mettre au jour les concepts qui permettent

Plus en détail

Synthèse «Le Plus Grand Produit»

Synthèse «Le Plus Grand Produit» Introduction et Objectifs Synthèse «Le Plus Grand Produit» Le document suivant est extrait d un ensemble de ressources plus vastes construites par un groupe de recherche INRP-IREM-IUFM-LEPS. La problématique

Plus en détail

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION DES NOMBRES par Jean-Luc BREGEON professeur formateur à l IUFM d Auvergne LE PROBLÈME DE LA REPRÉSENTATION DES NOMBRES On ne conçoit pas un premier enseignement

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

Algorithmique et programmation : les bases (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté Compétences travaillées : Mettre en œuvre un protocole expérimental Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique

Plus en détail

Création d un «Web Worm»

Création d un «Web Worm» Création d un «Web Worm» Exploitation automatisée des failles web Simon Marechal Thales Security Systems Consultant Risk Management 1 Création d un ver exploitant une faille web 1.1 Introduction Les applications

Plus en détail

Logiciel de Base. I. Représentation des nombres

Logiciel de Base. I. Représentation des nombres Logiciel de Base (A1-06/07) Léon Mugwaneza ESIL/Dépt. Informatique (bureau A118) mugwaneza@univmed.fr I. Représentation des nombres Codage et représentation de l'information Information externe formats

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

Désinfecte les réseaux lorsqu ils s embrasent

Désinfecte les réseaux lorsqu ils s embrasent Defend what you create Désinfecte les réseaux lorsqu ils s embrasent Utilitaire réseau à gestion centralisée pour le traitement des postes de travail et des serveurs regroupés dans un réseau local et fonctionnant

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

La messagerie électronique (niveau 1) Module Internet. Médiathèque de Haguenau - mediatheque.ville-haguenau.fr

La messagerie électronique (niveau 1) Module Internet. Médiathèque de Haguenau - mediatheque.ville-haguenau.fr Module Internet La messagerie électronique (niveau 1) Médiathèque de Haguenau - mediatheque.ville-haguenau.fr Espace Cyber-base de la médiathèque de Haguenau 1 Sommaire Sommaire 2 I. Le courrier électronique

Plus en détail

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France

Théorie et Codage de l Information (IF01) exercices 2013-2014. Paul Honeine Université de technologie de Troyes France Théorie et Codage de l Information (IF01) exercices 2013-2014 Paul Honeine Université de technologie de Troyes France TD-1 Rappels de calculs de probabilités Exercice 1. On dispose d un jeu de 52 cartes

Plus en détail

Gestion de gros fichiers binaires (images) en APL*PLUS III

Gestion de gros fichiers binaires (images) en APL*PLUS III Gestion de gros fichiers binaires (images) en APL*PLUS III par Gérard A. Langlet Lun des nombreux problèmes que nous avons rencontrés en APL concerne l impression d images, constituées en fait de grosses

Plus en détail

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview.

ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. ET 24 : Modèle de comportement d un système Boucles de programmation avec Labview. Sciences et Technologies de l Industrie et du Développement Durable Formation des enseignants parcours : ET24 Modèle de

Plus en détail

2.0 Interprétation des cotes d évaluation des risques relatifs aux produits

2.0 Interprétation des cotes d évaluation des risques relatifs aux produits 2.0 Interprétation des cotes d évaluation des risques relatifs aux produits L interprétation des cotes attribuées dans le cadre des évaluations des risques relatifs aux produits décrite plus loin repose

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Les indices à surplus constant

Les indices à surplus constant Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté

Plus en détail