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.
-
Folgen Sie der Installationsanleitung auf der GitHub-Seite. Wenn Sie Docker verwenden möchten, überspringen Sie diesen Schritt und gehen Sie zur Docker-Anleitung.
-
Bereiten Sie den NEAR-Vertrag für die Analyse durch Rustle vor.
git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR -
Starten Sie die Analyse, indem Sie
./rustleausführen../rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear

- Überprüfen Sie den Bericht unter
audit-result/summary.csv

- 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



