Conseil en sécurité des chaînes de blocs
La question de la sécurité de la blockchain est véritablement différente de celle d’une application traditionnelle. Le registre lui-même est difficile à altérer, mais la quasi-totalité des problèmes rencontrés dans la pratique se produisent en périphérie : contrats intelligents comportant des bogues logiques, clés privées mal gérées, ainsi que les passerelles et les composants hors chaîne qui relient un système de blockchain à l’Internet classique.
Si vous développez ou exploitez un système sur la blockchain, la première question à se poser en toute honnêteté est la suivante : où se situe réellement la limite de confiance, et que se passe-t-il en cas de défaillance ? Un bug dans un contrat intelligent permettant à quelqu’un de détourner des fonds, une clé de signature compromise, un contrat de pont reposant sur une hypothèse non vérifiée : ce sont là les incidents qui font réellement la une des journaux, bien plus souvent que la rupture du mécanisme de consensus sous-jacent.
Ce que couvre réellement une évaluation
Pour les contrats intelligents, cela implique d’analyser le code à la recherche des classes de défaillance bien connues — réentrance, débordement d’entier dans les anciennes versions de Solidity, failles de contrôle d’accès, manipulation d’oracles — et de réfléchir à ce qui se passe en présence d’incitations économiques malveillantes, et pas seulement face à du code malveillant. En matière de gestion des clés, cela implique de comprendre comment les clés privées sont générées, stockées et utilisées pour la signature, et de déterminer si une seule machine ou personne compromise peut transférer des fonds.
Pour tout élément comportant une composante hors chaîne — un pont, un oracle, une API qui alimente la chaîne en données —, c’est souvent là que se trouve la véritable surface d’attaque, et cet élément mérite d’être examiné avec autant de rigueur que n’importe quel autre logiciel, car c’est exactement ce dont il s’agit.
Allons droit au but
Je vous dirai sans détour si quelque chose semble correct et si quelque chose présente un risque réel. Dans ce secteur, on a tout intérêt à rassurer les clients en leur affirmant que tout est sécurisé ; je préfère que vous entendiez la vérité de ma bouche plutôt que de l’apprendre par un pirate informatique.
Si vous disposez d’un contrat ou d’un système que vous souhaitez faire examiner par un deuxième regard, contactez-moi.