1 Contrôle des ordinateurs par les réseaux sociaux

De nos jours, les botnet sont une des principales menaces en sécurité informatique. Pour rappel, un botnet est un ensemble de machines contrôlées par une entité malveillante (le plus souvent à la suite d’une infection massive sur l’Internet). On appelle zombis ces machines infectées.

La taille de ces botnet varie de quelques dizaines de machines à plusieurs centaines de milliers de zombis.

Un des points stratégiques de ces énormes réseaux est le canal de commandement. Il faut trouver un moyen efficace de contrôler et de maintenir cet énorme réseau de machines. Les zombis reçoivent leurs instructions (déni de service sur une cible donnée, exploitation d’une faille de sécurité, envois de spam, etc.) par le biais de ce canal de commandement. La technique historique la plus utilisée repose sur le protocole IRC, mais cela peut aussi se faire via des pages Web, les newsgroups, ou encore à l’aide de protocoles propriétaire.

Dernièrement, ce sont les réseaux sociaux qui ont été dévoyés pour servir de canal de contrôle. En particulier Facebook et Twitter. À titre d’exemple, un code malveillant récent utilise la fonction Notifications de la version mobile de Facebook pour relayer des instructions à des zombis. La version mobile du site est utilisée certainement pour des raisons pratiques, en effet, le code HTML est plus léger, et donc plus facile à télécharger et à traiter.

2 Nouvelles imprimantes et dangers associés

Les imprimantes les plus récentes ont beaucoup plus de fonctionnalités que leurs ancêtres rustiques. Elles font désormais aussi office de scanner, de fax et sont connectées sur le réseau. Certaines d’entre elles embarquent des systèmes d’exploitation bien connus (comme Linux par exemple) ou des dérivés de ces derniers. Elles proposent aussi des services réseau, la plupart du temps pour faciliter leur utilisation standard. L’un des services les plus fréquemment employés sur les imprimantes repose sur une interface Web afin de configurer la machine.

C’est là où le bât blesse. Les imprimantes ne sont pas toujours considérées comme des ordinateurs et échappent parfois à la politique de sécurité du système d’information. Or, ces appareils ne sont pas systématiquement accompagnés d’une documentation claire. En particulier, l’administrateur du réseau ne sait pas forcément quel est le système d’exploitation installé, ni ne connait les versions de logiciel (notamment pour le serveur Web), et peut donc légitimement se demander si les vulnérabilités publiées chaque jour affectent leur matériel.

Outre la problématique des failles logicielles, les propriétaires des imprimantes sont confrontés à un souci de confidentialité. En effet, certains de ces matériels exposent, via l’interface Web, leur configuration ainsi que certains journaux. Les machines possédant une adresse IP routable sont donc accessibles depuis l’Internet si aucune règle de filtrage n’est mise en place. Parmi les informations ainsi rendues publiques peuvent se trouver des numéros de téléphone (fax) appelés, des éléments du réseau, etc. Certains matériels sont accessibles via le wifi, ce qui rend le filtrage particulièrement complexe.

3 iPhone, iPod touch et Jailbreak

Les iPhone et iPod Touch sont des plateformes reposant sur un système d’exploitation dérivé de Mac OS X et sont finalement de réels petits ordinateurs de poche. On y retrouve naturellement le principe d’utilisateur et de gestion des droits ( accès en lecture/ecriture/exécution des fichiers ). Par défaut le possesseur d’un iPhone (ou iPod) est identifié sur son appareil comme « utilisateur aux droits restreints ». Les applications ont elles aussi des droits limités par rapport au système, elles sont en « cage » (jail).

L’objectif du Jailbreak est de contourner les mécanismes de sécurité. Des outils « automatiques » permettent d’installer principalement deux choses. Un installeur qui permettra ensuite à l’utilisateur de piocher dans des bibliothèques d’applications et un serveur SSH avec un compte ayant un mot de passe par défaut. Plusieurs problèmes apparaissent. En premier lieu, les utilisateurs inexpérimentés ne pensent pas souvent à changer le mot de passe par défaut du SSH ou à désactiver le service. Un article a été publié cette semaine à propos d’une personne qui ayant pris le contrôle d’appareils en s’identifiant via ce service avec les identifiants par défaut, a fait afficher un message demandant une participation financière. Ensuite, toutes les applications récupérées via l’installeur s’exécutent hors de la cage et ont accès à tout le système. Si les logiciels disponibles via l’AppStore subissent normalement un certain nombre de contrôles, qu’en est-il de ceux téléchargés ? Ils peuvent être malveillants ou vulnérables, et comme ils peuvent avoir tous les droits sur l’appareil, on pourrait imaginer qu’ils puissent par exemple telephoner à des numéros surtaxés, enregistrer les conversations, faire suivre le courrier électronique… Bref, cela revient à télécharger et installer un peu n’importe quoi, avec les droits administrateur sur un ordinateur sans anti-virus.

Le CERTA recommande bien sur la plus grande prudence avec ce type de manipulation.

4 Des jeux pas si amusants que ça…

La presse a récemment relayé une information à propos d’un mini-jeu pour Mac OS X imitant ce qu’on pouvait trouver sur les bornes d’arcade dans les années 80. Ce programme, mis à disposition sur un blog, est accompagné d’une mise en garde. En effet, le principe consiste à détruire des envahisseurs à l’aide de son vaisseau spatial. Toutefois, à chaque ennemi détruit, un fichier d’un répertoire bien précis sera effacé.

Une mise en garde accompagne la distribution de ce jeu. Elle apparaît également au lancement de celui-ci. Néanmoins, les internautes ont souvent de mauvaises pratiques. En particulier, il est fréquent de partager un fichier à ses amis parce qu’il semble amusant. De plus, les utilisateurs ne prennent pas toujours le temps de lire les notices d’accompagnement. Par conséquent, il est possible que ce code malveillant soit volontairement distribué entre amis, ce qui incite davantage à l’exécuter.

Les risques de voir se développer des codes malveillants de ce genre est élevé. D’autant plus que ces programmes sont particulièrement adaptés pour fonctionner avec les téléphones portables. Le meilleur moyen de prévention contre ce phénomène reste la sensibilisation des utilisateurs.

5 Les expressions régulières. Faut-il les dénigrer ?

5.1 Des usages très variés

Les expressions régulières sont un moyen d’expression puissant, pratique et utile, qui se retrouve utilisé dans de très nombreuses situations :

  • la gestion des requêtes pour les moteurs de recherche ;
  • les recherches dans des bases de données textuelles ;
  • le filtrage de flux applicatifs et réseaux, comme les passerelles Web (proxies), les anti-spam ou les systèmes de détection d’intrusion ;
  • les contrôles de variables d’entrée adressées à un serveur Web ;
  • etc.

5.2 Des limites algorithmiques

Il existe plusieurs algorithmes pour la reconnaissance d’expressions régulières. Ces différents algorithmes ont leurs avantages et leurs inconvénients : temps moyen de calcul, temps de calcul dans le pire des cas, temps de calcul pour l’initialisation. Selon les expressions régulières utilisées et le texte cherché, les meilleures performances ne seront pas toujours obtenues par le même algorithme. Il est bon de noter que dans le cas de motifs fixes et non d’expressions régulières, des algorithmes plus performants existent tels que Aho-Corasick. Il est donc souhaitable de différencier les cas où un motif fixe suffit des cas où on a besoin des expressions régulières.

Le plus grand danger algorithmique est le cas où le temps de calcul dans le pire des cas diffère largement du temps moyen de calcul, par exemple un temps exponentiel en la taille de l’entrée dans le pire des cas contre un temps linéaire dans le cas moyen. Ceci est le cas pour certains algorithmes concernant les expressions régulières. Il faut en être conscient, et veiller dans ce cas à ce que celles-ci ne puissent pas être des cas pathologiques. Il faut notamment empêcher une personne malveillante de pouvoir contrôler ces entrées. Elle pourrait en profiter pour faire un déni de service sur le système en l’amenant dans les états les plus coûteux.

5.3 Des limites de syntaxe

Selon les implémentations, les expressions régulières sont exprimées dans des langages différents. Certains de ces langages définissent une extension des expressions régulières. Cela permet une plus grande exprissivité mais au prix de la robustesse des algorithmes qui les traitent (principe de back-reference par exemple).

Il faut de plus faire attention à l’interprétation des résultats. Selon les algorithmes, toutes les occurrences d’un motif sont cherchées, ou bien la plus longue, ou encore la première trouvée.

5.4 Des vulnérabilités dans les implémentations

Enfin, comme tout code qui manipule des données, le moteur d’expressions régulières peut être affecté par des vulnérabilités de développement et de conception.

Voici quelques exemples parmi ceux qui ont pu marquer ces dernières années :

  • vulnérabilité dans la gestion de certificats dans les produits Mozilla (MFSA2009-43) ;
  • vulnérabilité de la bibliothèque PCRE (CVE-2007-5116) ;
  • vulnérabilité dans Perl (UTF-8) (CVE-2008-1927) ;
  • vulnérabilité de l’interprétation des lignes de commande (CLI) de Cisco IOS (cisco-sr-20070912-regexp) ;
  • vulnérabilité de la gestion de contenu XML par Xquery sous MacOS (indirectement bibliothèque PCRE CVE-2008-0674) ;
  • etc.

Il faut noter que certaines bibliothèques sont massivement réexploitées dans différents contextes. La vulnérabilité de l’une d’elles peut donc se répercuter très largement sur plusieurs types de produits. Il faut donc bien maîtriser son parc mais également les briques sous-jacentes des produits utilisés, dans la mesure du possible et quand cela est renseigné.

5.5 Recommandations

L’objet de cet article n’est pas de décrire en détail toutes les vulnérabilités associées aux expressions régulières, mais de rappeler certaines problématiques de sécurité. Comme pour toute gestion de données venant du monde extérieur, le traitement de celles-ci par des expressions régulières doit être fait avec la plus grande précaution et doit être maîtrisé. Il faut bien prendre en compte toutes les entrées malveillantes envisageables et ne pas supposer a priori de leur bienveillance ou de leur bon aspect. Si le mécanisme, complexe, ne permet pas de résoudre simplement les faiblesses, alors des méthodes de « nettoyage » et de surveillance doivent être mises en place en amont. Ces mécanismes ne doivent bien évidemment pas souffrir des mêmes vulnérabilités…

5.6 Quelques références

6 Problèmes avec la mise à jour MS08-054

Cette semaine, Microsoft a émis une mise à jour (KB976749) qui corrige des problèmes pouvant se produire après l’application de la mise à jour MS09-054. Pour rappel, cette mise à jour corrigeait plusieurs vulnérabilités dans Internet Explorer permettant l’exécution de code arbitraire à distance et avait fait l’objet de l’avis CERTA-2009-AVI-434. Selon l’éditeur, les problèmes rencontrés suite à l’application de la mise à jour de sécurité sont limités à des « scénarios de navigation spécifiques », mais le nouveau correctif est tout de même proposé en mise à jour automatique.

L’éditeur indique qu’il faut installer la mise à jour de sécurité KB974455 (MS09-054) avant la mise à jour KB976749, sans quoi Internet Explorer pourrait ne plus fonctionner correctement.

6.1 Documentation

7 Vulnérabilité du noyau Linux

Cette semaine, le CERTA a publié l’avis CERTA-2009-AVI-475 relatif à une vulnérabilité du noyau Linux. Celle-ci concerne un problème dans la gestion des tubes (pipes). Encore une fois, l’erreur est de type « pointeur nul » (null pointer) et permet à un utilisateur local d’exécuter du code arbitraire dans le contexte du noyau, s’il arrive à « mapper » ce code à l’adresse 0. Ceci lui permet potentiellement d’élever ses privilèges ou de provoquer un arrêt inopiné du système.

Il ne faut, en aucun cas, négliger ce type de vulnérabilités, car bien qu’exploitables « seulement » localement, elles sont souvent utilisées pour prendre le contrôle total de la machine à la suite d’une intrusion frauduleuse via un compte non privilégié. Ainsi, la première phase de l’attaque peut consister à s’introduire sur la machine en profitant d’une faiblesse dans un gestionnaire de contenu sur un serveur Web ou suite à une attaque par dictionnaire sur un serveur ssh ayant des comptes à mot de passe faible par exemple. Une fois le compte standard obtenu, l’attaquant utilisera ce code d’élévation de privilèges pour devenir root.

Le CERTA rappelle donc l’impérieuse nécessité de mettre à jour le noyau sans délai, que ce soit par le biais de la version générique (http://www.kernel.org) ou bien avec les mises à jour fournies par les distributions.

Rappel des avis émis

Dans la période du 26 octobre au 01 novembre 2009, le CERT-FR a émis les publications suivantes :


Durant la même période, les publications suivantes ont été mises à jour :