 Tramel Hudson, qui est là, il s'occupe de quelque chose. Tramel Hudson ici, il dit ce sample des trucs permanent sur le stage, mais il va nous expliquer comment travailler les hardware implants, les trucs qu'on a déjà entendu parler dans Bloomberg, on a déjà entendu parler des super computers avec des implants. Vous applaudissement pour Tramel Hudson. Donc avant de commencer sur les implants hardware, deux disclaimer. Le premier de mon employeur. Donc, comme sur les bars de chocolat, c'est pas un avis d'investissement. Et de deux, en fait, je ne sais pas quelle est l'histoire derrière l'histoire de Supermicro. Bon, il y a quand même des sources. Mais j'ai passé beaucoup de temps à réfléchir aux implants hardware, à commencer avec l'attaque Vendor's Cry contre les firmware des MacBooks et la suite qui écrivait directement le firmware des MacBooks. Et j'ai aussi pensé à la défense contre les implants hardware pour avoir des laptops légèrement plus sécurisés. Et aussi dans le cadre de mon projet sur le boot Linux, j'ai réfléchi à comment protéger les serveurs contre les attaques, les softwares, les logiciels. Donc, avec tout ça, je me suis concentré sur les attaques sur le firmware et ce genre de choses. Et du coup, l'histoire de Blumberg en octobre m'a excité. Le truc sympathique, c'est l'image animée dans l'entête qui montre l'endroit sur la board où est l'implant. Et ce qui est intéressant, c'est que c'est exactement où moi, j'en installerai un sur le bus Spy. Il y a beaucoup d'autres gens dans la communauté de la sécurité hardware et software qui ont dit que c'était plausible. D'autres personnes ont dit que les attaques sur la supply chain étaient définitivement quelque chose qu'il fallait se soucier. Quelqu'un a dit que l'attaque telle qu'elle était gratuite décrite était totalement implosible. Et en gros, on a un moment WTF. Tout le monde essaie de déterminer si c'est pas un truc à l'intérieur de sa machine. Donc, si on prend un peu de recul et qu'on examine les allégations clés, ils ont dit que les testeurs de chez Amazon avaient trouvé un petit circuit dans la barre qui n'était pas dans le design et qui avait été déguisé pour ressembler à un coupleur de conditionnement de signal et que ces plus illicites étaient connectés au BMC, au contrôleur de management de la carte mère, ce qui leur permet d'avoir accès même à des machines étantes. Et c'est en fait ce à quoi sert le BMC, des marlés-machines. Dans le plupart des serveurs, le BMC est allumé à chaque fois que le serveur est connecté à l'électricité et donc il peut allumer et étendre la machine. Et en général, on a envie de pouvoir faire ça sur le réseau. Donc, il a sa propre interface réseau et il peut aussi partager l'interface réseau avec le système principal. Il y a aussi un port série sur le réseau local qui est utilisé souvent pour débugger les systèmes. Et il y a aussi une emulation de volume USB qui permet de faire des installations des mises à jour d'OS à distance. On a souvent un KVM à distance, donc un port VGA. Et ce chip est sur le bus PCI, du coup, il peut faire de l'accès mémoire direct dans la carte réseau. Et c'est très souvent branché sur le bus SPY du firmware, donc il peut modifier le firmware. Et sur certains systèmes, c'est même branché au TPM, donc au module de calcul protégé, ce qui permettrait d'override la racine de sécurité. Donc, c'est vraiment dommage, vu tout ça qui ne soit pas correctement implémenté. Un chercheur en sécurité dit qu'il n'y a pas de protection, de détection ou de récupération des attaques sur ce genre de chip. Donc le fait d'avoir un implant matériel dans le BMC est vraiment quelque chose auquel il faut s'inquiéter. Donc un autre postulaire qui est fait, c'est que ça a affecté 30 entreprises dont Apple et Bloomberg indiquent qu'Apple aurait trouvé un départ d'avant ces chips sur des cartes maires de chez Supermicro et qu'ils auraient coupé par la suite les ponts avec Supermicro. Donc ce postulaire en particulier est assez intéressant parce qu'il collabore un article début 2017 comme quoi Apple avait enlevé les serveurs Supermicro de leur datacenter. Donc Apple a nier les faits, quant au fait que ce sont un problème de firmware, mais c'est intéressant à garder sans l'esprit. Et le troisième point, c'est que dans un cas, les puces malveillantes ont été mises entre les couches du circuit imprimé et ça aurait été fait par des opérateurs chez le fabricant pendant la fabrication et de l'armée chinoise. Donc avec autant de postulats et toutes ces allégations, on espérerait que les sources soient correctes et d'après Bloomberg, il y a 17 sources indépendantes qui sont citées, enfin qui sont anonymes, dont 6 de sécurité nationale, 2 personnes chez Amazon et 3 insiders, seniors chez Apple. Donc les sources sont leur solide sauf que dès que l'article a été publié, tout le monde a nier. Amazon a dit qu'il n'avait jamais trouvé aucun problème par rapport à du matériel modifié et Apple était encore plus brutal. Tim Cook a dit que ça ne s'était pas passé, qu'il n'y avait aucune vérité là-dedans. Donc Super Micro a répondu dans une lettre assez longue sur comment ils protègent leur chaîne de fournisseurs et pourquoi ils pensent qu'il n'y a pas eu d'attaque. Et c'est intéressant de regarder certaines choses qu'ils disent faire pour protéger leur supply chain. Donc notamment, s'il y a une altération physique non autorisée pendant la fabrication, d'autres éléments du design ne seraient pas adaptés. Donc pour comprendre comment on fait des cercles intégrés, depuis que j'ai visité une fabrique de PCB en Chine ou notamment Super Micro fabrique, petite photo de vacances, donc pour ajouter des vias, il faut qu'il modifie le plan de découpe et les plans d'électroplacage. Donc il faudrait qu'il modifie le mascage et qu'il modifie l'etching, la manière dont c'est raboté. Et chaque tentative de modifier ça serait vue lors de l'inspection optique qui est faite sur chaque circuit imprimé. D'autre part, les allégations comme quoi on pourrait rajouter des choses entre les couches du circuit impliquerait qu'on pourrait subvertir le processus de lamination des circuits imprimés. Et si ça change l'activité du système, tous les dispositifs de tests s'en rendraient compte, notamment des tests qui vérifient qu'il n'y a pas de cours circuit, qui vérifient que tout ce qui est censé être connecté est électriquement connecté. Donc ce serait assez difficile de modifier le process de production et ce serait assez difficile de le contenir parce qu'on ne sait pas quel est le client final qui va recevoir telle ou telle carte, mère. Supermicro dit que pendant le processus d'assemblage ils ont des employés tout le temps présents sur le site et d'ailleurs j'ai visité les compagnies d'assemblage j'ai discuté pendant mes vacances et j'ai parlé avec des gens qui font ça sous contrat et eux aussi ils disent qu'ils envoient leurs employés sur la chaîne de production pour observer les machines de pick and place, le reflow et comment sont assemblées les composants. Et leur grosse inquiétude c'est que s'il n'y a pas quelqu'un les pièces qui sont mises dans la pick and place seraient remplacées soit par des contrefaçons soit par des pièces recyclées j'ai visité un marché d'électronique où des gens dessoudent et trient les pièces et revendent les pièces dessoudées au kilo et si vous ajoutez un peu d'argent ils les mettront sur des rails et du coup vous pouvez économiser quelques centimes sur votre process de production et une autre inquiétude qu'ont ces entreprises c'est pas juste les pièces récupérées mais les contrefaçons spécialement pour les trucs qui coûtent plus de 3 dollars pièces la communauté Arduino a été frappée il y a quelques années avec pas mal de chips contrefaits de chez FTDIY où la construction interne était totalement différente dans ce cas ça a causé des problèmes de fiabilité donc imaginez d'une perspective sécuritaire c'est vraiment inquiétant que des pièces qui ont l'air identiques pourraient avoir une fonctionnalité totalement différente implémentaire à l'intérieur Supermicro a également mentionné qu'il passait leur carte mère au rayon X à la recherche d'anomalyques et j'ai pas pu prendre de photos dans l'usine quand j'étais là-bas mais sur cette photo de Wikipédia on peut clairement voir les composants actifs on peut clairement voir que les composants actifs ont différents des composants passifs comme les capaciteurs ou les résistances donc si un attaquant arrivait à subvertir la chaîne de production en mettant des composants malicieux ils pourraient être détectés à cette étape une autre chose intéressante c'est que ces inducteurs dans des paquets en deep très commun sur les cartes réseaux et parfois des gens ont cru qu'ils avaient un implant matériel quand ils ont trouvé ce genre de choses dans leur jack internet mais on le voit assez clairement sur le rayon X c'est des composants passifs Sophia d'Antoine elle aussi a fait un teardown assez extensif de ces cartes mères y compris Analyse rayon X elle a trouvé des trucs bizarres mais rien de malicieux pas de pétard fumant donc vous pouvez lire son blog poste pour plus de détails elle a trouvé des trucs qui n'étaient pas censés être là mais qui étaient en fait juste des composants de conditionnement du signal donc dans l'aide de super micro ils disent qu'ils font vraiment tout en sorte pour que le processus de fabrication et d'assemblage et de vérification sont correctement faits et qu'il serait difficile de se reconvenir à leur sécurité d'une manière réaliste mais ce n'est pas seulement le seul endroit où ça se produit on sait que les agences de sécurité nationale interceptent le matériel informatique et qu'ils ont leurs taillots les opérations d'accès sur mesure où ils ouvrent les ordinateurs ils installent des implants hardware ils recèlent les emballages et ils les laissent continuer leur chemin jusqu'au destinataire et elle a né ça un catalogue d'un plan hardware comme c'est un plan JTAG des ports internet avec des ordinateurs embarqués ou des implants spécifiques au firmware pour le SMM de certains serveurs et ils peuvent même faire de l'exciltration à distance en radiofréquence donc ces opérations d'accès sur mesure sont vraiment idéales pour ce type d'attaque ça permet de contenir l'exploit à un seul client de dissimiler le fait qu'il soit là et aussi de couvrir le fait de déterminer à quel moment les choses ont mal tourné donc si vous trouvez un truc bizarre dans votre ordinateur vous avez tendance à penser que ça s'est passé à l'usine SuperMacro a également déclaré qu'il était techniquement implosible hautement improbable que du matériel modifié fonctionne correctement qu'une tierce partie n'aurait pas la connaissance totale du design bon je pense que c'est pas correct parce qu'on sait que la NSA le fait et aussi parce que je l'ai fait en réalité la seule chose à savoir c'est que c'est des composants assez communs cette flash on peut trouver le datasheet sur internet et voir exactement comment c'est câblé sur le système et la seule chose à savoir pour communiquer avec le BMC c'est quelle est le pin de sortie série de ce composant donc la flash du BMC est connectée au CPU du BMC via la sortie série et elle passe via un résisteur en série une résistance en série et c'est là que je mettrai mon implant bon le mien est un peu plus grand que cette résistance j'ai posé sur la carte c'est un petit FPGA qui pense sur le côté mais ce serait plausible de le mettre dans quelque chose de tout petit en réalité un armes M0 moderne rentre dans l'espace de 2 transistors d'un 65-10 des années 80 la loi de Moore nous permet de mettre énormément de processeurs dans très très peu d'espace donc un résistor, une résistance 0603 on pourrait mettre un cortex M0 à l'intérieur et ce CPU serait suffisamment puissant pour ce système mais le problème c'est qu'on a que deux pins et en général on en a besoin de six et en plus on a ni alimentation ni terre donc on doit passivement alimenter via le signal on n'a pas le chip select, le signal de sélection de la puce donc on ne peut pas savoir à quel moment on parle au chip on n'a pas le pin d'entrée série donc on ne sait pas si on est en train d'envoyer des trucs ou de lire des adresses et on n'a pas d'horloge donc comment est-ce qu'on se synchronise à l'horloge ça c'est à voir enfin on n'a pas la possibilité de modifier la donnée arbitrairement on peut juste déconnecter le pin donc transformer un 1 en 0 mais pas un 0 en 1 donc avec toutes ces limitations on peut quand même faire des trucs assez intéressants retrouver l'horloge c'est simple on peut regarder les données qui passent et trouver la plus courte transition de bits entre 0 1 0 1 ou 1 0 1 0 pour estimer la vitesse d'horloge ce qui nous permet de reconstruire le flux de données et si on regarde à la flash on peut voir que c'est plus ou moins du bruit aléatoire mais il y a des grandes parties qui sont toutes blanches donc c'est tous des bits qui sont à 1 donc si on regarde l'organisation de la flash on peut voir quel bout de reboute donc c'est un executable c'est un peu difficile de le modifier de manière utile on a un noyau on a le root file system qui sont tous les deux compressés du coup il ressemble à du bruit aléatoire mais la mémoire non volatile est un système de fichiers JFFS2 et ce système de fichiers fait 3 Mhz est essentiellement vide et tout cet espace vide c'est des FFFF c'est tous des 1 donc il y a beaucoup de 1 et en plus il a des jolies headers qu'on peut valider donc on voit que le bitmask 1 9 8 5 on sait à quel endroit on arrive à d'autres endroits du file system sachant qu'on peut reconstruire l'horloge et déterminer où est-ce qu'on en est dans le file system on peut commencer à injecter des nouvelles données là où on avait de l'espace libre donc il y a un petit fichier qu'on a mis ici qu'il y a un petit script shell de configuration réseau donc je vais essayer une démo en live j'espère que ça va fonctionner donc on fait ça sous QMU parce que j'ai pas ramené de cartes super micro sur la gauche on voit la console de la flash la console de l'implant hardware et sur la droite on voit la console série du BMC donc on peut voir que le noyau est chargé dans une seconde on devrait voir du trafic donc l'implant active actif il a remplacé des données quand on a monté le file system NVRAM donc le BMC continue sa configuration il charge des drivers de périphérique pour la vidéo je sais pas trop pourquoi mais il fait une pause c'est pas mon job de savoir pourquoi et au bout d'un moment ça va configurer les réseaux et ça fait ça en lançant ce script shell depuis la partition de la NVRAM donc les histoires de KVM ça démarre des trucs et hop ok donc on a pas eu à faire un fake la démo a marché sur le matériel c'est pas très très fiable mais ça fait jamais cracher la machine et du coup c'est bien ça nous permet de camoufler la activité on peut pas vraiment savoir quelle machine est infectée donc c'est pas très très très fiable mais bon 2 sur 3 si on va un peu plus loin dans le bout ça nous affiche un message et si on appuie sur enter on a un access shell et on a un access route sans mode pass sur le BMC et ça c'est beaucoup plus simple que s'amuser avec le bus spy je sais pas où est le port série sur le super macro mais sur une autre carte mère de serveur j'ai pu programmer un oscilloscope et trouver où est-elle la console série du BMC et c'est le même code on appuie sur enter et on peut lancer des commandes en route donc c'est une manière beaucoup plus simple de faire donc une grosse question que les gens ont c'est on fait comment pour détecter ce genre d'implant donc il y a beaucoup d'endroits qui ont besoin d'un niveau d'assurance élevée qui remplace les ROMs mais ça protège pas de l'implant parce que l'implant n'est pas dans la ROM donc si on lit la ROM on voit rien de bizarre parce que c'est pas dans la ROM, c'est en dehors même en branchant un analysor logique au bus et en regardant ce qui se passe pendant le bout de la machine au niveau de la flash ça nous permettrait pas de détecter l'implant parce qu'il faudrait qu'on mette les probes directement sur les contacts BGA donc sous le chip c'est beaucoup plus compliqué il y a des gens qui pensent qu'on pourrait détecter du trafic bizarre sur le réseau quand il y a des tentatives d'exfiltration de données mais c'est qu'une manière d'affecter les choses et de surter la données il y a un truc intéressant à la DevCon 23 ils expliquent comment un implant permet de backdorer un hypervisor et du coup la machine virtuelle d'un attaquant peut accéder ce qui tourne dans les autres VM accéder la mémoire des autres VM donc le gros problème c'est que le BMC est beaucoup trop privilégié il est connecté à peu près tout dans le système mais c'est pas la seule source d'inquiétude comme a dit WhiteQuark nos PC sont juste quelques périphériques embarqués dans un joli manteau et une bonne partie des chips sur votre carte mère ont du firmware et peut-être sur le supermicro même les résistances ont un firmware j'ai trouvé des firmware dans les alimentations sur lesquelles on pourrait trouver de l'exécution de code mais ça explique la complexité des systèmes actuels c'est pas des attaques à un million de dollars c'est du hardware à 5 dollars qui devrait vous inquiéter j'ai beaucoup les notes d'unis parce qu'elles nous permettent de penser à nos systèmes de manière davantage holistique ils intégrent un peu tout dans le TPM et je pense qu'il faudrait qu'on fasse davantage dans notre communauté pour utiliser davantage le TPM mais les TPM sont eux-mêmes sujets à leur propre implant matériel le TPM Jenny permet de subvertir la racine de confiance matérielle du TPM donc il y a d'autres personnes qui proposent qu'on bouge sur d'autres architectures de sécurité comme SGX ou Trezone mais c'est compliqué pour le cloud il y a des innovations actuellement chez Google sur Google Titan qui est utilisé sur leur serveur puis maintenant sur les Chromebooks Microsoft a son chip Cerberus sur le système Azure et ils ont publié leur firmware et le design de leurs Asic donc les gens peuvent voir comment ça fonctionne d'autres entreprises comme Apple ont aussi fait des choses avec le T2 par exemple qui est une puce vraiment merveilleuse qui est utilisé mais au détriment de la liberté des utilisateurs et du coup la bonne façon de résoudre ces problèmes c'est de ne plus avoir de secrets donc à la différence de ce qu'a dit le patron de Supermicro c'est pas le fait d'avoir audité le design de la Mozabra c'est mieux sécurisé quand on achète un design ouvert de serveurs il y a tous les schémas, il y a tous les garbards et c'est censé motiver les acheteurs pour être confiant que tout est en ordre tout est au bon endroit donc mon collide sur le projet Linux boot pense que utiliser Linux comme firmware nous permettrait de faire un pas en avant vers des systèmes plus sécurisés et plus résilients et du coup on a un spinoff de Linux boot qui est micro BMC on utilise les outils de Linux boot pour compiler un firmware de BMC c'est des builds reproductifs ça peut fonctionner avec des attestations c'est écrit dans des langages memory save comme go et on a jeté toutes les vieilles fonctionnalités qui sont la source de bon nombre de vulnérabilité de sécurité bon est-ce que ça s'est passé je ne sais pas techniquement possible je pense j'espère que vous avez compris que c'était une possibilité technique qui devait garder notre attention et je pense que dans l'avenir il faudra avoir davantage de racines de sécurité software d'attestation à distance et de possibilité de savoir que le code qu'on a construit qu'on exécute on le comprend et si il y a un employeur hardware on peut reprendre le contrôle donc si ça vous intéresse d'en discuter également discuter de firmware open source il y a une assemblée avec notamment des contributeurs corbot et vous pouvez venir nous aider contribuer et mettre la pression sur les fabricants pour qu'à l'avenir on ait des standards pour une informatique plus sûre d'être venue et j'étais très content de vous montrer sur la scène mon exploit on a 10 minutes pour les questions si vous avez des questions allez-y au microphone pour les poser microphone numéro 3 bon ma question c'est quoi votre opinion sur open pbc base teller systems donc c'est la question sur les systèmes talors power 9 power 9 est une architecture vraiment intéressante ça utilise un firmware ouvert qui s'appelle peliboot qui est similaire à Linux boot je suis fan il y a plein de gens dans la communauté qui sont assez excités là dessus j'espère qu'il y aura davantage le passage de systèmes power 9 qui vont sortir à l'avenir et par ailleurs le risk 5 c'est aussi intéressant je pense qu'avoir des processeurs open source c'est vraiment un moyen de renforcer notre assurance que nos systèmes sont bel et bien ce qu'on pense qu'ils sont merci microphone numéro 2 merci pour votre conférence est-ce que vous avez une scope rope sur le resistor donc pour savoir si on peut mesurer une déviation de la tension si on mesure si entre si on peut savoir s'il y a un implant ou si c'est juste une résistance en mesurant le courant entre le bmc et la flash et aussi le fait qu'on peut pas potentiellement enfin la question c'est est-ce qu'on peut alimenter différemment le système pour avoir davantage de puissance électrique est-ce que c'est possible de faire davantage de modification arbitraire donc si on a seulement 2 pattes l'avantage c'est qu'il y a une seule pièce à remplacer sur la carte mère ça prend quelques secondes s'il y a plus de pattes sur le composant alors oui on peut avoir plus de puissance électrique on peut faire des choses plus intéressantes mais c'est davantage de changement à faire au niveau de la carte mère beaucoup des arguments sont que les attaques sont pas faisables parce que vous avez vous devrez changer le etching dans le faible mais à quel point c'est probable que quelqu'un va anticiper les fichiers qui sont envoyés au fabricant ou fait la inspection en p'tique c'est pas visible là-bas donc est-ce que ce serait possible pour quelqu'un de modifier tous les fichiers qui sont envoyés à l'usine c'est une possibilité mais c'est aussi très probable que ce serait détecté par super micro dans de nombreux cas vous n'avez pas envie de faire confiance à votre fabricant pour le tester vous voudrez avoir un testeur indépendant d'une autre entreprise pour tester vérifier, valider que les cartes mères sont bel et bien produites selon vos spécifications donc oui c'est certainement possible j'ai pas envie de spéculer sur cette partie de l'histoire mais ça nécessiterait davantage de modifications et ça pourrait être aisément détecté lors du spot check et tout beaucoup des cartes mères il y a quelques composants qui sont pas peu poulés surtout est-ce que ce serait pas facile de juste mettre quelque chose là-bas sur les composants qui sont pas poulés et c'est impossible de détecter ça parce que le bord lui-même il n'est pas changé la fonctionnalité il n'est pas changé donc super macro a mis beaucoup des commentaires sur sa carte mère sur celle-là en particulier ils ont des chips de flash pour du 8 pins et pour du 16 pins qui sont en parallèle donc en gros en fonction du chip le moins cher au moment où ils font la borde ils vont mettre l'un ou l'autre donc c'est pour ça que quand on a la position de ce cercle sur ce schéma au niveau du pin de sortie de données c'est assez intéressant quand même parce que ça répond à la question donc dans quelle mesure signer le firmware peut régler ce problème ça résout beaucoup de problèmes mais mais typiquement c'est pas la totalité du firmware qui est signé donc en général YouBoot va être signé dans un BMC moderne le noyau et potentiellement le file système route mais le file système Enveram est prévu pour être modifié par l'utilisateur donc il ne peut pas être signé par le fabricant donc ce genre d'attaque fonctionnerait contre un BMC signé de la même manière et de plus appuyer sur enter pour obtenir une console série c'est une attaque qui fonctionne indépendamment de la signature sur x86 on a des technologies comme bootguard qui font en sorte qu'il soit plus difficile d'avoir de l'exécution de code pendant le processus de boot mais on a déjà vu beaucoup d'instances où c'était implémenté de manière assez mauvaise et donc malgré ces protections il y a des gens qui ont réussi à obtenir l'exécution de code au démarrage merci Tremahatsen et beaucoup d'applaudissements pour la conférence