C&ESAR 2011 - Fuzzing HTTP sur un serveur web embarqué

Fuzzing on the HTTP protocol implementation in mobile embedded web server.
par Nassima Kamel et al. – XLIM

Contexte : cartes à puces à serveur web embarqué … (déjà on sent que c’est mal barré)

Les serveurs webs embarqués dans des cartes sim (ouai sim…) permettant via une URL du navigateur d’interroger la carte à puce. La carte est administrable via le web (lol) et interrogeable par l’utilisateur.

S’en suit des explications sur le protocole HTTP, et une présentation de diverses techniques de fuzzing soit par mutation d’un ensemble de données connues, soit par génération de données basé sur une modélisation des données et des scénarios d’échange.

La première est très rapide à implémenter, mais limitée en terme de probabilité de résultats. La seconde est très efficace, mais elle est longue, et requière un grand nombre d’essais (c’est potentiellement sans fin, vu qu’on à une explosion combinatoire).

L’orateur et ses collègues ont donc implémenté un fuzzer en se basant sur Peach, et on défini comment récupérer les logs de la carte et comment interfacer la carte à puce avec Peach. Car la carte des messages BIP là ou Peach s’attend à un serveur HTTP classique.

Afin d’accélérer l’execution des tests, ils ont mis en paralelle les cartes à puces et divisé l’ensemble des tests à exécuter pour accélérer le traitement.

Et la conclusion des tests, c’est que l’implémentation de HTTP dans la carte à puce ne respecte pas la norme (sans dec…). On peut aussi faire du PUT sur la carte !!! Ils ont contacté le fabriquant des cartes.

Les auteurs s’orientent vers une analyse du serveur et comment implémenter des attaques applicatives sur le serveur web de la carte à puce, tel que des XSS.