وب 3.0 به عنوان یک وب غیرمتمرکز و نوپا شناخته می شود که در مراحل ابتدایی توسعه و تکامل خود قرار دارد. هر تکنولوژی جدیدی در ابتدای شکل گیری خود قطعا با مسائل و مشکلاتی روبرو خواهد بود. یکی از مشکلات وب 3.0 امنیت است. مشکلات کلیدی امنیت وب 3.0 و راه های مقابله با آنها موضوع این مقاله است. تا انتها با ما همراه باشید.
مقدمه
وب 3.0 یک اینترنت غیرمتمرکز است و شامل استفاده از پروتکل های غیرمتمرکز می شود که بر روی بلاک چین مستقر شده و توسط ماشین های مجازی اجرا می شود. این برنامه های غیرمتمرکز قراردادهای هوشمند نامیده می شوند.
استفاده از وب 3.0 به طور گسترده ای با پول (در قالب ارزهای دیجیتال) و از طریق بازارهای DeFi و NFT مرتبط است. برنامه های مالی وب 3.0 در حال حاضر از موارد کلیدی در بازارهای غیرمتمرکز هستند. به هر حال، شما باید برای هر تراکنشی که انجام می دهید مقداری ارز دیجیتال خرج کنید. این پرداخت برای استخراج کنندگان و اعتبارسنج ها در ازای خدمات پردازش تراکنش شما انجام می شود.
اما وقتی سیستمی دارید که برای مقابله با جریان های نقدی طراحی شده است، باید آن سیستم به صورت ایمن ساخته شود. اما Web 3.0 در حال حاضر در مراحل اولیه توسعه خود قرار دارد و بیشتر شبیه فناوری آزمایشی است تا یک فناوری بی عیب و سالم و همانطور که امروزه برای اکثر فناوری های دیجیتال جدید رایج است، یکی از مشکلات اصلی بدر این زمینه، امنیت وب 3.0 است. با این حال، قبلاً سرمایههای مخاطرهآمیز قابل توجهی را دریافت کرده است که توسط پاداشهای فریبنده جذب شدهاند.
هر سرمایهگذاری فناوری جدیدی که پول کلانی در آن قفل شده و تعدادی از حفرههای اصلاح نشده در آن باقی مانده باشد، به طور طبیعی به یک مکان جذاب برای هکرهایی تبدیل میشود که مایلند از آنها برای منافع مالی خود استفاده کنند. علاوه بر این، ماهیت غیرمتمرکز وب 3.0 و عدم نیاز به ارائه اطلاعات شخصی شما، آن را برای مجرمان سایبری جذاب تر می کند. اینجاست که بحث امنیت وب 3.0 اهمیت خود را نشان می دهد.
اندازه سرمایه گذاری بهترین شاخص پتانسیل یک صنعت است. بنابراین، می توان با اطمینان گفت که وب 3.0 پتانسیل خوبی دارد که احتمالاً برخی از آنها استفاده نشده باقی می مانند. برای تقویت توسعه آن، استانداردهای امنیتی باید افزایش یابد.
تهدیدات اصلی برای امنیت DeFi چیست؟
امنیت وب 3.0 و تهدیدات موجود مرتبط با حملات سایبری در وب 3.0 را می توان در دو گروه قرار داد: آسیب پذیری در کد و آسیب پذیری در منطق تجاری قراردادهای هوشمند. گروه اول شامل استخراج های ماشین های مجازی، اضافه بارهای ممپول و حملات ورود مجدد است. آنها بر اساس بهره برداری از توابع و ترتیب اجرای دستورات خود ساخته شده اند.
در اصل، این سوء استفادهها به نرمافزار غیرمتمرکز به معنای سنتی آسیب نمیرسانند، همانطور که با حملات به زیرساختهای متمرکز فناوری اطلاعات و رایانههای شخصی اتفاق میافتد. آنها به سادگی از فرصت هایی که به طور ناخواسته توسط برنامه نویسان فراهم شده است استفاده می کنند.
این مشکلات می تواند به طرق مختلف اتفاق بیفتد. اغلب، توسعهدهندگان از پایه کد سایر پروژههای منبع باز استفاده میکنند، اما در عین حال تغییراتی در آن انجام میدهند که ممکن است جزئی به نظر برسد و بر روشهای عملکرد قرارداد هوشمند تأثیری نداشته باشد. با این حال، ممکن است در نهایت ثابت شود که اشتباه می کنند زیرا این اصلاحات می توانند مکانیسم های عملیات قرارداد هوشمند را به روش های پیش بینی نشده تحت تاثیر قرار دهند.
حملات ورود مجدد به عنوان یکی از انواع کلاسیک حملات پروتکل های غیرمتمرکز در تاریخ بلاک چین ثبت شده است. آنها با استفاده از ترازهای آن، به اصطلاح تابع تماس و عملکردهای موجود در قرارداد را هدف قرار می دهند. این توابع در قراردادهای هوشمند پروتکلهای وام استفاده میشود، زیرا برای نظارت بر وثیقه کاربر در پلتفرم و محاسبه میزان وجوهی که میتوانند وام بگیرند، مورد نیاز است.
هنگامی که کاربر وجوهی را قرض میکند، «عملکرد برگشت به تابع: callback function» را جستجو میکند، که موجودی کاربر را در قرارداد بررسی میکند و مقدار نقدینگی مربوطه را به عنوان وام صادر میکند. این فرآیند شامل سه عملیات است: بررسی موجودی کاربر، محاسبه موجودی کاربر پس از صدور وام و صدور وام.
بسته به سفارش اجرای این عملیات در تابع برگشتی، ممکن است راهی برای فریب دادن سیستم و گرفتن نقدینگی بیشتر از آنچه وثیقه شما اجازه می دهد وجود داشته باشد.
ابتدا بررسی موجودی انجام می شود و سپس یا صدور وام یا محاسبه موجودی تغییر یافته انجام می شود. اگر ابتدا وام صادر شود و در انتهای دنباله کد یک تابع برگشتی وجود داشته باشد، به کاربر این امکان را می دهد که فرآیند را از ابتدا شروع کند، در حالی که این تراکنش استخراج نشده و به بلاک چین اضافه نمی شود.
به عنوان مثال، شما 200 دلار وثیقه دارید و به ازای 100 دلار وثیقه خود، 100 دلار وام می گیرید. اگر وام ابتدا صادر شد و قبل از نهایی شدن اثرات اقدامات شما بر روی بلاک چین، درخواست پاسخ به تماس را دادید، می توانید وام دیگری را با مبلغ بدون تغییر وثیقه بگیرید. این روش میتواند چندین بار تکرار شود و به کاربر اجازه دهد تا نقدینگی قرارداد را تخلیه کند.
راه محافظت از قرارداد در برابر این تهدید سایبری در موضوع امنیت وب 3.0، الگوی چک-اثر-تعامل یا (checks-effects-interactions pattern) نامیده می شود. این الگو، محاسبه موجودی کاربر در قرارداد را قبل از صدور وجوه قرار می دهد. با این حال، این الگوی ساده برای حملات ورود مجدد بر روی خود تابع تماس مجدد کار میکند، اما دفاع از حملات مجدد با عملکرد متقابل دشوارتر است.
اما حملات ورود مجدد به دلیل طراحی چارچوب های جدید برای حذف آنها کمتر منظم می شوند. امروزه، هکرهای DeFi تلاش خود را بیشتر بر سوء استفاده از تناقضات در منطق تجاری قراردادهای هوشمند متمرکز می کنند و اغلب از پروتکل های متعددی برای سرقت وجوه استفاده می کنند. چنین حملاتی اغلب شامل خدمات flash-loan است که به شما امکان می دهد بدون ارائه وثیقه وام بگیرید.
یکی از بزرگترین حملات وام سریع یا flash-loan در دسامبر 2021 بر روی Cream Finance انجام شد که منجر به سرقت 130 میلیون دلار ارزهای دیجیتال و توکن شد. دو آدرس درگیر این حمله بودند که از پلتفرمهای flash-loan مانند میکردائو، آوه، Yearn.finance و Curve برای برداشت وجوه از Cream Finance استفاده کردند.
در پایان، مهاجم از حفره موجود در ارزیابی Cream’s PriceOracleProxy از قیمت cryUSD – استیبل کوین با دلار آمریکا، Cream سوء استفاده کرد.
PriceOracleProxy cryUSD را بر اساس قیمت استیبل کوین yUSDVault (stablecoin Yearn.finance) که در yUSD Yearn Vault نگهداری می شود، ارزش گذاری می کند.
مهاجم پس از دستکاری های متعدد با نقدینگی وام گرفته شده از میکردائو، هشت میلیون yUSD به هشت میلیون yUSDVault اضافه کرد. Cream Finance PriceOracleProxy این را به عنوان یک yUSDVault درک کرد که اکنون به جای یک دلار، 2 دلار قیمت دارد و قیمت cryUSD را دو برابر کرد.
بنابراین، مهاجم 3 میلیارد دلار در 1.5 میلیارد cryUSD دریافت کرد که از 1.5 میلیارد دلار yUSDVault استخراج شده بود. این کار به مهاجم اجازه داد بهره وام را بپردازد و 1 میلیارد دلار باقی مانده را برای تخلیه Cream Finance از نقدینگی به ارزش 130 میلیون دلار استفاده کند.
آینده وب 3.0 چه خواهد بود؟
برای ایمن تر کردن و حل مشکل امنیت وب 3.0، استانداردهای امنیتی باید افزایش یابد. این امر از ابتدا به نیروی کار شایسته برای ساخت وب 3.0 و متخصصان امنیتی واجد شرایطی که برای شرکت های Web 3.0 کار می کنند نیاز دارد. در حالی که DeFi و سایر نهادهای وب 3.0 دارای سطوح بالایی از خطر هستند و امنیت امنیت وب 3.0 همچنان بحث برانگیز است، انتظار اینکه عموم مردم از وب 3.0 استقبال کنند، غیرمنطقی است. برای انجام سریعتر فرایند ایمن کردن وب 3.0، همچنین میتوانیم بهترین شیوههای امنیتی را از CeFi اتخاذ کرده و در سیستمهای غیرمتمرکز پیادهسازی کنیم.