Retour sur La Nuit du Hack 2017

1

Nous sommes une petite dizaine de Zenikéens à nous être rendus à la nuit du Hack 2017.

Un peu d’histoire…

Après la keynote et le lancement du bug bounty, Benjamin Brown est venu nous parler de la cryptographie et de sa rencontre avec la cybercriminalité.

Histoire de la cybercriminalité

Présentation de la cybercriminalité

Le but était de partir des années 70 à aujourd’hui mais en analysant la cybercriminalité sous l’œil purement financier (il n’est pas question de défacement de site).

Finalement, on peut se rendre compte que dans les divers scénarios de vol ou d’usurpation, les mêmes enjeux sont toujours présents : sexe, drogue et argent ; Et en dehors des outils, pas grand chose n’a changé depuis presque 50 ans 😉

Actuellement, beaucoup de ces marchés existent encore, d’autres ont été arrêtés, hackés ou ont simplement disparu. Sur ces marchés, on peut tout trouver : identités, drogues, matériel de hack…

Quant à leur futur, il est évidemment prospère même si la problématique principale à adresser est la garantie de l’anonymat au niveau des personnes et des transactions effectuées.

Ce talk permet de bien appréhender l’historique de ce monde et des problématiques actuelles ; d’ailleurs, nous avons décidé d’y dédier un article entier tant le sujet est vaste, presque 50 ans d’histoire tout de même 😉

Lors du second talk, Julien Thomas nous a parlé des permissions sur Android et des petits soucis algorithmiques qu’on pouvait y trouver.

Le talk commence avec une mise en garde assez claire : il faut clairement faire la distinction entre les versions avant et après Marshmallow.

En effet, avant les permissions n’étaient pas explicites et étaient données alors qu’après, un contrôle beaucoup plus précis était possible.

Plusieurs types de permissions existent :

  • Permissions normales : carte SD en lecture, Internet, Bluetooth (ces permissions sont données à l’installation)
  • Permissions dangereuses : contacts, calendrier
  • Permissions de niveau signature et système : obtenues par Android pour être une application système

Après une présentation de la modélisation des permissions et de leurs implémentations, Julien s’est attardé sur le calcul de l’état des permissions. Cet « état de la permission » est calculé de manière complexe puisque la logique de calcul est quand même dépendante de la version de création de l’application. Dernier point important pour calculer l’état : le groupement des permissions (par exemple : la permission de lecture des contacts entraîne la permission d’écriture des contacts).

Tout cela est-il logique? La compatibilité est-elle correcte et acceptable?

Julien nous a ainsi présenté des bouts de code source Android responsables du calcul de l’état des permissions et nous a démontré la capacité de cacher, voir d’usurper des permissions.

Quant à la dizaine de bugs soumis par Julien, le retour de Google est plutôt clair : seulement quelques-uns ont été retenus, tandis que les autres ont été marqués comme « Comportement attendu »… 🙂

Le combat numérique

Nous avons pu ensuite écouter l’Amiral Arnaud Coustillière qui nous a parlé du combat numérique au cœur des opérations militaires.

Amiral Arnaud Coustillière

L’introduction est claire : les attaques informatiques peuvent conduire à la mort, et des groupes comme Daesh n’hésitent pas à user fortement du combat médiatique et numérique. Les objectifs peuvent être commerciaux ou avoir un impact dans le monde réel. Ainsi, pour certains groupes, l’objectif va être de déstabiliser, diminuer la confiance accordée envers un service, voir gagner du temps ou des secondes (notamment avec les dénis de service).

Des attaques comme Mirai (botnet IoT) ont pu faire tomber des plateformes entières (plaque régionale entière au Vietnam et au Libéria). L’Amiral insiste, non sans ironie, sur le faite que Daesh utilise des datacenters dans des pays soumis à des lois protégeant leur propriété intellectuelle…

Beaucoup d’attaques sont aussi réalisées dans le but de briser la confiance : peut-être seulement des rumeurs (défacement, exfiltration d’informations, faible coût).

Enfin, le speaker nous a ensuite parlé du placement du « combattant numérique » dans cette guerre : ce sont généralement des petites équipes, jeunes et innovantes qui ont pour but d’améliorer globalement la technique et de combattre avec « intelligence ». Ces combattants font partie intégrante du dispositif et soumis aux mêmes commandements que des combattants de « terrain ». Ils seraient ainsi au nombre de 2500.

FGPA

Renaud Lifchitz nous a ensuite parlé de FGPA (field-programmable gate array, réseau de portes programmables) et notamment de cartes permettant de miner avec un très bon rapport qualité/prix et une consommation moindre.

Sur les FPGA, la programmation se fait par comportement (entrée/sortie) et les instructions s’exécutent par défaut en parallèle ; il est cependant possible de faire de l’impératif en utilisant une machine à états (conditions).

Deux langages de programmation principaux peuvent être utilisés :

  1. VHDL : mélange de C et de Pascal
  2. Verilog : plus concis et fabile à débugger

Ensuite, Renaud nous a présenté sa « Password marketplace » qui permet d’évaluer la robustesse d’un mot de passe via une plateforme collaborative. Cela permet donc de mutualiser les puissances de calcul.

Un utilisateur peut donc payer pour faire évaluer son hash, et le mineur gagnant récupère une partie de la somme.

La plateforme est basée sur Ethereum avec environ 38000 noeuds et utilise les smarts contracts. En outre, elle est entièrement distribuée et décentralisée afin d’être résistante à toute attaque potentielle. Ses principaux composants sont :

  • ENS (Ethereum Name Service) : pour le stockage et la résolution des noms de domaines de façon décentralisé et distribué
  • Ethereum Swarm (stockage partagé)
  • EVM : Ethereum Virtual Machine (permettant de faire tourner Solidity, langage un peu similaire au JavaScript)

En conclusion, la plateforme permet actuellement d’évaluer des hash SHA-256 seulement (car cette fonction est native sur les nœuds, l’utilisation d’autres algorithmes nécessiterait du développement spécifique).

Hack my BLE !

Deux chercheurs de chez Intel, Eliza Chelling et Sumanth naropanth nous ont parlé des attaques possibles sur les réseaux de types BLE (Bluetooth Low Energy).

Après nous avoir rapidement parlé des algorithmes permettant d’appareiller les devices (ECDH pour les échanges de clés, AES pour le chiffrement), nous avons fait un point sur les « wearables » : montre, téléphone bracelet…

Ces appareils communiquent notamment en BLE mais aussi en HTTPS avec des services back-end.

Un peu de reverse

Damien Cauquil, responsable CERT à Digital Security nous a présenté comment il a pu détourner l’utilisation de certains outils à l’aide de la rétro-ingénierie (reverse engineering).

Damien a l’air d’apprécier les bidouilles puisqu’il s’est amusé à transformer un Minitel en console de jeu (avec notamment l’ajout d’un Raspberry Pi).

La présentation a commencé avec l’étude du Gablys ; le speark a utilisé un DevKit BLE (le Gablys + les connectiques) avec un SDK Nordic pour pouvoir programmer dessus.

Damien a montré qu’on pouvait modifier l’adresse MAC et donc usurper l’identité de devices existants (surtout en mettant un temps de réponse plus petit que ceux par défaut).

Ensuite, une analyse d’une clé Orange a été faite notamment en reversant le protocole d’échange. Nous avons pu avoir la démonstration qu’en utilisant des commandes WebSocket, il était possible de diffuser des vidéos de n’importe quel format via la clé (alors qu’au niveau logiciel certains formats sont bridés)… 🙂

Et la loi dans tout ça ?

Une avocate, Jennifer Lynch, est ensuite venue nous parler des problèmes liés à l’intelligence artificielle, les analyses prédictives et le Big Data.

Risques sur les données personnelles

Le machine Learning et l’intelligence artificielle sont de plus en plus utilisés pour prévoir les crimes, reconnaître les individus, suivre et découvrir les relations entre eux.

Jennifer nous a donc présenté l’état de l’art sur la prévention du crime avec notamment la police prédictive, capable d’anticiper certains délits à partir des délits précédents, ainsi que la reconnaissance faciale pouvant détecter de potentiels criminels à partir de leur expressions faciales, et le suivi des gens afin de découvrir leurs relations (et donc l’importance de pouvoir rassembler et recouper un maximum de données).

L’avocate tira ensuite une sorte de signal d’alarme : pourquoi faire attention aux dérives de ces collectes ?

Finalement, ces informations impactent les droits de l’homme (vie privée, liberté d’expression).

De plus, ces logiciels fonctionnent souvent en boîte noire et on ne sait pas vraiment ce qu’elles contiennent, à quel point, ni quelle est l’efficacité et la précision des conclusions réalisées ?

La question finalement posée est la suivante : comment challenger ces logiciels, dont finalement, on ne sait rien ?

En ce qui concerne les analyses prédictives, elles ont besoin de données pour être efficaces. Ce qui pourrait avoir pour conséquence une volonté d’augmentation des données récoltées par une surveillance accrue. Finalement, cela peut dévier les policiers de leur tâche principale et donc de trouver d’autres crimes. On rentre donc dans une sorte de cercle vicieux.

Avec la surveillance des réseaux sociaux, la liberté d’expression est clairement menacée car l’espionnage peut être assimilé à de la censure. Parfois, la technologie impacte certaines communautés (ex : identification des musulmans). En outre, Jennyfer insiste sur le fait que l’intelligence artificielle peut avoir des résultats invalides et des biais et que, globalement, la technologie peut envoyer des gens en prison.

Une fois ces mises en garde prononcées, Jennifer conclut en insistant sur la criticité de débattre sur le sujet, ainsi que participer aux initiatives proposées par la CNIL.

Que caches-tu, petit NTFS ?

Ensuite est venu un talk très technique de Stéfan Le Berre à propos du célèbres NTFS (système de fichiers de Windows).

Analyse de NTFS

Après un bref historique et quelques définitions sur NTFS, Stéfan nous raconta qu’il s’était lancé le défi de débugger et lire un volume NTFS : cependant, rien de solide n’existant sur le marché, il a pris une décision simple : utiliser un éditeur hexadécimal pour voir ce qui se cachait sous le capot.

Globalement dans la présentation, on sent une certaine difficulté pour appréhender ce format NTFS et surtout s’y retrouver avec les différents cas possibles et les notions associées (parfois expression en octets, parfois en nibbles…).

Stéfan décrit en détail la signification de chaque série d’octets et leur signification en NTFS (et donc l’équivalence si on parle en « système de fichiers »).

Ainsi, une fois la bête appréhendée, Stéfan nous a présenté quelques vulnérabilités NTFS et quelques « astuces » pour avoir le fameux écran bleu de Windows (avec un crash sur NTFS.sys).

La conclusion est relativement claire : NTFS est fun mais le développement du parseur a été douloureux. Il y a vraiment des choses intéressantes à regarder quand on regarde ce système de fichiers et notamment en s’attardant sur sa modélisation au plus bas niveau.

Enfin, il apparaît évident que les développeurs de malwares connaissent déjà les failles existantes et les exploitent.

L’infidélité aux antivirus ou comment les tromper?

Le talk suivant par David Baptiste (doctorant à l’ESIEA) avait un titre plutôt clair et concis : « Comment tromper les antivirus? ».

Pour remettre un peu de contexte, la CIA a perdu des documents dont l’un d’eux parle des antivirus et comment la CIA les évitent.

Naïvement, on peut penser à l’utilisation de failles Zero Days dans les antivirus, mais ce n’est pas une solution à long terme (en plus d’un coût exorbitant). Leur méthode repose sur l’exploitation de fonctionnalités Windows, notamment en venant modifier le système plus profondément (Ring 0).

Nous avons pu avoir une démonstration de l’utilisation des API de Windows et notamment une analyse des fonctions d’enregistrement des callbacks sur le registre et la notion de cookie qui s’incrémente.

Finalement la conclusion est claire : il est relativement aisé de contourner la plupart des antivirus du marché, gratuit ou non. Il est donc utopique de croire qu’utiliser seulement un antivirus est une protection fiable car il n’en est absolument rien.

Tu viens dans ma piscine ?

Un petit jeune est ensuite monté sur scène, Corentin Bayet, étudiant à l’école 42, pour nous parler de la Kernel pool, cet endroit dans lequel est fait chaque allocation par le kernel.

Kernel Pool

Sous Windows 7, beaucoup de failles existaient et permettaient des élévations de privilège ; quasiment toutes les failles les plus connues ont été corrigées avec l’arrivée de Windows 8. Corentin nous a montré qu’il était néanmoins encore possible de prédire les allocations dans cette pool et de pouvoir réaliser des attaques.

Enfin, une démonstration d’attaque sur le driver Sophos a été faite (une Kernel Pool Buffer Overflow).

Le Machine Learning à la rescousse

Nikhil Kurkani nous a ensuite parlé de Machine Learning pour pouvoir analyser des malwares Android. Le framework Flame (écrit en Python) existe déjà et permet d’analyser et détecter des malwares.

Le speaker nous montre ensuite comment il met en place un des mécanisme classique du ML :

  • Collecter les exemples
  • Analyser
  • Apprendre

Ainsi, les données comme les graphes d’appels de fonction sont très utilisées pour avoir des données tangibles sur le comportement des malwares.

La méthode « Hash Graph Kernel » est également utilisée pour trouver des similarités entre les différents binaires (et donc lutter contre certaines obfuscations utilisées).

The last but not the least

Enfin pour finir en beauté cette super journée, Gaël Musquet et Corentin Larose nous ont proposé un talk avec un nom très aguicheur « Hack ta voiture ou ton hélicoptère ».

Après avoir attendu la toute fin de la journée pour ce talk, nous avons eu la surprise de découvrir deux Tesla (dont un modèle 3 entièrement maquillé aux couleurs de Qwant) nous attendant en beau milieu de la salle.

Les jolies Tesla

Les speakers nous ont parlé d’une pièce maîtresse : l’ECU (Engine Control Unit). C’est le cerveau de la machine car il permet d’en contrôler le moteur, vérifier que tout se passe bien (surchauffe…).

La présentation était au format ping-pong entre Gaël et Corentin puisqu’ils faisaient le parallèle entre l’hélicoptère et la voiture (pour montrer notamment leurs similitudes). Nous avons donc pu voir les principaux composants embarqués avec lesquels on peut communiquer, les trames échangées.

Ce nouveau monde est un réel enjeu de sécurité puisque le moindre défaut pourrait avoir des conséquences dramatiques (faire croire que les pneus des véhicules aux alentours sont crevés, simuler des accidents, détourner des voitures…).

Les speakers insistent donc sur la nécessité d’avoir du matériel et de la place pour travailler, car actuellement ces facteurs sont de vrais freins pour l’avancée sur la sécurisation complète de ces machines.

En effet, beaucoup de constructeurs ne veulent pas prêter leur voiture pour effectuer des tests poussés et il est délicat de construire un « Vehicle Research Lab ».

En conclusion, cette journée a été tout simplement géniale, riche en talks relativement hétérogènes et accessibles à tout public. Le bug bounty, les challenges, les cours de crochetage de serrures et autres War Game qui ont eu lieu en fil rouge ont su créer une atmosphère très appréciable où on ne trouve pas le temps de s’ennuyer ! 🙂

A l’année prochaine pour de nouvelles aventures !

Partagez cet article.

A propos de l'auteur

Responsable du pôle Sécurité chez Zenika, Erik est un véritable passionné d'informatique. Son leimotiv est de remettre la sécurité au centre des projets. Profil Javaiste, il apprécie également les technologies back ainsi que les problématiques de performance et d'optimisation.

Un commentaire

Ajouter un commentaire