حسابرسی امنیتی کیف پول Nym
بررسی امنیتی کیف پول Nym
مقدمه
در دسامبر ۲۰۲۲(آذر ۱۴۰۱)، Nym یک ممیزی مستقل امنیتی را توسط Oak Security که یک شرکت مشاورهای امنیت سایبری مستقر در آلمان است و در ممیزی بلاکچینهای نسل سوم و پروتکلهای غیرمتمرکز تخصص دارد، گذراند. با تجربه گسترده در اکوسیستمهایی مانند کازموس، ترا، پولکادات و فلو، شرکت اوک سکیوریتی (Oak Security) وظیفه ارزیابی دو جزء حیاتی اکوسیستم Nym را بر عهده داشت: (1) میکسنت Nym و قراردادهای واگذاری (به گزارش کامل مراجعه کنید) و (2) کیف پول Nym (به گزارش کامل مراجعه کنید). هدف از این ممیزی، ارزیابی امنیت و استحکام این مؤلفهها، شناسایی آسیبپذیریهای بالقوه و اطمینان از پایبندی به بهترین شیوهها در توسعه کد امن بود. برای اینکه دنبالکردن مطالب راحتتر باشد، یافتههای مربوط به هر بخش را بهصورت جداگانه ارائه کردهایم. میتوانید خلاصه حسابرسی قراردادهای میکسنت و وستینگ Nym را اینجا بررسی کنید.
خلاصهای از حسابرسی کیف پول Nym توسط Oak Security
این ممیزی که دو هفته طول کشید، توسط تیمی متشکل از چهار متخصص از شرکت Oak Security انجام شد. تیم Nym دسترسی کامل به کل پایگاه کد، مشخصات پروژه و مستندات مربوطه را فراهم کرد. دامنه این حسابرسی، مخزن «nym-wallet» را پوشش میداد.
حسابرسان ارزیابی جامعی از مخزن کیف پول nym انجام دادند و آسیبپذیریهای امنیتی، مکانیسمهای ادغام، استحکام رمزنگاری و پایبندی کلی آن به شیوههای توسعه امن را ارزیابی کردند.
شرکت Oak Security از یک رویکرد ترکیبی استفاده کرد و تجزیه و تحلیل خودکار را با بازرسی دستی کد ترکیب کرد تا نقاط ضعف امنیتی را کشف کند.
مروری بر یافتهها
«مشخص شد که کیف پول Nym دارای یک پایگاه کد ساختاریافته با خوانایی متوسط تا بالا است.» حسابرسان توصیه کردند که پوشش تست و مستندسازی بهبود یابد تا قابلیت اطمینان و قابلیت نگهداری افزایش یابد.
در مجموع ۱۷ یافته برای کیف پول Nym گزارش شد. هیچکدام بهعنوان بحرانی طبقهبندی نشدند؛ چهار مورد بهعنوان مهم رتبهبندی شدند، درحالیکه ۱۳ مورد باقیمانده بهعنوان جزئی یا آموزنده طبقهبندی شدند و فرصتهایی را برای اصلاح بیشتر پیادهسازی کیف پول ارائه دادند.
تیم Nym به سرعت به تمام یافتههای اصلی رسیدگی کرد و Oak Security اصلاحات را بررسی و تأیید کرد.
NYM-WALLET-1: گذرواژه پس از خروج هنوز در حافظه است (اصلی)
حسابرسان تشخیص دادند که برخلاف گذرواژه یادآور، گذرواژهی که برای بازیابی آن استفاده میشود، حتی پس از خروج کاربر از سیستم، در حافظه قابل مشاهده باقی میماند.
برای حل این مشکل، Nym راهکاری را پیادهسازی کرد که پنجره را پس از خروج از سیستم و ایجاد حساب کاربری، بازیافت میکند. این عمل عملاً WebView را که زمان اجرای جاوا اسکریپت را در خود نگه میدارد و هرگونه داده حساس، از جمله mnemonic و گذرواژه را از حافظه پاک میکند، از بین میبرد.
NYM-WALLET-2: یادگاری پس از ایجاد حساب در کیف پول در حافظه نگهداری میشود (اصلی)
حسابرسان تشخیص دادند که اگرچه هنگام خروج کاربر، گذرواژه به درستی در حافظه رونویسی میشود، اما پس از ایجاد حساب کاربری این اتفاق نمیافتد. بهطور خاص، هنگامی که یک حساب کاربری جدید در کیف پول ایجاد میشود، حتی پس از خروج کاربر از سیستم، گذرواژه از حافظه پاک نمیشود و بهطور بالقوه اطلاعات حساس را افشا میکند.
راهکار پیادهسازی شده در NYM-WALLET-1 نیز این مشکل را برطرف میکند.
NYM-WALLET-3: محدوده محدودی از کاراکترهای ویژه گذرواژه (اصلی)
حسابرسان تشخیص دادند که مؤلفهی PasswordStrength در کیف پول از یک الگوی regex برای اعمال قدرت گذرواژه استفاده میکند، اما این الگو بیش از حد محدودکننده است و توصیه میشود از مجموعهای انعطافپذیرتر از نمادها استفاده شود تا امکان استفاده از طیف وسیعتری از رمزهای عبور فراهم شود. ما با بهروزرسانی الگوی regex، طبق توصیه حسابرسان، این مشکل را برطرف کردیم تا طیف وسیعتری از کاراکترها را مجاز کرده و امنیت گذرواژه را افزایش دهیم.
ما این مشکل را با ادغام بستهی "zxcvbn" دراپباکس برای اعتبارسنجی دقیقتر و قویتر قدرت گذرواژه حل کردیم.
NYM-WALLET-4: کاربر مجبور است عبارت یادآور را در کلیپبورد کپی کند (Major)
در حین ایجاد حساب کاربری، به کاربران عبارت یادآور نمایش داده میشد و از آنها خواسته میشد که روی دکمه «کپی یادآور» کلیک کنند که عبارت را در کلیپبورد کپی میکرد. حسابرسان این عمل را بهعنوان یک ریسک امنیتی شناسایی کردند، زیرا سایر برنامهها میتوانند بهطور بالقوه به این یادآور دسترسی داشته باشند.
برای رفع این مشکل، ما با حذف دکمه «کپی کردن یادآور» (Copy Mnemonic)، راهکار پیشنهادی حسابرسان را اجرا کردیم. در عوض، ما راهنماییهایی در مورد ذخیرهسازی ایمن و استفاده از عبارت یادآور و یک کادر تأیید برای کاربران اضافه کردیم تا تأیید کنند که اطلاعات ارائه شده را خوانده و درک کردهاند.
کلام آخر
ما مایلیم از تیم Oak Security به خاطر تخصص و تعهدشان در طول این فرآیند ممیزی تشکر کنیم. همچنین قدردان همکاری و حرفهایگری نشاندادهشده در هر دو مرحله برنامهریزی و اجرای ممیزی هستیم. تعهد مداوم ما به امنیت همچنان یک اولویت اصلی باقی میماند و ما منتظر ادامه همکاری با متخصصان امنیتی هستیم تا بالاترین استانداردها را برای اکوسیستم خود حفظ کنیم.