✨ خلاصه هوش مصنوعی
- قراردادهای هوشمند مزایای بیشماری ارائه میدهند، اما در برابر آسیبپذیریها مصون نیستند.
- این پست وبلاگ، خطرات امنیتی رایج مانند حملات ورود مجدد، frontrunning، سرریز عدد صحیح، وابستگی به مهر زمانی، حملات DoS و force-feeding را برجسته میکند.
- این مقاله بر اهمیت غلبه بر این آسیبپذیریها از طریق تکنیکهای حسابرسی قراردادهای هوشمند مانند حسابرسی دستی (شامل مستندسازی و تحلیل مشخصات) و حسابرسی خودکار (فازیسازی، آزمایش و تحلیل استاتیک) تأکید میکند.
- این پست تأکید میکند که بهکارگیری یک تیم ماهر از حسابرسان، مانند اعضای Antier، برای امنیت مؤثر قراردادهای هوشمند بسیار مهم است.
- آنتیِر خدمات جامع توسعه و حسابرسی قراردادهای هوشمند متناسب با الزامات فنی خاص ارائه میدهد.
بیایید با آن روبرو شویم، قراردادهای هوشمند یک راه حل ایدهآل با مزایای بیشماری از نظر بهرهوری هزینه، دقت و اعتماد در مقایسه با قراردادهای سنتی هستند. با این حال، قراردادهای هوشمند، درست مانند سایر برنامهها، مستعد آسیبپذیریها و خطاهای متعددی هستند. بنابراین، شناسایی راههایی برای غلبه بر آسیبپذیریهای امنیتی قراردادهای هوشمند ضروری است. با این حال، قبل از ادامه، نگاهی به برخی از خطرات رایج که ممکن است در طول فرآیند توسعه قرارداد هوشمند ایجاد شوند، بیندازید.
آسیبپذیریهای امنیتی رایج در قراردادهای هوشمند
- حمله بازگشت به جو
حملهی ورود مجدد زمانی رخ میدهد که عوامل مخرب از «باگ ورود مجدد» برای فراخوانی مکرر یک تابع در قرارداد هوشمند قبل از اجرای برنامهی موجود استفاده میکنند. سوءاستفادهکنندگان به صورت بازگشتی تابعی را برای برداشت وجوه قرارداد فراخوانی میکنند و تهدیدات جدی برای دادههای کاربران ایجاد میکنند.
- جلو زدن
پیشروی (frontrunning) فرآیندی است که در آن ترتیب پردازش تراکنشهای آتی درک شده و یک تراکنش در صف مقدم قرار میگیرد تا فعالیتهای مخرب انجام شود. عاملان مخرب میتوانند با فرض زمان و ترتیب اجرای آنها، توابع و دستورالعملهای تماس هوشمند را از قبل تجزیه و تحلیل کنند. چنین حملاتی عمدتاً در پلتفرمهای عمومی بلاکچین رخ میدهد و توسط ماینرها در طول معاملات کریپتو نیز مورد استفاده قرار میگیرد.
- سرریز عدد صحیح
توسعهدهندگان در توسعه قراردادهای هوشمند زمانی با سرریز عدد صحیح مواجه میشوند که برنامه یک عملیات ریاضی را اجرا کند که از حداقل یا حداکثر عدد نمایش داده شده توسط انواع دادهها فراتر رود. به عنوان مثال، سالیدیتی تا اعداد ۲۵۶ بیتی را مدیریت میکند. از این رو، افزایش و کاهش مقدار به اندازه ۱ به ترتیب منجر به سرریز و سرریز میشود.
- وابستگی مهر زمانی
هکرها میتوانند به راحتی تابع block.timestamp را دستکاری کنند، زیرا حاوی کد تراکنش است و برای اجرای منطق حیاتی استفاده میشود. شناسایی بخشهایی از کد قرارداد هوشمند که وابستگی به timestamp بر رفتار قرارداد تأثیر میگذارد، بسیار آسان است.
- حمله DoS (انکار سرویس)
مهاجمان به صورت بازگشتی تابع bid() را فراخوانی میکنند تا از ارائه پیشنهادات توسط سایر کاربران جلوگیری کرده و مانع از عملکرد صحیح قرارداد شوند. علاوه بر این، تابع fallback() میتواند توسط هکرها برای معکوس کردن هرگونه پرداخت در شبکه نیز استفاده شود.
- تغذیه اجباری
بازیگران مخرب با انتقال اجباری اتر به قراردادهای هوشمند، بررسیهای موجودی را دستکاری میکنند. این کار میتواند با ایجاد و تأمین مالی یک قرارداد با ۱ وی و فراخوانی تابعی که اجازه فراخوانی کد را نمیدهد، انجام شود.
بهترین خدمات حسابرسی قرارداد هوشمند را دریافت کنید
برنامه نمایشی رایگان را برنامه ریزی کنیدتکنیکهای برجسته حسابرسی برای از بین بردن آسیبپذیریهای امنیتی قرارداد هوشمند
یک متخصص توسعه قرارداد هوشمند میتواند از هر دو روش حسابرسی خودکار یا حسابرسی دستی برای اجرای یک عملیات حسابرسی کامل استفاده کند.
۱. حسابرسی دستی
تیمی از ارائهدهندگان خدمات توسعه قرارداد هوشمند، کد را به صورت دستی بررسی میکنند تا حملات ورود مجدد، مشکلات کامپایل و شیوههای ضعیف رمزگذاری را پیدا کنند. علاوه بر شناسایی اشکالات در کد برنامه، انجام ممیزی دستی به حسابرسان اجازه میدهد تا خطاهای پنهان و مشکلات طراحی را تشخیص دهند. در اینجا برخی از تکنیکهای ممیزی دستی که توسط حسابرسان امنیت قرارداد هوشمند دنبال میشوند، آورده شده است:
- تحلیل مستندات
این یکی از وقتگیرترین تکنیکهای حسابرسی دستی است زیرا حسابرسان باید کل سند را به همراه جزئیاتی مانند طراحی محصول و الزامات معماری بررسی کنند. این تکنیک به حسابرسان اجازه میدهد تا محدودیتهای برنامه، جریان داراییها، تعامل بین قراردادها، مدلهای تهدید، اقدامات کاهش ریسک و موارد دیگر را درک کنند.
- تحلیل مشخصات
این فرآیند نظارت بر مستندات دقیق پروژه است که مشخصات محصول را مشخص کرده و طراحی عملکردی را ترسیم میکند. حسابرسان میتوانند با انجام تجزیه و تحلیل مشخصات، هرگونه کاستی یا فرضیات ایجاد شده در طول توسعه و طراحی پروژه را شناسایی کنند.
2. حسابرسی خودکار
ابزارهای حسابرسی امنیتی قرارداد هوشمند برای یافتن خودکار خطاها و تشخیص اشکالات استفاده میشوند. حسابرسی خودکار روی پروژههایی انجام میشود که زمان سریعتری برای عرضه به بازار دارند. در اینجا چند روش حسابرسی که تحت حسابرسی خودکار قرار میگیرند، آورده شده است:
- گیج کننده
آزمایش فازی فرآیند آزمایش خودکار قراردادها با ادغام آنها با خروجیهای غیرمنتظره و تصادفی است. فازی کردن، حسابرسان را قادر میسازد تا آسیبپذیریهای قراردادهای هوشمند مانند نشت حافظه، خرابیها، درجهای ناموفق کد داخلی و موارد دیگر را شناسایی کنند.
- تست
آزمایش قرارداد هوشمند برای بررسی اینکه آیا برنامه طبق انتظار عمل میکند یا خیر، انجام میشود. این تکنیک مشابه آزمایش توسعه نرمافزار است که به حسابرسان کمک میکند تا بلوغ پروژه را نشان دهند و چندین مورد حاشیهای برای ارزیابی آسیبپذیری ارائه دهند.
- تجزیه و تحلیل استاتیک
این ترکیبی از تحلیل جریان داده و تحلیل جریان کنترل است. از حلقههای بینهایت گرفته تا دستورات بازگشتی، تحلیل جریان کنترل برای بررسی جریان کنترل در کل برنامه انجام میشود. از سوی دیگر، تحلیل جریان داده نحوه استفاده، ذخیره و سازماندهی مجدد دادهها در سراسر برنامه را تعیین میکند.
سخن نهایی
انجام تمام تکنیکهای امنیتی قراردادهای هوشمند همانطور که در بالا ذکر شد، نیاز به یک تیم کامل از حسابرسان قراردادهای هوشمند دارد. با این حال، همه حسابرسان قادر به اجرای فرآیند حسابرسی قراردادهای هوشمند نیستند . بنابراین، توصیه میشود در چنین شرایطی با یک ارائه دهنده برتر خدمات توسعه قراردادهای هوشمند مانند Antier تماس بگیرید.
این شرکت تیمی از حسابرسان امنیتی ماهر را در اختیار دارد تا به کسبوکارها در ارائه خدمات توسعه و حسابرسی قراردادهای هوشمند مطابق با نیازهای فنیشان کمک کند. آنتیِر در طول چند سال گذشته به مشتریانی از صنایع مختلف با خدمات پیشرفته توسعه قراردادهای هوشمند خدمترسانی کرده است. همین امروز با حسابرسان امنیتی ما تماس بگیرید تا نیازهای توسعه قراردادهای هوشمند خود را با ما در میان بگذارید.







