substrate-vulnerability-scanner
par trailofbitssubstrate-vulnerability-scanner aide à auditer les pallets Substrate et FRAME pour détecter des problèmes critiques comme les dépassements arithmétiques, les DoS par panic, les vérifications d’origine incorrectes, les weights erronés et les extrinsics non signées dangereuses. Utilisez ce skill substrate-vulnerability-scanner pour des revues de Security Audit portant sur les runtimes, les extrinsics de pallet et la logique de weight.
Ce skill obtient un score de 78/100, ce qui en fait un candidat solide pour les utilisateurs du répertoire : il présente un cas d’usage sécurité clairement orienté Substrate, suffisamment de détails procéduraux pour guider l’exécution, et assez de substance dans le dépôt pour justifier une évaluation d’installation. Les utilisateurs doivent toutefois s’attendre à une certaine friction à l’adoption, car il n’y a pas de commande d’installation et le workflow repose sur la documentation plutôt que sur une automatisation de l’outil.
- Ciblage clair de l’audit des pallets Substrate/FRAME, avec des cas d’usage explicites comme la revue de runtime, l’évaluation pré-lancement et la validation des dispatchables.
- Couverture concrète de 7 schémas de vulnérabilités spécifiques à Substrate, appuyée par un fichier de référence dédié avec patterns de détection et mesures de mitigation.
- Fournit des indications opérationnelles substantielles, comme des marqueurs de détection de plateforme, des exemples de code et des contraintes, ce qui réduit les hésitations pour un agent.
- Aucune commande d’installation ni aucun script automatisé n’est fourni, donc les utilisateurs doivent l’intégrer manuellement à leur workflow.
- Le skill semble davantage orienté documentation qu’exécution, de sorte que les résultats peuvent dépendre de la capacité de l’agent à interpréter correctement les patterns plutôt que de suivre un pipeline exécutable.
Aperçu du skill substrate-vulnerability-scanner
Ce que fait substrate-vulnerability-scanner
Le skill substrate-vulnerability-scanner vous aide à auditer du code Substrate et FRAME pour repérer sept bugs à haut risque, spécifiques à la plateforme, capables de provoquer des crashs, des dénis de service ou des modifications d’état non autorisées. Il est particulièrement utile lorsque vous avez besoin d’un substrate-vulnerability-scanner ciblé pour un workflow d’audit de sécurité, plutôt que d’une revue Rust générale.
À qui il s’adresse
Utilisez ce skill si vous examinez des pallets personnalisés, des extrinsics de runtime, la logique de poids ou la validation des transactions unsigned dans des parachains Polkadot ou des chaînes Substrate autonomes. C’est un excellent choix pour les ingénieurs sécurité, les développeurs de protocole et les relecteurs qui ont besoin d’un premier filtre de sécurité rapide avant une analyse manuelle plus poussée.
Ce qu’il détecte le mieux
Le dépôt est calibré pour les schémas qui échappent souvent à une revue de code ordinaire : débordements arithmétiques, dénis de service déclenchés par panic, vérifications d’origine incorrectes, poids erronés, extrinsics unsigned dangereuses et erreurs FRAME similaires. Sa valeur principale n’est pas la compréhension générale du code ; elle réside dans l’identification des classes de failles qui comptent le plus dans le code runtime Substrate.
Comment utiliser le skill substrate-vulnerability-scanner
Installer et cadrer la revue
Lancez le flux substrate-vulnerability-scanner install avec le package skills de trailofbits, puis concentrez-le sur une frontière de runtime ou de pallet plutôt que sur tout un monorepo. Les meilleurs résultats apparaissent lorsque l’entrée indique clairement ce qui est audité, quel pallet ou quelle chaîne est dans le périmètre, et si vous cherchez surtout l’exploitabilité, des recommandations de correction ou un passage en revue sous forme de checklist.
Commencez par lire ces fichiers
Commencez par SKILL.md pour comprendre la logique de détection, puis lisez resources/VULNERABILITY_PATTERNS.md pour voir les motifs de contrôle et les mitigations réelles. Si votre dépôt contient plusieurs pallets, inspectez d’abord les fichiers lib.rs ou mod.rs de chaque pallet, ainsi que les fichiers de poids et tout code de validation des transactions unsigned, car ce sont les endroits où ce skill apporte le plus de valeur.
Donnez au skill un prompt complet
Un prompt faible dit : « Analyse ce pallet pour détecter des problèmes. » Un prompt plus solide dit : « Examine pallet_balances pour repérer des vulnérabilités spécifiques à Substrate. Concentre-toi sur les extrinsics, les mutations de stockage, le calcul du poids et les vérifications d’origine. Signale tout calcul arithmétique non vérifié, tout chemin de panic atteignable depuis une entrée utilisateur et toute faille de validation d’extrinsic unsigned. Rends les résultats avec les chemins de fichiers, les noms de fonctions impactées, l’impact exploitable et des suggestions de remédiation. » Ce type de prompt rend l’utilisation de substrate-vulnerability-scanner plus fiable, parce qu’il indique au modèle ce qu’il doit prioriser et le format de sortie attendu.
Conseils de workflow pour améliorer la qualité du signal
Utilisez le skill comme un premier passage structuré, puis vérifiez chaque chemin signalé dans le contexte du runtime. Lorsque vous collez du code, ajoutez les types environnants et les fonctions auxiliaires, car de nombreux bugs Substrate dépendent de traits de configuration, de types d’origine ou d’hypothèses de poids qui ne sont pas visibles dans une seule fonction. Si le dépôt contient plusieurs pallets, lancez le skill pallet par pallet plutôt que de demander un verdict global unique.
FAQ sur le skill substrate-vulnerability-scanner
substrate-vulnerability-scanner est-il réservé à Substrate ?
Oui, il est conçu pour les schémas Substrate/FRAME, pas pour les applications Rust génériques. Un prompt classique peut relever des code smells, mais substrate-vulnerability-scanner est plus pertinent lorsque vous avez besoin d’un jugement de sécurité sur le runtime d’une chaîne, lié à la sémantique des pallets et au comportement des dispatchables.
Dois-je être expert Substrate ?
Non, mais vous obtiendrez de meilleurs résultats si vous pouvez identifier ce qui relève de la logique runtime et ce qui relève des outils off-chain. Les débutants peuvent quand même utiliser le skill s’ils fournissent le chemin exact du pallet et demandent des constats concrets plutôt que des conseils généraux.
Quand ne faut-il pas utiliser ce skill ?
Ne l’utilisez pas comme seule méthode d’audit pour la logique métier, la cryptographie ou les services off-chain. Si la zone à risque est en dehors des pallets runtime, le skill peut passer à côté du vrai problème, car ses règles de détection sont optimisées pour FRAME et les fonctions dispatchables.
En quoi est-il différent d’un prompt de sécurité générique ?
Un prompt générique peut produire des remarques de revue assez larges, mais ce skill s’appuie sur un ensemble curé de motifs de vulnérabilités Substrate et sur les endroits où ils apparaissent habituellement. Cela rend le substrate-vulnerability-scanner guide plus utile pour la prise de décision lorsque vous avez besoin d’un passage de sécurité sur du code runtime avec moins d’approximation.
Comment améliorer le skill substrate-vulnerability-scanner
Fournissez le bon contexte dès le départ
Les meilleures entrées nomment le pallet, le type de chaîne et les chemins de code qui vous intéressent le plus. Indiquez aussi si le code traite des balances, des récompenses, des frais, de la gouvernance, des transactions unsigned ou des appels réservés à root, car ces détails changent les vulnérabilités les plus pertinentes.
Demandez des chemins exploitables, pas seulement des correspondances
Un mode d’échec fréquent consiste à recevoir une liste de lignes suspectes sans véritable signification sécurité. Demandez au skill d’expliquer si le schéma est réellement atteignable, quelle entrée le déclenche, quel est l’impact et si le problème est un faux positif dû aux traits de configuration ou aux invariants en amont. Cela rend l’utilisation de substrate-vulnerability-scanner beaucoup plus exploitable pour le triage.
Affinez la revue après le premier passage
Si le premier résultat est trop bruyant, réduisez le périmètre à un seul pallet, un seul extrinsic ou une seule question, par exemple les vérifications ensure_*, les calculs de poids ou l’arithmétique de stockage. Si le premier résultat est trop superficiel, demandez un second passage qui compare le code signalé aux motifs de resources/VULNERABILITY_PATTERNS.md et aux bornes de traits environnantes, car ces détails font souvent la différence entre un vrai bug et une abstraction sûre.
