SSTIC 2010 - Vendredi matin : 4ème conf

Les Applications Web

Conférence invitée par Mathieu Bodet.

Les applications web attirent car elles sont cross-platform (enfin presque) et qu’elle ne sont pas contrôlées par certains fournisseurs de matériel et d’OS. Puis avec le cloud computing c’est la fête (on se prend pas la tête de comment ça marche).

Coté serveur, la sécurisation n’est vraiment pas aisée (ex: LAMP). Les serveurs web sont un empilement de couches développées quasi-indépendamment les unes des autres. Dans ces couches certaines sont à coder, d’autres pas. Certaines sont à configurer, d’autres pas… et souvent ça se résume à un compromis financier au détriment de la sécurité.

Face aux problèmes de sécurité croissant liés aux applications web, le législateur commence à mettre en place des obligations de résultat en terme de sécurité.

S’en suit un listing des attaques possibles contre les applications web… (DoS, BOF, SQL injection, XSS, etc… rien de transcendant techniquement :|).

Finalement le problème dans les applications Web c’est l’ensemble de couches qui ne sont pas sécurisé, et l’auteur propose de re-penser la conception et le développement d’applications Web.

La solution proposée c’est un nouveau langage : OPA (one pot application) avec une base de donnée intégrée, et un système de distribution automatique du code entre client et serveur.

S’en suit quelques exemples d’applications web implémentée dans le langage, qui sont ensuite compilées dans un simple binaire qui exécute l’application et attend les requêtes sur le port passé en paramètre.

Le code étant typé statiquement et fortement typé, il résiste aux buffer overflows. L’absence de fonction eval() évite les injections de code. Coté XSS l’application possède un système d’échappement automatique. (Question : comment l’échappement est-il implémenté ?)

Ensuite l’auteur passe en revue le top10 Owasp et les réponses apportées à ces problèmes par ce nouveau langage. Les deux premiers éléments du top10 sont couvert par le système. Une partie des problèmatiques est couverte par des librairies du langage (on ne sait pas comment, allez voir sur le site : www.mlstate.com).

Le système utilise OCaml pour générer le serveur web et une beta release est prévue sous peu.