Sep 19 2008

Faille : Execution de code dans PhpMyAdmin

Tag: Failles de sécuritéNicolas @ 3:17 am

Une jolie faille vient de sortir.

Il s’agit d’éxécution de code (PHP) pour un  utilisateur authentifié.

L’advisory (présent ici) nous indique le vecteur d’attaque suivant:
server_databases.php?pos=0&dbstats=0&sort_by="]) OR exec('cp $(pwd)"/config.inc.php" config.txt'); //&sort_order=desc&token=[valid token].

En allant voir dans les sources les modifs effectués (visible ici si vous êtes curieux), on peut y voir les changements suivants:

$sort_function = '
return ' . ($sort_order == 'ASC' ? 1 : -1) . ' * ' . $sorter . '($a["' . $sort_by . '"], $b["' . $sort_by . '"]);
';
usort($databases, create_function('$a, $b', $sort_function));

On voit que la chaine “sort_function” est construite par concaténation de chaine, et ceux avec une entrée utilisateur (le paramètre $sort_by).

La fonction usort est ensuite utilisé pour créer trier le tableau $database. Elle prend en deuxième argument une fonction de comparaison.

Elle est créer à la volée par la fonction “create_function”, elle même utilisant une chaine contaténée utilisant une entrée utilisateur non filtrée depuis une entrée utilisateur …

:(

Le code ainsi créer va donc être éxécuter à chaque comparaison lors du tri.

Morale de l’histoire:

1/ Ne faites pas confiance aux entrées utilisateur

2/ N’utiliser pas de fonction permettant de créer du code à la volée

3/ Patchez !!!!


Sep 17 2008

CloudAV: Après le buzz, le premier logiciel commerical, un gadget ou quelque chose à avoir ?

Tag: newsArrouan @ 12:06 am

McAfee Inc. vient d’annoncer McAfee Artemis Technology qui n’est ni plus ni moins qu’un antivirus dans le “cloud”. En effet, c’est un service internet héberger par McAfee et qui permet une protection active à la volée quand un ordinateur est infecté. D’après McAfee, cela permet de réduire considérablement le temps de distribution des signatures d’un nouveau malware mais aussi celui de l’analyse des nouveaux malwares ce qui est essentielle vu le nombre impressionant de nouveaux malwares. Même les fournisseurs et constructeurs d’antivirus l’admettent, ils ne peuvent plus suivre le rythme.

L’un des problèmes (même si pour moi c’est loin d’être le principal) est qu’il faut réussir à mettre à jour la base de donnée de signatures sur l’ensemble des machines disposant de l’antivirus. Et cela, à chaque fois, qu’un nouveau malware est découvert. Ce mécanisme provoque un temps de latence entre le moment de découverte du malware et l’application de la protection chez le client.

Avec leur nouvelle méthode, McAfee analyse comportementalement les processus et si l’un se comporte comme un malware alors une signature est fait du fichier et elle est envoyer dans le nuage de Artemis. Cela permet à McAfee d’analyser plus vite le risque et de proposer plus rapidement une protection et l’envoyer immédiatement à l’ensemble des clients finaux. De plus, de par le rassemblement d’informations dans le “cloud”, il est possible de comparer le malware avec plus d’informations que ce qu’il se trouve sur un ordinateur client classique ou même une entreprise.

D’après McAfee, l’ensemble de ce processus de détection, identification et protection se fait en quelques millisecondes et le malware est comparer avec des bases de connaissances propres de McAfee mais aussi les résultats d’honeypots et les informations provenant de l’ensemble des systèmes protégés par McAfee.

Bien entendu, un des gros problèmes de ce produit est qu’il va envoyer une masse d’informations plus ou moins critiques sur les machines sur lequel il est installé vers le “cloud”.

Sorti de l’effet buzz, il sera intéressant de voir en réalité l’efficacité d’un tel produit. Mais malheuresement, tout ce système se base sur les mêmes “vieilles” habitudes en terme de détection et d’antivirus et n’amène pas de nouvelles méthodes qui permettraient de réellement détecter les nouveaux malwares ou tout du moins de pouvoir s’en protéger. C’est dommage que les éditeurs d’antivirus continuent à s’acharner sur les méthodes de détection par signatures et qu’ils n’explorent pas de nouvelles voies. Mais, il ne faut pas leur en vouloir, c’est tout de même leur buisness model de vendre des mises à jours continues et une dépendance de leur client vis à vis de leurs serveurs.


Sep 15 2008

Antisocial Networks: Comment transformer un réseau social en botnet.

Tag: Failles de sécurité, rechercheArrouan @ 11:11 pm

L’Institut de Recherche en Informatique faisant parti de la fondation de recherche grécques FORTH ainsi que l’institut de recherche sur l’informatique et la communication de Singapoure ont publié un article très intéressant où ils tentent de prouver les nouveaux risques et malwares que pourraient se créer dans les réseaux sociaux.

Les auteurs de l’étude définissent un Antisocial Networks comment étant un système distribué se basant sur les réseaux sociaux et pouvant être exploité par des attquants et diriger pour coordonner des attaques réseaux. Mais ils ne se limitent pas à discuter de ce qu’est un tel type de réseau, ils ont implémenté dans la réalité de tels attaques et montrent comme ces plateformes sociales peuvent être utiliser pour lancer des attaques. Ils se sont limités à Facebook pour développer leur concept d’attaques mais cela peut être étendu à l’ensemble des réseaux sociaux disposant d’une possibilité d’extensions par des tiers personnes.

Mais pourquoi les réseaux sociaux ? Tout simplement parce que de plus en plus de personnes sont inscrites sur ces réseaux, ce qui représentent une base de donnée énorme. De plus, ces réseaux sont découpés en groupe de centre d’intérêt ce qui permet de simplement localisé des cibles. Et finalement, par défaut, les utilisateurs ont tendance à faire confiance à leurs réseaux sociaux ainsi que les applications qui s’y trouvent. L’ensemble de ces raisons montrent la capacité de nouvelles attaques qui peuvent avoir lieu sur de tels sites.

Ce principe d’utilisation du web et des utilisateurs pour lancer des attaques n’est pas nouveau, Puppetnets, proposé en 2006, est également une attaque utilisant les mêmes principes. L’idée est de créer une page avec des milliers de liens pointant vers le serveur cible. Quand un utilisateur va charger cette page, son navigateur va télécharger des milliers de liens et provoquer une sur-charge sur le serveur cible. De plus, si cette page devient virable (un “Slashdot effect” par exemple), le serveur cible va se retrouver sous un DDoS. Bref, une technique simple et efficace pour lancer un DDOS a très faible cout. En ajoutant un peu de Javascript, pour des chargements multiples des liens, la méthode devient encore plus efficace.

Bien que les auteurs aient faire leur expérimentation sur le vrai réseau Facebook, ils n’ont pas développé des fonctions trop invasive (par exemple, l’obligation d’inviter 20 amis a essayé l’application avant de pouvoir l’installer, ce qui semble une méthode classique pour augmenter la popularité d’une nouvelle application) pour éviter de perturber le fonctionnement de Facebook pour les utilisateurs légitimes. Le principe de leur application était d’afficher une nouvelle image tous les jours en provenance du site du National Geographic. Mais également, quatres frames caché qui chargeaient pour 600Kb depuis le serveur de la cible à chaque fois qu’un utilisateur utilisait l’application. Bien sur dans le cadre de leur étude, le serveur était hébergé dans le lab et isolé du reste du réseau.

Bien que la méthode utilisé était relativement simple et pas trop invasive et avec une publicité limitée (i.e. uniquement quelques personnes de la communauté de la sécurité), l’application est rapidement arrivée à plusieurs centaines d’utilisateurs (plus de 1 000 utilisateurs avaient installé l’application en quelques jours) provoquant des pics d’utilisations de bande passante sur le serveur cible allant de 2Mb à 6Mb (entre 100 et 350 requêtes HTTP par second). Ils ont également analyser la provenance des requêtes (i.e. où se trouvent géographiquement l’utilisateur facebook) et on peut voir une répartition mondiale assez propre (ce qui risque de poser des problèmes pour la mise en place de contre mesures).

Ensuite, les auteurs ont voulu évaluer la puissance d’attaque d’une telle application dans la réalité et avec l’ensemble des facteurs qu’ils n’avaient pas voulu utiliser pour éviter de perturber le fonctionnement de Facebook et des utilisateurs. Par exemple, pour des applications ayant 1 millions d’utilisateurs ou plus, il faut s’attendre à des DDoS constants de 23Mbit/s soit 248Gb par jour. Ici, il ne faut pas voir uniquement la quantité de donnée mais le nombre de requêtes HTTP que va devoir résoudre le serveur cible et c’est cela qui risque d’être le point faible (et également celui de rupture).

Maintenant que le risque est prouvé (et pas uniquement limiter à des attaques de type DDoS, ces applications/malware facebook pourrait aussi être utiliser pour scanner des ordinateurs, propager des malwares, etc), les auteurs proposent plusieurs méthodes pour mettre en place des contre-mesures vis-à-vis de telles attaques. Leur première proposition pour se prémunir contre de tels attaques est tout simplement refusé tout traffic entrant ayant comme champ de référée du paquet HTTP facebook.com. Mais cela est relativement simplement contournable. L’une des autres méthodes est “tout simplement” que les créateurs de réseaux sociaux écrivent des API pour les applications qui soient propres et sécurisées et qu’ils vérifient la qualité et le risque des applications qu’ils hébergent.

Pour conclure, il est clair que ce type d’attaque pourrait arriver et que coupler avec une campagne virale, elle pourrait faire beaucoup de mal. Il est également possible d’imaginer une telle attaque ayant pour but de créer une sorte de botnet reposant sur des applications facebooks. Mais je ne trouve pas plus convaincant que ça ce type d’attaque pour des attaques massives car clairement pas assez puissants et temporaires (cela ne marche que le temps que l’utilisateur est sur la page de l’application) mais elle pourrait très bien servir pour de la distribution de malware et/ou de la vol de donnée personnel. Un vecteur d’attaque qu’il faudra surveiller vu l’importance que prennent les réseaux sociaux aussi bien dans la vie privée que dans l’entreprise.