Tout le texte sur une seule page HTML... |
||||||
|
Avant de commencer Vous pouvez dupliquer ce document comme il vous semble - mais s'il vous plaît, ne le massacrez pas-, copiez *la totalité* du texte et citez-moi. J'apprécierai également si vous me tenez au courant de l'endroit où vous le publiez, juste pour en conserver une trace. Amicalement, NOTE DU TRADUCTEUR:
Première partie : Introduction à votre pire
cauchemar 1. Il y a dix ans, le ver de Morris utilisait une faiblesse commune à différents systèmes Unix pour prendre le contrôle des ordinateurs et se propager. Aujourd'hui, le même système d'exploitation est installé sur 90% des ordinateurs individuels. Un seul programme pourrait s'attaquer à toutes ces machines. 2. Il y a dix ans, Internet appartenait à une élite de spécialistes et de professionnels. Ils comprenaient parfaitement leurs ordinateurs et les administraient de près. Aujourd'hui tous les foyers ont un ordinateur et une connexion à Internet. Et l'utilisateur moyen ne connaît pas la différence entre "email" et "mpeg". 3. Il y a dix ans, Internet était principalement utilisé par des scientifiques, des universitaires et plus généralement pour la recherche. Aujourd'hui, c'est un vecteur essentiel de business. Des milliards de dollars transitent par Internet tous les jours sous tous type de formes et la plupart des sociétés seraient simplement incapables de faire leur business sans leurs systèmes d'information. L'utilisation généralisée de firewalls sur les réseaux informatiques est une faible aide pour prévenir le risque. Le risque n'est pas ici celui d'une attaque par un quelconque hacker sur Internet, mais un programme non désiré qui tourne sur un ordinateur à l'intérieur d'un réseau protégé. La partie qui suit décrit combien il serait simple de faire un tel programme. Au fur et à mesure de votre lecture, vous allez découvrir les effrayantes vérités suivantes: - Combien il est simple d'écrire un tel programme. Il en existe de nombreux similaires très connus. - Combien il est simple de le diffuser. Internet est est le système de distribution massive idoine et sa force est aussi sa faiblesse. - Combien il est simple de cacher un tel programme. L'utilisateur moyen ne comprend pas la moitié des process qui tournent légitimement sur son ordinateur et se rendra encore moins compte qu'un tel programme tourne sur son ordinateur que celui-ci fait son maximum pour être invisible. - Combien il est difficile d'arrêter un tel programme. Il peut se répandre à la vitesse de la lumière, prendre n'importe quelle forme, se cacher et muter à chaque nouvelle installation. Des dommages énormes pourraient être fait avant que sa propagation puisse être arrêtée. - Combien un tel programme peut être affreux. Ce type de software pourrait mettre à genoux des secteurs entiers de l'industrie. Une infection bien préparée et soutenue par de mauvaises intentions ferait du virus de Morris en 1988 une pâle version de la grippe. Alors, que peut-on faire pour prévenir un tel cauchemar? Pas grand chose, je le crains. Comme les habitants d'une île volcanique, nous devons être à l'écoute et espérer que nous pourrons nous rendre compte de l'éruption assez tôt pour éviter un désastre. Voici quelques précautions qu"une entreprise peut prendre: 1. Politique. L'utilisation de tous les programmes non expressément autorisés doit être interdite 2. Education de l'utilisateur, éducation de l'utilisateur, éducation de l'utilisateur. Apprenez à vos utilisateurs les dangers liés à l'utilisation de programmes obtenus de sources inconnues. 3. Audits. Réalisez des vérifications régulières pour savoir ce qui est installé et ce qui tourne sur les P.C. 4. Systèmes d'exploitation. Un système d'exploitation solide avec utilisateurs multiples peut minimiser les dommages réalisés par un virus ou un ver. Installez plutôt Windows NT que Windows 95 ou 98, envisagez l'utilisation d'autres systèmes d'exploitation comme Line ou BSD. Diversité. En mélangeant un certain nombre de systèmes d'exploitation, il est possible de minimiser les dommages réalisés par un virus ou un ver. Ceci introduit toutefois une complexité accrue dans la gestion de ces systèmes. 6. Sécurité réseau. Firewalls, cryptographie, sécurité des systèmes d'exploitation, etc. rendent la vie plus difficile au ver. En particulier, les détecteurs de virus, les détecteurs de contenu HTML, FTP et SMTP au niveau du firewall permettent aussi de se protéger contre ce type de dangers. N'excluez pas de détruire systématiquement les pièces jointes exécutables et autres contenus actifs. 7. IDS. Les systèmes intrusion détection (IDS) doivent détecter les attaques provenant de l'intérieur du réseau comme de l'extérieur 8. Pensez au pire. Mettez en place des plan de continuité et prévoyez des sites de back-up pour restaurer. Testez et utilisez ces systèmes. Pendant que vous lisez ce qui suit, imaginez les conséquences de la distribution d'un tel animal et demandez-vous combien de temps va s'écouler avant que vous vous disiez "Je suppose que cela devait arriver un jour..." Deuxième Partie: L'ossature de
base Le Package Le Package est un seul exécutable qui contient deux parties, un programme fonctionnel normal et l'Ingrédient Actif (IA). Le programme normal peut être n'importe quoi, mais doit être intéressant pour la communauté Internet. Parmi les exemples, on peut imaginer des économiseurs d'écran, des AVI, des MPEGs, des animations Flash, des softwares anti-virus, un nouveau logiciel de piratage ou même une solution anti virus. Ce type de package doit être customisé en fonction de son mode de diffusion: le réseau. Infection initiale Le package sera distribué via Internet. Cette opération est réalisée par des "robots" qui uploaderont ces packages sur des serveurs FTP, qui les posteront en masse par mail, repackageront des softwares existants pour y ajouter les IA et DCC de manière aléatoire aux utilisateurs sur l'IRC. Le net doit être inondé de programmes infectés, tous différents en taille et en fonctionnalité. Les méthodes classiques de propagation d'un virus peuvent aussi être utilisées. L'infection initiale pourrait durer environ deux mois. Au moment de la première exécution sur une
machine cliente - Installation: - Enregistrement sur le serveur: Activité de l'IA au jour le jour Suite du processus d'infection: Les IA extrairont les adresses e-mail contenues dans les carnets d'adresses des mailers classiques (Outlook, Netscape, Eudora). Les IA commenceront alors à envoyer des emails avec des pièces-jointes aux adresses collectées. L'attachement sera le package. Le rythme auquel les IA enverront les mails sera contrôlé via les fichiers de commandes récupérés sur les sites Web. Troisième partie: Comment ça marche? Infection initiale: - Bots de DCCsend - Bots FTP put - Bots de mail Notez que tous ces moyens de diffusion impliquent que le récipiendaire soit connecté d'une manière ou d'une autre au Net. L'IA lui-même peut être codé de manières différentes afin qu'il y ait des centaines de signatures différentes -ceci rendra la tâche plus compliquée pour les éditeurs d'anti-virus lorsqu'ils voudront créer un programme qui recherche une signature par le code. Premier contact L'IA doit être en mesure de se détecter lui-même. Cela permettra d'éviter que l'IA s'installe à chaque fois que le package est exécuté. Ceci peut être fait en "marquant" le host - cela ne révélera pas où l'IA est placé, mais juste que le host est infecté. Ce "marquage" compliquera encore plus le processus de détection car ce marquage devra être enlevé avant que le host puisse être réinfecté pour des tests. L'IA déterminera s'il est situé dans un environnement online (il peut établir une session avec une machine sur Internet). Si une connexion directe n'est pas possible, il déterminera si un proxy est présent et utilisera ce proxy pour se connecter à Internet. Idéalement, l'IA surveillera le trafic sur le port 80 et déterminera la meilleure voie de sortie -directe ou via un proxy. Comme cela pourrait impliquer l'installation d'un driver de paquets spécifique, l'IA pourrait surveiller le chargement de CPU par différentes applications et enregistrer lorsqu'il s'agit d'utilisation de CPU par un navigateur (IE ou Netscape). L'IA ne tentera une connexion que s'il peut déterminer de manière sure qu'il existe une connexion au Net. L'IA disposera d'une liste de serveurs qui seront prêts à recevoir son enregistrement. Pour chaque IA, cette liste contiendra des préférences aléatoires. L'IA tentera de contacter le serveur Web par ordre décroissant. Il enverra un rapport au serveur Web de la même manière que lorsque les browsers envoient un fichier sur un serveur. Cette liste pourrait contenir jusqu'à 75 sites différents. Le premier rapport qui sera envoyé par l'IA devrait
contenir les renseignements suivants: La plupart de ces informations peuvent être extraites de la base de registres. L'IA enregistrera ce rapport dans un fichier qui aura le même nom que le numéro de série auto-généré. L'IA tentera de télécharger sur le serveur Web un fichier appelé "compteur". Ce fichier contiendra un chiffre. Il augmentera ce chiffre et uploadera ce fichier avec le même nom. Ce fichier est, comme nous l'avons vu précédemment, un compteur qui comptabilise le nombre de hosts infectés qui ont pu contacter les serveurs. Un fichier "compteur.lock" peut être utilisé pour s'assurer que deux IA n'accèdent pas simultanément au fichier. Les IA bloqués recommenceraient plus tard. Il est *très* important que le virus ne soit pas découvert au moment initial de l'infection. L'IA ne doit en aucun cas montrer sa présence et doit s'autodétruire plutôt que d'être repéré. Les serveurs Web Les commandes "déposées" pour les IA seront répliquées entre serveurs. Cela implique que toutes les commandes seront présentes sur tous les serveurs, afin qu'un certain IA puisse se fournir sur plusieurs serveurs (au cas où l'un d'entre eux serait fermé par un administrateur, tombé ou occupé). Répliquer les données peut être aisément automatisé si le serveur accepte les connexions FTP. Si cela n'est pas le cas, un script PERL peut être écrit pour interroger des interfaces Web. Comme il est envisagé que le virus sera contrôlé par un groupe de personnes,un CRC checksum de tous les fichiers de commandes pourra être stocké sur les serveurs. La réplication n'aura lieu que lorsque les CRC checksums entre les serveurs ne colleront plus. Pour éviter la détection, de faux serveurs Web peuvent être inclus dans la liste. L'IA saura que ces sites ne contiennent pas de "zone de livraison" et ne tenteront pas d'y déposer des rapports ou d'en retirer des fichiers de commandes. Le seul but de ces serveurs sera de créer une confusion afin d'égarer les fabriquants d'anti-virus lorsque l'IA sera détecté. D'autres informations sur le format et la distribution des commandes suivront. Activité au jour le jour de l'IA Un fichier compteur sera établi pour savoir combien d'IA ont effectué les commandes par défaut. Un fichier de commandes devrait contenir les instructions suivantes: -remove() - mass destruct() - sync (time) - batch begin, batch end - download (filename, local name) - upload (local file, remote file) - update (local file) - spread (count, rate) - default begin (count), default end Le fichier type de commandes peut bien sur être élargi pour prendre en compte des commandes typiques de B.O. Un exemple de fichier commande de l'IA pourrait ainsi être: default begin 4 Dans cet exemple, l'IA effacera toutes les données sur les disques quand le contact sera perdu avec les quatre premiers serveurs de sa liste. Il tentera de downloader des fichiers de commandes toutes les 15 minutes. Il uploadera un fichier appelé 16643dhas13.all_docs contenant une liste de tous les *.doc présents sur le disque C:. Il downloadera et installera Back Orifice. La commande "spread" sera expliquée dans la partie suivante. Notez le "END" à la fin du fichier. Si l'IA ne trouve pas le mot "END" à la fin du fichier de commandes il considérera ce fichier comme non complet et n'exécutera pas les commandes. Avec un peu de travail, le fichier peut être crypté. Ce qui rendra bien plus complexe les tentatives de compréhension du fonctionnement du virus. Cela permettra aussi d'éviter que les fournisseurs d'anti-virus puissent envoyer une commande qui effacerait l'IA comme "remove()". La combinaison de la cryptographie et de la commande "default begin default end" est un concept intéressant. Si le host est présent sur le Net, il peut être contrôlé à distance. Si le site que l'IA doit contacter est fermé, le host tombe avec... les fabriquants d'anti-virus ne peuvent pas communiquer avec l'IA parce que la communication est cryptée. La seule solution pour être vraiment en sécurité est de déconnecter le host d'Internet. Seconde vague d'infection L'IA va rechercher les adresses e-mail dans les mailers . Il va extraire l'information stockée par le mailer (SMTP, gateway, adresse locale de l'utilisateur, etc.) de la base de registres ou du client mail. L'IA ne tiendra pas compte des adresses du même domaine (il n'enverra pas de message à bobby@bobby.com si le domaine local est bobby.com). Ceci permettra d'éviter qu'il ne soit trop rapidement repéré en raison d'échanges entre personnes d'une même entreprises ("tu m'as envoyé un mail avec un jeu sympa" -- "non, je ne t'ai jamais envoyé ça"). L'IA va commencer à envoyer des packages à un certain nombre de personnes chaque jour. Chaque message envoyé contiendra des objets différents (regarde ça, pour information, etc.). Le rythme d'envois peut être contrôlé via le fichier de commandes. Imaginons que nous avons une base installée initiale de 10.000 (ce qui est très faible). Si nous partons sur un rythme d'envoi de 7 virus/cheval de Troie, nous obtenons ce qui suit: 1ère vague: 70.000 Si l'on estime que seuls 75 des récipiendaires auront un système d'exploitation qui permet au virus/cheval de Troie de s'installer et que seuls 50% des ceux-ci exécuteront la pièce jointe, nous avons: 1ère vague: 26.250 A ce stade, les serveurs Web auront du mal à suivre. Gardez à l'esprit que la 4ème vague peut être atteinte en quelques heures, quand un mass_destruct() pourrait être déclenché. Quatrième partie : Et maintenant, pensez à
ça... Posez-vous les questions suivantes: - Ceci peut-il vraiment arriver? La réponse est oui. Oui, oui, oui. Cela a été fait à une bien plus petite échelle. Pensez à Melissa, au ver de 88. Il s'agissait de petits dangers comparés à ça. - En quoi ceci est-il différent de ce que nous avons
pu voir précédemment? - Ce truc peut-il être construit de manière à ce
qu'il soit encore plus subtil? - Quelles seraient les implications de tout cela? - Le monde de la sécurité est-il prêt à faire
face? -Que se passerait-il s'il était placé dans un
produit connu et en lequel les utilisateurs ont confiance? - Comment pouvons-nous savoir qu'il n'existe pas
encore? - Pourquoi avez-vous écrit ce texte? Encore un pas plus loin (le vrai mauvais
côté de la chose) Voyons... Que se passerait-il si l'IA encryptait tous les fichiers *.doc, *.cpp, *.c et envoyait les clefs à un serveur Web?Je vois déjà ça: "rachetez votre code et vos documents à notre prix particulièrement bas"... Dernier mot et merci
Voilà, la traduction fut longue, mais cela en valait la peine. Si vous avez vu des erreurs, merci de nous les signaler en écrivant à webmaster@kitetoa.com Retour au sommet de cette montagne HTML
|
Page d'accueil Nous écrire By mail Nous envoyer des commentaires By la page de le Feed-Back |
Nouveautés
et... |
Le Sommaire de Kitetoa (orientation...) Sommaire général du site |
Les
rubriques! Les
livres publiés par Kitetoa |
Les
rubriques! (suite) Les Let-R-s Des Images On s'en fout! KitEcout' KessTaVu? -KiteToile Voyages |
Les dossiers : Precision [ZataZ] Le monde fou des Admins Defcon Le hack le plus bizarre Guerre de l'info Convention contre la cyber-criminalité Hack |
Questionnaire visant à améliorer le contenu de ce site si c'est possible et pas trop compliqué |
Rechercher sur le site ...et sur le Net Des liens et D'autres choses du Ouèb |