substrate-vulnerability-scanner
von trailofbitssubstrate-vulnerability-scanner hilft beim Audit von Substrate- und FRAME-Pallets auf kritische Probleme wie arithmetische Überläufe, Panic-DoS, fehlerhafte Origin-Prüfungen, falsche Weights und unsichere unsigned Extrinsics. Nutzen Sie diesen substrate-vulnerability-scanner Skill für Security-Audit-Reviews von Runtimes, Pallet-Extrinsics und Weight-Logik.
Dieser Skill erreicht 78/100 und ist damit ein solider Kandidat für den Directory-Eintrag: Er deckt einen klaren Substrate-spezifischen Security-Use-Case ab, bietet genug prozedurale Details zur Ausführung und hat ausreichend Substanz im Repository, um eine Installationsprüfung zu rechtfertigen. Nutzer sollten dennoch mit etwas Einführungsaufwand rechnen, da es keinen Installationsbefehl gibt und der Workflow eher dokumentationsgetrieben als automatisiert ist.
- Klar auf das Audit von Substrate/FRAME-Pallets ausgerichtet, mit konkreten Anwendungsfällen wie Runtime-Review, Vorabprüfung vor dem Launch und Validierung von Dispatchables.
- Deckt 7 Substrate-spezifische Schwachstellenmuster mit konkreten Details ab, gestützt durch eine eigene Referenzdatei mit Erkennungsmustern und Gegenmaßnahmen.
- Enthält umfangreiche operative Hinweise wie Marker zur Plattform-Erkennung, Codebeispiele und Einschränkungen, was die Unsicherheit für einen Agenten reduziert.
- Es gibt keinen Installationsbefehl und keine automatisierten Skripte, daher muss der Skill manuell in den Workflow integriert werden.
- Der Skill wirkt stärker dokumentations- als ausführungsorientiert, sodass die Ergebnisse davon abhängen können, wie gut der Agent die Muster interpretiert, statt einem ausführbaren Pipeline-Ablauf zu folgen.
Überblick über die substrate-vulnerability-scanner-Skill
Was substrate-vulnerability-scanner macht
Die substrate-vulnerability-scanner-Skill hilft dir, Substrate- und FRAME-Code auf sieben risikoreiche, plattformspezifische Fehler zu prüfen, die zu Abstürzen, Denial-of-Service oder unautorisierten Zustandsänderungen führen können. Sie ist besonders nützlich, wenn du einen fokussierten substrate-vulnerability-scanner für einen Security-Audit-Workflow brauchst und keinen allgemeinen Rust-Review.
Für wen sie gedacht ist
Nutze diese Skill, wenn du eigene Pallets, Runtime-Extrinsics, Weight-Logik oder die Validierung von unsigned Transactions in Polkadot-Parachains oder eigenständigen Substrate-Chains prüfst. Sie passt besonders gut für Security Engineers, Protokollentwickler und Reviewer, die vor einer tieferen manuellen Analyse einen schnellen ersten Security-Filter brauchen.
Was sie am besten erkennt
Das Repository ist auf Muster getrimmt, die bei einer normalen Code-Review oft durchrutschen: Arithmetic Overflow, durch Panic ausgelöste DoS-Angriffe, fehlerhafte Origin-Prüfungen, falsche Weights, unsichere unsigned Extrinsics und ähnliche FRAME-spezifische Fehler. Ihr Hauptnutzen liegt nicht im breiten Codeverständnis, sondern darin, die Sicherheitsklassen zu identifizieren, die im Substrate-Runtime-Code am wichtigsten sind.
So verwendest du die substrate-vulnerability-scanner-Skill
Installieren und den Prüfbereich eingrenzen
Starte den substrate-vulnerability-scanner install-Ablauf mit dem trailofbits-Skills-Paket und richte ihn dann auf eine Runtime- oder Pallet-Grenze statt auf ein komplettes Monorepo aus. Die besten Ergebnisse erhältst du, wenn die Eingabe klar sagt, was geprüft wird, welches Pallet oder welche Chain im Scope ist und ob es dir um Ausnutzbarkeit, konkrete Fix-Empfehlungen oder einen Checklisten-Durchlauf geht.
Diese Dateien zuerst lesen
Beginne mit SKILL.md, um die Erkennungslogik zu verstehen, und lies danach resources/VULNERABILITY_PATTERNS.md für die eigentlichen Prüfpattern und Gegenmaßnahmen. Wenn dein Repository mehrere Pallets enthält, prüfe zuerst die lib.rs- oder mod.rs-Dateien des jeweiligen Pallets sowie Weight-Dateien und alle Codes zur Validierung unsigned Transactions, weil genau dort diese Skill meist den größten Mehrwert liefert.
Gib der Skill einen vollständigen Prompt
Ein schwacher Prompt lautet: „Scanne dieses Pallet nach Problemen.“ Ein stärkerer Prompt lautet: „Prüfe pallet_balances auf Substrate-spezifische Schwachstellen. Konzentriere dich auf Extrinsics, Storage-Änderungen, Weight-Berechnung und Origin-Prüfungen. Melde jede ungeprüfte Arithmetik, jeden Panic-Pfad, der über Benutzereingaben erreichbar ist, und jede Lücke in der Validierung unsigned Extrinsics. Gib die Ergebnisse mit Dateipfaden, betroffenen Funktionsnamen, Auswirkungsbeschreibung und Remediation-Vorschlägen aus.“ Genau diese Art von Prompt macht die substrate-vulnerability-scanner usage verlässlicher, weil sie dem Modell sagt, was priorisiert werden soll und in welchem Ausgabeformat du die Ergebnisse brauchst.
Workflow-Tipps, die das Signal verbessern
Nutze die Skill als strukturierten ersten Durchlauf und prüfe danach jeden markierten Pfad im Kontext der Runtime. Wenn du Code einfügst, nimm die umgebenden Typdefinitionen und Hilfsfunktionen mit auf, denn viele Substrate-Fehler hängen von Config-Traits, Origin-Typen oder Weight-Annahmen ab, die in einer einzelnen Funktion nicht sichtbar sind. Wenn das Repo mehrere Pallets enthält, führe die Skill pro Pallet aus, statt eine einzige globale Gesamtbewertung zu verlangen.
Häufige Fragen zur substrate-vulnerability-scanner-Skill
Ist substrate-vulnerability-scanner nur für Substrate?
Ja, sie ist für Substrate-/FRAME-Muster konzipiert, nicht für allgemeine Rust-Anwendungen. Ein normaler Prompt kann zwar Code-Smells finden, aber substrate-vulnerability-scanner ist die bessere Wahl, wenn du Sicherheitsurteile für Chain-Runtime-Code brauchst, die an Pallet-Semantik und dispatchable Verhalten gekoppelt sind.
Muss ich Substrate bereits gut kennen?
Nein, aber du erzielst bessere Ergebnisse, wenn du einordnen kannst, was Runtime-Logik ist und was Off-chain-Tooling. Auch Einsteiger können die Skill gut nutzen, wenn sie den exakten Pallet-Pfad angeben und statt allgemeiner Ratschläge konkrete Fundstellen verlangen.
Wann sollte ich diese Skill nicht verwenden?
Verwende sie nicht als einzige Audit-Methode für Business-Logik, Kryptographie oder Off-chain-Services. Liegt der riskante Bereich außerhalb von Runtime-Palets, kann die Skill das eigentliche Problem übersehen, weil ihre Erkennungsregeln auf FRAME und dispatchable Funktionen optimiert sind.
Worin unterscheidet sie sich von einem allgemeinen Security-Prompt?
Ein generischer Prompt liefert womöglich breite Review-Notizen, aber diese Skill ist an eine kuratierte Menge von Substrate-Vulnerability-Mustern und die Stellen gebunden, an denen sie typischerweise auftreten. Das macht den substrate-vulnerability-scanner guide entscheidungsfreundlicher, wenn du einen sicherheitsorientierten Durchgang für Runtime-Code mit weniger Rätselraten brauchst.
So verbesserst du die substrate-vulnerability-scanner-Skill
Liefere den richtigen Kontext von Anfang an
Die besten Eingaben nennen das Pallet, den Chain-Typ und die Codepfade, die dir besonders wichtig sind. Gib an, ob der Code Balances, Rewards, Fees, Governance, unsigned Transactions oder nur Root-Calls behandelt, denn diese Details verändern, welche Schwachstellen wirklich relevant sind.
Bitte um ausnutzbare Pfade, nicht nur um Treffer
Ein häufiger Fehler ist eine Liste verdächtiger Zeilen ohne Sicherheitsbedeutung. Bitte die Skill stattdessen zu erklären, ob ein Muster tatsächlich erreichbar ist, welcher Input es auslöst, welche Auswirkung es hat und ob es sich wegen Config-Traits oder übergeordneten Invarianten um ein False Positive handelt. Das macht die substrate-vulnerability-scanner usage für Triage deutlich handlungsfähiger.
Schärfe den Review nach dem ersten Durchlauf
Wenn das erste Ergebnis zu viel Rauschen enthält, grenze den Scope auf ein Pallet, ein Extrinsic oder ein einzelnes Thema wie ensure_*-Checks, Weight-Arithmetik oder Storage-Arithmetik ein. Wenn das erste Ergebnis zu oberflächlich ist, bitte um einen zweiten Durchlauf, der den markierten Code mit den Mustern in resources/VULNERABILITY_PATTERNS.md und den umgebenden Trait Bounds vergleicht, denn genau diese Details trennen oft echte Bugs von sicheren Abstraktionen.
