کامیونیتی کریپتوکارنسی در سراسر جهان روز چهارشنبه را با خبر وحشتناکی مبنی بر هک شدن کیف پولهای گرم و از دست رفتن کوینهای سولانا و توکنهای مبتنی بر SPL (استاندارد توکنهای شبکه سولانا) شروع کرد. اگر پیگیر وقایع اخیر بازار رمزارزها باشید، حتما در جریان اتفاقات تلخ اخیر مانند حمله به بریج Nomad، هک بریج Horizen، گزارش کریستال بلاکچین مبنی بر محبوبیت فضای دیفای برای کلاهبرداران و اخبار مشابه هستید.
و امروز طی جدیدترین خبری که شنیدیم، کیف پولهای سولانا مورد حمله هکرها قرار گرفتند و تا به این لحظه، حدود هشت میلیون دلار از حدود نه هزار کیف پول به سرقت رفته است.
اگر شما هم در میان افراد متضرر از این هک هستید، بدانید که ما کاملا وضعیت و احساس شما را درک میکنیم و بابت این اتفاق متاسفیم. در این مطلب قصد داریم با استفاده از منابع و اطلاعات موجود که بعضا هنوز ناقص هستند، به بررسی نحوه وقوع هک کیف پولهای سولانا بپردازیم و اقدامات امنیتی لازم را باهم مرور کنیم. با میهن بلاکچین همراه باشید.
هک کیف پولهای سولانا دقیقا چطور اتفاق افتاد؟
طبق اطلاعاتی که تا به این لحظه وجود دارد، هدف هکر کیف پولهای گرم حاوی سولانا و توکنهای مبتنی بر SPL است. بر اساس گزارش Peckshield، تا به این لحظه حدود ۸ میلیون دلار (این رقم بدون در نظر گرفتن یک شت کوین که ۵۸۰ میلیون دلار نقدینگی دارد اعلام شده) از بیش از هشت هزار کیف پول گرم به سرقت رفته است. در نظر داشته باشید که در زمان نگارش این مطلب، متاسفانه این هک همچنان در جریان است و ممکن است زمانی که شما این مطلب را میخوانید، این ارقام افزایش یافته باشند.
برای رصد لحظهای وضعیت تعداد کیف پولها و مبلغ به سرقت رفته، این داشبورد را دنبال کنید.
در حال حاضر، هنوز چگونگی وقوع این هک مشخص نیست؛ اما متخخصان حوزه گمانهزنیهای مختلفی در این خصوص دارند که در ادامه به آنها میپردازیم.
احتمال هک از طریق دسترسی به کلید خصوصی کاربران
بنیانگذار آوالانچ Emin Gün Sirer طی توییتی توضیح داده است که احتمالا هکر به واسطه دسترسی به کلید خصوصی کیف پول کاربران، دارایی آنها را به سرقت برده است. او احتمال میدهد که دسترسی هکر به کلید خصوصی کاربران، از طریق حملهای به نام Supply Chain attack رخ داده است. در این نوع حمله، لایببری جاوا اسکریپت (JS Library) پروژه مورد هک واقع میشود و از این طریق، کلید خصوصی کاربران به سرقت میرود. درواقع در حمله زنجیره تامین، یک کد مخرب در بخش Generate کلید عمومی قرار میگیرد و کلید خصوصی قبل از رسیدن به دست کاربر، به دست مهاجم میرسد. طبق بررسیهای Emin، کیف پولهایی که مورد حمله واقع شدند، طی حداقل ۹ ماه گذشته ساخته شدهاند. اگر واقعا این اتفاق افتاده باشد و کلید خصوصی کاربران به دست فرد دیگری افتاده باشد، راهی برای جلوگیری از آن وجود نخواهد داشت و حتی متوقف کردن بلاکچین نیز کمکی نخواهد کرد. چون بهمحض اینکه شبکه فعالیت خود را از سر بگیرد، هکر میتواند به دزدی از کیف پولها ادامه دهد.
از نظر Emin، احتمال دیگری که وجود دارد، اکسپلویتی به نام Zero-day است. طی این اکسپلویت، یک بدافزار با استفاده از آسیب پذیریهای نرم افزارها، به آنها نفوذ میکند. هرچند که او احتمال وقوع هک از این طریق را پایین میداند، اما باید بدانیم که احتمال آن صفر هم نیست؛ چرا که این حمله فقط کیف پولهای گرم را تحت تاثیر قرار داده و کیف پولهای گرم به اپلیکیشنهای غیرمتمرکز متعددی متصل میشوند که ممکن است بعضی آنها امنیت کافی نداشته باشند.
کاربری در توییتر احتمال هک از طریق حمله زنجیره تامین را اینطور تایید میکند:
احتمال هک از طریق استفاده چندباره از Nonce
سرپرست مهندسی کوین بیس که با نام کاربری patrickogrady در توییتر فعالیت میکند، طی توییتی گفت که احتمال میدهد هک کیف پولهای سولانا به دلیل باگ استفاده دوباره از نانس باشد که در الگوریتم امضای دیجیتال منحنی بیضوی یا ( ECDSA) ed25519 پروژههای سولانا وجود دارد. از نظر او، وجود این باگ به هر هکری اجازه میدهد تا صرفنظر از اینکه کلیدهای خصوصی سولانا کجا ساخته شدهاند، به آنها دسترسی داشته باشد.
در این قسمت لازم است توضیحاتی درباره امضای ECDSA و نقاط ضعف آن بدهیم تا بتوانید این موضوع را بهتر درک کنید. Elliptic Curve Digital Signature Algorithm یا همان ECDSA یک طرح امضای دیجیتال رمزنگاری شده است که مبتنی بر رمزنگاری منحنی بیضوی است. ECDSA از یک جفت کلید تشکل شده: کلید خصوصی و کلید عمومی. کلید خصوصی به عنوان یک عدد صحیح تصادفی (بین 0 تا n-1) ساخته میشود. کلید عمومی نیز نقطهای روی منحنی بیضوی است که از ضرب کلید خصوصی در نقطه جنریتور (Generator Point) (که برای ضرب اسکالر روی منحنی استفاده میشود) به دست میآید.
از آنجایی که ECDSA یک طرح امضای رمزنگاری شده است، ضروری است که کلید خصوصی به دست کسی جز کسی که پیام تراکنش را امضا میکند، نیفتد. با این وجود، اگر یک امضاکننده امضا و نانسی که در تراکنش استفاده کرده را فاش کند، مهاجم بلافاصله میتواند کلید خصوصی را بازیابی کند. برای مثال، اگر امضایی فاش شود و پارامترهای آن را (r,s) در نظر بگیریم، برای پیامی که پارامتر آن را (m) درنظر میگیریم و همچنین نانس مورداستفاده که آن را (k) در نظر میگیریم فاش شود، از آنجایی که s = (k-1(H(m) + xr)) میتوان به راحتی و از طریق فرمول زیر، کلید خصوصی را به دست آورد:
s = (k-1(H(m) + xr))
ks = H(m) + xr
ks – H(m) = xr
x = r-1(ks – H(m))
بنابراین، نه تنها امضاکننده باید کلیدخصوصی خود را مخفی نگه دارد، بلکه باید تمام نانسهایی را که تا به حال ایجاد کرده نیز مخفی نگه دارد. حتی اگر امضاکننده تمام نانسها را مخفی نگه دارد و بهطور تصادفی تنها یک نانس را برای دو تراکنش تکرار کند، میتوان بلافاصله کلید خصوصی را به دست آورد. برای مثال، اگر (r,s1) و (r,s2) را دو امضای ایجادشده برای تراکنشهای m1 و m2 که پشت سر هم و از نانس یکسانی به نام k در نظر بگیریم، از آنجایی که این دو تراکنش نانس یکسانی دارند، مقادیر r یکسان خواهد بود و از طریق این فرمول، برای هکر قابل محاسبه است:
s1 = k-1(H(m1) + xr) and s2 = k-1(H(m2) + xr)
s1 – s2 = k-1(H(m1) – H(m2))
k(s1 – s2) = H(m1) – H(m2)
k = (s1 – s2)-1(H(m1) – H(m2))
زمانی که نانس یعنی k را با استفاده از فرمول بالا به دست بیاوریم، میتوانیم با استفاده از روشی که پیشتر توضیح دادیم، به کلید خصوصی دست پیدا کنیم.
بنابراین، اگر نانس یک امضا فاش شود، کلید خصوصی میتواند بلافاصله بازیابی شود، که این مسئله باعث تخریب تمام طرح امضا میشود. به علاوه، صرفنظر از تراکنش، اگر دو نانس تکرار شوند، مهاجم میتواند به راحتی متوجه این مسئله بشود و کلید خصوصی را بازیابی کند.
قبول دارم این توضیحات فنی و تا حد زیادی پیچیده بودند، اما درک آنها به ما میکند که ( اگر مسئله هک کیف پولهای سولانا واقعا به خاطر این باگ بوده)، نحوه دقیق عملکرد آن را بدانیم.
کدام برنامهها و پلتفرمها مورد آسیب واقع شدند؟
طبق اخبار و اطللاعاتی که تا این لحظه وجود دارد، لیست برنامهها و پلتفرمهایی که طی هک کیف پولهای سولانا مورد آسیب واقع شدند، از این قرار است:
کیف پولهای گرم:
- تراست ولت
- فانتوم
- اسلوپ
- پلتفرمها:
- بازار nft مجیک ایدن
اگر کیف پول شما نیز هک شده، حتما این اقدامات را انجام دهید:
در نظر داشته باشید که اگر سناریوی دسترسی هکر به کلید خصوصی درست باشد، کیف پولی که هک شده، دیگر قابل استفاده نیست. بنابراین:
- برای انتقال دارایی خود از کیف پول هک شده، دارایی خود را ایمپورت نکنید. (یعنی با استفاده از همان کلید خصوصی، دارایی را به کیف پول جدید منتقل نکنید.) بلکه یک کیف پول جدید با کلید خصوصی جدید بسازید و دارایی خود را به آن کیف پول انتقال دهید.
- ترجیحا و در صورت امکان، دارایی خود را به کیف پولهای سرد مانند لجر منتقل کنید.
- ترجیحا کیف پول جدیدی که میسازید، جزء کیف پولهایی که طی این حمله آسیب دیدند، نباشد.
- دسترسی اپلیکیشنهای غیرمتمرکز را به دارایی خود محدود کنید. البته اکانت توییتری foobar طی توییتی گفته معتقد است انجام این کار در حال حاضر فایدهای ندارد. چرا که تا قبل از این حمله، تمام تراکنشها توسط خود کاربر امضا شدهاند (درواقع توسط هکر و با دسترسی به کلید خصوصی کاربر) و چون کلید خصوصی کاربران به دست هکر افتاده، انجام این کار حالا بیفایده است. اما من توصیه میکنم این کار را که نحوه انجام آن را به طور کامل در ویدیوی زیر آموزش دادهایم، برای دیگر کیف پولهای خود انجام دهید.
بررسی اطلاعات هکر و آدرسهای مرتبط با این هک
آدرسهایی که تا به حال به این هکر منتصب شدهاند، از این قرار هستند:
https://solana.fm/address/Htp9MGP8Tig923ZFY7Qf2zzbMUmYneFRAhSp7vSg4wxV
https://solana.fm/address/5WwBYgQG6BdErM2nNNyUmQXfcUnB68b6kesxBywh1J3n
https://solana.fm/address/GeEccGJ9BEzVbVor1njkBCCiqXJbXVeDHaXDCrBDbmuy
https://solana.fm/address/CEzN7mqP9xoxn2HdyW6fjEJ73t7qaX9Rp2zyS6hb3iEu
همانطور که مشاهده میکنید، در صفحه این آدرسها هشدار Hack Alert به نمایش درآمده است.
همچنین، اکانت zachxbt در توییتر اعلام کرده که این هکر هفت ماه قبل تراکنشی از صرافی بایننس به کیف پول خود ارسال کرده است.
همچنین، شواهد نشان میدهد که کیف پولهای اتریوم نیز از این حمله در امان نبودهاند:
این داشبورد در وبسایت Dune Analytics، اطلاعات کاملی درباره تعداد کیف پولها، نوع ارزهای به سرقت رفته و… در اختیار شما قرار میدهد.
پرسش و پاسخ (FAQ)
- دلیل هک کیف پولهای سولانا چه بود؟
دلیل این هک تا به این لحظه کاملا مشخص نیست؛ اما دو احتمال اساسی وجود دارد: حمله زنجیره تامین و حمله استفاده چندباره از نانس.
- در ارتباط با هک کیف پولهای سولانا، چه اقدامات امنیتی لازم است؟
اقدامات امنیتی لازم در این خصوص را به طور کامل در مقاله توضیح دادیم، اما به طور خلاصه باید گفت: دارایی خود را به یک کیف پول جدید و امن منتقل کنید و دسترسی اپلیکیشنهای غیرمتمرکز را به داراییهای خود محدود کنید.
جمعبندی
در این مطلب سعی کردیم دلایل هک کیف پولهای سولانا و اقدامات امنیتی لازم در این زمینه را بررسی کنیم. در نظر داشته باشید که اطلاعات گفته شده در این مقاله، به دلیل ناقص بودن دیتا درباره این هک، هنوز کامل نیستند و به مرور و با انتشار دیتاهای بیشتر، این مقاله هم تکمیل خواهد شد. اگر شما هم بین افرادی هستید که در جریان هک کیف پولهای سولانا متضرر شدهاند، فراموش نکنید تجربیات خود را با ما و دیگر کاربران به اشتراک بگذارید.