Zurück zum Blog

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

Code Auditing
1. November 2022

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

Für die neuesten Informationen anmelden
Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren
Security Insights

Über die sichere Speicherung hinaus, Teil 2: Wallet-Kryptografie sicher implementieren

Kann ein Angreifer einen privaten Schlüssel rekonstruieren, ohne dessen geschützte Kopie auszulesen? Teil 2 von Beyond Secure Storage untersucht sechs Vorfälle, bei denen schwache Zufallszahlen, Entropieverlust oder Fehler bei Signatur-Nonces Schlüssel vorhersagbar oder rekonstruierbar machten. Daraus leitet er Anforderungen an die Implementierung der Schlüsselerzeugung und des Signierens ab und erläutert anschließend, wie Zahlungsinstitute deren Einhaltung durch Code-Reviews und Tests des produktiv eingesetzten Systems überprüfen können.

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten
Security Insights

Über sichere Speicherung hinaus, Teil 1: Sichere Zahlungs- und Signaturabläufe gestalten

Wie kann ein nicht autorisierter Vorgang eine gültige Signatur erhalten, ohne dass der Angreifer den privaten Schlüssel stiehlt? Teil 1 von Beyond Secure Storage untersucht anhand von Vorfällen bei Bitget, Bybit und Binance Autorisierungsfehler bei Zahlungsanforderungen, der Erstellung, Signierung und Ausführung von Transaktionen sowie bei deren Abwicklung. Daraus leitet er Gestaltungsprinzipien ab, um nicht autorisierte Vorgänge zu verhindern und Verluste zu begrenzen. Anschließend erläutert er, wie Überprüfungen, Audits, Penetrationstests und Übungen diese Schutzmaßnahmen verifizieren können.

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit
Security Insights

NEAR-Intents-Exploit: Fehler bei der Rückerstattung und Lehren für die Sicherheit

Beim Exploit von NEAR Intents wurden überdimensionierte Rückerstattungsereignisse genutzt, um interne Guthaben zu erhalten, nachdem die eingezahlten Vermögenswerte zurückgegeben worden waren. Diese Analyse rekonstruiert den Ablauf der Receipts und sieben Auszahlungen auf der BNB Chain in Höhe von insgesamt 3.865.021 USDT. Sie unterscheidet diese Mittelabflüsse von der vom Projekt gemeldeten vollständigen Rückgewinnung der Mittel und erläutert Sicherheitsaspekte bei der Entwicklung und Prüfung von NEAR-Smart-Contracts.

Der beste Sicherheitsauditor für Web3

Lassen Sie Design, Code und Geschäftslogik vor dem Launch prüfen. Nach den höchsten Sicherheitsstandards der Branche.

BlockSec-Audit