خلاصه
- پروژههای گیم فای با چالشهای امنیتی مختلفی رو به رو هستند که میتوان آنها را در دو دسته کلی درون زنجیرهای و برون زنجیرهای تقسیم کرد.
- چالشهای امنیتی درون زنجیرهای عمدتاً شامل مدیریت توکنهای ERC-20 و توکنهای NFT، امنیت پلهای بین زنجیرهای و حاکمیت سازمانهای مستقل غیرمتمرکز (DAO) هستند.
- چالشهای برون زنجیرهای بیشتر به سرورها و اینترفیسهای وب ارتباط دارند.
- پروژههای گیم فای باید به تدابیر امنیتی اولویت بدهند مثل بازرسیهای جدی، اسکن آسیبپذیری، تست نفوذ، پیاده سازی اصول توصیه شده و کنترلهای بیزنسی.
مقدمه
گیم فای تکنولوژی بلاکچین را با گیمینگ ترکیب میکند تا پلتفرمهایی غیرمتمرکز ایجاد کند که ارزهای دیجیتال و داراییهای درون بازی را در اختیار کاربران قرار میدهند. معمولاً گیم فای شامل یک مدل بازی برای درآمدزایی (play-to-earn یا به اختصار P2E) است که به کاربران امکان میدهد پاداشهایی در قالب ارز دیجیتال به دست آورند. همچنین، گیم فای امکان مالکیت واقعی و کنترل کامل داراییهای درون بازی را برای کاربران فراهم میکند.
گیم فای روزبروز محبوبتر میشود اما همیشه با تهدیدات چشمگیر و مستمری از سمت هکرها روبرو بوده است. برخی پروژهها اولویت سرعت را بیشتر از کیفیت در نظر میگیرند در نتیجه فاقد تدابیر امنیتی قوی هستند و همین مسئله سازندگان و جامعه کاربران چنین پروژههایی را در معرض زیان چشمگیر قرار میدهد.
چرا امنیت گیم فای اهمیت زیادی دارد؟
در سال 2021 گیم فای رشد چشمگیری را تجربه کرد و مدل P2E این حوزه فرصتهای درآمدزایی جدیدی برای گیمرها فراهم کرد. در سال 2022 پروژههای move-to-earn (حرکت برای درآمد) پتانسیل رشد گیم فای را به تصویر کشیدند. گیم فای در سال 2022 مهمترین بخش حوزه کریپتو بود، حدود 9.5 درصد از کل سرمایههای این صنعت به گیم فای اختصاص داشت و رشد یک ساله آن بیش از 118 درصد بود.
گیم فای با گیمینگ سنتی تفاوت دارد چون کاربران در آن موجودی بیشتری را در معرض خطر دارند و هر هک میتواند پیامدهای چشمگیری برای آنها داشته باشد. در شرایط حاد، رخنههای امنیتی میتوانند عمر یک پروژه را پایان دهند.
مثلاً در سال 2022 مهاجمان میتوانستند از یک در پشتی موجود در یک نود RPC[1] (فراخوان پروسیجر از راه دور) برای به دست آوردن امضاء در بازی اکسی اینفینیتی استفاده کنند و با این کار امکان برداشت حدود 600 میلیون دلار اتریوم را پیدا کردند. وجود هر گونه آسیبپذیری در پروژههای گیم فای میتواند سرمایه گذاران و گیمرها را در معرض زیانهای چشمگیری قرار دهد و این موضوع نشان دهنده اهمیت بسیار زیاد امنیت گیم فای است.
چالشهای امنیتی درون زنجیرهای
آسیبپذیری توکنهای ERC-20
توکنهای ERC-20 کاربرد زیادی در پروژههای گیم فای دارند و از آنها به عنوان ارز مجازی برای خریدهای درون بازی، پاداش دادن به گیمرها و به عنوان ابزار داد و ستد استفاده میشود.
ضعف در تولید و مدیریت توکنهای ERC-20 میتواند مشکلات امنیتی مهمی ایجاد کند. یکی از این آسیبپذیریهای رایج موسوم به بازورود (یا بازدخولی) میتواند در فرایند مینت کردن توکنهای NFT وجود داشته باشد. مهاجمان میتوانند از حفرههای امنیتی منطقی موجود در یک قرارداد هوشمند برای اجرای مکرر یک تابع خاص استفاده کنند که در چنین شرایطی امکان تولید نامحدود توکنها وجود دارد.
امنیت و ثبات توکنهای ERC-20 به عنوان ارزهایی بسیار پرکاربرد در بازیها، بر ثبات و قابلیت اجرای یک بازی تأثیرگذار است. بنابراین، پروژهها باید از درست بودن منطق کدها اطمینان حاصل کرده و موجودی کلی توکنهای ERC-20 را با دقت کنترل کنند.
پروژه P2E DeFi Kingdoms هم در سال 2022 هدف حمله مینت مخرب ERC-20 قرار گرفت. برخی از کاربران از آسیبپذیری منطق این بازی برای مینت کردن توکنهای قفل شده بازی استفاده کردند که این اقدام باعث ریزش قیمت توکن بازی شد.
آسیبپذیریهای NFT
توکنهای NFT بیشتر به عنوان داراییهای درون بازی در پروژههای گیم فای کاربرد دارند از جمله به عنوان تجهیزات، محصول و رهآوردهای بازی. این توکنها یک سیستم مالکیتی شفاف ایجاد کرده و امکان حفظ ارزش آنها از طریق کنترل تورم و حفظ کمیابی وجود دارد. اما استفاده نادرست از توکنهای NFT میتواند منجر به ایجاد آسیبپذیریهای امنیتی شود.
ارزش توکنهای NFT در کمیابی تجهیزات یا لوازم منعکس میشود و معمولاً پلیرها به دنبال کمیابترین توکنهای NFT هستند. حین اجرای فرایند مینت کردن NFT، میتوان از اطلاعات مربوط به بلاک مثل برچسب زمانی به عنوان یک منبع تصادفی برای تولید توکنهای NFT با سطوح کمیابی متفاوت استفاده کرد. ماینر میتواند برچسب زمانی بلاک را تا حدی دستکاری کند با این هدف که NFTهای کمیابتر را تولید کند.
حتی یک منبع قابل اطمینان برای ایجاد خصوصیت تصادفی بودن مثل VRF (تابع تصادفی قابل تأیید) چین لینک، هم همه ریسکها را از بین نمیبرد. کاربران مخرب میتوانند هنگام مینت کردن توکنهای NFT با شناسههای ناخواسته این عملیات را فراخوانی کنند و این فرایند را بارها تکرار کنند تا یک NFT کمیاب تولید شود.
وقتی پلیرها توکنهای NFT را ترید کرده و منتقل میکنند امکان بروز آسیبپذیریهای قراردادهای هوشمند وجود دارد. مثلاً برای انتقال توکنهای ERC-721 NFT از تابع safeTransferFrom() استفاده میشود. وقتی گیرنده یک آدرس قرارداد باشد، تابع onERC721Received() برای کال بک فراخوانی میشود. در این حالت ریسک اجرای حملات بازورود ایجاد میشود که در آن مهاجمان میتوانند منطق تابع را در ERC721Received() تعیین کنند.
این ریسک در توکنهای ERC-1155 NFT هم وجود دارد که در آنها تابع safeTransferFrom()، تابع onERC1155Received() را تریگر میکند و مهاجمان میتوانند حمله بازورود را اجرا کنند.
آسیبپذیریهای پل
در گیم فای از پلهای بین زنجیرهای استفاده میشود تا کاربران بتوانند آیتمهای درون بازی را بین شبکههای مختلف مبادله کنند. این پلها برای ارتقای تجربیات گیم فای و نقدینگی ضروری هستند.
یکی از مهمترین ریسکهای پلهای بین زنجیرهای در گیم فای، ناسازگاریهای بین داراییهای درون بازی است. قراردادهای هر دو سمت پل باید طوری طراحی شده باشند که همواره مقدار یکسانی از داراییها پذیرفته و سوزانده شود. اما به دلیل وجود حفرههایی در قراردادها در زمینه اعتبارسنجی و حسابداری، مهاجمان میتوانند با استفاده از همین حفرهها تعداد زیادی دارایی را بی هیچ هزینهای تولید کنند.
آسیبپذیریهای حاکمیت DAO
خیلی از پروژههای گیم فای تحت مدیریت سازمانهای مستقل غیرمتمرکز (DAO) قرار دارند که اگر اکثر توکنهای حاکمیتی این پروژهها در اختیار عده کمی باشد، ریسک متمرکز شدن را به وجود میآورند. قراردادهای هوشمندی که قوانین حاکمیت DAO را تعریف میکنند یکی دیگر از مسیرهای احتمالی حمله هستند چون هکرها میتوانند راهی برای دسترسی به خزانه DAO پیدا کنند.
چالشهای امنیتی برون زنجیرهای
بیشتر پروژههای گیم فای هنوز برای عملیات بک-اند، اینترفیس وب یا اپلیکیشنهای موبایل به سرورهای متمرکز برون زنجیرهای متکی هستند. این سرورها حاوی اطلاعات حیاتی هستند از جمله دادههای بازی و حساب مالکان و در برابر حملات مخربی مثل بدافزار اسب تروجان و رخنههای امنیتی آسیبپذیر هستند.
در رابطه با توکنهای NFT، ابردادهها میتوانند حاوی اطلاعات توضیحی مهمی باشند و به صورت برون زنجیرهای و در قالب فایلهای JSON ذخیره میشوند. اما خیلی از پروژههای گیم فای ابر دادههای NFT را به جای زیرساختهای غیرمتمرکز مثل IPFS روی سرورهایی متمرکز ذخیره میکنند. این رویکرد احتمال دستکاری ابردادهها توسط مهاجمان یا اشخاص ثالث را افزایش میدهد که میتوانند به حقوق پلیرها تجاوز کنند.
در رابطه با پلهای بین زنجیرهای، ممکن است مهاجمان کلیدهای خصوصی یا امضاهای اعتبارسنجها را از طریق حملات فیشینگ یا نفوذ به دست آورند. این افراد میتوانند به زیرساختها نفوذ کنند و برای کنترل داراییهای درون بازی، اکسپلویت اجرا کنند.
حین نقل و انتقال دادهها، مهاجمان میتوانند با استفاده از کدهای مخرب بستههای شبکه را سرقت کنند. آنها میتوانند با تغییر پکیجهای داده، مبلغ را تغییر داده یا مقدار آیتم خریداری شده با همان مبلغ را افزایش دهند.
اینترفیسهای فرانت-اند هم راه دیگری برای نفوذ به سیستم برای مهاجمان فراهم میکنند. اگر اطلاعات تابلوی امتیاز یک بازی فاش شود، مهاجمان میتوانند اطلاعات فاش شده مربوط به آدرس را به سرور ارسال کنند تا اطلاعات حساس مربوطه را به دست آورند.
راههای ارتقای امنیت
برای حفاظت از امنیت پروژههای گیم فای، باید در همه مراحل احتیاط لازم را در نظر داشت. کسب اطمینان از بی نقص بودن کدهای قراردادهای هوشمند، پایه و اساس یک پروژه گیم فای موفق است و این شامل نوشتن کدهای باکیفیت، اجرای بازرسیهای منظم و استفاده از اعتبارسنجیهای رسمی قراردادهای هوشمند است.
حفظ امنیت سرورها و سایر اجزای زیرساخت هم حیاتی است. برای تشخیص آسیبپذیریها باید تست نفوذ اجرا شود. در سیستمهای مبتنی بر بلاکچین و اپلیکیشنهای غیرمتمرکز، برای تست نفوذ باید به قابلیتهای وب 3 هم توجه داشت و لازم است برای پروتکلهای غیرمتمرکز و والتهای دیجیتال موارد احتیاطی خاصی در نظر گرفته شود.
پروژههای گیم فای باید به سایر اصول توصیه شده هم پایبند باشند از جمله داشتن یک فرایند رانتایم امن و پاسخهای اضطراری کامل. گزینه دوم شامل نظارت بر رویدادهای امنیتی تریگر شده، ایمن سازی محیط و اجرای طرحهای شکار باگ است.
در عین حال، پروژهها باید یک فرایند واکنش اضطراری کامل داشته باشند که جنبههایی مثل حذف حد توقف، پیگیری حمله و تحلیل مشکلات را شامل میشود.
کلام آخر
آسیبپذیریهای امنیتی گیم فای از آنچه در این مقاله بررسی شد بسیار وسیعتر هستند و حوادث مختلف نشان دادهاند که برخی پروژهها ریسکهای امنیتی را نادیده میگیرند. گیم فای بخش مهمی از آینده گیمینگ است. بنابراین، پروژههای این حوزه باید همیشه به مسائل امنیتی توجه داشته باشند و به منافع جامعه کاربری خودشان اولویت دهند.
[1] Remote Procedure Call