En fait, il y avait deux présentations qui m'intéressaient particulièrement. Celle sur ces rootkits IOS et celle sur les failles dans les langages interprétés. Il se trouve que les deux sujets étaient abordés l'un après l'autre.

La présentation sur les langages interprétés s'appuyait sur de bonnes idées et de solides connaissances de la part du speaker. Et ça ne commençait pas trop mal en fait... Jusqu'à ce qu'il se mette à nous déballer des tonnes de lignes de code. Le gars a dû tellement s'user les yeux à les lire qu'il tenait absolument à nous faire partager son expérience. Alors que 19h approchait et que la délivrance semblait proche, nous avons eu droit à "Maintenant, passons à Perl". Désertion massive avant la fin du talk qui durera quand même jusqu'à 19h40. Sympa pour le speaker suivant...

Et venaient les rootkits IOS. Pour être rapide, une bonne moitié de la présentation ne servait à rien. En tout cas devant cette audience. Je veux bien que quelques personnes de l'assistance de Eusecwest aient eu besoin qu'on leur explique ce qu'est un rootkit, à quoi ça sert et comment ça marche, mais je doute que ce fut le cas à pH. Honnêtement. Ensuite, énormément de temps à été consacré à la description d'IOS. Pas forcément une mauvaise chose, sauf pour les gens qui avaient un peu touché au sujet. Idem pour ce qui est de la structure d'une image IOS.

Les choses intéressantes ne venaient que très à la fin, et la démo que beaucoup de monde attendait n'a pas eu lieu. D'un autre côté, qu'est-ce qu'on aurait pu attendre de cette présentation ? De mon côté, j'espérais, plutôt que ce long discours sur "comment et pourquoi ça marche", que la plupart des gens qui ont suivi les travaux sur IOS ont clairement entrevu, quelque chose de plus axé sur l'implantation de ce genre de rootkit dans la vraie vie.

Car comme l'a très bien précisé l'auteur dans un de ses premiers slides, la possibilité d'écrire des rootkits pour IOS ne faisait aucun doute depuis longtemps. Dans la mesure où aucun n'était cependant disponible publiquement, il s'agissait surtout d'enfoncer le clou une bonne fois pour toutes. C'est fait. Et du coup, la vraie discussion se situe plus sur le plan de faisabilité, autrement dit sur le "comment je colle mon rootkit dans le routeur". Et là, je suis clairement resté sur ma faim parce que la lecture des slides[1] m'aurait probablement suffit. Par contre, l'article publié est nettement plus locace, pour notre plaisir à tous.

Ceci dit, le travail effectué a clairement été titanesque. L'analyse correcte d'une image complète dans IDA n'est pas une sinécure, loin de là. L'écriture de quelque chose de fonctionnel sur un produit qui n'est pratiquement pas documenté de ce point de vue n'est pas à la portée du premier venu. Le bignou a quand même l'air de fonctionner, et ce sur un large panel de plate-formes, MIPS ou PPC, et prend du bon vieux code C en entrée par le truchement d'un code intermédiaire. Ce qu'il appelle la "glue". Franchement, c'est très impressionnant. Techniquement. Mais pas mal de gens attendaient un peu plus qu'une description de ce travail de titan.

Pour la faisabilité, l'idée exposée consiste à récupérer une image Cisco, la patcher et l'uploader sur le routeur. Puis le rebooter. Ce qui suppose un accès en mode enable à la bête. L'avantage de cette méthode par rapport à d'autre idées évoquées par d'autres, comme le shell TCL, c'est que ça rend ce code persistant au changements de configuration et au redémarrage. Une autre méthode serait de patcher l'image à la volée en utilisant un gdb distant. Mais fini la persistance.

Côté furtivité, ce talk a permis à FX qui passait juste derrière, de démontrer encore sa maîtrise du sujet avec une démonstration de CIR en action sur un routeur compromis par la backdoor de Topo. Grosso modo, CIR est un outil de forensics pour IOS basé sur l'analyse de core dumps IOS. Et il fonctionne manifestement à merveille dans ce genre de situation. Côté prévention, Cisco a publié un long document sur les méthodes permettant, sinon de se protéger de ce genre de jouet, au moins de les détecter. On remarquera combien tout ça repose sur MD5, ce qui devrait en laisser ceux qui ont pu voir une des présentations de Gera sur les faiblesses de MD5 un poil rêveurs. Un peu de travail collaboratif chez Core pourrait, peut-être, produire des résultats... Ou pas...

Sinon, si vous voulez des analyses certainement plus éclairées que la mienne, je vous en conseille deux. D'abord le billet que FX lui consacre sur le blog de Recurity Labs. Ensuite, la très récente prose de notre franco-suisse préféré que je découvre en ouvrant mes mails. Ne serait-ce que par qu'il s'agit d'une bonne collection de pointeurs de référence. Sa conclusion rejoint la mienne. Si ce travail impressionnant ouvre la voie à pleins nouvelles idées sur la question, ce n'est pas encore ce qui va faire s'écrouler Internet. Il reste encore à combiner ça avec l'existant, comme les travaux de FX ou Michael Lynn sur les exploits IOS pour l'accès au routeur, et à le rendre plus efficace, en terme de furtivité et de fonctionnalités. Une brique de plus à l'édifice. La brique qui permettra aux esprits retords de ne plus douter de la faisabilité de faire tourner du code malicieux sur IOS. Respect donc.


Sinon, pH-Neutral était encore excellente cette année. Le nouveau lieu de rendez-vous, bien qu'un poil paumé, était parfait et, me semble-t-il, nettement plus sympa que l'ancien. On a pu y croiser encore plus de monde que les années précédentes dans une ambiance ouverte et très bon enfant. Encore un truc à marquer d'un cercle rouge dans l'agenda 2008. À noter que l'an prochain, certains complotent déjà pour avoir Eusecwest, pH-Neutral et SSTIC dans la foulée. Deux semaines qui promettent de ne pas être de tout repos pour ceux qui tenteront le marathon.

À côté de cela, Berlin est une ville formidable et s'y rendre sans prendre le temps de la visiter serait une erreur. Et comme les talks commencent à 13h le samedi, ça vous laisse une bonne matinée pour vous y ballader.

J'ai commencé à mettre des photos en lignes. Elles n'y sont pas toutes cependant.


Et pendant ce temps, à Hong Kong, ou commencera demain Syscan HK, il pleut...

Notes

[1] Qui ne sont toujours pas en ligne...