کیف پول اتمیک ولت چگونه هک شد؟ بررسی یک سناریوی احتمالی
روز شنبه کیف پول اتمیک ولت (Atomic Wallet) بسیاری از کاربران مورد هک قرار گرفت و میلیونها دلار سرمایه کاربران به سرقت رفت. در این مطلب به بررسی یک سناریوی احتمالی از روش کار هکرها در این سرقت میپردازیم که از سمت یک کاربری توییتری مطرح شده است.
دیروز در مطلبی جداگانه به این موضوع پرداختیم که هکر اتمیک ولت بخشی از داراییهای مسروقه را به میکسر محبوب گروه لازاروس فرستاده است و بسیاری این احتمال را دادند که این حمله توسط گروه هکری معروف منتسب به دولت کره شمالی صورت گرفته است.
امروز نیز خبری منتشر شد در رابطه با اینکه بخشی از وجوه سرقتی که به صرافیهای متمرکز برای نقد شدن منتقل شده بود، ردیابی و توسط تیم صرافیها ضبط شدهاند.
اما یک کاربر توییتری به نام 23pds در رشته توییتی به بررسی فنی احتمالی نوع سرقت از این کیف پول پرداخته است. آنالیز این حادثه از اینجا شروع شده است که کاربر دیگر به نام EMRE تعداد زیادی درخواست از نوع http از طرف کیف پول اتمیک والت خود برای گرفتن لاگ (log) ارسال کرده است.
این کاربر متوجه شده است طی درخواستی که فرستاده است، دادههای ارسالی توسط کیف پول او با یک متغیر به نام یوزر آیدی در سرور ثبت شده است و از آنجا در دیتابیس اتمیک ولت ذخیره شده است. این موضوع در تصویر زیر کاملا مشخص است.
همانطور که مشاهده میکنید ارتباط کیف پول این کاربر با سرور اتمیک ولت طی یک شناسه کاربری با اسم userId در طرف سرور ذخیره شده است که انتهای آن با «۲۳۶» تمام میشود.
این کاربر برای رمزگشایی از این رشته کاراکتر ابتدا عبارت بازیابی کیف پول خود در اتمیک ولت را توسط الگوریتم رمزنگاری SHA-256 دوبار پشت سرهم هش کرده است و به نتیجه جالب زیر رسیده است.
همانطور که دیده میشود حاصل کار دقیقا برابر با متغیر یوزر آیدی شد. این بدان معنی است که در هر بار ارتباط کاربر با کیف پول اتمیک ولت سوابق درخواست کاربر همراه با عبارت بازیابی پس از ۲ بار هش شدن در دیتابیس اتمیک ولت ذخیره میشود.
اما میدانیم که الگوریتم SHA-256 برگشت پذیر نیست یعنی شما نمیتوانید با داشتن خروجی آن به دادههای ورودی دست پیدا کنید. پس این سوال مطرح میشود که هکر چگونه این دادهها را بدست آورده است؟
هکر اتمیک ولت چگونه این کار را انجام داده است؟
در علوم کامپیوتر نوعی از حمله به نام brute force collision وجود دارد. روش آن بدین صورت است که فرد مهاجم تعداد زیادی داده خروجی رمزنگاری شده در دست دارد که از قبل ورودیهای متناظر با هر کدام را میداند. هکر به اطلاعات خروجی هدف حملهاش دسترسی پیدا میکند و پس از آن با مقایسه خروجیها با هم، مواردی که کاملا مشابه هستند را شناسایی میکند و چون دادههای ورودی آنها را میداند در عمل به اطلاعات قبل از رمزنگاری دست پیدا میکند.
اما میدانیم که عبارات بازیابی اتمیک ولت ۱۲ کلمهای هستند و درست کردن یک دیتابیس گسترده از هشهای همه آنها تقریبا غیرممکن است.
23pds احتمال داده که فرد مهاجم با استفاده از واحدهای زیاد پردازش گرافیکی GPU و در طول سالیان زیاد یک دیتابیس گسترده از حالتهای مختلف عبارتهای بازیابی کیف پول که ۲ بار به صورت SHA-256 هش شدهاند درست کرده است.
در مرحله بعد به خاطر موجود بودن خروجی (UserId) در سمت سرور اتمیک ولت، هکر توانسته است با یک حمله سریع و در حد فاصل ثبت شدن این اطلاعات در دیتابیس از سمت سرور، به آنها دست پیدا کند و اینکار را احتمالا در یک دوره زمانی هر روز انجام داده است. این احتمالا همان دلیلی است که تنها کاربرانی که اخیرا فعالیتی در اتمیک ولت داشتهاند مورد حمله قرار گرفتهاند.
حال هکر خروجیهای بدست آمده را با دیتابیسی که در این سالها برای خود درست کرده بوده مقایسه کرده است و موارد مشابه را شناسایی کرده است و به دادههای کلید خصوصی برخی از کاربران دسترسی پیدا کرده است. (اهمیت این موضوع به این خاطر است که اگر مورد مشابهی پیدا شود هکر میتواند مطمئن باشد که دادههای ورودی او در دیتابیس شخصیش حتما عبارات بازیابی یک کیف پول در اتمیک ولت هستند). این احتمالا همان دلیلی است که اتمیک ولت اعلام کرده تنها ۱٪ از کاربرانش تحت تاثیر حمله قرار گرفتهاند (چون دیتابیس هکر محدود بوده است).
آیا کیف پولها امن هستند؟
این اتفاق نشان داد که کیف پولها آنطور نیز که به نظر میرسند غیرمتمرکز نیستند. در واقع حداقل نیاز است که یک رابط کاربری برای سمت کاربر طراحی شود و چون قرار است درخواستهای کاربر از طریق اینترنت به شبکههای بلاکچینی منتقل شود، نیاز است که یک سرور متمرکز به رابط کاربری اپلیکشن آن کیف پول متصل شود.
کیف پولها تلاش می کنند که این درخواستها به صورت رمزنگاری شده مبادله شوند و در جایی ذخیره نشوند. اما میبینیم که در کیف پولی مثل اتمیک ولت اطلاعات حساس کاربر در دیتابیس ذخیره میشده است. این مورد حدود یک سال و نیم پیش توسط تیم امنیتی تیم Least Authority به مدیران اتمیک ولت هشدار داده شده بود که ظاهرا با بیتوجهی مدیران این کیف پول مواجه شده است.
اما میتوان گفت که کیف پولها همچنان امنترین روش نگهداری داراییهای دیجیتال هستند که احتمالا پس از این جریان به برطرف کردن باگهای اینچنینی خواهند پرداخت. بنابراین بهتر است کیف پولی را انتخاب کنید که این ۲ شرط را به خوبی رعایت کند یعنی دادهها رمزنگاری مبادله شوند و اطلاعات در جایی ذخیره نشود.