شرکت پروتون یک باگ در اپلیکیشن جدید Authenticator خود برای iOS را برطرف کرد که رمزهای حساس TOTP کاربران را بهصورت متن ساده در لاگهای اپلیکیشن ثبت میکرد و در صورت اشتراکگذاری لاگها، ممکن بود کدهای احراز هویت چندمرحلهای را در معرض خطر قرار دهد.
شرح واقعه باگ پروتون
هفته گذشته، پروتون اپلیکیشن جدید Proton Authenticator را منتشر کرد که یک برنامه مستقل و رایگان احراز هویت دو مرحلهای (2FA) برای سیستمعاملهای Windows، macOS، Linux، Android و iOS است. این اپلیکیشن برای ذخیره رمزهای TOTP استفاده میشود که میتوانند کدهای یکبارمصرف را برای احراز هویت در وبسایتها و برنامهها تولید کنند.
در روز 3 آگوست، کاربری در پستی که اکنون حذف شده در Reddit گزارش داد که نسخه iOS این اپلیکیشن رمزهای TOTP را در لاگهای دیباگ که در بخش Settings > Logs قابل دسترسی هستند، افشا میکند. این کاربر اظهار داشت که پس از وارد کردن حسابهای 2FA، فعال کردن همگامسازی و پشتیبانگیری و تغییر برچسب یکی از ورودیها، تقریبا نیمی از ورودیهای 2FA او بدون هیچ خطا یا هشداری ناپدید شدند. هنگام آمادهسازی گزارش باگ، او متوجه شد که فایل لاگ اپلیکیشن حاوی رمزهای کامل TOTP، از جمله رمز مربوط به حساب Bitwarden او، بهصورت متن ساده است.
کاربر دیگری اشاره کرد که این افشا ناشی از کدی در اپلیکیشن iOS است که دادههای زیادی درباره یک ورودی TOTP را به یک متغیر params اضافه میکند و سپس این متغیر به دو تابع که برای افزودن یا بهروزرسانی رمز TOTP در اپلیکیشن استفاده میشوند، ارسال میشود. این توابع دادهها را به یک ورودی لاگ اضافه میکنند که منجر به افشای رمز TOTP میشود.

پروتون این باگ را در نسخه iOS تأیید کرد و اعلام نمود که آن را در نسخه ۱.۱.۱ که صبح روز 4 آگوست در App Store منتشر شد، برطرف کرده است. پروتون اظهار داشت که رمزها هرگز بهصورت متن ساده به سرور ارسال نمیشوند و همگامسازی رمزها با رمزنگاری سرتاسری انجام میشود. لاگها فقط بهصورت محلی ذخیره میشوند و هرگز به سرور ارسال نمیگردند. این رمزها همچنین میتوانند روی دستگاه صادر شوند تا الزامات قابلیت انتقال داده GDPR را برآورده کنند.
پروتون افزود که حتی بدون وجود این باگ در لاگها، فردی که به دستگاه دسترسی داشته باشد و بتواند لاگها را ببیند، همچنان میتواند به رمزها دسترسی پیدا کند؛ زیرا رمزنگاری پروتون نمیتواند در برابر به خطر افتادن دستگاه محافظت کند. بنابراین، ایمنسازی دستگاه همیشه ضروری است؛ زیرا این موضوع خارج از مدل تهدید پروتون است. این شرکت رفتار لاگگیری در اپلیکیشن iOS را بهروزرسانی کرده است؛ اما تأکید کرد که این باگ آسیبپذیریای نیست که مهاجم بتواند از راه دور از آن سوءاستفاده کند. اگر مهاجم به دستگاه دسترسی داشته باشد تا لاگهای محلی را ببیند، به هر حال میتواند رمزها را به دست آورد و هیچ اپلیکیشن 2FA، از جمله پروتون، نمیتواند از این موضوع جلوگیری کند.
اگرچه این دادههای لاگ نمیتوانند از راه دور مورد سوءاستفاده قرار گیرند، نگرانی این بود که اگر لاگها برای عیبیابی یا گزارش یک مشکل به اشتراک گذاشته شوند یا در جایی منتشر شوند، رمز حساس TOTP در معرض دید شخص ثالث قرار میگیرد. این رمزها میتوانند به یک اپلیکیشن Authenticator دیگر وارد شوند تا کدهای یکبارمصرف برای آن حساب تولید شود.