Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.

Le coin de la technique

Evénements de notre communauté en France et à l’étranger

Le coin de la technique

Infinitest supporte scala

Les dernières versions d’infinitest apportent des corrections pour intellij IDEA 11 et le support des projets Scala. Infinitest est disponible sur github.

CouchBase et CouchDB

Damien Katz est un des fondateurs du projet Apache CouchDB. CouchDB fait partie de l’univers NoSQL, écrit en Erlang, orienté ‘document’ avec des API basées sur Javascript et JSON. Dans son blog, il indique qu’une grande partie de l’équipe ainsi que lui-même quittent le projet pour fonder Couchbase Server, le successeur.
Ce changement signifie aussi que les produits Couchbase ne seront plus sous licence Apache. Damien Katz ne dénigre pas cette fondation, à qui le succès de CouchDB est intimement lié. Les produits CouchBase sont payants, et selon Damien Katz, l’approche par consensus des développeurs, si chère à Apache, est un frein à la compétitivité du produit.
Cette approche permet donc à l’équipe de servir au mieux ses clients avec une plus grande réactivité. Il assure cependant que l’équipe continue de contribuer à CouchDB qui se porte plutôt bien. Son but actuel est de porter la version 2.0 de CouchBase avec un portage d’une partie du code d’Erlang vers C/C++.
Affaire à suivre.

Alerte de sécurité sur la quasi totalité des serveurs web

Deux chercheurs en sécurité, Alexander Klink et Julian Wälde, ont relevé une faille de sécurité algorithmique dans la plupart des serveurs web du marché. Sont concernées, les plateformes Java, Python, Ruby, PHP, Node.JS et ASP.NET.

La vulnérabilité détectée est de type attaque par complexité algorithmique. Elle consiste à rechercher le pire scénario possible dans l’implémentation d’une fonctionnalité. Ici, les hash tables sont la cible de l’attaque.

Le principe est le suivant : lorsqu’un serveur reçoit une requête http qui contient n paramètres, il crée un tableau associatif avec pour clé, le nom du paramètre, et pour valeur, l’ensemble des valeurs reçues. La hash table résultante utilise le hachage du nom du paramètre pour déterminer son emplacement.

Dans le meilleur des cas, c’est-à-dire lorsqu’il n’existe pas deux paramètres ayant le même hachage, l’insertion d’un élément se fait en temps constant (en O( 1 )). Dans le pire des cas, elle se fait en temps linéaire (en O( n )).

Mais revenons à notre attaque. Il suffit de construire une requête HTTP avec un grand nombre de paramètres ayant tous le même hachage. Le serveur sera contraint de passer systématiquement par le pire des cas possibles pour l’insertion dans sa hash table. En prenant n paramètres, on arrive à une complexité de n(O( n )), c’est-à-dire O( n² ), la complexité quadratique. Il est donc possible de bloquer le CPU d’un serveur à 100% d’utilisation pendant plusieurs minutes.

A l’heure actuelle, certains serveurs ont été mis à jour pour limiter le nombre de paramètres HTTP pouvant être reçus par un serveur (1’000 pour ASP.NET, 10’000 pour Tomcat, valeur non connue pour PHP). La vulnérabilité n’est donc pas totalement corrigée mais ses effets sont considérablement réduits. La correction complète impliquerait de rendre aléatoire le hachage des chaînes de caractères selon les plateformes par l’inclusion d’un seed. De ce fait, il ne serait plus possible de construire de telles collisions.

Notons qu’une correction est également en cours pour Glassfish et sera mise à disposition avec le prochain patch de sécurité.

Evénements de notre communauté en France et à l’étranger

Lancement de la communauté Software Craftsmanship de Toulouse

La semaine dernière, Antoine Vernois et Thierry Cros ont organisé à Toulouse une réunion autour du Software Craftsmanship qui a réuni 15 personnes. Cette réunion marque le lancement de la communauté Software Craftsmanship de Toulouse et de ses environs.
Un premier événement est en cours de planification : Un coding dojo au format randori.
Vous trouverez plus de détails sur le blog d’Antoine : La communauté Software Craftsmanship à Toulouse.

Ce soir, 10 janvier, Paris JUG DevOps et Avant JUG des Duchess

Ce soir, le premier Paris JUG de l’année sera consacré à DevOps avec une session Packaging natif par Henri Gomez et une session Puppet par Carlos Sanchez.
Les Duchess reprennent également les bonnes habitudes avec le premier Avant JUG de l’année.

Introduction aux DSL en Groovy au Nantes JUG le jeudi 12 janvier

Le Nantes JUG commence l’année 2012 ce jeudi 12 avec une soirée Introduction aux DSL (Domain Specific Languages) en Groovy présentée par Cédric Champeau, senior software developer chez SpringSource.
Les inscriptions sont ouvertes sur JUG Events.

Billets sur le même thème :

3 Responses

  • Vraiment dommage de confondre « license Apache » et « fondation Apache »: Couchbase Server est open-source, sous license Apache; il n’est juste pas un projet de la Fondation Apache.

    Un lien vers l’annonce sur le blog de Damien Katz n’aurait pas été de trop non plus, au lieu du lien vers sa page « about me »: http://damienkatz.net/2012/01/the_future_of_couchdb.html

  • Merci beaucoup Thomas pour votre précision sur Couchbase Server. Cela amène plus de clarté à l’article.
    Le lien vers l’annonce de Damien Katz a été ajouté.

  • Il est marrant de noter que DevOps a émergé car l’obligation de « bien faire les choses » est vraisemblablement maintenant encore plus dans le camp des Dev que des Ops ;-) car de nouvelles conditions ont émergé facilitant les bonnes pratiques, obligeant, dans d’autres cas, à passer par ces fourches caudines, et inversement, rendu plus suspect de ne pas les suivre.
    - la virtualisation et la capacité de disposer aisément d’une nouvelle machine font que les serveurs d’un projet forment un petit royaume pour lequel il est aisé de définir, par exemple, une nouvelle machine porteuse d’un serveur RPM pour alimenter toutes les autres.
    - le plafonnement des JVM à 2 ou 3 Go de mémoire entraine la multiplication des JVM pour lesquels une gestion à la main devient plus difficile et pénible.
    - les outils de construction de livrables sont dans les mains des développeurs.
    - et ces outils s’améliorent, et les standards de facto se renforcent et se généralisent chez les développeurs.

    Bref, ça va devenir de plus en plus dur/suspect de ne pas s’y mettre…

Laisser un commentaire