Audit de sécurité du portefeuille Nym
Audit de sécurité du portefeuille Nym
Introduction
En décembre 2022, Nym a fait l'objet d'un audit de sécurité indépendant mené par [Oak Security] (https://www.oaksecurity.io/), une firme allemande de conseil en cybersécurité spécialisée dans l’audit des blockchains de troisième génération et des protocoles décentralisés. Avec une vaste expérience dans les écosystèmes tels que Cosmos, Terra, Polkadot, et Flow, Oak Security a été chargé d'évaluer deux composantes essentielles de l'écosystème Nym : (1) le mixnet Nym et les contrats d'acquisition (voir rapport complet) et (2) le portefeuille Nym (voir rapport complet). L'audit visait à évaluer la sécurité et la robustesse de ces composants, à identifier les vulnérabilités potentielles et à garantir le respect des meilleures pratiques en matière de développement de code sécurisé. Pour rendre les choses plus faciles à suivre, nous avons décomposé les résultats pour chaque composant. Vous pouvez consulter le résumé de l'audit des contrats de mixnet et de vesting de Nym ici.
Résumé de l'audit du portefeuille Nym par Oak Security
L'audit, qui a duré deux semaines, a impliqué une équipe de quatre experts de Oak Security. L'équipe Nym a fourni un accès complet à l'ensemble de la base de code, aux spécifications du projet et à la documentation pertinente. Le périmètre de l'audit couvrait le dépôt "nym-wallet".
Les auditeurs ont effectué une évaluation complète du dépôt nym-wallet, en évaluant ses vulnérabilités de sécurité, ses mécanismes d'intégration, sa robustesse cryptographique et son respect général des pratiques de développement sécurisé.
Oak Security a adopté une approche hybride, combinant l'analyse automatisée à l'inspection manuelle du code pour identifier les faiblesses de sécurité.
Vue d'ensemble des constatations
Le portefeuille Nym a été trouvé avec une base de code bien structurée et une lisibilité moyenne à élevée. Les auditors ont recommandé d'améliorer la couverture des tests et la documentation pour renforcer la fiabilité et la maintenabilité.
Un total de 17 constatations ont été rapportées pour le portefeuille Nym. Aucun n'a été classé comme critique ; quatre ont été jugés majeurs, tandis que les 13 autres ont été classés comme mineurs ou informatifs, présentant des opportunités pour affiner davantage la mise en œuvre du portefeuille.
L'équipe de Nym a rapidement traité tous les problèmes majeurs, et Oak Security a examiné et approuvé les corrections.
NYM-WALLET-1 : Le mot de passe reste en mémoire après la déconnexion (Majeur)
Les auditeurs ont identifié que, contrairement à la mémoire mnémotechnique, le mot de passe utilisé pour le récupérer reste visible en mémoire même après que l'utilisateur s'est déconnecté.
Pour résoudre ce problème, Nym a mis en place une solution qui recycle la fenêtre lors de la déconnexion et de la création du compte. Cette action détruit effectivement le WebView, qui maintient l'environnement d'exécution JavaScript et efface toutes les données sensibles, y compris la mnémotechnique et le mot de passe de la mémoire.
NYM-WALLET-2 : Mnémotechnique conservée en mémoire après la création du compte dans le portefeuille (Principal)
Les auditeurs ont identifié que, bien que le mnémonique soit correctement écrasé en mémoire lorsque l'utilisateur se déconnecte, ce n'est pas le cas après la création du compte. Spécifiquement, lorsqu'un nouveau compte est créé dans le portefeuille, le mnémotechnique n'est pas effacé de la mémoire même après que l'utilisateur se soit déconnecté, ce qui pourrait exposer des informations sensibles.
La solution mise en œuvre dans NYM-WALLET-1 rectifie également ce problème.
NYM-WALLET-3 : Plage limitée de caractères spéciaux de mot de passe (Majeur)
Les auditeurs ont identifié que le composant PasswordStrength dans le portefeuille utilise un motif regex pour renforcer la force du mot de passe, mais le motif est trop restrictif et ils ont recommandé d'utiliser un ensemble de symboles plus flexible pour permettre une plus grande variété de mots de passe. Nous avons résolu ce problème en mettant à jour le modèle regex, suivant la recommandation des auditeurs, pour permettre une plus large gamme de caractères et améliorer la sécurité des mots de passe.
Nous avons résolu ce problème en intégrant le package Dropbox "zxcvbn" pour une validation de la force du mot de passe plus précise et robuste.
NYM-WALLET-4 : L'utilisateur est contraint de copier la phrase mnémotechnique dans le presse-papiers (Majeur)
Lors de la création d'un compte, les utilisateurs se voyaient présenter la phrase mnémotechnique et devaient cliquer sur le bouton "Copier la mnémotechnique" qui copiait la phrase dans le presse-papiers. Les auditeurs ont identifié cette pratique comme un risque de sécurité, car d'autres applications pourraient potentiellement accéder à la mnémotechnique.
Pour y remédier, nous avons mis en œuvre la correction recommandée par les auditeurs en supprimant le bouton "Copier le mnémotechnique". Au lieu de cela, nous avons ajouté des instructions sur la manière de stocker et d'utiliser en toute sécurité la phrase mnémotechnique et une case à cocher pour que les utilisateurs confirment qu'ils ont lu et compris les informations fournies.
Last Words
Nous tenons à remercier l'équipe d'Oak Security pour son expertise et son engagement tout au long de ce processus d'audit. Nous apprécions également la collaboration et le professionnalisme démontrés pendant les phases de planification et d'exécution de l'audit. Notre engagement continu envers la sécurité demeure une priorité absolue, et nous attendons avec impatience de poursuivre nos partenariats avec des experts en sécurité pour maintenir les normes les plus élevées pour notre écosystème.