Sicherheitsprüfung der Nym Wallet
Sicherheitsprüfung der Nym-Wallet
Einführung
Im Dezember 2022 unterzog sich Nym einem unabhängigen Sicherheitsaudit, das von Oak Security durchgeführt wurde, einem in Deutschland ansässigen Cybersicherheitsberatungsunternehmen, das sich auf die Prüfung von Blockchains der dritten Generation und dezentralen Protokollen spezialisiert hat. Aufgrund seiner umfassenden Erfahrung mit Ökosystemen wie Cosmos, Terra, Polkadot und Flow wurde Oak Security damit beauftragt, zwei entscheidende Komponenten des Nym-Ökosystems zu bewerten: (1) das Nym-Mixnet und die Vesting-Verträge (siehe vollständiger Bericht) sowie (2) die Nym-Wallet (siehe vollständiger Bericht). Ziel des Audits war es, die Sicherheit und Robustheit dieser Komponenten zu bewerten, potenzielle Schwachstellen zu identifizieren und die Einhaltung von Best Practices bei der Entwicklung von sicherem Code sicherzustellen. Um die Übersicht zu erleichtern, haben wir die Ergebnisse nach einzelnen Komponenten aufgeschlüsselt. Die Zusammenfassung des Audits der Nym-Mixnet- und Vesting-Verträge finden Sie hier.
Zusammenfassung des Nym-Wallet-Audits durch Oak Security
An dem zweiwöchigen Audit war ein Team aus vier Experten von Oak Security beteiligt. Das Nym-Team gewährte uneingeschränkten Zugriff auf die gesamte Codebasis, die Projektspezifikationen und die relevante Dokumentation. Der Umfang der Prüfung umfasste das Repository „nym-wallet“.
Die Prüfer führten eine umfassende Bewertung des nym-wallet-Repositorys durch und untersuchten dabei dessen Sicherheitslücken, Integrationsmechanismen, kryptografische Robustheit sowie die allgemeine Einhaltung sicherer Entwicklungspraktiken.
Oak Security verfolgte einen hybriden Ansatz, bei dem automatisierte Analysen mit manuellen Codeüberprüfungen kombiniert wurden, um Sicherheitslücken aufzudecken.
Übersicht über die Ergebnisse
Es wurde festgestellt, dass die Nym-Wallet über eine gut strukturierte Codebasis mit mittlerer bis hoher Lesbarkeit verfügt. Die Prüfer empfahlen, die Testabdeckung und die Dokumentation zu verbessern, um die Zuverlässigkeit und Wartbarkeit zu erhöhen.
Insgesamt wurden 17 Sicherheitslücken für die Nym Wallet gemeldet. Keine davon wurde als kritisch eingestuft; vier wurden als schwerwiegend bewertet, während die restlichen 13 als geringfügig oder informativ eingestuft wurden und Möglichkeiten zur weiteren Optimierung der Implementierung der Wallet bieten.
Das Nym-Team hat alle wesentlichen Befunde umgehend behoben, und Oak Security hat die Korrekturen geprüft und genehmigt.
NYM-WALLET-1: Passwort bleibt nach dem Abmelden im Speicher erhalten (Schwerwiegend)
Die Prüfer stellten fest, dass das zum Abrufen verwendete Passwort – anders als die Eselsbrücke – auch nach dem Abmelden des Benutzers im Speicher sichtbar bleibt.
Um das Problem zu beheben, hat Nym eine Lösung implementiert, die das Fenster beim Abmelden und bei der Kontoerstellung wiederverwendet. Diese Aktion zerstört effektiv die WebView, die die JavaScript-Laufzeitumgebung enthält, und löscht alle sensiblen Daten, einschließlich der Mnemonik und des Passworts, aus dem Speicher.
NYM-WALLET-2: Mnemonik wird nach der Kontoerstellung innerhalb der Wallet gespeichert (Wichtig)
Die Prüfer stellten fest, dass die Mnemonik zwar beim Abmelden des Benutzers ordnungsgemäß im Speicher überschrieben wird, dies jedoch nach der Kontoerstellung nicht der Fall ist. Insbesondere wird bei der Erstellung eines neuen Kontos in der Wallet die Mnemonik auch nach dem Abmelden des Benutzers nicht aus dem Speicher gelöscht, wodurch sensible Informationen potenziell offengelegt werden könnten.
Die in NYM-WALLET-1 implementierte Lösung behebt dieses Problem ebenfalls.
NYM-WALLET-3: Eingeschränkter Umfang an Sonderzeichen für Passwörter (Schwerwiegend)
Die Prüfer stellten fest, dass die „PasswordStrength“-Komponente in der Wallet ein Regex-Muster verwendet, um die Passwortstärke sicherzustellen, dieses Muster jedoch zu restriktiv ist. Sie empfahlen daher die Verwendung einer flexibleren Auswahl an Symbolen, um eine größere Bandbreite an Passwörtern zu ermöglichen. Wir haben dieses Problem behoben, indem wir das Regex-Muster gemäß der Empfehlung der Prüfer aktualisiert haben, um eine größere Bandbreite an Zeichen zuzulassen und die Passwortsicherheit zu verbessern.
Wir haben dieses Problem durch die Integration des Dropbox-Pakets „zxcvbn“ gelöst, um eine genauere und robustere Überprüfung der Passwortstärke zu gewährleisten.
NYM-WALLET-4: Der Benutzer wird gezwungen, die mnemonische Phrase in die Zwischenablage zu kopieren (Major)
Bei der Kontoerstellung wurde den Benutzern die Mnemonik-Phrase angezeigt, und sie mussten auf die Schaltfläche „Mnemonik kopieren“ klicken, wodurch die Phrase in die Zwischenablage kopiert wurde. Die Prüfer stuften diese Vorgehensweise als Sicherheitsrisiko ein, da andere Anwendungen möglicherweise auf die Mnemonik zugreifen könnten.
Um dieses Problem zu beheben, haben wir die von den Prüfern empfohlene Korrektur umgesetzt und die Schaltfläche „Mnemonik kopieren“ entfernt. Stattdessen haben wir Hinweise zur sicheren Speicherung und Verwendung der mnemonischen Phrase hinzugefügt sowie ein Kontrollkästchen, mit dem Nutzer bestätigen können, dass sie die bereitgestellten Informationen gelesen und verstanden haben.
Letzte Worte
Wir möchten dem Team von Oak Security für sein Fachwissen und sein Engagement während des gesamten Audit-Prozesses danken. Wir schätzen zudem die Zusammenarbeit und die Professionalität, die sowohl in der Planungs- als auch in der Durchführungsphase des Audits zum Ausdruck kamen. Unser kontinuierliches Engagement für Sicherheit hat weiterhin höchste Priorität, und wir freuen uns auf die weitere Zusammenarbeit mit Sicherheitsexperten, um die höchsten Standards für unser Ökosystem aufrechtzuerhalten.