mercredi 26 août 2009

Les trouvailles du jour

Voici quelques petits logiciels utiles:

  • JavaRa - Un utilitaire pour faire le ménage dans les différentes versions de Java qui s'accumulent au fil des mises à jour.
  • Linx - Un logiciel pour tester la stabilité d'un système. Il fonctionne en 32 ou 64 bits et utilisera tous les processeurs disponibles (1, 2 ou 4 coeurs).
  • MagicDisc - Il s'installe et se désinstalle sans redémarrer et créée un lecteur DVD virtuel dans lequel on peut monter des images de disques aux format les plus répandus (ISO, BIN, CCD, etc). Il peut même compresser les images dans un format propriétaire (UIF) de façon à sauver le maximum d'espace.

mercredi 19 août 2009

Restauration du système

Il arrive qu'il soit nécéssaire de restaurer un système à son état d'usine. Auparavant, les constructeurs fournissaient des CD ou DVD de restauration pour la remise à zéro de l'ordinateur. Maintenant, il est assez rare d'avoir ces disques avec l'achat d'un système; l'utilisateur doit les créer lui-même une fois Windows chargé.

La restauration du système se fait maintenant à partir d'une partition cachée du disque dur, à laquelle on accède en appuyant sur certaines touches du clavier au démarrage de l'ordinateur. Cette partition est normalement invisible, ce qui la protège d'un effacement accidentel ou d'une corruption par des logiciels malveillants.

J'ai fait quelques recherches afin de réunir les procédures de démarrage pour activer la restauration pour les marques les plus répandues. Notez que toutes ces procédures se font à l'ouverture de l'ordinateur et que si vous échouez, vous devrez fermer, redémarrer et essayer de nouveau. Il est aussi parfois nécéssaire de taper la combinaison de touches plusieurs fois de suite de façon rapide pour qu'elle soit effective.
  • Acer - ALT + F10 quand on voit le logo Acer à l'écran
  • Compaq / HP - F11 quand on voit le logo
  • Gateway - F11 quand indiqué ou ALT + F10 (comme Acer)
  • Toshiba - Maintenir 0 (zéro) AVANT d'ouvrir l'ordinateur, relâcher au logo
  • Dell - CTRL + F11 lorsque le logo est visible
  • Sony VAIO - F10 dès que le logo apparaît
  • Asus - F9 dès que le logo apparaît
  • IBM / Lenovo - F11 au démarrage
  • Packard Bell - F11 dès l'apparition du logo

Si ça ne fonctionne pas ou que le fabriquant de votre ordinateur n'apparaît pas dans la liste, vous pouver toujours essayer ceci si le système installé est Vista: au démarrage, appuyez sur F5 pour faire apparaître le menu de test de Vista, ensuite F8 pour le menu de démarrage et choisissez l'option du haut, Réparer l'ordinateur en vous déplaçant avec les flèches pour ensuite sélectionner avec Entrée. Après quelques questions, vous vous retrouverez au menu suivant:

Vous avez alors l'option d'utiliser la restauration de Windows Vista (option Restaurer le système)pour revenir à un état antérieur. Oubliez l'option Restauration de l'ordinateur Windows si vous n'avez pas fait de sauvegarde; elle sera alors inutile. Comparez ce menu avec celui que vous avez sur votre machine: certains constructeurs y ajoutent parfois leurs propres options de restauration et c'est par là qu'il faudra passer pour une remise à l'état d'usine du système.

mardi 11 août 2009

Analyse d'un malware

Il y a de cela 3 jours, j'étais en train de faire l'essai d'un nouveau logiciel anti-spyware sur mon ordinateur principal, sur lequel est installé Vista 64. Il s'agissait de UnHackMe et j'ai lancé un scan de routine pour avoir une idée de son fonctionnement.

Quelques minutes après, il trouve un fichier infecté dans C:\Windows\SysWOW64\drivers: NTNDIS.EXE. J'ai pourtant Norton Antivirus 2009 et ce dernier n'avait rien détecté. Je me suis dit que c'était peut-être une fausse alerte de UnHackMe. J'installe alors MalwareBytes AntiMalware, effectue ses mises à jour et refait un scan: le même fichier ré-apparaît dans la liste des menaces découvertes.

N'ayant pas téléchargé UnHackMe à partir de son site officiel, je me suis dit que c'était peut-être lui qui m'avait infecté. Il arrive souvent que des logiciels tout à fait dignes de confiance soient injectés de malwares pour les transformer en chevaux de Troie. C'est une façon astucieuse de mettre l'utilisateur en confiance et ensuite d'en profiter.

Plutôt que d'essayer de combattre l'infection, j'ai décidé de restaurer une sauvegarde Ghost complète du système datant du mois de juin. Je devais le faire de toutes façons parce que j'avais accumulé beaucoup de résidus d'installations de logiciels que j'avais mis à l'essai depuis la dernière sauvegarde.

Je redémarre avec un CD bootable et restaure mon système. Au retour dans Windows, Norton se met à jour et peu après, il m'alerte que j'ai un fichier infecté... le même NTNDIS.EXE encore. Pourquoi ne m'a-t-il pas pas prévenu avant alors que j'étais visiblement infecté depuis 2 mois? Peut-être que le virus avait réussi à s'inscrire dans les exclusions de Norton. En tous cas, cette fois-ci, Norton le détecte et réussi à l'éliminer après un redémarrage. Je refais un scan avec MBAM et celui-ci élimine les dernières traces dans la base de registres. Je redémarre et refais un scan: plus rien. Le problème est résolu.

Mais un autre problème se présente: et si ce malware avait réussi à me subtiliser des infos personnelles telles que mots de passe, numéros de cartes de credit, etc? En deux mois, il aurait eu tout le temps de le faire. Je venais justement d'appeler Visa pour des problèmes de frais chargés sans mon autorisation et l'inquiétude me gagnait.

Première chose à faire: changer tous les mots de passe importants. Le premier d'entre eux est celui du courriel. Si un pirate peut intercepter mes courriels, alors il aura accès à toutes les confirmations de changements de mots de passe dans lesquelles le nouveau mot de passe est souvent envoyé à titre de référence. Autre chose: rendre les mots de passe plus sécures. J'ai la mauvaise habitude de souvent ré-utiliser les même mots de passe à des endroits différents, ce qui me simplifie les choses mais rend aussi un fier service à nos amis les pirates.

Il me faudrait d'abord un logiciel pouvant gérer les mots de passe. J'écoute les podcasts de Mike Tech Show, Security Now, Podnutz, Tech-Vets et quelques autres. On y apprend énormément de petits trucs, renseignements et conseils utiles. J'avais entendu parler du logiciel Keepass quelques jours plus tôt et c'est celui-ci que j'ai décidé d'utiliser. Il est gratuit, portable (fonctionne sur une clé USB) et peut générer lui-même des mots de passes selon les spécifications de l'utilisateur. En plus, il évalue la solidité du mot de passe face à des attaques.

J'ai changé tous les mots de passes importants en prenant soin de générer les nouveaux à partir de Keepass selon certaines spécifications pour les rendre plus faciles à utiliser et à retenir tout en gardant un niveau de sécurité acceptable. J'ai même pu programmer Keepass pour qu'il tape lui-même les mots de passe sur les sites où j'en utilise. En plus, j'ai aussi une version pour Mac avec laquelle la base de données des compatible.

Un fois rassuré pour ce qui est de la sécurité de mes information personnelles, je me suis demandé qu'est-ce que le malware en question avait bien pu faire comme activité dans mon système. J'utilise souvent le site Virus Total pour envoyer des fichiers à scanner. Il vérifie le fichier envoyé avec une quarantaine d'antivirus et vous dit ensuite combien ont trouvé quelque chose mais la description du fichier infecté est assez vague. Pour en savoir plus, je me suis dit que j'essaierais par moi-même d'analyser le malware.

Première chose: trouver un ordinateur sur lequel je pourrais libérer le malware et l'étudier. J'ai choisi une machine virtuelle avec XP Pro SP2 sous Macintosh. Je me sers du logiciel Parallels sous Mac pour les quelques utilitaires Windows qui me manquent parfois avec le Mac Mini sous OS X. En plus, avec Parallels, on peut prendre des "snapshots" du système et revenir en arrière facilement. Le Mac offre une protection supplémentaire pour manipuler les fichiers infectés étant donné qu'il est impossible pour un virus Wiindows d'infecter le Mac (sauf quelques exceptions très rares concernant les macros d'Office, par exemple).

J'ai réuni ensuite quelques outils logiciels pour m'aider à étudier le malware: WireShark, un packet sniffer pour analyser le traffic réseau, FileMon pour les fichiers qui sont accédés ou modifiés et Regmon pour les changements dans la base de registre. J'ai ensuite extrait le fichier NTNDIS.EXE de ma sauvegarde et l'ai transféré sur le bureau de la machine d'étude. Pas d'antivirus, bien sûr, on lui laisse le champ libre pour se propager. Je double-clique sur le fichier infecté et c'est parti!

Immédiatement, il y a activité sur le réseau. Le malware accède à un site d'hébergement gratuit à toutes les 15 secondes, comme pour se rapporter. N'étant pas familier avec WireShark, ça m'a pris un peu de temps pour pouvoir décrypter les paquets envoyés sur le réseau. Je ne suis pas non plus un spécialiste du net ou un crack des protocoles TCP/IP. Le site auquel il accède est hack***e.iespana.es. Les "*" sont pour éviter de divulger l'adresse complète. Le site semble vide et on reçoit une erreur si on s'y connecte avec un navigateur.

Dans le relevé des échanges entre le site et le malware, on voit que ce dernier envoie la commande HTTP suivante:

POST /3/?act=online&s4=1750&s5=2999&nickname=c2VkZjliMlsyODE5MF0= HTTP/1.1

et le site répond par ce qui semble une page web. Tout ça, on peut le voir dans l'historique de conversation de WireShark et ça se répète continuellement toutes les 15 secondes environ. J'ai d'abord cherché à me logger sur le site avec un navigateur côté Mac mais il n'y avait pas de site, seulement une erreur de SQL (base de données). J'ai ensuite ajouté /3/.... et tout le reste de la ligne après l'adresse du site et là, plus d'erreur, le site retourne une page vide, comme dans le log de WireShark.

En faisant divers essais, j'ai pu découvrir que le site est accessible quand on tape ceci à la suite de l'adresse: /3/index.php. J'ai pu aussi découvrir que si on tape juste index, il nous liste deux fichiers qui portent le même nom: index.php et index.php~. Le site est monté en MySQL et le script d'entrée est index.php mais l'autre (index.php~) est une copie de sauvegarde du précédent script et il est visible en clair si on tape /3/index.php~.

En examinant le code contenu dans la précédente version du site, j'ai pu voir l'ancien mot de passe utilisé de même que toutes les fonctions disponibles. Malheureusement, l'ancien mot de passe avait été changé et je n'ai pas pu accéder à l'interface.

En étudiant le code et en cherchant des références sur Google, j'ai pu comprendre en gros comment fonctionnait le spyware. La ligne qu'il envoie contient le nom de l'ordinateur codé en base64. En me servant d'un site pour décoder ce qu'il y a après nickname=, j'ai pu retrouver le nom de mon ordinateur virtuel avec un code entre crochets:

sedf9b2[28190]

Peut-être s'agit-il du numéro de port avec lequel le virus peut communiquer avec le pirate. Ce que je sais c'est que le hacker, une fois loggé sur le site, peut envoyer diverses commandes aux ordinateurs infectés comme une attaque du type Flood, il peut aussi recevoir des informations sur l'ordinateur infecté, exécuter un logiciel, et même se faire envoyer un fichier provenant de l'ordinateur compromis. Autrement dit, il a le contrôle total du système sans que l'utilisateur le sache. Il y a même une commande pour se faire envoyer une copie d'écran!

Il y a aussi des commandes pour lister les bots (le nom donné aux ordinateurs infectés), voire depuis quand ils sont infectés, gérer la façon dont ils communiquent, de même que beaucoup de commandes ayant trait à des serveurs IRC. Les bots, peuvent communiquer leur présence et recevoir des instructions à partir d'un protocole IRC. Je ne sais pas s'ils peuvent se logger sur un canal IRC, cependant. C'était la façon dont fonctionnaient les anciens bots mais les nouveaux semblent se contrôler à partir d'une interface web, ce qui a l'avantage de pouvoir passer au travers des routeurs sans qu'ils soient gênés par un pare-feu.

Après une journée de recherches, je n'ai pas pu pousser plus loin. Il aurait fallu un hacker pour pouvoir investir le site de contrôle des bots et faire le tour de ce qu'il contient. J'ai fait quelques recherches sur ce type de malware et il est disponible tout simplement en téléchargeant un kit. N'importe quel utilisateur peut ensuite monter son site de contrôle (sur un hébergeur autorisant les scripts PHP) et répandre l'infection en injectant le code dans un autre logiciel, par exemple un générateur de clé ou un crack de logiciel piraté.

N'importe quel exécutable peut servir pour infecter et en analysant le NTNDIS.EXE, j'ai pu voir que ce malware a été écrit en VisualBasic, un language de programmation à la portée de n'importe quel utilisateur. Cependant, une connaissance approfondie du système est nécéssaire parce que NTNDIS est un rootkit, ce qui veut dire qu'il devient invisible pour la plupart des logiciels antivirus une fois qu'il infecte le système.

mardi 4 août 2009

Vancances

Vacances jusqu'au 16 août! Un peu moins d'informatique, un peu plus de soleil (s'il y en a...) et la compagnie de ma fan numéro 1...

J'ai quand même quelques projets dont j'aimerais parler. Un de ceux dont je suis le plus satisfait a été celui du changement de routeur. Auparavant, j'avais un Linksys WRT-54G et j'avais entendu parler des firmwares alternatifs comme OpenWrt, DD-Wrt ou Free-Wrt. Ces firmwares remplacent celui du fabriquant et offrent de nombreuses possibilités normalement réservées aux routeurs professionnels. Ils sont tous basés sur une version spécialisée de Linux, et le code en est open source, ce qui veut dire que tous peuvent contribuer à son amélioration. De nombreuses variantes sont disponibles pour chacune des "distributions" offertes.

Mon choix s'est arrêté sur Tomato qui, malgré un nom peu inspirant est un firmware très stable et optimisé pour l'efficacité et la compacité du code sans enlever les caractéristiques les plus intéressantes.

Malheureusement, j'avais la version 5 du routeur WRT-54G, dans lequel Linksys a décidé de faire passer à 8 Mo de mémoire flash au lieu des 16 Mo des précédentes versions, nécéssaires pour Tomato et les autres distributions. Je me suis mis à la recherche d'un routeur qui serait supporté par Tomato et je suis tombé sur le Asus WL-520GU qui avait un chipset compatible et même une prise USB en bonus. Cette prise USB sert normalement au partage d'imprimante mais le firmware Tomato peut l'utiliser pour partager un lecteur réseau USB, transformant l'appareil en un serveur de fichiers rudimentaire.



Après téléchargement du firmware Tomato, j'ai reflashé tout de suite de routeur. La procédure a été assez simple car il fallait seulement renommer le fichier et lui donner le nom qu'espérait l'ancien firmware dans le menu de mise à jour. Juste après le flashage, j'ai dû aller dans le menu Administration / Configuration et choisir "Erase all data in NVRAM" dans le menu "Restore Default Configuration" parce que la mémoire non-volatile doit être ré-initialisée après un changement de firmware. Pour les mises à jour suivantes, ce n'est pas nécéssaire.

Le firmware Tomato apporte de nombreuses fonctionnalités supplémentaires parmi lesquelles les suivantes me sont les plus utiles:

  • Le suivi en temps réel de la bande passante (avec un graphique défilant)
  • Les statistiques journalières, hebdomadaires et mensuelles de téléchargement (upload et download) permettant de savoir exactement la bande passante utilisée.
  • La possibilité de définir des priorités pour gérer la bande passante. Par exemple, mettre le traffic de la Xbox prioritaire pour pouvoir jouer en ligne et télécharger sur un PC en même temps. On peut aussi assigner des priorités au niveau des services, comme par exemple permettre au pages web de passer même si on télécharge sur un service Peer-to-Peer. On peut aussi limiter la bande passante de certains ordinateurs en assignant une limite d'après l'adresse MAC.
  • Le sans-fil aussi compte une option intéressante: on peut modifier la puissance d'émission pour améliorer la portée du routeur. Notez qu'il faut faire attention à ne pas dépasser une certaine limite sous peine d'endommager l'émetteur.
  • On peut aussi programmer des restrictions pour l'accès à Internet. Par exemple, bloquer l'accès de certains ordinateurs à partir de minuit jusqu'à 5h, ou couper le sans-fil la nuit.

Bien sûr, l'aspect sécurité est aussi enrichi de nombreuses options par rapport au firmware du constructeur. On n'a pas non pu oublié les fonctions de base comme le port forwarding, le pare-feu, etc.

En cinq mois d'utilisation, j'ai dû ré-initialiser (rebooter) seulement deux fois mon routeur Asus et c'était parce que j'avais des problèmes ailleurs sur le réseau (commutateur défectueux remplacé). La fiabilité est grandement améliorée par rapport à ce que j'avais avant (Linksys et D-Link).