نوشته‌ها

سرقت اتریوم از طریق حدس کلید خصوصی کیف پول توسط هکر

اوایل هفته جاری  ISE گزارشی در مورد کلید خصوصی برای بلاک چین ارائه داد.
با وجود اینکه حدود ۷۰۰ کلید خصوصی ضعیف به طور منظم توسط افراد استفاده می‌شوند، محققان یک راهزن بلاک چین را پیدا کردند که توانسته است حدود ۴۵۰۰ اتریوم از طریق حدس درست کلیدهای خصوصی به دست آورد. کوین تلگراف طی مصاحبه‌ای که با تحلیل‌گر ارشد امنیتی ISE داشت اطلاعات بیشتری درباره پدیده‌ای که آن‌ها Ethercombing  می‌نامند به دست آورد.

پیش زمینه تحقیق و یافته‌های عمده

bednarek گفت که این هکر را تصادفی پیدا کرد و این اتفاق زمانی افتاد که او قصد داشت تحقیقی برای یکی از مشتریان شرکت انجام دهد که سعی داشت کیف پول خود را با یک الگوریتم تولید کلید ادغام کند.

در ادامه مکالمه‌ی بدنارک با کوین تلگراف، او افزود: به عنوان یک تحلیل‌گر امنیتی، قبل از شروع هر گونه ارز‌یابی، در مرحله اول باید لایه‌های ابتدایی تکنولوژی را به صورت شفاف بررسی کنید و فرض کنید که خود شما سازنده آن‌ها هستید.

تولید کلید خصوصی یکی از مولفه‌هایی بود که باید در مورد آن تحقیق می‌کردیم و من در حال بررسی مسائل مقدماتی بودم، مثل اینکه اصلا کلید خصوصی اتریوم چیست؟ تعداد رقم‌های آن چند است؟ چطور تولید می‌شود؟ و چطور از آن برای استخراج کلید عمومی و آدرس عمومی استفاده می‌شود.
در مورد ارز‍‌های دیجیتال بیت کوین، اتریوم و یا سایر بلاک چین‌هایی که از پروتکل الگوریتم ECDSA  پیروی می‌کنند، کلیدهای خصوصی توسط ۲۵۶ بیت نامبر تعریف می‌شوند. ISE طی تحقیقات خود، این تعداد را به ۸ واحد ۳۲ بیت نامبری تقسیم کرد چون احتمال رسیدن به یک کلید خصوصی در مقیاس بزرگ کمتر است.

این هشت قسمت از ۳۴ میلیارد کلید ضعیف تر تشکیل شده بودند و اسکن آن‌ها یک روز کامل طول کشید.
لازم به ذکر است که این کدها به دلیل یک کد معیوب و ژنراتورهای شماره رندوم معیوب تولید شده‌اند و محققان به طور خاص کلیدهای Suboptimal  را هدف قرار می‌دهند.

سرقت اطلاعات توسط هکر

یک تحلیل‌گر امنیتی در حالی که مفاهیم اولیه را مورد بررسی قرار می‌داد گفت: کلید خصوصی در واقع نام کاربری و رمز عبور شما هم محسوب می‌شود. این موضوع با ورود به حساب کاربری بانکی شما که نام کاربری و رمز عبور خود را وارد می‌کنید تفاوت دارد، بنا‌بر‌این زمانی که دو شخص از رمز عبور مشترک استفاده می‌کنند هر دوی آن‌ها یک کیف پول خواهند داشت، طبق اظهارات bednarek، این موضوع مثل لینک شدن دو نفر به یک حساب بانکی است.

در ابتدا، متخصصان ISE به این نتیجه رسیدند که کلید خصوصی ۱ که به خاطر وجود احتمال پایینش در کلید خصوصی انتخاب شد، واقعا روی بلاک چین وجود داشت و حتی داخل صدها تراکنش هم موجود بود.

سرقت اتریوم توسط هکر

اگر با استفاده از کد ۲۵۶ بیتی نوشته شود)
این یک اعلام خطر بود که چرا مردم از کلید خصوصی ۱ استفاده می کردند؟ این غیر منتظره بود، تیم او شروع به جستجوی کلیدهای بیشتر کردند تا بفهمند این مشکل چقدر گسترده است، اگرچه محققان ISE ثابت کرده اند که این موضوع یک مسئله ویژه همگانی نیست ولی آن‌ها ۷۳۲ کلید خصوصی ضعیف‌ که در ۴۹۰۶۰ تراکنش وجود داشت را شناسایی کردند. 
در واقع حدود ۵۰ میلیون کلید مورد استفاده روی شبکه بلاک چین وجود دارد که ما تنها ۷۳۲ عدد از آن‌ها را شناسایی کردیم.

راهزن بلاک چین

همانطور که قبلا گفته شد تیم ISE طی تحقیقات خود با روش‌های مخصوص به خودشان، متوجه شدند چگونه برخی از کیف‌های مرتبط با کلیدهای خصوصی، معاملات بسیاری را با یک آدرس مخصوص داشتند.
همانطور که بدنارک ویدیوئی را در وب‌سایت  ISE منتشر کرد و گفت:

فردی بود که یک آدرس داشت و در فضای ارز دیجیتال پرسه می‌زد و پول‌ها را از یکی از کلیدهای خصوصی که ما به آن دسترسی داشتیم بیرون می‌کشید. ما ۷۳۵ کلید خصوصی پیدا کرده بودیم و او هم به ۱۲ کلید پیدا شده توسط ما دسترسی داشت، از نظر آماری حدس زدن تصادفی این کلیدها بعید بود و او همان روشی را اتخاذ کرده بود که ما به‌کار برده بودیم و به محض واریز شدن پول به کیف پول مردم آن‌ها را تصاحب می‌کرد.

طی مکالمه بدنارک و کوین تلگراف، وی گفت که هکر یا عده ای از هکرها یک نود برای برداشت اتوماتیک سرمایه به محض واریز آن، طراحی کرده‌اند. برای تایید این موضوع محققان از یک honeypot استفاده کردند و یک دلار با کلید خصوصی ضعیف که قبلا توسط هکر شناسایی شده بود فرستادند تا سرعت برداشت پول را بررسی کنند و در کمال تعجب پول در کسری از ثانیه خارج شد. کارمند شرکت ISE گفت:

اگر این عمل دستی بود ممکن بود حداقل یک روز طول بکشد اما به محض اینکه ما یک دلاری را فرستادیم، اکسپلورر بلاک چین را بررسی کردیم و در کمال تعجب در کسری از ثانیه تراکنش در حال انجام بود. بنابراین اساسا چیزی که این هکر دارد یک نود بلاک چین است که یک قسمت از تنظیمات تراکنش شبکه در مکانی مشخص است و به محض مشاهده تراکنش واریزی با کلید خصوصی شناسایی شده، بلافاصله یک درخواست برای برداشت سرمایه می‌دهد.

اسکن کیف پول و هکر

طبق داده های به دست آمده از طریق اتر اسکن کیف پول این هکر چیزی حدود ۴۵۰۰۰ اتریوم موجودی داشت که ارزش ۷٫۳ میلیون دلاری داشت( البته در زمان نگارش این مقاله) در بالا‌ترین نرخ قیمت اتر تخمین زده می‌شود که کل مبلغ فروخته شده توسط این هکر به ۵۰ میلیون دلار هم برسد.
اگر شما آدرس هکر را در گوگل جستجو کنید می‌توانید افراد بسیاری را ببینید که از او شکایت کرده‌اند،  بدنارک تاکید کرد که تاکتیک‌های کلاهبردار کاملا موفق بوده است.
او گفت که این هکر از یک روش جند جانبه برای دزدی استفاده می‌کرده است.

سپس تحلیل‌گران امنیت روش این کلاه‌بردار را با جزئیات کامل شرح دادند: ۱- او کلید‌های خصوصی نامناسب را بررسی می‌کند. ۲- او کیف پول‌های دارای رمز عبور ضعیف و RPC های نامنظم  را شناسایی می‌کند. شما معمولا prc مربوط به نود اتریوم خود را در معرض اطلاع عموم قرار نمی‌دهید اما برخی افراد، گاهی اوقات این‌کار را انجام می‌دهند و اگر شما رمز عبور نداشته باشید ممکن است شخصی بتواند کیف پول مرتبط با نود شما را خالی کند.

محقق امنیتی ISE گفت : برداشت‌های این چنینی فقط و فقط مختص بلاک چین اتریوم نیستند، و اگر بلاک چین توسط مردم انتخاب شده پس می‌تواند به راه خود ادامه دهد. او درباره یک مسئله  که تیم او حین انجام این پروژه مواجه شدند صحبت می‌کند.

کیف پول و کلید خصوصی

قبل از شروع این تحقیق ما به این مسئله برخوردیم که اگر یک کیف پول با کلید خصوصی پیدا کردیم که داخل آن یک میلیون دلار بود چه کنیم؟ آیا آن را رها کنیم ؟ اما اگر آن را رها کنیم ما می‌دانیم که این پول، در کیف پولی با کلید خصوصی نامناسب قرار دارد و ممکن است دزدیده شود بنابراین ما مسئولیم چون می‌توانستیم فردی را آگاه کنیم. اما سوال بعدی این است که ما باید چه کسی را مطلع می‌کردیم؟

هیچ راه ساده ای برای پیدا کردن صاحب کلید خصوصی وجود ندارد. شاید می‌توانستیم این مبلغ را موقتا از حساب برداشت کنیم تا زمانی که فردی ادعا کند که این مبلغ متعلق به اوست، ولی در این صورت مورد پیگرد قانونی قرار می‌گرفتیم  بنابراین شرکتی که ما  این تحقیقات را برای آن‌ها انجام می‌دادیم تماس گرفتند و توصیه کردند که اگر به مورد غیر طبیعی برخوردید لطفا آن‌ را به حال خود رها کنید و تراکنشی انجام ندهید و به این صورت از دردسرهای احتمالی این کار اجتناب کنید.

توصیه های امنیتی و تحقیقات بیشتر

به گفته بدنارک کلیدهای خصوصی به دلیل دو عامل اصلی آسیب‌پذیر هستند، اولین عامل خطاهای کدگذاری در نرم افزار پشتیبان تولید آن‌ها است، دومین عامل این است که برخی از صاحبان ارزهای دیجیتال تمایل دارند که کلیدهای خصوصی مشابه را از طریق رمزهای عبور ضعیف مثل ABC123 به دست آورند و یا حتی آن‌ها را بدون استفاده نگه دارند.

به عنوان مثال گزارش ISE ثابت کرد که محبوب‌ترین کلیدهای خصوصی ضعیف، آن‌هایی هستند که توسط عبارت بازیابی خالی، تولید شده‌اند(یعنی با استفاده از کیف پول یکسان). گزارش‌ها حاکی از آن است که تعداد ۸۷۷۲ تراکنش با این آدرس و با مجموع مقدار۵۲۱۵۵۸۶ اتریوم منتقل شده‌اند.
اگر parity  به شما امکان انتخاب رمز عبور بدون هیچ شماره‌ای را بدهد، کلید خصوصی بر مبنای آن ساخته خواهد شد،  توسعه دهندگان کیف پول این موضوع را ثابت کرده اند. بدنارک می‌گوید من فکر می‌کنم آن‌ها باید حداقل نیازمندی های رمز عبور را رعایت کنند. اگر شما در حال حاضر از آخرین نسخه این نرم افزار استفاده می‌کنید، می‌توانید از یک حرف یا شماره استفاده کنید ولی نمیتوانید آن فیلد را خالی بگذارید.

هیچ یک از سازندگان کیف پول با ISE تا کنون تماس نگرفته اند.

بدنارک گفت: این موضوع از این نظر جالب است چون نمی‌توان گفت که کدام کیف پول مسئول است ( اگر اصلا کیف پولی وجود داشته باشد)، این می‌تواند به واسطه کسانی که کلیدهای خصوصی اشتباه وارد می‌کنند، رخ داده باشد یا می‌تواند یک دیباگ جدید کیف پول‌ها باشد یا می‌توانند اصلا خود توسعه دهندگان باشند. این چیزی است که فکر می‌کنم  هیچ وقت موفق به فهمیدن آن نمی‌شویم.

توصیه مهم بدنارک به کسانی که به کامپیوتر آگاهی کافی ندارند این است که از یک کیف پول معتبر و حدالامکان کیف پولی که سخت افزاری یا کاغذی باشد استفاده کنند. مخصوصا وقتی که پای مقدار زیادی ارز دیجیتال در میان است. او گفت:
اگر قصد معامله مقدار زیادی ارز دیجیتال دارید، بنابراین از یک کیف پول سخت افزاری که کلید خصوصی آن هرگز آشکار نخواهد شد، استفاده کنید . بسیاری از دوستان من که به صورت بلند مدت دارایی های خود را نگه می‌دارند از کیف پول‌های کاغذی که کلیدهای  خصوصی تصادفی انتخاب می‌کنند، استفاده می‌کنند و هیچ وقت از کامپیوتر استفاده نمی‌کنند.

کیف پول IOTA

بدنارک با ذکر این مثال که از کیف پول lota چیزی حدود ۱۰ میلیون یورو در ماه پیش دزدیده شده است، افزود، همیشه هنگام استفاده از نرم افزارهای محبوب این خطر وجود داشته است.

از جایی که کیف پول lota  متن‌باز است، کد این کیف پول به صورت عمومی روی github پست می‌شود. در برخی موارد کلاهبردار می‌تواند با اعمال تغییراتی در کد، مولد اعداد تصادفی را تغییر دهد.

بدنارک گفت به طرز گیج کننده ‌ای این‌کار انجام شد، با این که بسیاری از افراد توانستند کد را بررسی کنند طبق گفته های او، آن‌ها فقط گمان کردند که این روش مورد استفاده خواهد بود.

کلیدهای خصوصی و تولیدشان

متخصص ISE  گفت که به این ترتیب هکرها می‌توانستد پی ببرند که چطور کلیدهای خصوصی تولید می‌شوند و با استفاده از کدهای داده شده، آن ها را دوباره تولید کنند.
پس از این‌که بسیاری از افراد مقدار زیادی پول از دست دادند، افرادی بعد از تغییر مولد اعداد تصادفی به این موضوع پی بردند که این مولد، اعداد متوالی را با فضای به خصوصی از کلیدها، تولید می‌کند.

بدنارک در ادامه به کوین تلگراف گفت: گروه  ISE قصد دارد به نظارت بلاک چین و کلیدهای خصوصی ضعیف، در مقیاس بزرگتر ادامه دهد وی همچنین گفت: ما  متد نظارت خود را با استفاده از GPUs ادامه خواهیم داد و به این صورت قادر خواهیم بود ۳۸ میلیارد کلید را در عرض چند ثانیه بررسی کنیم.
زمانی که ما بر کلیدهای خصوصی نظارت می‌کنیم می‌توانیم کارهای جالب دیگری مثل دنبال کردن brainwallet ( کیف پول ذهنی) یا الگوریتم‌های تولید کلید خصوصی که ممکن است غلط باشد را شناسایی کنیم. پس ما به مناطق مختلفی برای شناسایی کلیدهای خصوصی دسترسی خواهیم داشت.

گروه تحقیق امنیتی قصد دارد اطلاعات بیشتری از جمله کلیدهای خصوصی معیوب در دسترس عموم قرار دهد، تا افراد قادر شوند تحقیقات خود را انجام دهند و اطلاعات لازم درباره شکاف‌های احتمالی امنیتی را کسب کنند. بدنارک اظهار داشت: شاید این کار به یک تلاش مشترک برای کمک به پیدا کردن برخی از علل این امر تبدیل شود.