Comparaison·8 min de lecture·Par Solingo

Immunefi vs Code4rena vs Sherlock : ou trouver et signaler des bugs

Les bug bounties paient les exploits en production, les concours d'audit paient le travail de revue. Voici comment Immunefi, Code4rena et Sherlock different sur les recompenses, la severite, le jugement et le niveau requis.

# Immunefi vs Code4rena vs Sherlock : ou trouver et signaler des bugs

Si vous lisez assez bien le Solidity pour reperer une reentrance ou un controle d'acces casse, quelqu'un vous paiera pour ca. La vraie question, c'est ou. Trois noms dominent la discussion : Immunefi, Code4rena et Sherlock. De loin ils se ressemblent (trouver un bug, etre paye) mais ils recompensent un travail fondamentalement different. L'un paie des exploits en production, les autres paient un travail de revue contre une deadline. Choisir la mauvaise plateforme pour votre situation, c'est gaspiller des semaines.

Cet article detaille les modeles de recompense et de severite, le jugement, l'engagement en temps, et quelle plateforme convient vraiment a un debutant par rapport a un auditeur experimente.

La distinction de base : bounties vs concours

Il y a ici deux modeles economiques distincts, et la difference faconne tout le reste.

Bug bounty (Immunefi). Un protocole publie un programme permanent sur du code deja deploye qui detient de vrais fonds. Vous chassez a votre rythme. Si vous trouvez une vulnerabilite valide et dans le perimetre, vous soumettez un rapport prive et vous etes paye selon sa severite. Pas de deadline, pas de pool partage. Si vous etes le premier a signaler un bug unique, la recompense est a vous.

Concours d'audit (Code4rena, Sherlock). Un protocole ouvre une competition limitee dans le temps (souvent de quelques jours a deux semaines) sur du code qui n'est generalement pas encore en mainnet. Beaucoup d'auditeurs revisent le meme code en meme temps. Un pool de recompenses partage est reparti entre tous ceux qui signalent des problemes valides, pondere par la severite et, sur certaines plateformes, par le nombre de personnes ayant trouve la meme chose.

La consequence pratique : les bounties recompensent la profondeur et la patience sur des cibles en production, les concours recompensent la rapidite et l'etendue sur du code frais. Un doublon ne vaut rien sur un bounty (quelqu'un vous a devance) mais rapporte quand meme une part dans un concours.

Modeles de severite et de recompense

Les trois s'appuient sur une echelle de severite similaire, mais l'argent se comporte differemment.

Immunefi

Immunefi a standardise la severite autour d'un systeme de classification des vulnerabilites avec des niveaux comme Critical, High, Medium, Low. Les findings critiques en smart contract sont en general ceux qui permettent de voler ou de geler definitivement des fonds. Les recompenses sont liees au programme : beaucoup de gros programmes DeFi plafonnent la recompense critique en pourcentage des fonds a risque, avec des maximums absolus eleves. Surtout, un vrai exploit sur un contrat en production est le resultat le mieux paye de tout le secteur, car le protocole evite une perte reelle.

Le compromis : vous etes en competition avec le monde entier sans preavis, et la plupart des rapports sont des doublons ou hors perimetre. Les revenus sont irreguliers. Vous pouvez passer un mois sans rien trouver de payable.

Code4rena

Code4rena utilise High, Medium comme paliers payes pour l'essentiel du pool, les rapports QA (assurance qualite) et d'optimisation de gas etant traites a part et valorises plus bas. Le pool est fixe a l'avance. Votre part sur un probleme donne depend de la severite et de la facon dont le finding est partage entre tous ceux qui l'ont signale. Signaler un High que vingt autres personnes ont aussi trouve rapporte bien moins qu'un High que vous seul avez trouve.

Cela cree une vraie incitation a trouver les bugs rares, pas seulement les evidents. Les debutants farment souvent les Mediums faciles et finissent avec de petites recompenses ; le classement est domine par ceux qui font remonter regulierement des High uniques.

Sherlock

Sherlock paie aussi principalement sur High et Medium, avec un pool fixe, mais ajoute deux mecaniques notables. D'abord, il a historiquement propose une composante de couverture ou de garantie sur certains audits, ce qui releve l'enjeu de la justesse du jugement. Ensuite, ses definitions de severite sont strictes et codifiees, ce qui reduit les disputes mais signifie aussi que les findings limites sont declasses plus agressivement. Sherlock attire les auditeurs qui aiment un jugement precis, guide par des regles.

Comment fonctionne le jugement

C'est sur le jugement que ces plateformes se ressemblent le moins, et c'est la partie que les debutants sous-estiment.

  • Immunefi : l'equipe du protocole (parfois avec mediation) decide de la validite et de la severite. Il vous faut en general un proof of concept fonctionnel qui demontre l'impact, pas juste une theorie. Les litiges se reglent en prive.
  • Code4rena : des juges dedies revisent toutes les soumissions apres la cloture du concours, les dedupliquent, attribuent la severite, et la communaute peut commenter. C'est transparent et vous voyez comment votre rapport se compare aux autres.
  • Sherlock : un responsable du jugement plus l'avis du protocole, avec un document de regles formel. Il existe une fenetre d'escalade/appel ou vous pouvez defendre votre cas en citant les regles.

Le point commun : un rapport vague est rejete partout. Un finding sans chemin d'attaque concret et sans impact n'est que du bruit.

A quoi ressemble vraiment un rapport finance

La severite, c'est l'impact, pas l'astuce. Voici un schema classique a fort impact : un retrait qui met a jour l'etat apres l'appel externe, ce qui permet la reentrance.

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.24;

contract Vault {

mapping(address => uint256) public balances;

function deposit() external payable {

balances[msg.sender] += msg.value;

}

// Vulnerable : appel externe avant la mise a jour de l'etat

function withdraw(uint256 amount) external {

require(balances[msg.sender] >= amount, "insufficient");

(bool ok, ) = msg.sender.call{value: amount}("");

require(ok, "transfer failed");

balances[msg.sender] -= amount; // trop tard

}

}

Le correctif suit l'ordre checks-effects-interactions :

function withdraw(uint256 amount) external {

require(balances[msg.sender] >= amount, "insufficient");

balances[msg.sender] -= amount; // l'effet d'abord

(bool ok, ) = msg.sender.call{value: amount}("");

require(ok, "transfer failed");

}

Quelle que soit la plateforme, vous appuyez ca avec un proof of concept. Avec Foundry, le PoC executable ressemble a ceci :

forge test --match-test testReentrancyDrainsVault -vvvv

Un juge veut voir le contrat attaquant, la sequence d'appels et la variation finale du solde. "Ca a l'air reentrant" n'est pas une soumission ; un test qui vide le coffre, oui.

Engagement en temps

  • Immunefi est sans limite. Vous pouvez y consacrer une heure ou bosser une cible des semaines. Pas de chrono, mais pas de paiement garanti pour le temps passe non plus.
  • Code4rena : les concours sont des sprints intenses. Une participation serieuse, c'est plusieurs jours concentres dans une fenetre courte, souvent nuits et week-ends, car le pool se ferme pour tout le monde au meme instant.
  • Sherlock a une cadence proche de Code4rena, avec la pression supplementaire d'un jugement strict qui sanctionne un rapport bacle et mal justifie.

Si vous avez un emploi a plein temps, les concours forcent une collision de calendrier. Les bounties permettent de travailler en asynchrone.

Quelle plateforme vous convient

Si vous etes debutant

Commencez par les concours, et commencez par Code4rena. Voici pourquoi :

  • Les rapports publics des concours passes sont un cursus gratuit. Vous pouvez lire les soumissions gagnantes et les comparer aux votres.
  • Meme des findings partiels ou en doublon peuvent rapporter une petite part, donc la boucle de feedback est plus rapide que le modele tout-ou-rien des bounties.
  • Vous apprenez le format de rapport, la deduplication et l'argumentation de severite dans un cadre structure.
  • Faites quelques concours, etudiez comment ecrivent les meilleurs, et ne courez apres les bounties en production que lorsque vous savez produire un PoC fonctionnel de facon fiable.

    Si vous etes experimente

    • Immunefi est ou se trouvent les plus gros paiements uniques, si vous savez trouver un bug unique en production et prouver l'impact de bout en bout. Ca recompense les specialistes qui creusent un seul protocole.
    • Sherlock recompense les auditeurs disciplines qui ecrivent des rapports precis, alignes sur les regles, et que les declassements stricts ne derangent pas.
    • Code4rena recompense l'amplitude : ceux qui font remonter regulierement des High uniques sur de nombreux concours batissent un solide palmares public.

    Beaucoup d'auditeurs professionnels font les trois : les concours pour une reputation publique reguliere et les bounties en production pour le gros coup occasionnel.

    Comment demarrer, concretement

  • Montez votre toolchain. Apprenez Foundry, ecrivez des tests, et soyez a l'aise avec le fork de l'etat mainnet pour reproduire les bugs.
  • Lisez les rapports publics. Code4rena et Sherlock publient les findings passes. Re-derivez chaque bug depuis le code source avant de lire l'explication.
  • Choisissez un concours en cours et soumettez, meme si vous n'attendez aucun paiement. Le but est d'apprendre le format et le jugement.
  • Tenez une bibliotheque de patterns de bugs. Reentrance, controle d'acces, manipulation d'oracle/de prix, perte d'arrondi et de precision, appels externes non verifies, et collisions d'upgrade/de storage reviennent en permanence.
  • Seulement ensuite, courez apres les bounties. Une soumission de bounty sans PoC fait perdre du temps a tout le monde, vous compris.
  • Entrainez-vous avant de concourir

    Le meilleur predicteur de succes en concours, c'est la reconnaissance de patterns : voir vite une classe de bug connue, dans du code inconnu. C'est une competence qui s'entraine, et c'est moins cher de l'entrainer sur des exercices que de l'apprendre en direct dans un pool de prix.

    Sur app.solingo-blockchain.xyz, vous pouvez vous exercer sur les classes exactes de vulnerabilites que les juges paient, auditer des contrats casses a dessein, et vous entrainer a ecrire le genre de findings concrets et centres sur l'impact qui sont acceptes. Construisez le reflexe d'abord, puis emmenez-le dans un vrai concours.

    Prêt à mettre en pratique ?

    Applique ces concepts avec des exercices interactifs sur Solingo.

    Commencer gratuitement