Les Amis d’Ethereum France #17 — Sécurité et audit de smart contracts

Les Amis d'Ethereum France · 19 Dec 2023 · 1:16:54

A meetup of Les Amis d'Ethereum France on smart contract security argues that web3 is riskier than web2 because deployed code is immutable, the industry is young and thinly staffed, and stolen crypto is quickly monetised, with 7.5 billion dollars reported stolen since 2016. Four practitioners follow: a former web2 pentester contrasts audit skills and a prevention-first mindset, a white hat explains MEV bots, responsible disclosure and fork-based proofs of concept, a researcher ranks audit options by budget, from consulting and fuzzing to contests and bug bounties, and a protocol engineer walks through a security process costing several hundred thousand dollars.

Speakers

Topics

From Les Amis d'Ethereum France, hosted by Ethereum France.

Transcript

Introduction Ethereum France (Nathan Sexer)

comme je disais on est une association loin 1901 on a but non lucratif on organise des événements comme celui-ci donc des Meetup mensuels on organise également la grosse conférence qui s'appelle CC que vous avez peut-être fait ou pas l'année prochaine historiquement c'était à Paris l'année prochaine ça se passe à Bruxelles en juillet on publie du contenu sur notre blog euh donc éfrance.com des traductions d'articles techniques également voilà vous pouvez nous retrouver sur les différents canaux Twitter notre page Meetup notre discord où on rassemble notre communauté on a notre page YouTube sur laquelle est

retranscrit en direct ce Meetup et sur lequel on on partage toutes nos rediffusions de T les Meetup historiquement donc il y a du beau contenu ici également le contenu de toutes nos conférences est ici donc vous pour pourrez voir tout ce contenu là-bas et encore une fois ce ce Meetup sera publié là-bas et vous pouvez devenir membre de notre association pour la modique somme de de 10 € qui permet de contribuer au frais mais plus généralement nous soutenir et aussi participer à la vie associative donc vous pourrez organiser des Meetup écrire du contenu et vous aurez un un un token donc un sol token que

qui vous permettra de d'avoir un droit de vote dans notre association dans notre assemblée générale qui se passera en en janvier notamment eu voilà un petit mot pour finir on va également organiser un Meetup en janvier qui devrait être sur les layer 2 et un Meetup en février qui devrait être sur la fiscalité et dans les DA et voilà et d'autres sujet mais je vais tout de suite passer la main au suiditors et ben merci encore voilà et bien bonsoir à tous c'est un plaisir d'être là merci encore à etum France pour nous avoir invité pour cette 17e édition sur un sujet qui cheziteur nous

Présentation Soliditors et la sécurité dans le Web3 (nisedo)

tient particulièrement à cœur c'est la sécurité et audit de Smart contract qui est un sujet dont on entend beaucoup parler dans le 3 donc moi l'objectif c'est que je vous donne une vision en quelques minutes assez global de qu'est-ce que c'est sécurité l'état de l'art où on en est et derrière vous aurez quatre intervenants d'exception qui creuseront un peu plus le sujet chacun avec un pilier de vue différent quoi eu la sécurité en web 3 du coup je vous le dis on entend très souvent parler malheureusement rarement bien ou pas souvent pas assez en tout cas h un premier mot c'est la différence entre la sécurité dans le web 2 et le web 3 elle se différencie par quelque chose qui est assez net quand on ha dans le web 2 on entend parler souvent de

fuite de données on entend souvent parler de vol de données personnelles alors il y a les vols de par carte de crédit ça c'est particulièrement problématique mais en général on va plutôt se faire voler des données personnelles type nom prénom adresse gen chose bon c'est problématique mais ça a pas le même impact que si on se faisait directement voler son argent heureusement et du côté du point de vue du hacker une fois que ces données ont été volées lui il peut pas les monétiser aussi facilement que qu'il le voudrait en général ça passe par euh une transition vers le Dark web ah pardon ça passe par justement une mise aux enchères en tout cas sur le Dark web d'une certaine manière de ce que j'en connais je suis pas un expert dedans et de manière à monétiser du coup le ha qui

vient d'avoir les données qui ont été volées et donc de pouvoir se faire un petit peu d'argent dans le web 3 c'est assez différent on se connecte un smart contract on le hack et on vole des millions d'euros de cryptoonnaie donc le chemin est vachement plus court et vachement plus attractif pour des hackurs qui sont ben en général très expérimentés grâce à leur expérience du F2 et puis certains même comme on voit dans dans les assez récent des petits jeunes qui sortent de nulle part qui ont 16 ans et qui volent des millions parce qu'ils sont juste des petits génies quoi h donc cette différence elle se fait par trois principaux points euh le premier c'est que le code dans le web 3 il est immuable on va laisser de côté tout ce qui est upgrade ce genre de chos là pour essayer de rester assez simple mais je

reprends le même exemple par rapport au web 2 demain vous arrivez à hacker votre banque vous rajoutez 30 à votre compte en banque bon la banque elle se rend compte est-ce que tu as sa base de données enlève 3 € et vous passez un salale quart d'heure quoi euh dans le web 3 si vous arrivez à exploiter une faille le code est timuable derrière il y a pas de il y a personne qui peut contrôler la base de données et puis rectifier ça et passer à autre chose quoi ça c'est le premier point les deuxièmes vont sont assez liés on est dans une industrie qui est très imature le début de la defi c'est en 2016 je crois l'explosion de la defi c'est en 2020 donc c'est vraiment très jeune donc on est dans une industrie qui est jeune qui est encore assez peu de process par

rapport au web 2 encore une fois où ça fait 20 ans maintenant que les choses se mettent en place assez peu d'experts assez peu de formation assez peu de assez peu de de une structure je dirais qui assez peu présente pour qu'on ait du coup une industrie qui soit aussi florescante qu'on peut l'avoir en web 2 et avec on l'espère bientôt moins de ha en tout cas et donc ça avec le troisième point c'est la manque de crédibilité ce que je veux dire par là c'est que beaucoup d'experts dans le web2 qui auraient toutes les compétences pour apporter une vraie valeur ajoutée et pour venir sécuriser les protocoles qu'on utilise dans laadfi aujourd'hui prennent pas au sérieux la partie web 3 cryptographie euh ils sont en général assez ritant à y venir et ils prennent ça un peu à la rigolade pour avir parler avec des pesturs du web 2 qui disent bah

moi ça me passionne ce qui se passe dans le web 3 j'en fais un peu mais quand j'en parle autour de moi les gens pres se moquent de moi quoi on rigole prennent pas ça au sérieux h donc ça c'est la sécurité en web 3 et concrètement chiffre comment ça se traduit bah c'est pas beau à voir euh rouge comme le sang c'est 7 7,5 milliards de de dollars de valeur de cryptoomonnaes qui ont été volé depuis depuis qu'on a les chiffres quoi globalement depis 2016 euh sûrement plus mais mais en tout cas au minimum c'est ça et rien qu'en 2023 c'est 1,3 milliards de dollars donc euh vous avez en un petit graphique qui est pas beau à voir non plus euh c'est la valeur des hacks qu' on eu lieu chaque mois voy bon il y a des il y a des mois où les

hackurs se prennent du repos en octobre et puis il y a des mois en novembre où bon on aurait préféré euh pas sortir de son LMIS là quoi euh et du coup encore une fois ça va avec les deux premiers points que je viens de citer avant c'est le manque de crédibilité c'est les gens se ditent bah demain si on veut que la defi soit démocratisée si on veut que monsieur tout le monde puisse mettre son argent et bénéficie des avantages auquel nous on croit tous c'est compliqué de lui dire bah il y a une chance sur 10 qu'à la fin de l'année soit tu es fait plus 20 % soit tu as perdu tout ton argent quoi voilà et donc ça c'est un sujet sur lequel ben nous autres auditeurs et Pen tester du web 3 alors le mot n'existe pas mais bon on va le formuler comme ça

on travaille pour essayer de sécuriser un peu plus cette industrie concrètement les hacks on a vu des chiffres comment ça arrive je vais pas rentrer dans les détail de chacun des principaux vecteurs d'attaque qui qui dont le la DIA souffre en général mais ce qui est intéressant de voir c'est que le premier déjà c'est un vecteur d'attaque qui n'est pas propre au Web 3 c'est un vecteur d'attaque qui est infrastructurel quoi c'est on se fait voler une clé privée comme on pourrait se faire voler je sais pas un mot de passe d'une banque par exemple en revanche dans les ne autes la plupart sont assez très proches du web 3 je pense à la réentrance qu'on connaît tous manipulation d'ORAC gen de ch là avec comme vous voyez un nombre d'attaque qui fait peur à voir et un nombre de dollars qui est pas beau à

voir et donc dans tout ça soleditors euh pourquoi on vous parle de ça ce soir on est une communauté du coup francophone des passionnés professionnels amateurs intéressés de la sécurité W 3 h on a été créé bah grâce à é en Fran je dirais euh à la suite d' d'êt C et security sumit en août l'année dernière Juill l'année dernière euh on a rencontré une communauté de français on s'est rencontré puis en fin de salon on s dit bah c'est dommage on sait pas où parler maintenant quoi enfin il y a des endroits dédiés à la SC dédiés au dev pardon dédié à la crypto en général la DEF mais il y av pas sur la partie purement sécurité euh donc on a créé un discord on est aujourd'hui 110 on fait des Meetup mensuels depuis 3 mois mais

on s'y tient et on aimerait que ça continue sur l'année à venir h et dans les frais marquants on est parti à dev Connect donc on était quasiment une vingtaine je crois à Istanbul euh pour l'instant c'était vraiment super sympa de pouvoir se retrouver tous ensemble parler CQ par les web 3 boire un peu des cocktails voilà tout ce qu'on peut faire en conférence en général écouter les confes de temps en temps c'est bien aussi et on a prévu de faire re ici en 2024 à Bruxelles du coup donc bah si certains d'entre vous comptent y aller on aura l'occasion de s'y revoir et du coup je vais laisser la place à ceux pour qui vous êtes là les quatre intervenants de ce soir pour vous les présenter très très bien parce qu'il ils auront l'occasion de se présenterx même par la suite h donc Lilian juste

après qui va vous présenter une transition du web 3 parce que il a lui-même vécu Sergi qui va rentrer un peu plus dans le détail de qu'est-ce que le White hatting le White hatting pardon et du coup c'est ce qu'on appelle un ethical hacker dans le web 3 berao qui a lui-même formuler un propre protocole framework pardon pour avoir des bonnes pratiques de de protocole def sécurisé et Merlin qu'on ne prétende plus qui pour l'avoir vécu un protocole très très sécurisé et pas très sympa à faire quand à auditer quand on est auditeur parce qu'on trouve pas grand chose mais du coup il vous dira comment il en arrive là quoi voilà merci à tous euh bonsoir à tous du coup moi ce que je vais essayer de vous présenter c'est un peu les différents impacts les différences entre la cybersécurité web 2 et la cybersécurité en web 3 par rapport

Le framework pour un protocol sécurisé (Beirao)

à un parcours qui est un parcours bah du coup de pain tester web 2 à auditeur Smart contract auditeur web 3 du coup un P testeur pour ceux qui savent pas ce que c'est c'est une personne qui a un bagage très technique et qui va essayer de chercher des vulnérabilités sur un système d'information un système d'information ça peut être une simple adresse IP ça peut être une me connectée une caméra connectée une une voiture ça peut être vraiment tout et n'importe quoi et du coup bah c'est ce que j'ai fait pendant 2 ans à Talès au début de ma carrière entre guillemets et c'était dans le côté RED team de la cybersécurité en cybersécurité on a le côté RED team le côté un peu on se met à la place de l'attaquant on va essayer de chercher des faills de sécurité et on a

le côté blue team qui est le côté défens de la cybersécurité du coup j'ai fait 2 ans à tals après je suis parti 6 mois à airabus dans un SoC SOC c'est security operation Center donc là en gros c'est là où se passe tout le côté défensif de la cybersécurité j'ai fait que 6 mois parce que ça m'a pas très trop plu et ensuite ma dernière opportunité web 2 enfin mon dernier job web 2 c'était en tant que VOC analyste donc d' vulnerérability operation Center où là on gérait tout ce qui était management de la vulnérabilité c'est-à-dire qu'on allait chercher la vulnérabilité chez le client et ensuite on l'accompagnait pour euh la pcher pour régler en gros euh les failles de sécurité qu'il pouvaent avoir chez lui et depuis euh juin- juuillet j'ai switché du coup du monde web 2 au monde web 3 euh pour te faire de l'audit

de Smart contract à 100 %. à 100 % pardon du coup la première question qu'on peut se poser c'est bah quelles sont les différences enjeux enfin quelles sont les différences en terme d'enjeux d'une faille d'un hack en web 2 et en web 3 bon on en a un peu parlé juste avant mais en gros la plus grosse différence c'est qu'on a un système web 2 où là argent est extérieur au système et on a un un écosystème web 3 où l'argent fait partie intégrante du système en web 3 chaque fois qu'on fait une transaction je pense que je vous apprends rien mais il y a des tokens dans C transaction ces tokens valent de l'argent et du coup c'est directement l'argent qui peut être impacté et du coup on arrive directement bah un enjeu qui est moindre en web 2 qu'en web 3 avec la première victime en gros d'un

d'un hack en web 2 qui va être l'image de marque d'une entreprise ça va pas être l'argent de ses clients mais ça va être l'image de marque par par que parce enfin pourquoi parce que tout simplement lorsqu'une entreprise web 2 se fait pirater euh bah au niveau de la confiance que va avoir ses clients bah ça va l'impacter du coup il va avoir moins de clients qui vont taper à la porte pour venir acheter les produits tandis qu'en r 3 euh bah c'est directement enfin déjà ça se passe très rapidement euh enfin comment on l'a détaillé juste avant l'argent se fait pirater enfin se fait h on se connecte sur ce contract on prend l'argent ça se passe en quelques transactions en quelques minutes l'argent a disparu et c'est euh bah un clap de fin pour le protocole c'est-à-dire que euh en web 3 on a peu

ou pas de deuxième chance c'est-à-dire qu'une fois qu'on se fait pirater ben il y a peu de chance que le protocole se remette tandis qu'en web 2 vu que l'impact est moindre vu que l'enjeu est moindre ben l'entreprise a plus de chance de se remettre d'un hack en euh en mettant de l'argent pour euh pour regagner la confiance des de de ses clients en gros donc euh on a un système où bah la sibs va être enfin ce qui va souffrir le plus c'est l'intégrité la confidentialité des données des utilisateurs de l'entreprise vs un système où bah c'est l'argent des utilisateurs l'argent des protocoles qui va être la première cible donc on voit directement que bah les enjeux sont différents et ce qui va venir renforcer ça encore plus c'est que on a un système m2 où euh là où les entreprises se font

le plus d'argent c'est sur la revente des données et du coup les entreprises travaillent très dur pour authentifier leur clients et pour savoir ce qu'ils font à chaque étape du process ce qui va faire que bah lors d'un la la possibilité enfin le pourcentage de chance d'identifier un attaquant vu qu'on a travaillé très dur pour authentifier chaque personne qui se connecté sur son système à chaque étape du process B on a plus de chance d'aller choper entre guillemets enfin de de trouver qui à pirater notre notre système tantis qu'en web 3 qui un système basé sur du semi-anonymat ou deanonymat bah c'est très compliqué on peut le voir dans le récent Act de de KYB swap ù si on voit que bah un attaquant fait bien les choses au final

c'est un peu lui qui peut fixer ses règles une fois qu'on a qu'on a dit ça on on comprend vite que bah on a différents enjeux et du coup on a différentes euh enfin ça va être deux jobs différents limite euh entre un web 2 security expert et un web 3 security expert pourquoi parce que on va avoir une image de euh pompier c'est-à-dire que qu'est-ce qui se passe en gros pour pour pour expliquer un peu ce slide il faut se poser la question bah qu'est-ce qui se passe quand quelque chose ne se passe enfin se passe mal en web 2 vs qu'est-ce qui se passe quand quelque chose se passe mal en web 3 ben tout simplement en web 2 on appelle enfin qu'est-ce qui se passe quand enfin quand est-ce qu'on appelle un web de security expert c'est quand euh on arrive plus à

se connecter au réseau quand on a un problème en gros dans le système tandis qu' web 3 on va être beaucoup plus focus sur de la prévention et non pas sur du patching comment on peut trouver en web 2 tac et du coup euh pour revenir enfin une fois qu'on a compris que c'était de job différent en gros d'avoir la casquette de web enfin security expert en web 2 vs en web 3 on peut se poser la question bah pourquoi ça fonctionne comme ça pour commencer enfin pour pour commencer à répondre à ça il faut se dire bah l'enjeu directement que l'enjeu on a vu qu'il était beaucoup plus bas quand on avait un hack en web 2 vs quand on avait un hack en web 3 tout simplement parce que Ben en gros en web 2 on a un système qui peut être stoppé à

chaque instant et du coup qu'est-ce qui se passe quand on a une faille de sécurité en Web 2 on va stopper le système on va développer un patch et on va l'appliquer et ça va continuer comme c'était avant qu'est-ce qui se passe quand on a une donnée on vient de se faire on vient de prendre un REM wiare et les données de l'entreprise ne sont plus accessibles on va essayer de prendre une sauvegarde de toutes ces données là de l'appliquer et derrière le système va continuer du coup on voit directement enfin là où je vais revenir c'est que l'impact en gros de d'une faille d'un hack est bas et le coût de réparation est bas aussi et et du coup on en vient à la définition en gros de la security enfin la sécurité en web 2 qui est souvent défin par security by obscurity ou en gros qu'est-ce qui se

passe dans lesentreprise la plupart du temps on a un organe central la data security en gros tout là où sont toutes les données des clients là où sont les serveurs qui est très vieux qui tourne depuis très longtemps avec de très vieill versions avec du Windows du Java et c'est des trucs que j'ai vraiment vu surtout dans dans l'industrie et dans le côté armé enfin l'armée enfin tous les vieux systèmes en gros on a des des très vieilles machines avec des très vieilles versions qui tournent depuis très longtemps et qui sont entouré la security en oignon euh qui est entourée de couches de sécurité plus récentes ou moins vieilles les unes que les autres euh où le but c'est de cacher en gros la misère cacher la partie centrale euh du système là où

sont toutes les données des clients euh et du coup on arrive à ce célèbre même euh de la cybersécurité que vous pouvez voir tourner sur euh enfin beaucoup sur Linkedin en ce moment qui est que le budget cybersécurité d'une entreprise en web 2 est très bas même si on va de plus enfin on tend de plus en plus vers une cybersécurité démocratisée mais un budget cybersécurité d'une grosse entreprise et souvent beaucoup plus bas avant que après un ha ok maintenant qu'on a vu ça maintenant qu'on a compris ces différents enjeux ces différents euh impact en gros on peut se poser la même question tout simplement pour le web 3 pourquoi en web 3 on est beaucoup plus focus sur la prévention et ça ncedo l' enfin le premier élément de réponse on

l'a déjà énoncé juste avant c'est-à-dire que tout ce qui se passe sur la blockchain est utable c'est-à-dire que imable pardon dès qu'on fait quelque chose sur la blockchain on peut pas revenir en arrière c'est-à-dire que si on a une donnée enin un smart qui se fait pirater on peut pas se dire bah stop attendez on revient une semaine avant où on nétait pas pirater et on continue comme avant du coup pour essayer de de comprendre ça on on en vient à ce ce ce tweet qui m'a fait sourire de patrin Collins si vous connaissez pas allez vous abonner sur Twitter vous allez apprendre plein de choses de la sécurité euh qui est que les Smart track doivent être considérés comme des hardwarees pour ceux qui savent pas ce que sont les hardwares les hardware pour prendre un exemple simple un hardware c'est votre téléphone et un

software c'est c'est une application sur votre téléphone et du coup en gros la boucle de développement de hardware par rapport à la boucle de développement d' software c'est pas du tout la même c'est-à-dire qu'en software on est plus à se dire la la célèbre la célèbre phrase de Marber qui était moving fast and breaking things où en gros on va essayer d'aller vite pour gagner des parts de marché parce que quand on a un impact qui est bas en terme de de faille de sécurité qu'on a pas peur ou presque pas peur d'une faille en cybersécurité ben on va se dire on va essayer d'aller le plus vite possible pour gagner le plus de part de marché possible et du coup bah gagner le plus d'argent possible quand on a unact bas et un coup de résolution qui est bas ben du coup on peut se permettre d'aller vite et moving

fast unbreaking things tandis que la boucle de développement de hardware c'est totalement différent aujourd'hui si votre téléphone se met exploser dans votre poche si une voiture se met à cramer ou un avion tombe du ciel bah c'est pas du tout pareil ce qui va se passer c'est qu'on va stopper toute la production on va rappeler tous les produits tous les produits qui sont qui ont déjà été vendus du coup l'impact n'est pas bas et le coût de résolution n'est pas bas non plus OK et du coup ce qui doit se passer c'est que ça doit marcher dès le premier coup et là le parallèle avec la blockchain il est tout trouvé ce qui doit se passer c'est que bah dès que c'est déployé sur la blockchain ça doit marcher du premier coup euh ok pour ça tac du coup bah une fois qu'on a identifié en gros pourquoi le

focus enfin on en vient à la définition qui est totalement différente au web 2 c'était security by obscurity en web 3 ça va être plus security by design parce que bah ça doit être ça doit marcher dès le premier coup et pour ça je vous renvoie à enfin pour vous donner des exemples qui sont très parlants vous avez Unis swap qui est de le plus connu sur sur etherum qui était vraiment un qui était un papier de recherche en gros c'était déjà quelque chose qui avait été pensé avant même que le langage dans lequel il a été développé c'està-dire solidich il existe vous avez chain link qui à chaque fois qui enfin le protocole chain link à chaque fois qu'il veut implémenter des nouvelles fonctionnalités crée des papiers de recherche fait déjà des tests pense déjà

à qu'est-ce qui pourrait mal se passer avant même de commencer à écrire du code du coup on voit bien cette security by design et en gros ce qui se passe enfin je vous renvoie ici à la à la road map des zencing pour pour zcing qui aussi un protocole ou tout n'importe quel protocole web 3 mature en terme de cybersécurité en gros le but ça va être de construire une confiance construire une confiance par rapport à un produit qu'on va pouvoir déployer ensuite par rapport à cette confiance on va essayer de créer une communauté et ensuite par rapport à cette communauté on va essayer de créer une décentralisation et ça même si au début du protocole on peut se dire que bah on est en web 3 du coup on va

tout focus sur la décentralisation bah la décentralisation pour la plupart des projets qui sont qui pensent à la sécurité en tout cas ça va vraiment être la dernière pièce du puzzle avant enfin avant de penser à autre chose tandis que on va mettre la sécurité par design par default une fois qu'on a vu les différents enjeux les différents impacts que peut avoir une faille en en web 2 vs en web 3 on va focus un petit peu sur quelles sont les connaissances à avoir en web 2 vs connaissance web 3 ce qu'il faut comprendre c'est que en painest aujourd'hui il y a énormément de connaissanceces à avoir en web 2 je veux dire en tant que Pen tester web 2 il y a énormément de connaissanceces à WE à avoir pardon il y a bah déjà les différents types d'os euh Windows Linux

max Android enfin tout ce que vous pouvez trouver comme OS différent il y a tout ce qui est langage de programme à science C C++ Java PHP et cetera plus en plus de Cloud de plus en plus d'iooi et cetera donc là où je vaisevenenir c'est que euh les meilleurs pain testers logique c'est ceux qu'on connaisse le plus mais aujourd'hui ou ce qu'on se connaisse le plus ou alors que qui ont une très grosse spécialité mais aujourd'hui euh avec tout ce qu'on a accè enfin tout ce qu'on a accès sur Internet euh pour moi les meilleurs pain testers sont ceux qui en connaissent un petit peu dans beaucoup d'endroits du coup pour moi la bonne définition d'un bon paintester web 2 c'est quelqu'un qui a peu de connaissance dans beaucoup d'endroits et qui va savoir faire des

bonnes recherches ou une bonne base de données du enfin à contrario par rapport au Web 3 ou aujourd'hui l'état du marché qui est assez jeune comme on a pu l'évoquer juste avant fait que il y a peu d'auditeurs il y a peu de Smart auditeurs qui ont vraiment des grosses spécialités même si ça va faire que dans les prochaines années il va à mon avis il va y avoir des équipes avec des auditeurs avec qui vont avoir chacun leur spécialité mais aujourd'hui l'Étap du marché fait que un bon auditeur c'est quelqu'un qui va avoir beaucoup de connaissance dans peu d'endroits c'est peu d'endroits enfin ces endroits là pour moi il y en a quatre aujourd'hui c'est solidity IVM les finances et les mas pourquoi parce que solidity vous allez auditer du code du coup il faut avoir des connaissances en solidity la

plupart des smart contct aujourd'hui sont écrit en solidity IVM parce que bah le code que vous allez auditer il va tourner sur EVM sur l'therum Virtual Machine faut avoir des connaissances en finance parce que bah tout ce qui touche à au Smart RAC la plupart du temps ça parle d'argent tout ce qui est emprunt liquid option et en il faut avoir des connaissances un minimum de connaissances en maths connaître ce que c'est un market maker connaître ce que c'est des h de la cryptographie mais là où je vais revenenir surtout c'est que bah pour ceux qui veulent se lancer beaucoup de connaissances dans peu d'endroits ça rend la boucle d'apprentissage ou la marge de production beaucoup plus élevée que un bon pain tester web 2 où le enfin où la phrase était peu de connaissance dans beaucoup d'endroits parce que en tant que P tester si vous passez les six

prochains mois à apprendre toutes les attaques qui sont euh qui sont possibles sur PHP qui a un langage web et que lors de votre prochain pain test vous pain testez un site web qui a été créé en react qui est un langage Javascript bah c'est comme si vous étiez parti de zéro tandis que beaucoup de connaissances dans peu d'endroits ça rend vraiment l'apprentissage beaucoup plus plaisant donc si vous avez un peu de connaissance en finances un peu de connaissance en math et que vous êtes curieux de savoir qu'est-ce qui se passe sur etherom bah commencez à commencez à apprendre tout simplement et mettez-vous à l'UDI de Smart contract une fois qu'on a vu bah les connaiss différentes et les différents impacts on peut se poser la question bah quelles sont les différences dans le process entre un pen test enfin entre la recherche de

vulnérabilité en web 2 et la recherche de vulnérabilité en web 3 le process d'un P test il peut vraiment différencier en fonction de ce que vous allez pint tester mais la plupart du temps ça reste ces neuf étapes là c'està- dire que on va avoir une première étape avec une phase de reconnaissance ou bah pour vous donner un exemple très parlant est-ce que je suis en train de pint tester une adresse IP ou alors estce que je ma ma C c'est une voiture une voiture connectée deuxièmement phase de cartographie énumération et phase de recherche de vulnérabilité ça va être bah tout simplement est-ce que sur mon adress IP c'est du Windows 7 ou alors du Windows 2016 derrière en fonction bah si c'est du Windows XP ou Windows 7 ou Windows 2016 on va rechercher les vulnérabilités

qui sont connues sur ce type de système-l on va essayer de les exploiter on va faire de l'élévation de privilège c'est-à-dire que si j'arrive à avoir un euh un contrôle d'accès à distance avec un utilisateur lambda je vais essayer d'élever mes privilège pour avoir un accès en administrateur par exemple faire du maintien d'accès propagation déplacement de latéraux je vais nettoyer mes traces je vais aller dans les logs je vais essayer de de cacher ce que j'ai pu faire et l'étape la plus importante c'est présentation du rapport c'est-à-dire ben qu'est-ce que j'ai trouvé dans ceain Test qu'est-ce que j'ai trouvé dans comme vulnérabilité que quelqu'un de mal intentionné pourrait pourrait aller chercher et je vais le présenter tout simplement bah à la personne qui m'a demandé faire ce Pen test en terme d'outil Pen test c'est un peu pareil que la définition que j'ai

dit juste avant pour le web 2 c'est-à-dire que aujourd'hui la maturité du marché fait qu'il y a énormément d'outils euh pour pour faire des pint test de tout et n'importe quoi faire du pint test de tout et n'importe quoi donc on en revient à la même définition c'est-à-dire que savoir qu'un outil existe c'est cool euh savoir l'utiliser aujourd'hui bah sur internet il y a énormément de tutos euh par rapport encore une fois à ce que je disais juste avant la maturité du marché fait que Ben énormément de personnes ont déjà fait des tutoriels pour pour sur comment faire tourner ces outils en web 3 pour moi c'est un peu simplifié aujourd'hui les étapes d'UD sm track bon après c'est c'est personnel mais pour moi il y a une grosse phase de compréhension c'està-dire que ce qui est

bien dans le web 3 c'est queon va toujours auditer un protocole différent qui fait des choses différentes du coup il y a une grosse phase d'apprentissage de compréhension de qu'est-ce qu'on va auditer ensuite il y a une phase logique de compromission on va essayer de chercher des failles des failles de sécurit dans le Smart qu'on est en train d'auditer on va générer un rapport on va le donner au protocole qu'on a audité et on va contrôler comment il a pu corriger les failles qu'on a identifié et surtout vérifier que Ben en corrigeant les failles qu'on a pu trouver il n a pas mis des nouvelles en gros dans le code qui a été enfin le code pour patcher les failles qu'on a pu trouver n'implique pas de nouvelles failles de sécurité en terme d'outil on AUD dit du code donc ben il faut visualiser ce code il faut

pouvoir tester ce code et il faut pouvoir cher chch des vulnérabilités qui sont similaires au code qu'on audite donc pour moi les principaux outils il y en a que trois entre guillemets Visual Studio fundry et solodit qui est une base de données de vulnérabilité qui sont déjà connu alors bien sûr il y en a d'autres en fonction de ce que vous voulez faire ce que vous auditez ou alors comment vous voulez l'auditer mais aujourd'hui les trois principaux outils c'est ceuxl en conclusion je pense que vous l'avez bien compris que la sécurité par design vs security by obscurity fait que c'est un un écosystème qui est beaucoup plus secécure entre guillemets que que le web 2 on en a parlé juste avant la maturité du de l'écosystème fait que bah

ça on a quand même encore des des marche à franchir entre guillemets pour que ça soit un écosystème vraiment sécure mais mais en tout cas le security by design bat largement le security by obscurity merci de m'avoir écouté euh ben moi je vais vous parler de donc de l'activité whiteat dans le web 3 et donc on va voir comment on peut sauver des des millions alors euh je suis donc auditeur de Smart contract indépendant depuis 1 an à peu près j'ai étis avant développeur pendant 8 ans et donc par ailleurs je je développe aussi un un outil donc s forme

Whitehatting dans le web3 : qui veut sauver des millions ? (Cergyk)

de Web App euh upgrade hub dont je vais parler un peu plus tard et je m'intéresse aussi aux technologies zero knowledge alors on l'a déjà dit un peu mais les spécificités des smart contracts euh notamment il y a le fait qu'ils sont déployés une fois ils sont difficiles à à changer donc si on veut faire des modifications si on veut corriger des choses c'est il y a des il y a des patterns à mettre en place mais c'est un petit peu plus compliqué le code est publicique n'importe qui peut le lire c'est totalement transparent et donc ça rend la la chose facile pour des personnes qui veulent étudier des exploits euh et également donc les interactions qu'on peut faire avec les Smart

contracts sont toutes publiques les transactions sont publiques et plus de ça c'est une des comment dire une des fonctionnalités de la blockchain c'est que tous les les contrats peuvent interopérer entre eux donc en fait ben on voit que ça crée des dépendances qu'on peut pas forcément contrôler donc ça c'est pareil ça ça augmente la la surface d'attaque pour des smart contrats euh donc avant de rentrer plus en détail dans le dans les aspects de sécurité on va faire un petit détour on va voir donc qu'est-ce que c'est que le MeV euh l'acronyme de MeV ça correspond à quoi c'est donc c'est une des quatre options

ici hop bon ça il y avait un petit piège he il y a en fait il y en a deux depuis le merge ça s'appelle maximal exractable value en fait ça correspond à toute récompenses que qui sont accessibles publiquement en fait sur sur ethereum donc en fait n'importe qui peut arriver exécuter une transaction et prendre cette récompense il y a des activités qui sont spécialisées là-dedans donc par exemple il y a des des personnes qui vont se spécialiser dans le fait de d'arbitrer sur des échanges décentralisé d'autres personnes qui vont spécialiser pour récolter les les récompenses des liquidation ou euh euh prendre des donc des trades qui sont

publics et euh et venir profiter dessus en se plaçant avant et après donc c'est ce qu'on appelle les sandwich et quel est le rapport avec la sécurité c'est euh ce qu'on peut appeler des generalized bot enfin des bot généralisé qui vont en fait venir et euh copier des transactions publiques avant même qu'elle sont exécuté et euh en remplaçant donc certaines variables par exemple à qui sont destinés les fonds qui sont détournés tout ça et euh ça ça permet en fait de enfin c'est ce qui arrive souvent d'ailleurs c'est que des attaquants qui sont pas assez sophistiqués ils vont se faire coiffer au poteau et prendre les euh en fait les les fonds qu'il essayent

de voler en fait on on voit que il dans C dans cet écosystème il y a des acteurs qui qui sont très sophistiqués qui sont capables en fait de de d'agir sur les transactions qui sont même pas encore exécuté et euh et donc potentiellement sauver des fonds c'est le cas de donc d'une d'une compagnie de de sécurité on va dire deud bloc sec qui euh sont enfin qui qui ont de l'infrastructure et qui ont des des outils de monitoring assez performants pour justement pouvoir euh sauvegarder des fonds donc c'est par exemple on voit d'un extrait d'un article ici qu''s ont permis à sadle finance par exemple de donc de de sauver 4 millions à peu près et un autre acteur

donc ça c'est un un un participant m assez connu qui régulièrement pareil arrive à sauver des des des fonds voilà qui fait des actions de whiteat les outils qui sont utilisés donc pour pour euh comment dire pour étudier ce qui se passe on chain et donc permettre de repérer des des des failles potentielles sur lesquelles il faut agir alors il y a bien sûr il y a le le bloc explorer je pense qui qui est assez connu donc c'est par exemple les scan et tout ça et si on donc si on prend l'exemple de la vulnérabilité qui a donné lieu

historiquement donc à au plus gros à la plus grosse récompense bug buouny qui est de de 100 millions de dollars en fait elle aurait pu tout simplement être repérée sur etther scan par n'importe qui en allant fouiller dans les variables en fait euh et il se serait rendu compte que il y avait une une faille qui était présente parce queune variable était malalisée et donc ça nous ramène par exemple au fait de de se dire que euh c'est pas seulement du code qu'il faut examiner c'est aussi toute la configuration des smart contracts quand on les déploie en fait c'est important de vraiment avoir une couverture totale de ce qu'on de ce qu'on déploie bon là je fais un peu pub du coup pour l'outil que je que je développe c'est un outil qui permet de de visualiser des

changements de code qui sont effectués sur des contrats d'un certain type donc des contrats qui sont modifiables et euh donc c'est un outil qui est assez utile quand on essaie de comment dire de de voir les changements qui sont opérés et si potentiellement il y a des changements qui sont vulnérables et euh ça c'est un autre outil qui est très utile dans le cadre de en fait surtout de l'analyse de hack qui sont déroulé c'est des traceurs de transaction là j'ai mis donc les trois les plus on va dire les plus populaires et du coup ça se présente comme ça je vais pas rentrer dans le détail de ce qu'il y a ici mais on peut voir en gros que on on peut voir le dérouler d'une transaction et donc

l'étudier à postérior pour ce qui est donc euh de la divulgation c'est-à-dire si euh si si jamais on tombe sur une faille qui est présente et qui met à risque des fonds d'utilisateur qu'est-ce qu'on fait est-ce que ben on on agit au plus vite pour pour s'assurer que les fonds des utilisateurs soi en sécurité est-ce que on avertit le protocole pour pour que enfin ce soit eux qui puissent prendre la main et agir est-ce que on vérifie la faille sur ce qu'on appelle un TestNet donc une version de de de la chaîne qui est de test ou est-ce qu'on peut sur Twitter publiquement pour alerter les

utilisateurs donc ça peut sembler ce grenu les deux dernières options mais ça parfois c'est ce que des gens font euh bon l'inconvénient avec les deux dernières euh ah oui bon je je peux mettre la réponse du coup euh bien sûr c'est j'avertis le protocole c'est eux qui sont les les mieux à même de prendre les actions qu'il faut euh mais donc je disait les les deux dernières actions c'est des choses qui ont pu être vues et euh et en fait l'incon ça c'est que juste on comment dire on divulgue on divulgue au grand public les failles et pas ça met encore plus à risque que les fond quoi en fait et et l'option A elle est possible si on est comment dire si on est vraiment

compétent et qu'on est compétitif comme on a vu avec les acteurs de la première partie mais bon c'est un risque quand même on s'expose vraiment à un gros risque légal et c'est vraiment enfin éthiquement c'est questionnable donc vraiment s'en tenir à l'option 2 pour ce qui est de la divulgation en général les les entreprises qui opèent sur donc sur les blockchain ont des donc des programmes de bugbouny sur immunfi par exemple ou par des emails dédiés et si ce n'est pas le cas il s'agit de donc de retrouver potentiellement leur contact sur discord ou telegram et euh et essayer de les avertir en privé en

sachant qu'il faut faire très attention parce que du coup euh on il y a il y a beaucoup d'anonymat dans ce domaine donc on on n pas garanti de parler avec les bonnes personnes sur discord et sur telegram et donc il faut voilà faut bien s'assurer quand même qu'on parle avec les bonnes personnes pour ce qui est du rapport donc quand on rapporte une vulnérabilité il y a plusieurs sections on va dire enfin plusieurs éléments de de réponse à apporter le scénario de la vulnérabilité donc juste d'écrire ce qui ce qui se passe qui qui rend le les donc les contrats vulnérables la la sévérité donc ça il faut comment dire faut essayer de pas non plus être trop

alarmiste il faut essayer de de décrire de manière cohérente ce qui peut se passer dans quelles conditions pour pas comment dire pour pas surréagir mais si s'il y a vraiment un vrai impact il faut quand même le décrire correctement et une spécificité aussi de du du domaine web 3 c'est qu'on peut créer un proof of concept qui est en fait sécurisé puisqueen fait on va copier l'état de la de la chaîne à un moment donné on va faire un fork et donc en fait on va pouvoir exécuter un script sur un état copié de la chaîne et sans que sans rendre du coup l'information du la vulnérabilité

publique il y a une alliance de de whiteat et de protocole qui a été créé sécuriser l'écosystème c'est elle a été crée assez récemment en octobre si je si je me trompe pas et donc il y a vraiment il y a beaucoup de gros acteurs du système qui sont en fait qui qui rentrent en collaboration et qui sont contactables par par telgram pour enin dans un cas de figure où on ne saurait pas quoi faire justement ils accompagnent et il font acte de d'intermédiaire de confiance pour résoudre des problèmes auxquels on pourrait faire face alors alors quels sont les systèmes que peuvent avoir les protocoles à leur disposition pour agir une fois que ils

sont au courant d'un d'un hack bien voici une liste que que j'ai trouvé du coup sur Open zeplin mais essentiellement le la fonctionnalité de de pouvoir mettre en pause des smart contracts celle qui va être assez souvent utilisé il y a aussi une capacité à à retirer des fonds par un administrateur souvent et et je pense que les les quatre dernières options sont vraiment beaucoup moins représenté et beaucoup plus technique euh donc le fait de par exemple ajouter enfin mettre dans des listes qui sont qui excluent donc un certain

potentiellement un certain acteur de d'interagir avec le contrat des rate limitur c'est pour limiter la vitesse à laquelle un un un acteur peut interagir avec les contrats contrat euh des time lock pour délayer le l'utilisation d'un contrat et comme on l'avait vu en première section le front running bon ça c'est c'est assez technique alors en conclusion euh on peut dire que il y a eu beaucoup de de chemins qui a été fait pour vraiment standardiser le cette approche là mais il reste encore beaucoup à faire et on a même pas encore abordé le comment dire le

côté plutôt donc Black Hat c'est-à-dire le les les hackeurs vraiment malicieux mais qui sont aujourd'hui encore malheureusement très incentivés à à agir comme ils le font parce qu'en fait ils se ils ils vont soutirer les fonds puis ensuite souvent il peut y avoir des arrangements et et et donc voilà ça comment dire ça ça crée des mauvaises incentives pour le système et j'espère qu'on arrivera à à comment dire à trouver un moyen de de réduire les hacks comme on a vu euh comme on l'a vu qui sont quand mêmez prédominant dans le dans cet écosystème merci alors moi du coup je vais vous

De Pentester Web2 à Auditeur Web3, quelles différences (Lil.eth)

présenter un framework un frameork qui va vous permettre de sécuriser au mieux votre votre da votre protocole décentralisé si jamais vous décidez vous de vous lancer dans cette aventure plus haut euh alors moi déjà je suis un seccurity chercheur euh du coup dans dans le web 3 euh j'ai fait une école d'ing avant et depuis septembre je suis à plein temps là-dedans donc je fais principalement des contests sur code Arena et euh des audits privés et quelque foois du bug buun également donc pourquoi j'ai décidé de faire ce framework bah ça vient du fait que quand j'ai commencé bah c'était un peu comment dire c'est un peu le bordel avec tout ce qu'il y avait en terme de

de solution dans dans cet environnement donc on peut penser dans un premier temps qu'il est difficile voilà de trouver les meilleures solutions pour notre protocole dans dans dans ce milieu-à savoir également dans quel ordre faire les choses pour que ça soit le plus optimisé et savoir aussi quoi prioriser en fonction de de notre budget et ça c'est des questions qui sont importantes et quand on arrive dans ce milieu-là bah c'est compliqué d'y répondre il faut quelques moin dans ce milieu-à pour queon commence à se faire une idée de comment ça fonctionne bon déjà faut savoir que déployer des smart contrats en tout cas si on est sérieux c'est c'est très cher c'est très cher parce que imaginons on prend un projet web 2 classique typiquement un sas et ben normalement en école d'entrepreneuriat on va vous dire

qu'il faut développer le plus vite possible le produit Lefin le mettre à disposition des utilisateurs faire un MVP et prendre du feedback essayer de l'améliorer même si le produit est pas totalement fini c'est pas très grave quand quand on parle d'une DAP bah là forcément il faut développer complètement le produit au moins une V1 fonctionnel euh tester tester tester beaucoup le le le produit l'auditer de façon sont externes et internes et euh avoir un programme de bunti donc tout ça coûte énormément d'argent et c'est pour ça que c'est important de savoir comment on commence y prendre en tout cas bon voilà on peut voir on peut voir le la sécurité comme des des couches de fromage chacune des couches qu'on va ajouter c'est une une couche de sécurité chaque couche est bien sûr troué et le but c'est de savoir dans quel sens les

mettre dans quel ordre les mettre et euh et d'en mettre le plus possible toujours en fonction du budget et lesquels priorisés en fonction du budget pour qu'à la fin une attaque ait la moins de chance possible de nous nous attteindre bon commençons directement bon euh on va commencer par la gas optimisation euh c'est pas vraiment de la sécurité mais c'est bien de le faire et si on veut le faire bah faut le faire au début c'est quelque chose d'assez controversé parce que ça peut potentiellement euh moins sécuriser le protocole on va essayer de faire des optimisation qui peuvent être au détriment de la sécurité il y en a beaucoup qui sont contre ça euh vous pouvez faire ça si vous déployer sur etherum si c'est pas sur etherum franchement ça c'est c'est un peu limité euh et si vous avez beaucoup de moyens parce que forcément c'est pas

ce qu'on veut prioriser prioriser si on a pas beaucoup d'argent c'est pas la G optimisation qu'on veut prioriser ce qu'il y a de plus optimisé je pense c'est du coup les solo éditeurs donc là on a les deux l'un des certainement les deux meilleurs de de code Arena donc si vous contactez ces de gars sur Twitter ils vous feront des des belles belles belles Gass optimisation pour certainement pas trop trop cher les prix que je vais donner en dessous c'est des prix approximatifs et c'est pour mes liges de code on va dire euh donc voilà on va dire entre 2000 et 10000 dollars pour mes lignes de code 10000 c'est peut-être un peu cher mais voilà vous pouvez vous en sortir pour pas trop cher en tout cas euh ensuite il y a la partie Consulting bon là c'est très conseillé

de la faire la partie Consulting parce que imaginons que vous ayez un petit peu d'argent bah vous voulez vous allez vouloir aller tout de suite chercher des des stars des grands auditeurs qui vont coûter très cher et là bah ça peut être ça peut être dommage de de trouver des des des bugs qui sont qui remettent en en question un peu le design de votre protocole euh parce que vous aurez payé 200000 200000 dollars 150000 dollars et qu' va falloir réauditer par-dessus parce que il y aurait eu des gros changements qui ont qui devront être faits donc la partie Consulting permet de dépenser un petit peu moins d'argent en fonction de la la solution qu'on qu'on choisit évidemment et de avoir un premier feedback sur notre design le design du protocole et donc j'ai identifié du coup trois solutions dans cette partieing il

y a le solo revover avec pas le plus connu dans ce là bon lui il va vous coûter très cher le la ce que j'appelle la traditionnal security firms la plus connu là-dedans dire c'est il y en a plein c'est là où il y a le plus de d'acteurs mais ça va être Sigma prime ensuite ce que j'appelle les audit TR firm donc les trail of Beit Open zepin et consen diligence donc eux ils vont vous prendre très cher mais en terme de marque pour votre protocole c'est très fort aussi et ils vont forcément aller un peu plus loin que que les autres solutions euh donc si vous avez des moyens et que vous avez des bons V vous pouvez vous permettre d'aller d'aller d'aller les voir et en plus vous soutiendrez l'open source dans ce milieu-là donc c'est c'est super parce qu'il développe beaucoup de tout l'Open

Source ensuite bon là c'est vraiment pas indispensable mais on peut faire du fusing et de la formale vérification euh le Fing c'est bien de le faire dans la partie développement euh la format vérification auss si vous avez les compétences mais le faire juste après la partie Consulting c'est sympa parce que ça permet d'avoir un code fixe un code à peu près propre le design normalement est fixé à ce moment-là et d'avoir euh ouais ouais ouais bah là je me rends compte qu'il y a des termes que peut-être les gens connaissent pas donc ouais le fusing et la formale vérification c'est deux approches pour faire un peu près la même chose donc ce qu'on va faire c'est qu'on va écrire des invariants donc on va d'abord les écrire en anglais en français et ensuite on va les les coder donc un invariant c'est

quoi typiquement c'est par exemple pour un jeton erc20 un avariant ça peut être la somme de toutes les balances de tous les utilisateur doit être égale à la total supply et si jamais la somme de tous les utilisateurs n'est pas égale à la à la total supply c'est que potentiellement quelqu'un qui a créé des tokens de façon non conventionnelle en tout cas forcément un bug dans dans l'histoire et donc là le Fing la Form vérification c'est on va coder avec un langage ça peut être ça peut être différent langage on va coder l'invariant et puis on va faire pour le Fing on va bombarder les entrées du programme et on va regarder si l' variant est tient et ça va permettre de savoir si la variant est cassé ou pas la formale vérification c'est un peu plus complexe mais c'est en gros la même chose c'est qu'au lieu de de

juste spammer toutes les du programme et ben là on va mettre le programme dans une sorte de formule mathématique et on va résoudre la le et le Pr va tout de suite vous donner un contreexemple s'il y en a de l' est cassé ou pas donc voil c'est une méthode un peu semiautomatique de faire de la sécurité c'est bien de l'avoir en complément surtout le Fing qui est maintenant très accessible avec plein d'outils en terme de et qui est plutôt simple à faire en terme de en interne et après y a la formale vérification qui est un peu plus nouveau donc les les principaux dans ce domaine là c'est sertora les plus avancés en tout cas avec leur prou donc si vous voulez si vous avez pas les compétences en interne pour développer des ce qu'on appelle des

specs du coup vous pouvez directement contacter c ça vous coûter un peu cher et potentiellement il y a des solo auditors qui peuvent écrire des SP parce que du coup le routine n'est pas open source mais il est utilis par tout le monde et potentiellement sur le marché il y a peut-être des solo auditors j'en connais pas mais qui développe qui peut vous écrire des spec ça vous coûtera moins cher qu'aller voir C forcément ça sera un petit peu moins bien ça coûter moins cher mais ouais comme j'ai dit c'est pas forcément le la priorité on va préférer des des manuel review si en terme de budget ensuite ce qui est très conseillé d'être fait en tout cas ce qui selon moi comporte le moins de trou dans le dans la tranche de fromage c'est les contest donc ça c'est très conseillé de le faire surtout si vous avez pas de

problème de confidentialité au niveau du code les principaux dans ce domaine là c'est là il y a toutes les toutes les solutions mais les principaux du coup c'est code Arena et là en terme de prix ou ça va coûter entre 50000 et 140000 on va dire que plus vous mettrez cher plus vous donnerez envie aux gens de de de venir sur votre votre protocole et donc plus il sera sécurisé donc voilà on c'est très conseillé de le faire B là je l'ai mis après mais avant ça si vous avez les moyens en c'est un peu compliqué ce que j'explique là mais de toute façon vous aurez à la fin un lien vers mon article de blog qui parle de tout ça avec les différentes étapes qui appr priorisé en fonction de V budget mais si vous avez les moyens

avant le contest donc le contest ça serait la dernière étape vous pourouvez faire ce que j'appelle un décentralise og donc les principaux VO il y a que spvit et tr securité qui font ça là vous aurez les meilleurs du du domaine les meilleurs qui vont regarder votre code donc là c'est un super feedback ça coûte un du coup ça coûte un peu cher mais le faire du coup avir un contest ça peut donner une couche de sécurité en plus qui est vraiment pas mal et après bien sûr un bug Bouny à la fin la la convent dans les bug MTI fa surtout le faire c'est très conseillé surtout si vous commencez à avoir la TVL beaucoup de TVL ce qui est conseillé du coup c'est 10 % de la TVL pour un critique c'est un

hackur peut voler 100 millions et il va être récompensé de façon conventionnelle bien sûr après ça peut être plus ça peut être moins mais de 10% TV donc 100000 dollars donc vous pouvez le faire sur imunify finance ou aussi en solo juste avec un sur lei un email pour contacter voilà donc comme on a vu bon c'est pour sécuriser 1000 lignes on peut faire seulement un contest donc ça peut vous goûter au minimum on va dire 50000 dollars 60000 dollars et au maximum 500000 dollars donc voir que c'est beaucoup d'argent donc la question c'est qu'est-ce qu'on fait pour les gens qui ont pas forcément 50000 on va dire les les pauvres mais du coup 50000 dollars c'est quand même pas mal quoi donc pour les gens qui ont moins de 50000 dollars

qu'est-ce qu'on pourrait leur conseiller parce que surtout si pour un protocole qui va avoir beaucoup de TVL c'est pas forcément nécessaire d'aller chercher tout de suite beaucoup de beaucoup très cher et des audits avec des gens qui ont coûteré très cher ce que je conseillerais pour les c'est peut-être d'aller dans du full solo review euh alleressayer de chercher un peu les étoiles montantes les gens qui pourraient coûter un peu un peu moins cher les gens qui qui montent un peu dans dans ce milieu-là parce que ils auront un haut niveau mais leurs prix seront pas forcément totalement ajusté encore à leur niveau donc on peut voir typiquement mil truc actuellement en 3 4 en 4 5 il est monté premier sur le leaderboard Carena donc la plateforme de contest et donc si vous arrivez à à à à voir en solo review quelqu'un qui monte

comme ça mais qui a pas encore forcément ajusté son son pricing et ben ça va vous permettre d'avoir des très bonnes des très bons audits pour pas très cher C TER aussi bon lui lui du coup maintenant il coûte très cher mais quand quand il a commencé et bah c'était quelqu'un de de compétent et que vous en regardant un peu les les tendances dans dans tout ce milieu dans dans dans dans les gens qui montent et qui qui qui commence à se faire connaître vous pouvez potentiellement avoir des très bons audits pour pour pour pas très cher et donc le but c'est pas d'en faire un faire de 3 4 le plus possible en fonction de votre budget et là je pense que vous arriverez à avoir avoir une sécurité à peu près correcte quoi après potentiellement les invitationnels sur COD Arena donc les invitationnels c'est

des compest plus petit où il y aura typiquement tro ou CIN personnes qui vont concourir donc c'est en en privé en quelque sorte et là potentiellement vous pouvez vous en sortir pour moins cher qu'un compte classique bon benah actuellement bah vous avez tout ce qui vous avez fait tout ce qu'il faut donc il reste plus qu'à vous préparer au pire hein donc vérifier le bitecode monitorer la blockchain donc ça ça ça a un peu été expliqué dans les anciennes présentations euh établir des procédures bon bref faire tout ce qu'il faut pour que en cas de ha vous sachiez comment réagir le mieux possible euh parce queun fois que on se haqué je crois que c'est un peu la panique et on a du mal un peu à réfléchir pour certains protocoles donc ouais avoir tout ça de près ça

permet de réagir le mieux possible une fois que une fois qu'on sequé si jamais ça arrive en espérant que ça arrive pas donc euh ouais donc sur mon site sur bero.xyz vous pourrez trouver le le le framework complet donc euh vous devrez vraiment tout détailler avec les les le chemin à prendre en fonction de votre budget donc potentiellement si vous voulez l'appliquer n'hésitez pas à aller sur sur mon site bero.xyz donc merci de votre attention B du coup moi c'est Merlin je suis cofondateur de de morpholabs et tout le monde a parlé un peu de sécurité donc là je vais vous donner un peu un cas d'étude de nous ce qu'on fait chez morpo pour sécuriser entre autres ici le

Aperçu sur la sécurité d'un protocole (Merlin, Morpho)

prochain protocole qu'on va lancer qui s'appelle morpoblue et et on va aller on va expliquer un petit peu tout tout ce qu'on a fait donc déjà j'ai découpé en quatre phases donc là c'est la prebuild phase donc c'est la phase un petit peu où euh on va déjà penser à ce qu'on veut faire euh quel protocole on veut créer quels sont les features qu'on va ajouter en gros toute la partie on design le protocole et aussi euh quel est l'état de l'art nous donc morp morpo je sais pas si tout le monde l'a en tête mais on est un learning protocole il y a 1,5 milliard de dollars déposés à peu près

sur le protocole donc on est le trè plus gros protocole de landending sur etherium derrière AV campand et du coup euh bon ça fait beaucoup donc il faut faut faut faire un max sur la sécurité et aussi on a créé ce qu'on appelle actuellement les optimizers donc les optimizers c'est des protocoles de landing qui sont un top de AV campand et qui permet qui permettent d'optimiser leur taux donc si vous utilisez AV et campand pour prêter emprunter en fait vous feriez mieux de d'aller sur les morpho optimizers euh ce qu'on s'est rendu compte en fait en ça fait ça fait 2 ans qu'on qu'on a lancé ces protocoles là ce qu'on s'est rendu compte c'est que déjà créer des protocoles qui sont safe

c'est très très difficile dans le Space et on a rencontré beaucoup de limites euh notamment déjà dans dans l'espace on a des des des code base qui sont très très larges enfin très très larges euh si vous prenez un une app un software comme Airbnb je sais pas combien ils en ont peut-être des millions de des lignes de code moi quand je dis que c'est très très large il y en a 5000 mais déjà dans 5000 vous pouvez trouver un bon paquet de de bugs euh donc ça c'est déjà un premier problème aussi après les protocoles essaye de mettre plein plein de features parce que effectivement vous pouvez pas forcément upgrade facilement votre votre protocole donc vous pouvez pas le mettre à jour vous pouvez pas

rajouter de features aussi facilement euh donc tout le monde essaie de par exemple sur Av vous avez du stable du mode du isolation mode et cetera et en fait à chaque fois bah que vous rajoutez une fature ça augmente la la complexité ça augmente la laood d'avoir un bug en en production ça c'est une autre un autre j'ai rien fait c'est morpo blue ah ouais ouais c'est ça j'ai entendu c'est un bug

en production c'est exactement ça mais généralement ça ça réapparaît pas comme ça après c'est vraiment vide euh du coup ce qui ce qui amène en fait à beaucoup de de bugs en production donc nous comme on est sur Av campand chaque fois qu'il y a un bug sur la le protocole l'underlying bah nous en fait on ATI un petit peu donc il y a eu je sais pas campand qui upgrade les oracles qui a free le protocole campante pendant une semaine euh parce qu'ils avaient oublié de faire des tests en fait tout simplement et ça marchait pas sur un sur un un des tokens enfin l'oracle ça faisait un revert donc ça a tout freeze euh avait ils ont eu des petits problèmes aussi il y a pas longtemps il

y a un mois il y a eu une une critical ils ont tout posuse et du coup bah nous c'est pareil euh on doit s'adapter on doit pause et cetera et faire en sorte que notre protocole on top il est safe et en plus ils font des upgrades donc il faut suivre les upgrades être sûr que ça casse pas ce qui a été fait avant et et ça rend les choses très très très compliqué pourquoi parce que c'est pas trustless c'est pas du code immuable et et du coup bah faut forcément quand vous builez sur un protocole qui est pas imuable il faut que votre protocole ne soit pas humuable aussi pour s'adapter et généralement bon ça ça crée des systèmes assez assez avec pas mal de risqu donc nous on a essayé

en fait de penser de repenser plutôt les landing protocol de manière à faire des des choses qui sont un protocole qui est le plus résilient possible et le plus safe possible donc hop donc ce qu'on s'est dit c'est qu'on allait inclure vraiment que ce qui était nécessaire et strictement ce qui est nécessaire à chaque fois que vous ajoutez une une features vous ajoutez vous augmentez la la surface d'attaque de votre protocole et du coup à chaque fois que vous vous dites tiens ce serait cool d'avoir du stable rate du swap je sais pas quoi truc bidule c'est bien de se poser la question c'est est-ce que si j'enlève cette fiture de mon protocole

est-ce que les utilisateurs vont toujours venir vont toujours l'utiliser est-ce que est-ce que je vais avoir des utilisateurs si vous l'enlevez et que vous aurez toujours vos utilisateurs ben c'est peut-être une bonne idée de l'enlever ça ça vous invitera de vous tirer les cheveux de de rajouter de la complexité dans votre code euh et cetera vraiment en fait nous ce qu'on pense c'est d'approcher la création et le design de protocole d'un point de vue très minimaliste et de de en fait capturer vraiment l'essence même de ce que vous voulez faire que ce soit du lending ou euh ou du du trading vraiment capturer ce que vous voulez faire et ne mettre dans votre protocole

que ça euh donc il y a aussi une partie Frat modeling donc nous on le fait pas de manière j'ai mis des ressources à la fin vous pourrez aller voir il y a des il y a des liens euh nous on le fait plutôt on a on a essayé de créer une culture autour du débat donc c'est-à-dire que n'importe n'importe quel future sur laquelle on on discute et cetera qu'on veut ajouter on va passer beaucoup de temps en fait à débattre sur à peu près tout et on a du coup essayé de créer une une une culture où critiquer quelque chose ou remettre quelque chose euh en question et et vraiment le bienvenu et et on essaie de ne jamais minimiser en fait la concerne

de de quelqu'un euh je pense que c'est vraiment important parce que ça permet de au moins dès le début euh catch tout ce qui pourrait amener plus tard à la création de bug lors du développement du protocole euh ça fait perdre pas mal de temps notamment morpo blue ça a mis quasiment 1 an à être fait donc 1 an c'est c'est quand même très très long d'un point de vue startup mais par contre ça vous permet de se de de gagner pas mal de temps après quand vous faites dans dans la période des audit et cetera parce que vous avez déjà pensé à énormément de choses et pas mal de possibilités de de ha de de failles et cetera

euh ensuite maintenant on va dire qu'on a passé la la phase de design vous avez à peu près votre votre spec vos vos requirements et cetera là vous dites bon on va pouvoir commencer à écrire écrire le code euh hop donc nous ce qu'on fait généralement on fait du du testing en parallèle du développement du code certains veulent écrire les les les tests en amont ou ou développe le protocole d'abord et ensuite rajoute des tests nous on le fait en parallèle comme ça ça permet de catch des des des bugs assez tôt et des fois des problématiques qui peuvent même remettre en cause le le design du

protocole donc c'est bien si vous les avez en amont comme ça vous êtes pas obligé de réinventer la roue après un ou de mois de de développement donc pour ça on fait des unit test integration test donc unit test c'est vraent pour tester des une partie une fonction spécifique son comportement et cetera integration test c'est quand par exemple vous avez des des des dépendances des des tierss parties je sais pas ind deex un oracle ou whatever euh là dans ce cas-là c'est bien de faire des tests avec avec ce ce F Party et de voir comment ça fonctionne moi je recommande de le faire dans des dans des forqu il y en a qui moqu donc moque c'est vous allez je sais pas morpo

av se plug sur Av donc vous allez créer un faux un faux av qui répond à peu près bien à comme si c'était un av mais vaut mieux le faire dans un fork vous forquez mainnet et vous interagissez comme si vous interagissiez vraiment avec AV et là vous allez vous rendre compte que en fait par rapport à votre MOOC vous allez vous rendre compte qu'il y a beaucoup plus de Hed case que que prévu aussi je l'ai pas dit mais si vous pluguez un autre protocole il faut vraiment que vous fassiez une review complète de ce protocole là il peut y avoir des surprises et c'est pas forcément marqué dans la documentation c'est pas for forcément marqué vraiment facile à voir sur le

dans les contrats en tant que tel faut vraiment y passer du temps euh on parlait de Fing tout à l'heure maintenant c'est hyper facile à setup avec fundry et cetera c'est pas forcément que pour pour les invariants ça peut être pour tout types de test euh juste plutôt que par exemple je sais pas vous avez une fonction qui multiplie de de chiffres et vous voulez savoir que ça vous donne le bon résultat donc au lieu de le faire avec euh 1 x 2 et ben vous lui dites prends X Y et vous vérifiez que ça vous donne vous multipliez bien bien vos chiffres maintenant c'est super simple à faire avec fundry euh donc il y a pas d'excuse en fait il faut le faire hop aussi nous ce qu'on a dans donc dans le processus de développement en fait on

a deux teams donc on a la protocole team et launchain team donc moi je l launchin team chez chez morpholabs euh donc protocole team est plus orienté research et va écrire le protocole et côté Unchain on a plus côté intégration review des contrats testing et cetera euh ce qu'on essae enfin c'est pas ce qu'on essae mais ce qu'on fait en fait à chaque fois c'est si une une équipe écrit le code et écrit les tests on va avoir l'autre équipe qui review les contrats euh en fait c'est un peu je sais plus qui dis parlait de RED team euh bon

euh de de RED team ça nous permet d'avoir une une équipe en interne qui est un peu l'autre côté va essayer de casser en fait le code de l'autre et aussi d'avoir un peu des des des yeux tout frais sur sur une code base et va critiquer ce que ce que fait l'autre l'autre l'autre équipe et il y a une roule c'est tous ceux qui font du solidity en interne doivent review tous les contrats qu' chip euh ça il y a pas de il y a pas de chichi euh on on review tout et c'est c'est assez important parce que comme ça en fait il y a pas de single point of failure où il y a une personne dans l'équipe qui connaît toutes les code base et qui sait tout

surtout euh le la connaissance est partagée et du coup si je viens non c'est pe Glo euh si quelqu'un de l'équipe vient à mourir on peut continuer de travailler tout va bien euh donc voilà aussi une fois qu'on a fait nos nos internal review et cetera on fait appel on a pas mal d'advisors et des des compagnies des VC qui eux ont des security researchers dans dans dans leur boîte donc ça c'est cool et ce qu'on leur fait c'est quand le code est un peu assez clean alors bon déjà dans la phase de design on a pas mal d'advisers qui nous donnent des conseils et cetera là

on en a aussi du du coup au moment où on essaie d'avoir des des feedback plus sur le l'aspect sécurité ou sur des détails du du design donc là on fait encore on fait appel à à eux euh et ils vont challenger le code et et en fait on va essayer de refine les euh les certains choix de design euh aussi pendant la la phase de de de design généralement on a élaboré des requirements euh on a aussi si pendant le développement tirer des des invariants donc euh ouais des des des des formules mathématiques qui doivent pas casser et

donc en fait on va utiliser ces ces invariants pour faire de la la vérification formelle donc on a formal prouor chez nous donc Quentin qui a piég d là dedans donc c'est assez cool parce que du coup on n pas besoin de payer super cher Corin on utilise leur tool mais on n pas besoin de on on en tout cas on a le la connaissance en interne pour faire notre preuve formelle de code euh généralement ça ça ça continue le workshop continue même après le déploiement du contrat parce que c'est c'est un peu un truc infini où tu peux toujours trouver des invariants à tester euh sur sur sur ta codbe euh donc ça c'est un truc qu'on fait encore euh et on fait un truc cool euh c'est le bout

de camp donc chaque chque année on fait un bout de camp enfin chaque année chaque fois qu'on doit faire un un gros lancement de de projet donc le bout de camp c'est quoi on part quelques semaines au fur à mesure ça va se raccourcir parce que plus on grossit mais mais pour l'instant c'est quelques semaines en France avec toute l'équipe et le but de ce bot camp c'est être sûr que tout le monde partage la vision du protocole partage la vision du et préparer pour le le lancement pardon mais aussi en fait on va passer pour le côté sécurité en fait on va essayer de casser le code pendant 3 semaines quoi casser le code et améliorer les test trouver des des failles réfléchir à plein plein de trucs

plein de plein de moyens en fait de casser C notre code et enfin on peut passer à la predployment phase et là ce qu'on fait c'est c'est les les audits de sécurité donc par exemple pour morpo Blue ce qu'on a fait c'est on a fait un audit avec Open ZEP et spearbit donc là le but généralement c'est des timelines assez longues donc ils ont le temps d'aller en profondeur dans le dans dans le code dans les maths euh et ils vont on va avoir pas mal de le but c'est de trouver les plus grosses vulnérabilités de de de de critiquer un peu les les les choix de design qu'on a

fait et euh optimalement on fait ces security reviews de manière séquentielle après ça peut prendre beaucoup de temps généralement pour pour 3000 lignees de code et cetera ça peut prendre un mois quasiment sans compter les fixes qu'il faut faire avec donc si vous faites de manière séquentielle vous en avez pour ça ça postpone de de 3 4 mois le votre lancement donc ça commence à faire euh ensuite une fois qu'on avait fixé qu'on a fixé tous les tous les bugs après security ait ce qu'on a fait c'est un comp test euh qutina donc là euh euh bon les contest c'est une compétition c'est une une sorte de de de feur humain euh donc vous mettez plein de gens avec

un gros pote euh et euh et les gens ils vont venir et ils vont essayer de casser votre code pour avoir de l'argent euh et du coup du coup ça vous permet d'incentiver des des euh des gens qui sont très très bon et euh et euh et le but le plus gros est votre pot de reward plus mais enfin plus vous aurez de de gens très très bons et aussi faut essayer de choisir un slot où il y a pas de gros contest en même temps parce que si vous tombez sur Z casing qui fait son pote à 1 milliard 1 million pardon 1 million bah c'est un peu chiant si vous en reward vous avez 20k quoi enfin bref donc donc ça on a fait actuellement on

est dans cette phase où on fixe les les les quelques issues qui ont été trouvés et en parallèle ce qu'on fait c'est je crois on en a un peu parler déjà mais on travaille aussi sur des incident response plans donc qu'est-ce que c'est c'est des sortes de PlayBook vous vous avez identifié des potentiels problèmes qui pourraent arriver genre on vous a hacké vous avez plus de fond votre Volt peut être je sais pas bloqué pendant un certain nombre de d'heures de de temps ben en fait vous allez leverage le Flight modeling que vous avez fait ou tous ces ces cas que vous avez identifié essaye de réfléchir un petit peu quelle

est la meilleure réponse que je peux avoir pour pour ça et bah vous vous faites des sorte de checklist todo list c'est un peu des livres de recettes en mode bah je sais pas comment je fais ma tarte euh kich Lauren en en moins de 15 minutes et le but c'est d'être le plus rapide possible euh donc c'est bien d'y avoir réfléchi en amont et donc donc voilà vous faites ces PlayBook et après c'est aussi très bien d'avoir le contact des autorités donc en France par exemple ça va être gendarmerie nationale nous on a un partenariat aussi avec chainalasis qui font c'est un peu leur boulot de si vous avez un ha vous les appeler eux ils vont essayer de traquer les fonds ils vont contacter les autorités aussi et aussi potentiellement les centraliz

Exchange pour dire bon là tous les les 100 millions du SDT que vous venez de recevoir en fait faut les free parce que parce que ça vient de du morp protocole c'est pas cool et aussi on a warroom ouais warroom vous pouvez préparer votre serveur room sur discord ou whatever avec les security researchers préférés et comme ça bah si s'il y a un accident en fait en en quelques secondes vous envoyez un lien et vous dites rendez-vous là et c'est déjà prêt quoi donc ça c'est les trucs qu'on peut faire en amont euh ça ça pr prémunit pas de ha par contre ça peut limiter l'impact et ça peut permettre aussi de peut-être

retrouver les fonds si vous vous agissez assez rapidement euh tout maintenant le code est glacé mais pas encore déployé donc nous on va faire là une pré buug by avec Ad finance qui est un peu comme immune F donc là on va mettre 100k en jeu euh là ça c'est le le temps qu'on tant qu'on déploie pas encore et après déploiement on a la partie monitoring donc on a déjà parlé euh mais nous ce qu'on fait en interne c'est par exemple les invariants qu'on avait déjà définis on va faire tourner des bottes euh chaque fois queun utilisateur fait une transaction sur morpo on va vérifier

que après cette transaction euh l'invariant les invariants pardon sont sont pas cassés si c'est cassé là il y a une alarme et on prend des mesures et euh et voilà après euh nous on n pas de circuit breaker sur morpoblue c'est-à-dire qu'on a pas de posing système pourquoi parce qu'on pense que la primitive qu'on qu'on crée doit être euh la gouvernance doit être minimisée le plus possible et le le le protocole doit doit être immuable donc pas de posing système pas d'admin pas de si vous avez un marché il va tourner jusqu'à l'infini et et personne pourra le le changer euh donc

ça c'était plus en une question de de valeur et de vision de qu'est-ce que doit être la Defy euh et enfin on mettra sûrement notre on aionf bug by de 500000 dollars sur sur les morpo Blue Optimizer morpho Optimizer pardon c'est super important ça nous a été utile déjà sur les optimizers euh donc je recommande à n'importe quel protocole de mettre ça en place après forcément 10 % de de la TVL ça commence à être chaud quand ça tape du 1 milliard 5 euh ça fait 150 millions on n' pas du tout le cash pour ça donc effectivement faudrait

je pense c'est peut-être des points d'amélioration c'est comment incentiver des des hackeers àê des White Hat et aller sur immun F pour poster leur fundings plutôt que que d'aller hacker les optimizers et euh contre une rençon de 150 millions euh donc ça c'est des questions qu'on je pense qu'on on peut aborder après lors des questions et après bah voilà rester nous en interne c'est rester en en synchronisation avec le crypto Twitter ce qui se passe dans dans l'écosystème quels sont les nouveaux hacks euh on a aussi récemment créé ce qu'on appelle hack Schol donc chaque semaine un un un des des dev de

morpo nous présente un nouveau hack la fois dernière c'était Ky swap d'ailleurs euh assez cool ouais si c'est cool et euh et voilà du coup la recap ça c'est un peu du coup tout ce qu'on a fait et forcément bon il y a des il y a il y a plein de trucs sur lesquels on pourrait améliorer là le budget il est quand même en plusieurs centaines de de milliers euh on est plus de l'ordre de 800000 que de de 50000 en tout pour 3000 1500 lignes de code donc il faut être vraiment avoir beaucoup de fond c'est très difficile de sécuriser un protocole dans la Defy parce que même après les deux audits on trouve encore des issues après la compétition donc

donc donc voilà et juste pour morpo Blue c'est 700 lignes de code par rapport vs au 5000 lignes de code donc voilà pour dire que c'est très difficile de sécuriser des des protocoles parce que bah voilà c'est du c'est de l'Open Source tout le monde peut voir les failles euh et on peut que faire du préventif quoi voilà donc le prochain on vous donne rendez-vous pour le prochain Meetup d'therum France en janvier qui portera sur les layer 2 I