Il y a 3 mois, le « call for paper »de la NoSuchCon semblait tellement mégalomaniaque, en annonçant une « real badass 0%bullshit hacking conf ». Mais il fallait se rendre à l’évidence : la première édition de la NSC envoyait du lourd. Et l’on entendait parfois dans les couloirs de l’Espace Niemeyer « c’était sacrément intéressant, mais j’ai un peu décroché quand il a commencé à plonger dans le code ». Fort heureusement, avant chaque conférence, les organisateurs fournissaient, intervention après intervention, les fichiers des transparents de chaque conférence, évitant à beaucoup de sérieux torticolis, strabismes fulgurants et conjonctivite galopante (la notion de taux de contraste du codeur solitaire en train de rédiger ses Powerpoint est parfois différente de celle de l’homme de la rue).
De ces « badass hackers », on ne peut manquer de mentionner l’un des rares Français présents sur scène, Nicolas Grégoire (Agarri) qui abandonnait momentanément son terrain de jeu favori, XML, et expliquait comment pratiquer avec dévotion la religion d’un fuzzing intelligent. D’un fuzzing ciblé devrait-on dire. Car au lieu de frapper un peu à l’aveuglette dans toutes les directions « Nicob » conseille de viser les parties sensibles communes à un nombre de plus en plus croissant d’applications Windows en général (et Microsoft en particulier), notamment la famille Office, les navigateurs et plusieurs outils de visualisation de fichiers de formats divers. Le centre névralgique en question étant le moteur XSLT (EXtensible Stylesheet Language), langage de transformation XML (on n’en sort pas). En visant directement ce moteur, le résultat du fuzzing s’affranchit des lenteurs liées à l’aspect graphique des applications.
Le titre même de la présentation de Mateusz « j00ru » Jurczyk résumait l’efficacité de ses travaux : comment circonvenir le noyau Windows en deux instructions. Le discours s’adresse franchement aux habitués de la navigation kernel et aux spécialistes de la gestion mémoire. Pour les personnes « normales », on peut résumer la chose ainsi : des overflow exploitables sont possibles, même avec les noyaux modernes et leurs mécanismes d’adressage aléatoire. Notons au passage que J00ru était le premier orateur technique intervenant immédiatement après la plénière d’Andrea Barisani. Autant dire que les participants ont immédiatement été mis au diapason technique de la conférence
Comparativement, l’intervention de Luigi Auriema et Donato Ferrante pouvait sembler primesautière : Exploiting Game Engines For Fun And Profit. Depuis près de 10 ans, Auriema décroche le titre d’inventeur de failles le plus prolixe de la planète. De failles et d’exploits, puisqu’il vient de créer sa propre entreprise de publication et vente d’exploits, ReVuln. Pourquoi cibler les jeux ? Parce que depuis les premiers temps des consoles, les outils de développement, les processeurs graphiques s’avèrent en avance sur ce que concevaient les entreprises de développement et concepteurs de circuits pour le compte des services techniques des armées. Pragmatiques, les militaires du monde entier se sont donc mis à utiliser les mêmes outils que les scénaristes de Halo et de SuperMario. En conséquence de quoi la découverte d’une vulnérabilité exploitable dans une console pourrait potentiellement être utilisable contre des équipements militaires. Ajoutons que la cible visée est particulièrement vaste, d’autant plus vaste que les consoles se piquent de fonctions multimédia et viennent tutoyer le monde de « l’internet de l’objet » : téléviseurs, services web de consommation de contenu par cette nouvelle génération de « mediacenter », le champ d’exploitation est immense…et la surface d’attaque l’est presque toute autant. Car les jeux utilisent des protocoles de communication relativement vulnérables (udp, pour des raisons de rapidité), des protocoles de jeu (via les « opcodes » propres à un moteur de jeu, lui-même commun à plusieurs jeux utilisant ce moteur) ou des outils de personnalisation du jeu lui-même (générateur de cartes par exemple) qui sont également vulnérables. Ces attaques, qui n’ont longtemps intéressé que quelques gamers en mal de cracks ou de cheatcode, revêtent un tout autre intérêt depuis que les consoles ont intimement été liées à des réseaux spécialisés. Réseaux qui non seulement facilitent la compromission des machines des utilisateurs/abonnés, mais également des grappes de serveurs situées sur ce même réseau.
Dans la catégorie outils et environnements/framework, deux conférences sortaient nettement du lot. Notamment la toute dernière présentation de NSC, Killing RATs, the Arsenic Framework de Robinson Delaugerre et Adrien Chevalier. Arsenic est un framework d’outils d’analyse destiné à détecter les RATs (remote access tools) qui traitent à la fois les signatures du trafic réseau, l’analyse des échanges et le comportement des machines compromise (notamment des états de la mémoire). La démonstration de Delaugerre et Chevalier montrait Arsenic confronté à une machine infectée par Poison Ivy. Sur un sujet relativement ardu, traitant de l’usage d’une suite d’outils complexe dont le cadre est encore, pour certains aspects, en phase de développement, les deux intervenants ont su réellement captiver l’attention de l’assistance, quitte parfois à utiliser quelques honteux messages subliminaux à propos d’attaques APT « coming from China by foot ». Les amateurs de contrepets apprécieront.
Autre framework, mais orienté développement et analyse, Pythonect est un DSL (Domain-Specific Language) présenté par l’un de ses principaux concepteurs, Itzik Kotler. Le langage est simple, synthétique, et les instructions peuvent être parallélisées. Si la logique un peu particulière du DSL peut légèrement dérouter les habitués de Python, son efficacité séduit immédiatement les nouveaux venus qui n’ont pas à « réapprendre » et oublier d’anciennes habitudes. Itzik Kotler a d’ailleurs développé de cette manière un outil baptisé Small (Simple Malware AnaLysis Language), script chargé de « fouiller » dans les entrailles d’un code nuisible pour en extraire des chaines de caractères signifiantes, des adresses IP, des messages pseudocamouflés. Mais le DSL montre toute sa puissance lorsqu’il est utilisé pour piloter des flux parallèles et effectuer des traitements concurrents pour piloter deux outils d’analyse en python (Nmap par exemple). A récupérer sur Github (git clone git://github.com/ikotler/pythonect.git) et à installer conformément au Readme.rst.