Rustle: der erste automatische Auditor für die NEAR Community

Rustle von BlockSec: Automatisierter Auditor für NEAR Smart Contracts. Bietet umfassende Schwachstellenerkennung und -analyse.

Rustle: der erste automatische Auditor für die NEAR Community

Wir freuen uns, Rustle zu veröffentlichen: den ersten automatischen Auditor, der von BlockSec für die NEAR-Community angeboten wird.

Rustle hat mehrere großartige Funktionen:

  • Rustle kann derzeit über 20 Arten von Problemen im NEAR-Vertrag erkennen. Die vollständige Liste der Detektoren finden Sie im Abschnitt Detektoren.
  • Rustle ist einfach zu bedienen. Wir bieten detaillierte Installationsbefehle und Tutorials. Darüber hinaus bereiten wir einen Docker für Benutzer für einen schnellen Start vor.
  • Rustle ist ziemlich schnell, die meisten NEAR-Verträge können innerhalb von 3 Minuten analysiert werden.
  • Rustle ist benutzerfreundlich mit Berichten in den Formaten CSV und JSON. Wir stellen auch ein Skript zur Verfügung, das Ihnen hilft, die Ergebnisse in Notion zu importieren.

Detektoren

Alle Schwachstellen, die Rustle erkennen kann. Die detaillierte Dokumentation finden Sie hier.

Detector Id Beschreibung Schweregrad
unhandled-promise Erkennt nicht behandelte Promises Hoch
non-private-callback Fehlendes Makro #[private] für Callback-Funktionen Hoch
reentrancy Findet Funktionen, die anfällig für Reentrancy-Angriffe sind Hoch
unsafe-math Fehlende Überprüfung auf Überläufe bei arithmetischen Operationen Hoch
self-transfer Fehlende Prüfung von sender != receiver Hoch
incorrect-json-type Falscher Typ, der in Parametern oder Rückgabewerten verwendet wird Hoch
div-before-mul Genauigkeitsverlust durch falsche Reihenfolge der Operationen Mittel
round Rundung ohne Angabe von Decke oder Boden Mittel
lock-callback Panik in der Callback-Funktion kann den Vertrag sperren Mittel
yocto-attach Kein assert_one_yocto in privilegierten Funktionen Mittel
prepaid-gas Fehlende Prüfung des vorausbezahlten Gases in ft_transfer_call Niedrig
non-callback-private Makro #[private] in nicht-Callback-Funktionen verwendet Niedrig
unused-ret Funktionsergebnis nicht verwendet oder geprüft Niedrig
upgrade-func Keine Upgrade-Funktion im Vertrag Niedrig
tautology Tautologie in bedingten Verzweigungen verwendet Niedrig
inconsistency Verwendung ähnlicher, aber leicht unterschiedlicher Symbole Niedrig
timestamp Findet alle Verwendungen von Zeitstempeln Info
complex-loop Findet alle Schleifen mit komplexer Logik, die zu DoS führen können Info
ext-call Findet alle Cross-Contract-Aufrufe Info
promise-result Findet alle Verwendungen von Promise-Ergebnissen Info
transfer Findet alle Transfer-Aktionen Info

Verwendung

Wir nutzen Rustle, um einen beliebten NEAR-Vertrag zu analysieren (z. B. LiNEAR). Die Befehle wurden unter Ubuntu 20.04 LTS getestet.

  1. Folgen Sie der Installationsanleitung auf der GitHub-Seite. Wenn Sie Docker verwenden möchten, überspringen Sie diesen Schritt und gehen Sie zur Docker-Anleitung.

  2. Bereiten Sie den NEAR-Vertrag für die Analyse durch Rustle vor.

     git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR
    
  3. Starten Sie die Analyse, indem Sie ./rustle ausführen.

     ./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear
    
  1. Überprüfen Sie den Bericht unter audit-result/summary.csv
  1. Sie können angeben, welche Detektoren oder Schweregradgruppen verwendet werden sollen.

./rustle -h für Details.

Beispiel:

./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear -d high,medium,complex-loop

Noch etwas

Rustle kann im Entwicklungsprozess verwendet werden, um NEAR-Smart-Contracts iterativ zu scannen. Dies kann viel manuellen Aufwand sparen und einen Teil potenzieller Probleme mildern. Schwachstellen in komplexer Logik oder im Zusammenhang mit Semantik sind jedoch weiterhin die Grenzen von Rustle. Das Auffinden komplizierter semantischer Probleme erfordert Experten von BlockSec, um umfassende und gründliche Überprüfungen durchzuführen. Kontaktieren Sie uns für Audit-Dienstleistungen.

Issues und PRs sind ebenfalls willkommen.

Über BlockSec

BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit renommierter Sicherheitsexperten gegründet wurde. Das Unternehmen engagiert sich für die Verbesserung der Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt, um deren Massenakzeptanz zu erleichtern. Zu diesem Zweck bietet BlockSec Sicherheitsaudits für Smart Contracts und EVM-Ketten, die Phalcon-Plattform für die Sicherheitsentwicklung und proaktive Bedrohungsabwehr, die MetaSleuth-Plattform für die Nachverfolgung und Untersuchung von Geldern sowie die MetaSuites-Erweiterung für Web3-Entwickler, um effizient in der Krypto-Welt zu surfen.

Bis heute hat das Unternehmen über 300 angesehene Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren, darunter Matrix Partners, Vitalbridge Capital und Fenbushi Capital, zweistellige Millionenbeträge an US-Dollar erhalten.

Offizielle Website: https://blocksec.com/

Offizielles Twitter-Konto: https://twitter.com/BlockSecTeam

Sign up for the latest updates