06
oct.
'16

Le BBC Micro:bit, c'est awesome !

Publié le 06 octobre 2016

La BBC a initié en 2015 le projet Micro:bit, qui se veut être un ordinateur de poche programmable destiné à l'éducation. L'objectif de cette dernière: fournir à chaque écolier de 12 ans («year 7») un support amusant et facile à utiliser. Exit l'Arduino et ses connexions complexes, le Micro:bit est voué à être la plateforme d'apprentissage du code à l'école, pour un prix modique (une board, un cable USB, une alimentation à piles et un boîtier pour 25€).

Le Micro:bit

Avant d'aller plus loin, il me semblait important de définir le genre du Micro:bit: masculin. Pour la simple et bonne raison que si vous en parlez au féminin dans un bon français, certaines personnes ne manqueront pas de remettre en question vos attributs, en particulier si vous êtes de sexe masculin. Trève de plaisanterie.

Le Micro:bit se base sur un SoC nRF51822 de Nordic Semiconductor, qui n'est rien de moins qu'un micro-contrôleur basé sur un CPU ARM Cortex M0 intégrant les technologies Bluetooth Low Energy et ShockBurst (SB) (version "ancienne" et améliorée, Enhanced ShockBurst (ESB)). Le protocole de communication ESB est utilisé par la couche logicielle sur laquelle repose le Micro:bit, mais il n'est pas directement accessible, ce qui est dommage car il y a des choses bien drôles à faire, comme intercepter les frappes de touches des claviers sans fil.

Le gros intérêt du Micro:bit, ce sont ses interfaces de programmation. Les concepteurs ont mis en place de la compilation dans le Cloud, à partir des environnement suivants: * JavaScript * Python * Scratch-like

Vous éditez votre code en ligne, vous le testez sur l'émulateur puis vous télécharger le binaire (compilé à la demande) afin de programmer votre Micro:bit. Et rien de complexe pour la programmation: il suffit de brancher le câble USB à un ordinateur, et le Micro:bit est reconnu comme une clef USB (stockage de masse). Une simple copie du fichier téléchargé sur ce support de stockage émulé suffit à déclencher la programmation du Micro:bit, qui se déconnectera automatiquement et lancera votre code. On ne peut plus simple.

Pour ceux que l'aspect en ligne rebute, il existe des environnements de développement intégrés, comme [mu-editor->https://github.com/mu-editor/mu], ou on peut se rabattre sur du C++ en dernier recours.

Micro:bit repose sur MicroPython, un portage de Python3 pour les micro-contrôleurs, et permet ainsi de développer très simplement en Python ! Le code suivant permet d'effectuer une animation sur l'écran intégré:

from microbit import *

while True:
    display.show(Image.HAPPY)
    sleep(1000)
    display.show(Image.SAD)
    sleep(1000)

Les fonctionnalités du Micro:bit

L'avantage principal du Micro:bit est le fait que l'on peut développer en Python à l'aide de la bibliothèque standard. Cette dernière interface tout le matériel, et rend le développement très intuitif. Elle permet notamment : * de gérer l'affichage de l'écran de LEDs (elle possède une banque d'images intégrées) ; * de gérer les boutons poussoirs ; * de gérer les boutons capacitifs (les pads apparents) ; * de jouer de la musique (en connectant un HP comme il faut) ; * de faire de la synthèse vocale (toujours avec le HP) ; * de gérer les accéléromètres ; * de gérer la boussole ; * de communiquer avec d'autres Micro:bit par radio ; * de communiquer avec d'autres Micro:bit par "réseau" filaire ; * de stocker des fichiers via un système de fichiers minimaliste (sans carte SD !).

Bref, c'est juste énorme les possibilités offertes ! Sans ajout de composants, on peut faire des jeux qui communiquent via radio, des horloges binaires, des écrans affichant des messages, etc ... Et je ne parle pas des shields qui sont en train d'être développés.

Utilisation avancée

Ce n'est pas parce que c'est conçu pour les débutants que ça n'offre pas de possibilités ! J'étais à la recherche depuis quelques temps d'une plateforme portable permettant de mener des attaques particulières sur les protocoles Bluetooth Low Energy et ShockBurst. C'est d'ailleurs pour cela que j'avais conçu le ProbeZero que j'ai présenté à la Nuit du Hack 2016. Mais le Raspberry Pi est relativement lourd, et mon système mettait facilement 30 secondes à se lancer, sans parler de la consommation de batterie. Le Micro:bit est de fait une très bonne alternative, avec un écran en plus !

Pour le développement, on ne peut pas se limiter à la bibliothèque standard: les aspects radio sont très limités, et ce serait dommage de se passer du SDK de Nordic Semiconductor (nRF51 SDK) pour s'amuser avec de la radio. Le code source du fork de MicroPython est disponible sur github, où toute la phase d'installation est relativement documentée. Si vous souhaitez forker la base Python du Micro:bit, c'est une bonne piste à suivre.

Il est aussi possible de développer directement en C++ et d'appeler les fonctionnalités présentes via Python: Micro:bit propose une couche d'abstraction (nommée Microbit-DAL) qui permet d'utiliser toutes les fonctionnalités du Micro:bit. L'aspect intéressant de cette couche est que l'on peut du coup utiliser le SDK nRF51 pour accéder aux éléments internes du nRF51822. Pour hacker sans se fouler, c'est quand même classe :).

Conclusion

Le Micro:bit est pour moi une plateforme qui me donne envie d'expérimenter, qui me semble tout à fait abordable par des élèves, et que je souhaite faire essayer dès que ce sera possible par mes minis-moi. Elle est aussi très intéressante car elle offre un moyen simple de bidouiller encore plus sur des protocoles sans-fil par exemple, voire développer des outils d'attaque portables (je n'ai pas abordé l'USB HID mais à mon avis il y a aussi de quoi creuser: Teensy-like, rubber-ducky et consors doivent pouvoir être portés sans trop de souci AMHA).

Je suis conquis par ce projet, au point même que ça me donne envie de faire un workshop là dessus à la prochaine Nuit du Hack (ou même Nuit du Hack Kids). Et en parler à une de mes amies qui est directrice d'école et pour qui l'enseignement du code à l'école est quelque peu compliqué.

Essayez-le, ça vaut franchement le coup.

07
juil.
'16

De retour de la Nuit du Hack 2016

Publié le 07 juillet 2016

La quatorzieme édition de la Nuit du Hack vient tout juste de s'achever, et je dois avouer que c'était juste magique. Magique non pas parce que l'évènement était de retour au pays de Mickey, mais par son organisation, ses contenus et les rencontres que l'on y fait. Petit retour à chaud de cette Nuit du Hack 2016.

Les coulisses du vendredi

Je suis arrivé sur place vendredi soir et j'ai rejoint le staff Hackerzvoice qui s'activait pour tout finir de préparer (badges, tours de cou, etc ...). En tant que conférencier, j'ai passé plus de temps sur le polissage de planches comme on dit à l'ANSSI plutôt que sur les derniers préparatifs, ainsi que sur mes démos bancales. En effet, certaines d'entre elles devaient être testées en conditions réelles, et cela m'a pris quelques heures afin de tout régler (un grand merci à Jonathan pour le coup de main). A 2h30, j'étais couché et fin prêt pour ma présentation.

Enfin, je pensais l'être.

Le Jour J

Samedi matin, après avoir avalé un petit-déjeuner, je me rends au New York Hotel afin de m'imprégner de l'atmosphère du lieu et saluer les premiers arrivés (staff et participants).

C'est l'occasion de se ballader un peu, de découvrir les surprises de l'édition 2016, mais aussi de se poser à nouveau au calme pour repenser un peu les slides. Car après une nuit de réflexion, quelques modifications m'ont semblé utiles. J'apporte ainsi les dernières corrections et boucle la version finale de la présentation.

Je commence à suivre les conférences, bien qu'ayant loupé la keynote de Louis Pouzin. Le talk de Thomas Aubin et Paul Hernault sur la sécurité de Windows 10 et les aspects protection de la vie privée était sympa, avec en prime la démonstration d'une preuve de concept nommée CortaSpoof permettant de limiter la capacité de Microsoft à profiler les utilisateurs de la dernière version de son système d'exploitation. J'ai suivi celui d'Antonio Blanchi sur la participation de l'équipe Shellphish aux différents CTFs d'assez loin, mais les quelques bribes que j'ai pu comprendre m'ont semblé plutôt intéressantes: stratégies de CTF et outils dédiés étaient au programme. Puis ce fut au tour de mon collègue Renaud Lifchitz de démontrer la faiblesse des télécommandes radio employées sur une Set-Top-Box: très instructif et les possibilités offertes sont originales !

Je n'ai pas pu assister à la présentation sur Ethereum, par contre celle sur le piratage des interphones était intéressante: Sébastien Dudek a ainsi démontré que l'on pouvait prendre le contrôle de ceux-ci en abusant du GSM à l'aide de SDR et de fausse station GSM. Les démonstrations sous forme de vidéo étaient funs et démontraient bien les risques encourus. Toutefois, les bons vieux passes PTT ou le vieillissant système Vigik peuvent être des vecteurs d'intrusion tout aussi efficace, et nécessitant moins de moyens.

La conférence suivante consacrée au crochetage improvisé était tout bonnement impressionnante: c'est exactement ce que j'attendais de celle-ci. Ouverture de cadenas avec des shims fait maison (à la MacGyver), forçage de porte au ceintre, les moyens rudimentaires y étaient et ça fait plaisir de voir une approche pragmatique de l'ouverture de portes et serrures ! C'est la dernière conférence que j'ai pu voir, car je suis allé manger assez tôt afin de terminer les préparatifs matériels de ma présentation (prévue à 21h15). Celle-ci s'est déroulée sans encombre, et j'ai eu plusieurs retours positifs ce qui fait toujours plaisir.

Les workshops

J'ai enchainé rapidement mon talk avec un workshop intitulé "Pimp My Badge", présentant le badge électronique de l'année dernière (à défaut d'en avoir un cette année) et les moyens de le bidouiller. Ca a été l'occasion de mettre un peu à jour la bibliothèque standard et d'ajouter quelques exemples.

Comme chaque année, l'atelier de crochetage de serrures a rencontré un franc succès et nombreux étaient ceux voulant s'y essayer. Didier Stevens, l'auteur de OleDump notamment, animait un workshop sur l'analyse de documents malveillants à l'aide (certainement) de ses outils. Je n'ai pas pu le suivre malheureusement, mais il semblait très intéressant.

La NDH Kids

Contrairement aux années précédentes, je n'ai pas animé d'atelier durant la NDH Kids. Mais j'en ai eu de très bons échos: des collègues et amis ayant participé ou ayant des enfants qui y ont participé en sont revenus ravis. Les ateliers étaient diversifiés: initiation à la cryptographie, programmation de Lego Mindstorms, Initiation à l'électronique et à la soudure électronique, architecture d'un ordinateur, ... Avec en plus des bean bags et une borne d'arcade !

Un grand merci

J'ai passé un excellent moment, à la fois en tant que participant mais aussi en tant que conférencier. Il est bon de retrouver une organisation comme celle de cette édition, fluide et sans accrocs, malgré la paranoia sécuritaire que l'on a pu observer lors de l'arrivée (scans aux rayons X, détecteurs de métaux, fouille de sacs). Et il y avait du Club Mate ! Bref, on remet ça l'année prochaine, et il y aura du lourd, du très très lourd (© Michel & Michel)

17
juin
'16

La Nuit du Hack 2016, c'est dans deux semaines !

Publié le 17 juin 2016

La quatorzième édition de la Nuit du Hack arrive à grands pas et se déroulera les 2 et 3 Juillet prochain à Disneyland Paris. Après un passage éclair à l'Académie Fratellini l'année dernière, l'évènement est de retour au pays de Mickey avec des conférences, des ateliers et des challenges, la routine habituelle quoi. L'occasion de découvrir ce qu'est le hacking, voire d'approfondir ses connaissances en sécurité informatique, en bidouillage matériel, en impression 3D, en lockpicking, et même de rencontrer des vraies personnes !

Les nouveautés du cru 2016

Cette année, plusieurs nouveautés ont été pensées par les organisateurs. La première d'entre elles (et à mon sens non la moindre) concerne l'aménagement des talks qui débutent à 10h00 le matin pour terminer vers 23h00, avec tout plein de pauses de prévues pour échanger, manger, boire, et tailler une bavette avec les conférenciers. C'est plutôt appréciable pour ceux qui ont connu le rush des années précédentes.

Autre nouveauté, la Nuit du Hack s'étend! Tout l'espace de conférence du New York Hotel est réservé pour l'évènement, ce qui doit représenter environ 5000 mètres carré dédié à la Nuit du Hack, avec des zones spécifiques à chaque partie: une zone pour le wargame, une zone pour les conférences, une autre pour le CTF privé, etc... Ce qui veut aussi dire plus de place pour circuler, se poser, et pas de changement de disposition de la salle principale.

Les trucs à ne pas rater

Comme chaque année, il y a quelques pépites à ne pas louper dans les conférences et les ateliers. J'en ai repéré quelques unes que je vous recommande chaudement.

Côté conférences, celle de Renaud Lifchitz intitulée Revue de sécurité du protocole ZigBee d'une box TV française semble prometteuse: j'avais déjà analysé et présenté en catimini il y a quelques années une étude d'une box TV française (et c'était pas glorieux), je pense qu'on devrait avoir la même chose avec en plus un aperçu du protocole ZigBee.

Du côté du hardware, la conférence de Sebastien Dudek intitulée House intercoms attacks, when frontdoors become backdoors (ou "Attaques des interphones, quand les portes d'entrée deviennent des portes dérobées") semble elle aussi très intéressante et mérite de s'y attarder. On peut s'attendre à y voir des attaques matérielles, un décortiquage d'interphone et des conséquences désastreuses sur la sécurité.

Enfin, la conférence de Olga Kochetova intitulée Trust No One. ATMs and their dirty little secrets présentera les petits secrets des distributeurs de billets, du réseau de communication sur lequel ils sont interconnectés jusqu'aux attaques matérielles et logicielles développées par des braqueurs d'une nouvelle génération. Ca promet d'être instructif !

En ce qui concerne les workshops (ateliers), je recommande les suivants:

Ne loupez pas le dernier de ma liste, Didier Stevens est l'auteur d'outils comme oledump très utiles lors d'investigations numériques et une très bonne source d'information quant à l'analyse de fichiers Office malveillants. Bon par contre ça sera en anglais et faudra suivre, mais à ne pas louper !

De mon côté, je vais aussi animer un petit workshop sur la conception du badge électronique de la dernière édition, si vous en avez eu un l'année dernière et que vous souhaitez explorer ses fonctionnalités, c'est l'occasion de l'amener et de découvrir comment développer sur celui-ci ! Je donnerai des exemples (code source inclus) afin de transformer le badge en gadget utile :).

Socialisons

Autre grande nouveauté cette année, j'ai limité mon implication dans l'évènement afin de pouvoir (enfin) en profiter et socialiser ! Soyons honnêtes, cela fait presque 8 ans que je n'ai pas profité à fond de l'évènement et pu discuter avec tout plein de gens (et accessoirement boire des bières). Je pense que plusieurs d'entre vous se reconnaîtront, pour avoir essayé de me payer des coups alors que j'étais en plein rush :D. Bref, cette année, je prends mon temps.

On se retrouve là-bas !



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.