Rapport d'audit MetaMask Snap pour Tezos

Résumé de gestion

Tezos a contacté Sayfer Security afin d'effectuer un audit de sécurité sur Tezos MetaMask Snap en juin 2023.

Avant d'évaluer les services ci-dessus, nous avons organisé une réunion de lancement avec l'équipe technique de Tezos et avons reçu un aperçu du système et des objectifs de cette recherche.

Au cours de la période de recherche de 2 semaines, nous avons découvert 4 résultats dans le système.

En conclusion, plusieurs correctifs devraient être mis en œuvre suite au rapport, mais la posture de sécurité du système est compétente.

Vulnérabilités par risque

Haute – Menace directe sur les processus métier clés.
Moyenne – Menace indirecte sur les processus métier clés ou menace partielle sur les processus métier.
Faible – Aucune menace directe n'existe. La vulnérabilité peut être exploitée à l'aide d'autres vulnérabilités.
D'information – Cette constatation n'indique pas de vulnérabilité, mais énonce un commentaire qui signale des défauts de conception et une mise en œuvre incorrecte qui pourraient causer un problème à long terme.

Gravité
# de problèmes
Haute
0
Moyenne
0
Faible
1
D'information
3

Approche

Introduction

Tezos a contacté Sayfer pour effectuer des tests d'intrusion sur l'application Tezos MetaMask Snap.

Ce rapport documente les recherches effectuées par Sayfer ciblant les ressources sélectionnées définies dans le cadre de la recherche. En particulier, ce rapport affiche l'examen de la posture de sécurité de l'application Tezos MetaMask Snap et de son infrastructure et de ses implémentations de processus environnantes.

Cycle de vie de notre projet de test d'intrusion :

01

Aperçu de la portée

02

Présentation technique

03

Validation de la portée

04

Modèle de menace

05

Évaluation de la sécurité

06

Évaluation de sécurité

Aperçu de la portée

Lors de notre première réunion et après avoir compris les besoins de l'entreprise, nous avons défini le périmètre de l'application qui réside aux URL suivantes comme périmètre du projet :

  • Tezos MetaMask Snap

Valider le hachage : 0e0d653b85cbd11365771ad9c2ee5726b10a7d26

Nos tests ont été réalisés du 01.06 au 23.06 2023

Qu'il ne soit pas trop tard !

Commencez votre audit avec Sayfer

Validation de la portée

Nous avons commencé par nous assurer que le périmètre qui nous avait été défini par le client était techniquement logique. Décider quelle portée convient à un système donné fait partie de la discussion initiale. Il est essentiel de bien définir la portée pour tirer une valeur commerciale maximale de la recherche.

Modèle de menace

Lors de nos réunions de lancement avec le client, nous avons défini les atouts les plus importants de l'application.

Nous avons défini que la plus grande menace actuelle pour le système concerne les informations sensibles des utilisateurs.

Qu'il ne soit pas trop tard !

Commencez votre audit avec Sayfer

Méthodologie d'évaluation de la sécurité

Sayfer utilise OWASP WSTG comme norme technique lors de l'examen des applications Web. Après avoir acquis une compréhension approfondie du système, nous avons décidé quels tests OWASP sont nécessaires pour évaluer le système.

Évaluation de sécurité

Après avoir compris et défini la portée, effectué une modélisation des menaces et évalué les tests corrects requis afin de vérifier complètement l'application pour les failles de sécurité, nous avons effectué notre évaluation de sécurité.

Description de la table de problématique

Titre du problème

ID L'ID OWASP du problème. Les tests supplémentaires que nous effectuons et qui ne sont pas inclus dans le tableau OWASP porteront l'ID Sayfer.
Exemple d'identifiant : WSTG-INFO-002
WSTG – Guide de test de sécurité Web.
INFO – Un raccourci pour le sujet auquel appartient le problème.
002 - Numéro de série.
Analyse Représente le facteur de risque du problème. Pour une description plus détaillée, reportez-vous au Vulnérabilités par risque .
Compétence requise Décrit le niveau de compétence requis pour mener une exploitation réussie. Plus le niveau de compétence est bas, plus le processus d’exploitation est facile.
OWASP
Référence
Un lien vers la page OWASP pertinente pour plus de connaissances.
Localisation L'URL dans laquelle ce problème a été détecté. Les problèmes sans localisation n'ont pas de localisation particulière et font référence au produit dans son ensemble.
Outils Les outils utilisés pour détecter le problème.

Description

Nous fournissons ici une brève description du problème et de la manière dont il s'est formé, des étapes que nous avons suivies pour le trouver ou l'exploiter, ainsi que d'une preuve de concept (le cas échéant) et de la manière dont ce problème peut affecter le produit ou ses utilisateurs. .

Atténuation

Options de résolution suggérées pour ce problème et liens vers des sites conseillés pour des mesures correctives ultérieures.

Évaluation de la sécurité

Les tests suivants ont été effectués lors de l'audit du système

La collecte d'informations

La collecte d'informations Nom du test
WSTG-INFO-01 Effectuer une reconnaissance de découverte de moteur de recherche pour les fuites d'informations
WSTG-INFO-02 Serveur Web d'empreintes digitales
WSTG-INFO-03 Examiner les métafichiers du serveur Web pour détecter les fuites d'informations
WSTG-INFO-04 Énumérer les applications sur le serveur Web
WSTG-INFO-05 Examiner le contenu de la page Web pour détecter les fuites d'informations
WSTG-INFO-06 Identifier les points d'entrée de l'application
WSTG-INFO-07 Mapper les chemins d'exécution via l'application
WSTG-INFO-08 Cadre d'application Web d'empreintes digitales
WSTG-INFO-09 Application Web d'empreintes digitales
WSTG-INFO-10 Architecture des applications cartographiques

Configuration et déploiement des tests de gestion

Configuration et déploiement des tests de gestion Nom du test
WSTG-CONF-01 Tester la configuration de l'infrastructure réseau
WSTG-CONF-02 Tester la configuration de la plate-forme d'application
WSTG-CONF-03 Tester la gestion des extensions de fichiers pour les informations sensibles
WSTG-CONF-04 Examiner l'ancienne sauvegarde et les fichiers non référencés pour les informations sensibles
WSTG-CONF-05 Énumérer les interfaces d'administration d'infrastructure et d'application
WSTG-CONF-06 Tester les méthodes HTTP
WSTG-CONF-07 Tester la sécurité du transport strict HTTP
WSTG-CONF-08 Tester la stratégie interdomaine RIA
WSTG-CONF-09 Autorisation de fichier de test
WSTG-CONF-10 Test de reprise de sous-domaine
WSTG-CONF-11 Tester le stockage en nuage

Test de gestion des identités

Test de gestion des identités Nom du test
WSTG-IDNT-01 Définitions des rôles de test
WSTG-IDNT-02 Tester le processus d'enregistrement des utilisateurs
WSTG-IDNT-03 Tester le processus de provisionnement de compte
WSTG-IDNT-04 Test d'énumération de compte et de compte d'utilisateur devinable
WSTG-IDNT-05 Test de la politique de nom d'utilisateur faible ou non appliquée

Test d'authentification

Test d'authentification Nom du test
WSTG-ATHN-01 Test des informations d'identification transportées sur un canal crypté
WSTG-ATHN-02 Test des informations d'identification par défaut
WSTG-ATHN-03 Test de mécanisme de verrouillage faible
WSTG-ATHN-04 Test de contournement du schéma d'authentification
WSTG-ATHN-05 Test de mémorisation du mot de passe vulnérable
WSTG-ATHN-06 Test des faiblesses du cache du navigateur
WSTG-ATHN-07 Test de la politique de mot de passe faible
WSTG-ATHN-08 Test de réponse à la question de sécurité faible
WSTG-ATHN-09 Test des fonctionnalités de modification ou de réinitialisation de mot de passe faibles
WSTG-ATHN-10 Test d'authentification plus faible dans un canal alternatif

Test d'autorisation

Test d'autorisation Nom du test
WSTG-ATHZ-01 Test de l'inclusion du fichier de traversée de répertoires
WSTG-ATHZ-02 Test du schéma d'autorisation de contournement
WSTG-ATHZ-03 Test d'élévation de privilèges
WSTG-ATHZ-04 Test des références d'objet directes non sécurisées

Test de gestion de session

Test de gestion de session Nom du test
WSTG-SESS-01 Test du schéma de gestion de session
WSTG-SESS-02 Test des attributs des cookies
WSTG-SESS-03 Test de fixation de session
WSTG-SESS-04 Test des variables de session exposées
WSTG-SESS-05 Test de falsification de requête intersite
WSTG-SESS-06 Test de la fonctionnalité de déconnexion
WSTG-SESS-07 Expiration de la session de test
WSTG-SESS-08 Test de Session Puzzling
WSTG-SESS-09 Test de piratage de session

Test de validation des données

Test de validation des données Nom du test
WSTG-INPV-01 Test des scripts intersites réfléchis
WSTG-INPV-02 Test des scripts intersites stockés
WSTG-INPV-03 Test de falsification de verbe HTTP
WSTG-INPV-04 Test de la pollution des paramètres HTTP
WSTG-INPV-05 Test d'injection SQL
WSTG-INPV-06 Test d'injection LDAP
WSTG-INPV-07 Test d'injection XML
WSTG-INPV-08 Test d'injection SSI
WSTG-INPV-09 Test d'injection XPath
WSTG-INPV-10 Test de l'injection SMTP IMAP
WSTG-INPV-11 Test d'injection de code
WSTG-INPV-12 Test d'injection de commande
WSTG-INPV-13 Test d'injection de chaîne de format
WSTG-INPV-14 Test de vulnérabilité incubée
WSTG-INPV-15 Test de contrebande de fractionnement HTTP
WSTG-INPV-16 Test des requêtes entrantes HTTP
WSTG-INPV-17 Test de l'injection d'en-tête d'hôte
WSTG-INPV-18 Test d'injection de modèle côté serveur
WSTG-INPV-19 Test de falsification de requête côté serveur

La gestion des erreurs

La gestion des erreurs Nom du test
WSTG-ERRH-01 Test de la gestion incorrecte des erreurs
WSTG-ERRH-02 Test des traces de pile

Cryptographie

Cryptographie Nom du test
WSTG-CRYP-01 Test de sécurité de la couche de transport faible
WSTG-CRYP-02 Test de rembourrage Oracle
WSTG-CRYP-03 Test des informations sensibles envoyées via des canaux non cryptés
WSTG-CRYP-04 Test de chiffrement faible

Test de la logique métier

Test de la logique métier Nom du test
WSTG-BUSL-01 Tester la validation des données de la logique métier
WSTG-BUSL-02 Tester la capacité à falsifier des requêtes
WSTG-BUSL-03 Vérifications de l'intégrité des tests
WSTG-BUSL-04 Tester la synchronisation du processus
WSTG-BUSL-05 Tester le nombre de fois qu'une fonction peut être utilisée Limites
WSTG-BUSL-06 Tests de contournement des flux de travail
WSTG-BUSL-07 Tester les défenses contre l'utilisation abusive des applications
WSTG-BUSL-08 Tester le téléchargement de types de fichiers inattendus
WSTG-BUSL-09 Tester le téléchargement de fichiers malveillants

Test côté client

Test côté client Nom du test
WSTG-CLNT-01 Test des scripts intersites basés sur DOM
WSTG-CLNT-02 Tester l'exécution de JavaScript
WSTG-CLNT-03 Test d'injection HTML
WSTG-CLNT-04 Test de la redirection d'URL côté client
WSTG-CLNT-05 Test d'injection CSS
WSTG-CLNT-06 Test de la manipulation des ressources côté client
WSTG-CLNT-07 Tester le partage des ressources entre les origines
WSTG-CLNT-08 Test du clignotement intersite
WSTG-CLNT-09 Tester le détournement de clic
WSTG-CLNT-10 Tester les WebSockets
WSTG-CLNT-11 Tester la messagerie Web
WSTG-CLNT-12 Test du stockage du navigateur
WSTG-CLNT-13 Test d'inclusion de scripts intersites

Test d'API

Test d'API Nom du test
WSTG-APIT-01 Tester GraphQL

Commandez l'audit de Sayfer





    Ce site est protégé par reCAPTCHA et Google Données privées ainsi que Conditions d'utilisation s'appliquent.

    Résultats de l'évaluation de la sécurité

    Dépendances avec des vulnérabilités connues

    ID DIRE-01
    Statut Fixé
    Analyse Faible
    Localisation -
    Impact sur les entreprises L’utilisation de versions vulnérables des modules de nœuds pourrait exposer le service à diverses attaques, certaines moins critiques, mais d’autres graves.

    Description

    L'audit NPM renvoie plusieurs résultats pour les vulnérabilités connues dans les packages installés :

      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 

    Nous avons validé chacun d'eux pour nous assurer qu'il n'affecte pas la version de production, et avons constaté que même les plus graves n'ont pas d'effet direct sur Tezos Snap. Bien que cela signifie qu’il n’y a aucun risque de sécurité pour le moment, de nouvelles fonctionnalités ou de nouvelles vulnérabilités pourraient survenir à l’avenir.

    Atténuation

    La première étape serait de mettre à jour les packages vers les versions lorsque cela est possible. À un niveau plus large, il est nécessaire de disposer d'un système automatisé pour alerter des nouvelles vulnérabilités et un processus devrait être en place pour les atténuer lorsque des vulnérabilités critiques surviennent.

     

    Numéros magiques

    ID DIRE-02
    Statut Fixé
    Analyse D'information
    Localisation -
    Impact sur les entreprises Les nombres magiques ont un impact sur la lisibilité du code. Sans connaissance interne, ils semblent plutôt arbitraires.

    Description

    Lors de notre évaluation, nous avons remarqué l’utilisation de constantes apparemment arbitraires sans commentaires explicatifs :

    Dans le cas ci-dessus, il est difficile de deviner quelle est la raison de diviser par 1000 ou de multiplier par 257 sans savoir comment fonctionnent le protocole et la blockchain elle-même.

    Atténuation

    Il est considéré comme une bonne pratique de donner à ces constantes codées en dur des noms descriptifs et, si nécessaire, d'ajouter des commentaires explicatifs.

     

    Invite de métamasque alarmante

    ID DIRE-03
    Statut Fixé
    Analyse D'information
    Localisation -
    Impact sur les entreprises Ce type d'invite peut dissuader les utilisateurs d'installer Snap

    Description

    Lors de l'installation de Snap, l'invite de métamasque suivante, difficile à comprendre, apparaît :

    Atténuation

    Il n’est peut-être pas possible pour Tezos de modifier cette invite plutôt effrayante. Cependant, comme cela peut être intéressant, nous avons décidé d'inclure cette question à titre informatif.

     

    Invite de métamasque alarmante

    ID DIRE-04
    Statut Fixé
    Analyse D'information
    Localisation -
    Impact sur les entreprises Aucun

    Description

    Lors de notre évaluation, nous avons remarqué ce commentaire, impliquant une certaine incertitude, qui pourrait indiquer un problème sous-jacent plus important.

    Nous avons enquêté et n'avons pas pu vérifier quel est le problème auquel le commentaire fait référence.

    Atténuation

    Ces commentaires doivent être modifiés ou supprimés dans la version finale, ou s'il y a un problème plus profond ici, les développeurs doivent mettre à jour la logique expliquant pourquoi cela

    Annexe A : Correctifs d'évaluation de la sécurité

    Après examen par l'équipe Sayfer, nous pouvons confirmer que toutes les vulnérabilités ont été corrigées par l'équipe Tezos.

    Hachage de validation initial : 0e0d653b85cbd11365771ad9c2ee5726b10a7d26
    Corrige le hachage de validation : 0d0c9381a1107c54647d927d4fe99694f332e24d

    Vous pouvez trouver plus d'informations à ce sujet sur notre Blog

    Le blog de Sayfer se concentre sur la recherche sur le web3, la sécurité et les vulnérabilités. Nous pensons que dans le secteur de la cybersécurité, il est crucial de se tenir au courant des dernières tendances et avancées. Actuellement, notre équipe de chercheurs expérimentés aime faire des recherches sur les technologies de pointe de la blockchain et du web3.
    Nous contacter

    Restez à l'écoute

    Téléphone
    Localisation
    Tel Aviv, Israël
    Messagers:
    N'hésitez pas à nous contacter, nous nous ferons un plaisir de vous répondre !





      Ce site est protégé par reCAPTCHA et Google Données privées ainsi que Conditions d'utilisation s'appliquent.
      Passer au contenu