باگهای چندمیلیارد دلاری؛ پروژههای دیفای چگونه هک میشوند؟
دیفای یا همان حوزه «امور مالی غیرمتمرکز» روزبهروز در حال بزرگشدن است و با توجه به کاری که پروژههای این حوزه انجام میدهند (یعنی حذف واسطهها از تمام فرایندهای مالی) تعجبی ندارد که شاهد چنین رشدی باشیم. در حقیقت دریافت وام بدون مراجعه به بانک و انجام تمام تبادلات مالی بهصورت غیرمتمرکز چیزی نیست که بتوان از کنار آن بهسادگی عبور کرد و شاید ده سال دیگر کمتر کسی باشد که بهجای استفاده از دیفای، برای دریافت وام به بانک مراجعه کند.
با این حال، هرچقدر که این حوزه بزرگتر میشود، امنیت آن هم اهمیت بیشتری پیدا میکند. وقتی که بانکی وجود ندارد، چه کسی تضمین میکند که میلیونها دلار از ثروت کاربرانِ یک پروژه به سرقت نرود؟
در علوم کامپیوتر، هر شبکهای خطر «هکشدن» دارد و طبق این تئوری، هرچیزی که در دنیای دیجیتالی و آنلاین وجود دارد ممکن است با آسیب امنیتی مواجه شود. یک پروژه دیفای هم از این قاعده مستثنی نیست.
منظور از هکشدن پلتفرمهای دیفای مشکلاتی در کد و بهطور کلی فرصتهایی است که یک هکر میتواند با سوءاستفاده از آنها، سرمایه کاربران یا سرمایه پلتفرم را به سرقت ببرد.
در این مطلب با کمک مقالهای از سایت کوینتلگراف، به سراغ هک در پلتفرمهای دیفای رفتهایم و قرار است بررسی کنیم که چرا یک پلتفرم دیفای هک میشود. برای پاسخ به این سؤال، برخی از هکهای دیفای را مرور میکنیم و علت و چگونگی وقوع آنها را توضیح میدهیم.
امنیت دیفای و هکهایی که تاکنون اتفاق افتاده
تحلیل هکهایی که در حوزه دیفای اتفاق افتاده، در شناخت محورهای اصلی و آسیبپذیریهای موجود در این حوزه نقش چشمگیری دارد.
بخش دیفای با سرعت در حال رشد و توسعه است. در سه سال گذشته، کل مبلغ قفلشده در دیفای در حدود ۸۰۰ میلیون دلار بود؛ اما حالا با نگاه به رشد این رقم، باید کلاه از سر برداشت و به این حوزه ایمان آورد.
تا فوریه ۲۰۲۱ (بهمن ۹۹)، کل مبلغ قفلشده در دیفای به ۴۰ میلیارد دلار رسیده بود؛ اما این رشد متوقف نشده و در ماه آوریل (فروردین) سال جاری به ۸۰ میلیارد دلار و هماکنون به بیش از ۱۴۰ میلیارد دلار افزایش پیدا کرده است. این رشد سریع در یک بازار نوظهور و جدید مثل دیفای میتواند توجه تمام هکرها و کلاهبرداران را بهسمت خود جذب کند.
بر اساس گزارش شرکت تحقیقات مساری، بخش دیفای از سال ۲۰۱۹ شاهد ازدسترفتن حدود ۲۸۴.۹ میلیون دلار بهدلیل هک و حملات سودجویانه دیگر بوده است.
هک اکوسیستمهای بلاک چینی، گزینه ایدهآلی برای هکرهاست و ممکن است آنها را به ثروت خوبی برساند. این سیستمها ناشناس هستند، پول زیادی در آنها وجود دارد و هر هک و حملهای میتواند بدون اطلاع قربانی، از مدتها پیش آزمایش و بررسی شود.
در چهارماهه اول سال ۲۰۲۱، حدود ۲۴۰ میلیون دلار از سرمایه کاربران در پروتکلهای دیفای به جیب هکرها رفته است. البته این رقم مربوط به حوادثی است که بهطور عمومی اعلام شدهاند. تخمین واقعی این است که رقم زیانها به میلیاردها دلار برسد.
به سراغ سؤال اصلی برویم. پروتکلهای دیفای دقیقاً چگونه و به چه شکلی هک میشوند و پول چگونه از آنها به سرقت میرود؟ ما برای پاسخ به این پرسش، حملات هکری متعددی را تحلیل کردهایم و رایجترین مشکلات و مسائلی که منجر به حملات هکری میشود را شناسایی کردهایم.
همان طور که در تصویر زیر مشاهده میکنید، غالب این هکها را میتوان در سه دسته کلی «اشکالات مرتبط با تیم توسعه»، «ایرادات کدنویسی» و «سوءاستفاده از پروتکلهای واسطه و خطا در منطق کسبوکار» جای داد.
سوءاستفاده از پروتکلهای واسطه و خطا در منطق کسبوکار
مهاجم همیشه قبل از انجام حمله، قربانی را تجزیهوتحلیل میکند. فناوری بلاک چین هم بهدلیل شفافیتی که دارد، فرصتهای زیادی را برای شبیهسازی سناریوهای هک و همگامسازی آنها با شبکه در اختیار هکر قرار میدهد.
برای اینکه حمله سریع و دور از چشم بقیه انجام شود، مهاجم باید از مهارت برنامهنویسی قوی برخوردار باشد و نحوه کار قراردادهای هوشمند را بلد باشد. ابزارهای هکرها امکان دانلود یک نسخه کامل از بلاک چین اصلی را فراهم میکند. آنها سپس کل فرایند حمله را طوری تنظیم و شبیهسازی میکنند که گویی تراکنش مدنظر در یک شبکه واقعی رخ داده است.
در گام بعدی، مهاجم باید مدل تجاری پروژه و سرویسهای جانبی مورداستفاده آن را بهدقت مطالعه کند. وجود خطا در مدلهای ریاضی منطق کسبوکار و سرویسهای واسطه، دو مسئله عمدهای هستند که هکرها از آنها سوءاستفاده میکنند.
توسعهدهندگان قراردادهای هوشمند اغلب در زمان انجام تراکنشها، بیش از هر زمان دیگری داده دریافت میکنند. بنابراین آنها ناچارند از سرویسهای جانبی بیشتری (مانند اوراکلها) استفاده کنند. طراحی این سرویسها بهشکلی است که در یک محیط بدون واسطه کار نمیکنند؛ پس استفاده از آنها با ریسکهای بیشتری همراه است.
بر اساس آمار موجود درباره یک سال تقویمی (از تابستان سال ۲۰۲۰ تاکنون)، تنها ۱۰ درصد از هکهای دیفای (با حدود ۵۰ میلیون دلار سرقت) بهدلیل این نوع ریسک خاص رخ دادهاند و در طی این هکها، ۵۰ میلیون دلار سرمایه به سرقت رفتهاند.
اشتباهات کدنویسی
قرادادهای هوشمند در دنیای فناوری اطلاعات، مفهوم نسبتاً جدیدی هستند. زبانهای برنامهنویسی قراردادهای هوشمند برخلاف سادگیشان، نیازمند یک پارادایم توسعهای کاملاً متفاوت هستند. بنابراین توسعهدهندگان گاهی مهارتهای کدنویسی لازم را ندارند و اشتباهات مهلکی میکنند که موجب زیان کاربران میشوند.
حسابرسیهای امنیتی تنها بخشی از این ریسک را پوشش میدهند؛ چراکه بیشتر شرکتهای حسابرسی موجود، هیچ مسئولیتی در قبال کیفیت کاری خود ندارند و هدفشان از انجام این کار بیشتر منافع مالی است.
نتایج مطالعات ما نشان میدهد که بیش از ۱۰۰ شرکت دیفای بهدلیل خطاهای کدنویسی هک شدهاند و در نهایت، حدود ۵۰۰ میلیون دلار زیان به کاربران وارد شده است.
یکی از نمونههای غیرقابل چشمپوشی این هکها، هکی به نام dForce است که در ۱۹ آوریل ۲۰۲۰ (۳۱ فروردین ۹۹) رخ داد. هکرها از یک آسیبپذیری در استاندارد توکن ERC-777 و یک حمله بازگشتپذیری (Reentrancy attack) استفاده کردند و ۲۵ میلیون دلار را به سرقت بردند.
وامهای سریع، دستکاری قیمت و حملات ماینری
اطلاعاتی که در اختیار قراردادهای هوشمند قرار میگیرند، تنها در زمان انجام تراکنش کاربرد دارند. یک قرارداد بهطور پیشفرض در برابر دستکاریهای خارجی اطلاعات درون آن ایمن نیست و همین امر باعث میشود حملات هکری مختلف امکانپذیر شوند.
وامهای سریع (Flash loans)، وامهای بدون ضامن یا وثیقه هستند. عملکرد وامهای سریع به این شکل است که کاربر باید ارز دیجیتالی که وام گرفته را در همان تراکنش برگرداند و وام خود را تسویه کند. اگر وامگیرنده نتواند وجوه را بازگرداند، تراکنش لغو خواهد شد. با چنین وامهایی، وامگیرنده میتواند مقادیر زیادی ارز دیجیتال را دریافت و از آن در جهت اهداف خود استفاده کند.
معمولاً حملاتی که در طی وامهای سریع رخ میدهند، با دستکاری قیمت همراه هستند. یعنی چه؟ یعنی مهاجم ابتدا تعداد زیادی توکن وامگرفتهشده را در یک تراکنش به فروش میرساند، با این کار خود باعث کاهش قیمت میشود و سپس پیش از خرید دوباره توکنها، در همان حین که قیمت آنها پایین است، اقدامات موردنظر خود را انجام میدهد.
حمله ماینری هم چیزی شبیه حمله وام سریع است که بر مبنای الگوریتم اجماع اثبات کار انجام میشود. این نوع حمله پیچیدهتر و پرهزینهتر است؛ اما دیگر خبری از برخی لایههای محافظتی وامهای سریع نیست.
در این حمله، مهاجم ظرفیتهای استخراج (یا همان توان پردازشی) را اجاره کرده و بلاکی تشکیل میدهد که تنها تراکنشهای موردنیاز او در آن قرار دارند. در این بلاک، ابتدا توکن را قرض میگیرد، قیمتها را دستکاری میکند و سپس توکنهای قرضگرفتهشده را پس میدهد.
ازآنجاکه مهاجم تراکنشهایی ساخته که بهطور مستقل وارد بلاک شدهاند و همینطور ترتیب آنها را مشخص کرده است، حمله بهاصطلاح «اتمی» است و درست مثل وامهای سریع، دیگر هیچ تراکنشی نمیتواند در این حمله قرار بگیرد.
بیش از ۱۰۰ پروژه دیفای در معرض این نوع هک قرار گرفتهاند و چیزی حدود ۱ میلیارد دلار به سرقت رفته است.
میانگین تعداد این هکها با گذر زمان بیشتر شده است. در ابتدای سال ۲۰۲۰ بهازای هر حمله، صدها هزار دلار به سرقت میرفت؛ در حالی که تا پایان سال ۲۰۲۰ در هر حمله دهها میلیون دلار به کاربران خسارت وارد میشد.
بیکفایتی توسعهدهندگان
خطرناکترین نوع ریسک، ریسک مربوط به خطای انسانی است. مردم برای دستیابی سریع به پول وارد حوزه دیفای میشوند. بسیاری از توسعهدهندگان شایستگی کافی و مهارتهای لازم را برای توسعه پلتفرمهای دیفای ندارند؛ اما با این حال، باز هم اقدام به اجرای سریع پروژهها میکنند.
قراردادهای هوشمند متنباز هستند و هکرها بهراحتی میتوانند آنها را کپی و دستکاری کنند. اگر پروژه اصلی سه آسیبپذیری اولی که نام بردیم را داشته باشد، هکرها میتوانند بهراحتی آن را کپی کنند و صدها پروژه مشابه آن را تولید کنند.
RFI SafeMoon نمونه خوبی از این مسئله است. این پروژه یک آسیبپذیری اساسی دارد که به تولید بیش از یکصد پروژه مشابه انجامیده و زیان احتمالی ۲ میلیارد دلاری را به کاربران وارد کرده است.
جمعبندی
اگرچه شاید نتوان خودِ بلاک چین اتریوم یا سایر میزبانهای دیفای را هک کرد، پروژههای دیفای هک میشوند و نمیتوان این حقیقت را انکار کرد؛ همان طور که وبسایتها روی اینترنت هک میشوند.
با بزرگشدن حوزه دیفای و شناخت بیشتر توسعهدهندگان از بلاک چین، نفوذ به پروژههای دیفای سختتر و سختتر خواهد شد؛ اما در هر حال نمیتوان تضمین ۱۰۰ درصدی ارائه کرد.
بنابراین اگر در پروژه دیفای فعالیت میکنید، علاوه بر ریسکهای مربوط به بازار، باید ریسک هکشدن خودِ پلتفرم هم در نظر بگیرید. البته با اینکه توسعهدهندهٔ یک پروژه مسئول هکها نیست، اغلب پروژهها پس از هک میپذیرند که وجوه بهسرقترفته را پس بدهند.