1988 - Ver Morris
Par Vincaria le mardi 26 mai 2009, - Secrets - Lien permanent
Né en 1965, Robert
Tappan Morris est le fils de Robert Bob Morris, chercheur aux Laboratoires
Bell
de 1960 à 1986 et spécialiste des questions de cryptographie. Robert
Bob Morris contribue aux premières versions du système d'exploitation
Unix
et est l'auteur du
programme crypt
utilisé sur ce même système.
En 1988 durant ses études à l'Université
de Cornell
, Robert Tappan Morris conçoit un programme dans le but de
mesurer la taille du réseau Internet. Le programme a pour objectif de
s'introduire sur les systèmes Unix reliés au réseau Internet et de se répliquer
pour propager son activité.
L'infection mise en oeuvre est basée sur trois failles
des systèmes
Unix de l'époque :
- un bug dans le programme de gestion du courrier
sendmail
- un bug dans le programme de gestion du service
fingerd
- les relations d'approbations entre systèmes sur les services
rexec
etrsh
Le programme, une fois introduit sur un système, doit tout d'abord vérifier que
ce système n'est pas déjà infecté
. Afin de contrer toute action
préventive
des administrateurs systèmes envers son programme, Robert
Morris implémente un mécanisme qui, quelque soit le statut du système hôte,
force la reproduction du programme.
Le 2 novembre 1988, Robert Morris introduit son programme sur les serveurs Unix
du [MIT
afin de ne pas impliquer
directement l'Université Cornell où il est étudiant. Seuls les systèmes 4
BSD
Unix sous DEC VAX
et Sun 3
peuvent être infectés par le
programme. Néanmoins, le mécanisme de reproduction forcée mise en place par
Robert Morris va favoriser l'infection sur le réseau Internet, mais va
également engendrer une saturation des ressources de chaque système.
En quelques jours, ce sont plus de 6.000 serveurs Unix qui vont être infectés
sur un parc d'environ 60.000 serveurs reliés au réseau Internet de l'époque,
soit un taux d'infection de 10%.
De par la nature de son activité le programme est rapidement défini comme
ver informatique
et la presse s'empare de l'affaire. En 1988 les virus
informatiques sont encore peu nombreux et leur définition repose principalement
sur la capacité de ces derniers à altérer le contenu d'un système d'une part et
sur leur mode de propagation d'autre part. Les virus sont globalement injectés
dans les systèmes via les systèmes de disques amovibles (ou disquettes) et leur
mode opératoire repose sur une période d'inactivité pendant laquelle le virus
est dit "dormant". Ce n'est qu'au réveil que le virus déclenche sa charge
explosive
et altère le système pour s'y reproduire.
A l'opposé, un ver informatique obtient l'accès à un système informatique via
un réseau et une fois installé, il recherche de nouvelles cibles potentielles
qu'il tentera d'infecter une nouvelle fois via le réseau. Contrairement au
virus, le ver informatique ne nécessite pas d'intervention de l'utilisateur, il
est autonome et donc toutes les machines reliées entre elle sur un même réseau
(ici Internet) sont vulnérables. Le terme ver informatique
fit son
apparition pour la première fois en 1975 dans un livre de science-fiction de
John Brunner intitulé The Shockwave
Rider
.
Il est important de souligner la conception non-agressive
du ver de
Robert Morris :
- Aucune destruction ou altération de composants physiques
- Aucune destruction ou altération de fichiers
- Aucune transmission externe de mots de passe
- Aucun mécanisme de mise en veille du ver
- Aucun mécanisme de reproduction via disques amovibles
L'analyse du ver, composé d'à peine une centaine de lignes de code (99 lignes
exactement), montre qu'il a été conçu pour se déplacer de serveurs en serveurs
sans laisser de traces afin de réaliser un comptage
des serveurs
présents sur le réseau Internet.
Le développement de Robert Morris intégrant un mécanisme de reproduction
forcée, ce qui ne devait être qu'un processus Unix léger et temporaire, s'est
transformé en ver cannibale incapable de freiner sa consommation de ressources.
La multiplication des processus entraine également un effondrement des
performances de chaque serveur infecté.
Dans la soirée du 2 novembre 1988, les évènements s'enchainent de manière très
rapide:
- 18h00 : lancement du ver
- 20h49 : un VAX de l'Université de l'Utah est infecté
- 21h09 : la première attaque par rebond depuis le VAX est initiée
- 21h21 : la charge (
load-average
) du VAX passe à 5 - 21h41 : la charge (
load-average
) du VAX passe à 7 - 22h01 : la charge (
load-average
) du VAX passe à 16 - 22h06 : le VAX ne peut plus lancer de nouveaux processus
- 22h20 : les administrateurs systèmes éradiquent le ver
- 22h41 : le VAX et à nouveau infecté et sa charge monte à 27
- 22h49 : les administrateurs systèmes redémarre le VAX
- 23h21 : le VAX et à nouveau infecté et sa charge monte à 37
Le scénario va ainsi de reproduire sur plus de 6.000 serveurs Unix connectées
au réseau Internet, les rendant de fait inexploitables. Néanmoins durant la
nuit du 2 novembre au 3 novembre, des équipes au sein de l'Université de
Berkely en Californie et au Massachusetts Institute of Technology
réussissent à capturer des copies du ver et commencent à l'analyser.
Au petit matin du 3 novembre 1989, les équipes de Berkeley diffusent un patch
pour l'utilitaire sendmail
et émettent les préconisations permettant de
stopper l'infection sur les systèmes. Un rapport technique sur le ver Morris
est disponible sur le site de l'Université
Purdue
: The Internet Worm
Program: An Analysis
.
L'absence de coordination lors des attaques du ver poussera l'Agence DARPA à
fonder le centre de coordination CERT
(Computer Emergency Response Team
). Le CERT aura alors pour mission de
donner aux experts informatiques un point d'entrée unique permettant la
coordination des moyens en cas d'urgence.
Le 26 juillet 1989, Rober Morris est la première personne jugée selon la loi
Computer Fraud and Abuse Act
de 1986. La justice le condamme Robert
Morris à 10.050 dollars d'amende et 400 heures de travaux d'intérêt
général.