MetaMask Snap Audit-Bericht für Tezos

Management-Zusammenfassung

Tezos kontaktierte Sayfer Security, um ein Sicherheitsaudit von Tezos MetaMask Snap durchzuführen.

Bevor wir die oben genannten Dienste bewerteten, hielten wir ein Kickoff-Meeting mit dem technischen Team von Tezos ab und erhielten einen Überblick über das System und die Ziele dieser Forschung.

Im Forschungszeitraum von 2 Wochen haben wir 4 Erkenntnisse im System entdeckt.

Zusammenfassend lässt sich sagen, dass nach dem Bericht mehrere Korrekturen implementiert werden sollten, der Sicherheitsstatus des Systems jedoch angemessen ist.

Schwachstellen nach Risiko

Hoch – Direkte Bedrohung wichtiger Geschäftsprozesse.
Medium – Indirekte Bedrohung wichtiger Geschäftsprozesse oder partielle Bedrohung von Geschäftsprozessen.
Niedrig – Es besteht keine direkte Bedrohung. Die Schwachstelle kann mit anderen Schwachstellen ausgenutzt werden.
Informational – Dieser Befund weist nicht auf eine Schwachstelle hin, sondern gibt einen Kommentar an, der auf Designfehler und unsachgemäße Implementierung hinweist, die auf lange Sicht ein Problem verursachen könnten.

Schwere
# Probleme
Hoch
0
Medium
0
Niedrig
1
Informational
3

Ansatz

Einführung

Tezos kontaktierte Sayfer, um Penetrationstests für die MetaMask Snap-Anwendung von Tezos durchzuführen.

Dieser Bericht dokumentiert die von Sayfer durchgeführte Forschung, die auf die ausgewählten Ressourcen abzielt, die im Rahmen des Forschungsumfangs definiert sind. Insbesondere zeigt dieser Bericht die Überprüfung des Sicherheitsstatus für die Tezos MetaMask Snap-Anwendung und die umgebenden Infrastruktur- und Prozessimplementierungen.

Unser Projektlebenszyklus für Penetrationstests:

01

Scope-Übersicht

02

Technische Übersicht

03

Bereichsvalidierung

04

Bedrohungsmodell

05

Sicherheitsbewertung

06

Sicherheitsbewertung

Scope-Übersicht

Während unseres ersten Treffens und nachdem wir die Anforderungen des Unternehmens verstanden hatten, definierten wir den Anwendungsbereich, der sich unter den folgenden URLs befindet, als den Umfang des Projekts:

  • Tezos MetaMask Snap

Hash festschreiben: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26

Lass es nicht zu spät sein!

Starten Sie Ihr Audit mit Sayfer

Bereichsvalidierung

Wir stellten zunächst sicher, dass der vom Kunden definierte Umfang technisch logisch war. Die Entscheidung, welcher Umfang für ein bestimmtes System der richtige ist, ist Teil der ersten Diskussion. Der richtige Umfang ist der Schlüssel zur Erzielung des größtmöglichen Geschäftswerts aus der Forschung.

Bedrohungsmodell

Während unserer Kickoff-Meetings mit dem Kunden haben wir die wichtigsten Vorteile der Anwendung definiert.

Wir haben festgestellt, dass die größte aktuelle Bedrohung für das System vertrauliche Benutzerinformationen sind.

Lass es nicht zu spät sein!

Starten Sie Ihr Audit mit Sayfer

Methodik der Sicherheitsbewertung

Sayfer verwendet OWASP WSTG als unser technischer Standard bei der Überprüfung von Webanwendungen. Nachdem wir uns ein gründliches Verständnis des Systems angeeignet hatten, entschieden wir, welche OWASP-Tests erforderlich sind, um das System zu evaluieren.

Sicherheitsbewertung

Nachdem wir den Umfang verstanden und definiert, eine Bedrohungsmodellierung durchgeführt und die richtigen Tests bewertet hatten, die erforderlich waren, um die Anwendung vollständig auf Sicherheitslücken zu überprüfen, führten wir unsere Sicherheitsbewertung durch.

Beschreibung der Problemtabelle

Titel der Ausgabe

ID Die OWASP-ID des Problems. Zusätzliche Tests, die wir durchführen und nicht in der OWASP-Tabelle enthalten sind, erhalten die Sayfer-ID.
Beispiel-ID: WSTG-INFO-002
WSTG – Leitfaden zum Web-Sicherheitstest.
INFOS – Eine Abkürzung für das Thema, zu dem die Ausgabe gehört.
002 - Ausgabe Nummer.
Risiko Stellt den Risikofaktor des Problems dar. Weitere Beschreibungen finden Sie im Schwachstellen nach Risiko .
Erforderliche Fähigkeiten Beschreibt das erforderliche Fähigkeitsniveau, um eine erfolgreiche Ausbeutung durchzuführen. Je niedriger die Fähigkeitsstufe, desto einfacher ist der Ausbeutungsprozess.
OWASP
Literaturhinweis
Ein Link zur entsprechenden OWASP-Seite für weitere Informationen.
Standort Die URL, in der dieses Problem erkannt wurde. Probleme ohne Standort haben keinen bestimmten Standort und beziehen sich auf das Produkt als Ganzes.
Zubehör Die zur Erkennung des Problems verwendeten Tools.

Beschreibung

Hier geben wir eine kurze Beschreibung des Problems und seiner Entstehung, die Schritte, die wir unternommen haben, um es zu finden oder auszunutzen, zusammen mit einem Konzeptnachweis (falls vorhanden) und wie sich dieses Problem auf das Produkt oder seine Benutzer auswirken kann. .

Mitigation

Vorgeschlagene Lösungsoptionen für dieses Problem und Links zu empfohlenen Websites zur weiteren Behebung.

Sicherheitsbewertung

Die folgenden Tests wurden während der Prüfung des Systems durchgeführt

Informationsbeschaffung

Informationsbeschaffung Testname
WSTG-INFO-01 Führen Sie Search Engine Discovery Reconnaissance für Informationslecks durch
WSTG-INFO-02 Fingerabdruck-Webserver
WSTG-INFO-03 Überprüfen Sie Webserver-Metadateien auf Informationslecks
WSTG-INFO-04 Anwendungen auf dem Webserver auflisten
WSTG-INFO-05 Überprüfen Sie den Inhalt der Webseite auf Informationslecks
WSTG-INFO-06 Identifizieren Sie Einstiegspunkte für Anwendungen
WSTG-INFO-07 Ordnen Sie Ausführungspfade durch die Anwendung zu
WSTG-INFO-08 Framework für Fingerabdruck-Webanwendungen
WSTG-INFO-09 Fingerabdruck-Webanwendung
WSTG-INFO-10 Kartenanwendungsarchitektur

Konfigurations- und Deployment-Management-Tests

Konfigurations- und Deployment-Management-Tests Testname
WSTG-CONF-01 Konfiguration der Netzwerkinfrastruktur testen
WSTG-CONF-02 Testen Sie die Konfiguration der Anwendungsplattform
WSTG-CONF-03 Testen Sie die Behandlung von Dateierweiterungen für vertrauliche Informationen
WSTG-CONF-04 Überprüfen Sie alte Sicherungskopien und nicht referenzierte Dateien auf sensible Informationen
WSTG-CONF-05 Zählen Sie Infrastruktur- und Anwendungsverwaltungsschnittstellen auf
WSTG-CONF-06 HTTP-Methoden testen
WSTG-CONF-07 Testen Sie HTTP Strict Transport Security
WSTG-CONF-08 Testen Sie die domänenübergreifende RIA-Richtlinie
WSTG-CONF-09 Dateiberechtigung testen
WSTG-CONF-10 Test auf Subdomain-Übernahme
WSTG-CONF-11 Cloud-Speicher testen

Identitätsmanagement-Tests

Identitätsmanagement-Tests Testname
WSTG-IDNT-01 Rollendefinitionen testen
WSTG-IDNT-02 Registrierungsprozess für Testbenutzer
WSTG-IDNT-03 Testkonto-Bereitstellungsprozess
WSTG-IDNT-04 Testen auf Kontoaufzählung und erratbares Benutzerkonto
WSTG-IDNT-05 Test auf schwache oder nicht erzwungene Richtlinie für Benutzernamen

Authentifizierungstests

Authentifizierungstests Testname
WSTG-ATHN-01 Testen auf Anmeldeinformationen, die über einen verschlüsselten Kanal transportiert werden
WSTG-ATHN-02 Testen auf Standardanmeldeinformationen
WSTG-ATHN-03 Prüfung auf schwachen Sperrmechanismus
WSTG-ATHN-04 Testen auf Umgehung des Authentifizierungsschemas
WSTG-ATHN-05 Testen auf anfälliges Passwort merken
WSTG-ATHN-06 Testen auf Browser-Cache-Schwachstellen
WSTG-ATHN-07 Testen auf Richtlinie für schwache Kennwörter
WSTG-ATHN-08 Testen auf Schwache Sicherheitsfrage Antwort
WSTG-ATHN-09 Testen auf schwache Funktionen zum Ändern oder Zurücksetzen von Passwörtern
WSTG-ATHN-10 Testen auf schwächere Authentifizierung im alternativen Kanal

Autorisierungstests

Autorisierungstests Testname
WSTG-ATHZ-01 Testen von Directory Traversal File Include
WSTG-ATHZ-02 Testen auf Umgehung des Autorisierungsschemas
WSTG-ATHZ-03 Testen auf Rechteausweitung
WSTG-ATHZ-04 Testen auf unsichere direkte Objektreferenzen

Testen der Sitzungsverwaltung

Testen der Sitzungsverwaltung Testname
WSTG-SESS-01 Testen für das Sitzungsverwaltungsschema
WSTG-SESS-02 Testen auf Cookie-Attribute
WSTG-SESS-03 Testen auf Sitzungsfixierung
WSTG-SESS-04 Testen auf exponierte Sitzungsvariablen
WSTG-SESS-05 Prüfung auf Cross-Site-Request-Forgery
WSTG-SESS-06 Testen der Abmeldefunktion
WSTG-SESS-07 Zeitüberschreitung der Testsitzung
WSTG-SESS-08 Testen auf Session-Puzzling
WSTG-SESS-09 Testen auf Session Hijacking

Testen der Datenvalidierung

Testen der Datenvalidierung Testname
WSTG-INPV-01 Testen auf reflektiertes Cross-Site-Scripting
WSTG-INPV-02 Testen auf Stored Cross Site Scripting
WSTG-INPV-03 Testen auf HTTP-Verb-Manipulation
WSTG-INPV-04 Testen auf HTTP-Parameterverschmutzung
WSTG-INPV-05 Testen auf SQL-Injection
WSTG-INPV-06 Testen auf LDAP-Injection
WSTG-INPV-07 Testen auf XML-Injection
WSTG-INPV-08 Prüfung auf SSI-Einspritzung
WSTG-INPV-09 Testen auf XPath-Injektion
WSTG-INPV-10 Testen auf IMAP-SMTP-Injection
WSTG-INPV-11 Testen auf Code-Injection
WSTG-INPV-12 Testen auf Befehlsinjektion
WSTG-INPV-13 Testen auf Format-String-Injection
WSTG-INPV-14 Testen auf inkubierte Schwachstellen
WSTG-INPV-15 Testen auf HTTP-Splitting-Schmuggel
WSTG-INPV-16 Testen auf eingehende HTTP-Anforderungen
WSTG-INPV-17 Testen auf Host-Header-Injektion
WSTG-INPV-18 Testen auf serverseitige Vorlageninjektion
WSTG-INPV-19 Testen auf serverseitige Anforderungsfälschung

Fehlerbehandlung

Fehlerbehandlung Testname
WSTG-ERRH-01 Testen auf unsachgemäße Fehlerbehandlung
WSTG-ERRH-02 Testen auf Stack-Traces

Cryptography

Cryptography Testname
WSTG-CRYP-01 Testen auf schwache Transportschichtsicherheit
WSTG-CRYP-02 Testen für Padding Oracle
WSTG-CRYP-03 Prüfung auf sensible Informationen, die über unverschlüsselte Kanäle gesendet werden
WSTG-CRYP-04 Testen auf schwache Verschlüsselung

Testen der Geschäftslogik

Testen der Geschäftslogik Testname
WSTG-BUSL-01 Testen Sie die Datenvalidierung der Geschäftslogik
WSTG-BUSL-02 Testen Sie die Fähigkeit, Anfragen zu fälschen
WSTG-BUSL-03 Integritätsprüfungen testen
WSTG-BUSL-04 Testen Sie das Prozesstiming
WSTG-BUSL-05 Testen Sie, wie oft eine Funktion verwendet werden kann
WSTG-BUSL-06 Prüfung auf Umgehung von Arbeitsabläufen
WSTG-BUSL-07 Testen Sie Abwehrmaßnahmen gegen Anwendungsmissbrauch
WSTG-BUSL-08 Test-Upload von unerwarteten Dateitypen
WSTG-BUSL-09 Test-Upload schädlicher Dateien

Clientseitiges Testen

Clientseitiges Testen Testname
WSTG-CLNT-01 Testen auf DOM-basiertes Cross-Site-Scripting
WSTG-CLNT-02 Testen auf JavaScript-Ausführung
WSTG-CLNT-03 Testen auf HTML-Injection
WSTG-CLNT-04 Testen der clientseitigen URL-Umleitung
WSTG-CLNT-05 Testen auf CSS-Injektion
WSTG-CLNT-06 Testen auf clientseitige Ressourcenmanipulation
WSTG-CLNT-07 Testen Sie die ursprungsübergreifende Ressourcenfreigabe
WSTG-CLNT-08 Testen auf Cross-Site-Flashing
WSTG-CLNT-09 Test auf Clickjacking
WSTG-CLNT-10 Testen von WebSockets
WSTG-CLNT-11 Testen Sie Web-Messaging
WSTG-CLNT-12 Testen des Browserspeichers
WSTG-CLNT-13 Testen auf Cross-Site-Skripteinbindung

API-Tests

API-Tests Testname
WSTG-APIT-01 Testen von GraphQL

Audit bei Sayfer bestellen

    Diese Seite wird von reCAPTCHA und Google geschützt. Datenschutzbestimmungen , Nutzungsbedingungen .

    Ergebnisse der Sicherheitsbewertung

    Abhängigkeiten mit bekannten Schwachstellen

    ID SAGEN-01
    Status Behoben
    Risiko Niedrig
    Standort -
    Auswirkungen auf das Geschäft Die Verwendung anfälliger Versionen von Knotenmodulen könnte den Dienst verschiedenen Angriffen aussetzen, von denen einige weniger kritisch, andere jedoch schwerwiegend sind.

    Beschreibung

    Das NPM-Audit gibt mehrere Ergebnisse für bekannte Schwachstellen in den installierten Paketen zurück:

      npm audit
    # npm audit report
    engine.io 5.1.0 - 6.4.1
    Severity: moderate
    engine.io Uncaught Exception vulnerability -
    https://github.com/advisories/GHSA-q9mw-68c2-j6m5
    fix available via `npm audit fix`
    node_modules/engine.io
    socket.io 4.1.0 - 4.6.0-alpha1
    Depends on vulnerable versions of engine.io
    node_modules/socket.io
    gatsby 1.9.130 - 4.25.7 || 5.4.0-next.0 - 5.9.1
    Depends on vulnerable versions of gatsby-cli
    Depends on vulnerable versions of latest-version
    Depends on vulnerable versions of socket.io
    node_modules/gatsby
    got <11.8.5
    Severity: moderate
    Got allows a redirect to a UNIX socket -
    https://github.com/advisories/GHSA-pfrx-2q88-qq97
    fix available via `npm audit fix`
    node_modules/package-json/node_modules/got
    package-json <=6.5.0
    Depends on vulnerable versions of got
    node_modules/package-json
    latest-version 0.2.0 - 5.1.0
    Depends on vulnerable versions of package-json
    node_modules/latest-version
    update-notifier 0.2.0 - 5.1.0
    Depends on vulnerable versions of latest-version
    node_modules/update-notifier
    gatsby-cli 1.1.27 - 4.25.0
    Depends on vulnerable versions of update-notifier
    node_modules/gatsby-cli
    13
    request *
    Severity: moderate
    Server-Side Request Forgery in Request -
    https://github.com/advisories/GHSA-p8p7-x288-28g6
    fix available via `npm audit fix`
    node_modules/request
    node-gyp <=7.1.2
    Depends on vulnerable versions of request
    node_modules/@npmcli/run-script/node_modules/node-gyp
    @npmcli/run-script 1.1.1 - 1.8.6
    Depends on vulnerable versions of node-gyp
    node_modules/@npmcli/run-script
    @lavamoat/allow-scripts <=2.3.0
    Depends on vulnerable versions of @npmcli/run-script
    node_modules/@lavamoat/allow-scripts
    socket.io-parser 4.0.4 - 4.2.2
    Severity: high
    Insufficient validation when decoding a Socket.IO packet -
    https://github.com/advisories/GHSA-cqmj-92xf-r6r9
    fix available via `npm audit fix`
    node_modules/socket.io-parser
    webpack 5.0.0 - 5.75.0
    Severity: high
    Cross-realm object access in Webpack 5 -
    https://github.com/advisories/GHSA-hc6q-2mpp-qw7j
    fix available via `npm audit fix`
    node_modules/webpack
    yaml 2.0.0-5 - 2.2.1
    Severity: high
    Uncaught Exception in yaml - https://github.com/advisories/GHSA-f9xv-q969-pqx4
    fix available via `npm audit fix`
    node_modules/yaml-loader/node_modules/yaml 

    Wir haben jeden einzelnen davon validiert, um sicherzustellen, dass er sich nicht auf den Produktionsaufbau auswirkt, und haben festgestellt, dass selbst die schwerwiegendsten Fehler keinen direkten Einfluss auf Tezos Snap haben. Obwohl dies bedeutet, dass derzeit kein Sicherheitsrisiko besteht, könnten in Zukunft neue Funktionen oder neue Schwachstellen auftreten.

    Mitigation

    Der erste Schritt bestünde darin, die Pakete nach Möglichkeit auf die neuesten Versionen zu aktualisieren. Im Großen und Ganzen besteht Bedarf an einem automatisierten System, das vor neuen Schwachstellen warnt, und es sollte ein Prozess vorhanden sein, um diese zu entschärfen, wenn kritische Schwachstellen auftreten.

     

    Magische Zahlen

    ID SAGEN-02
    Status Behoben
    Risiko Informational
    Standort -
    Auswirkungen auf das Geschäft Magische Zahlen wirken sich auf die Lesbarkeit des Codes aus. Ohne Insiderwissen wirken sie eher willkürlich.

    Beschreibung

    Bei unserer Untersuchung ist uns die Verwendung scheinbar willkürlicher Konstanten ohne erklärende Kommentare aufgefallen:

    Im obigen Fall ist es schwer zu erraten, was der Grund für die Division durch 1000 oder die Multiplikation mit 257 ist, ohne zu wissen, wie das Protokoll und die Blockchain selbst funktionieren

    Mitigation

    Es gilt als gute Praxis, solchen hartcodierten Konstanten beschreibende Namen zu geben und bei Bedarf erläuternde Kommentare hinzuzufügen.

     

    Alarmierende Metamask-Eingabeaufforderung

    ID SAGEN-03
    Status Behoben
    Risiko Informational
    Standort -
    Auswirkungen auf das Geschäft Eine solche Aufforderung kann Benutzer davon abhalten, Snap zu installieren

    Beschreibung

    Bei der Installation von Snap erscheint die folgende schwer verständliche Metamask-Eingabeaufforderung:

    Mitigation

    Es ist für Tezos möglicherweise nicht möglich, diese ziemlich beängstigende Aufforderung zu ändern. Da es jedoch von Interesse sein könnte, haben wir uns entschieden, dieses Problem nur zu Informationszwecken aufzunehmen.

     

    Alarmierende Metamask-Eingabeaufforderung

    ID SAGEN-04
    Status Behoben
    Risiko Informational
    Standort -
    Auswirkungen auf das Geschäft Keine Präsentation

    Beschreibung

    Während unserer Bewertung ist uns dieser Kommentar aufgefallen, der eine gewisse Unsicherheit impliziert, die auf ein zugrunde liegendes größeres Problem hinweisen könnte

    Wir haben es untersucht und konnten nicht feststellen, wo das Problem liegt, auf das sich der Kommentar bezieht.

    Mitigation

    Diese Kommentare sollten in der Release-Version geändert oder entfernt werden. Wenn es hier ein tieferes Problem gibt, sollten die Entwickler die Logik aktualisieren, warum dies der Fall ist

    Anhang A: Fixes zur Sicherheitsbewertung

    Nach einer Prüfung durch das Sayfer-Team können wir bestätigen, dass alle Schwachstellen vom Tezos-Team behoben wurden

    Erster Commit-Hash: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26
    Behebt Commit-Hash: 0d0c9381a1107c54647d927d4fe99694f332e24d

    Weitere Informationen dazu finden Sie in unserem Blog

    Sayfers Blog konzentriert sich auf Web3, Sicherheit und Schwachstellenforschung. Wir glauben, dass es in der Cybersicherheitsbranche entscheidend ist, über die neuesten Trends und Fortschritte auf dem Laufenden zu bleiben. Derzeit erforscht unser Team erfahrener Forscher gerne hochmoderne Blockchain- und Web3-Technologien.
    Kontaktiere uns

    Im Kontakt bleiben

    Telefonnummer
    Standort
    Tel Aviv, Israel
    Boten:
    Bitte zögern Sie nicht, uns zu kontaktieren, wir antworten gerne!

      Diese Seite wird von reCAPTCHA und Google geschützt. Datenschutzbestimmungen , Nutzungsbedingungen .
      Zum Inhalt