گوناگون

بازبینی کد audit در قراردادهای هوشمند به چه

در این سری مقالات امنیتی به زبان ساده، قصد داریم به موضوع بررسی کد (Audit) در قراردادهای هوشمند بپردازیم. بررسی کد تجزیه و تحلیل دقیق کدهای قرارداد هوشمند را ارائه می دهد. بررسی کد برای محافظت از وجوه سرمایه گذاری شده در سیستم عامل های DeFi بسیار مهم است. با توجه به غیرقابل برگشت بودن تمامی تراکنش ها در بلاک چین، این مورد اهمیت خود را بیش از پیش نشان می دهد. پس از بررسی و تست کدها، گزارشی توسط تیم بررسی ارائه می شود که نقاط ضعف کدها و موارد قابل بهبود را برجسته می کند. تیم توسعه پس از مطالعه این گزارش موارد ذکر شده را تصحیح خواهد کرد. با دیجی کالا مگ همراه باشید تا ببینیم این بررسی چگونه انجام می شود.

معرفی

بررسی امنیتی کدهای قرارداد هوشمند در اکوسیستم مالی غیرمتمرکز (DeFi) بسیار رایج است. اگر در یک پروژه بلاک چین سرمایه گذاری کرده اید، ممکن است تصمیم شما تا حد زیادی بر اساس نتایج بررسی کد قرارداد هوشمند باشد. بیایید روش‌ها، ابزارها و یافته‌هایی که معمولاً در بررسی‌های امنیتی قراردادهای هوشمند یافت می‌شوند را بررسی کنیم تا بتوانید تصمیمات آگاهانه‌تری بگیرید.

بررسی کد در قرارداد هوشمند چیست؟

بازبینی کد audit در قراردادهای هوشمند به چه

طی یک بررسی، کدهای قرارداد هوشمند یک پروژه بررسی و ارزیابی می شود. این قراردادها معمولاً به زبان برنامه نویسی Solidity نوشته می شوند و در GitHub میزبانی می شوند. بررسی امنیتی کدهای قرارداد هوشمند به ویژه برای پروژه هایی با تراکنش های چند میلیون دلاری که کاربران زیادی دارند، اهمیت دارد. فرآیند بررسی کد به طور کلی شامل چهار مرحله زیر است:

1. کدهای قرارداد هوشمند برای تجزیه و تحلیل اولیه به تیم بررسی ارائه می شود.

2. تیم بررسی نتایج تجزیه و تحلیل ها را به توسعه دهندگان گزارش می دهد تا بر اساس این نتایج تغییراتی در پروژه ایجاد شود.

3. تیم پروژه تغییراتی را در پروژه بر اساس گزارش اولیه در خصوص ایرادات ذکر شده ایجاد می کند.

4. گزارش نهایی توسط تیم بررسی ارائه می شود که در آن تمامی ایرادات با اصلاحات انجام شده منتشر می شود.

بررسی قرارداد هوشمند هنگام سرمایه گذاری در پروژه های جدید DeFi ضروری است. این فرآیند به استانداردی برای پروژه هایی تبدیل شده است که قصد دارند توجه بسیاری از کاربران را به خود جلب کنند، از جمله بررسی کدهای قرارداد هوشمند توسط برخی از شرکت های پیشرو امنیت سایبری مانند Certik، Quantstamp، Hacken و ConsenSys Diligence باعث می شود کاربران بیشتری به آنها اعتماد کنند. پروژه ها.

چرا بازنگری در کد قرارداد هوشمند ضروری است؟

از آنجایی که سرمایه زیادی در قراردادهای هوشمند معامله می شود یا قفل می شود، هکرها به طور فزاینده ای به آن علاقه مند می شوند. اگر یک خطای امنیتی در قراردادهای هوشمند رخ دهد، سرمایه بسیار زیادی در معرض خطر قرار خواهد گرفت. به عنوان مثال، حدود 60 میلیون دلار ETH در حمله به بلاک چین اتریوم DAO از دست رفت و به همین جا ختم نشد و در نتیجه شبکه اتریوم هارد فورک ایجاد شد.

از آنجایی که تراکنش های روی بلاک چین غیرقابل برگشت هستند، اطمینان از ایمن بودن کد پروژه ضروری است. ماهیت بسیار امن فناوری بلاک چین، بازیابی وجوه و حل مشکلات را پس از تراکنش دشوار می کند، بنابراین بهتر است حتی اگر مجبور به پرداخت هزینه های بالا باشیم، از آسیب های احتمالی جلوگیری کنیم.

بررسی کد قرارداد هوشمند چگونه انجام می شود؟

هر شرکت امنیتی از تکنیک های خاص خود برای بررسی کد استفاده می کند، اما روند کلی تقریباً یکسان است. مراحل بررسی کد به شرح زیر است:

1. قرارداد هوشمند و معماری پروژه توسط تیم تعریف شده و هدف بررسی کد مشخص می شود. به این ترتیب، تیم بررسی می داند که اهداف پروژه برای نوشتن و استفاده از کد چیست.

2. برآورد هزینه ارائه شده است.

3. تیم بررسی شروع به انجام آزمایش دستی و خودکار می کند.

4. گزارش اولیه از عیوب یافت شده به تیم پروژه ارائه می شود تا مسائل را برطرف کنند.

5. گزارش نهایی مسائل و رفع مشکلات پروژه به صورت مستند ارائه می شود.

روش های بررسی کد

fuzqamv بازبینی کد audit در قراردادهای هوشمند به چه

بهره وری

بررسی کد قرارداد هوشمند فقط مربوط به مسائل امنیتی نیست. برعکس، آنها نیز بر کارایی و بهینه سازی متمرکز هستند. برخی از قراردادها مجموعه پیچیده ای از معاملات را برای انجام تجارت خود انجام می دهند. از آنجایی که هزینه های GAS در شبکه هایی مانند اتریوم بسیار زیاد است، قراردادهای با بازده بالا می توانند هزینه های تراکنش را به میزان قابل توجهی کاهش دهند.

بهینه سازی عملکرد نیز مهارت توسعه دهنده را نشان می دهد. روش های ناکارآمد خطر شکست بیشتری را ارائه می دهند و باید از آنها اجتناب شود. صرفه جویی در کارمزد تراکنش ها، کاربران زیادی را به پلتفرم ها جذب می کند.

نقاط ضعف امنیتی قرارداد

بررسی کد معمولاً شامل یافتن آسیب‌پذیری‌های امنیتی قراردادی است. برخی از این نقاط ضعف را می توان به راحتی شناسایی کرد. اما یافتن بیشتر نقاط ضعف نیازمند تکنیک ها و استراتژی های پیچیده است. به عنوان مثال، از طریق قراردادهای هوشمند ضعیف، می توان بازار را دستکاری کرد و حملات «وام فوری» را اجرا کرد. برای شبیه‌سازی حملات، تیم‌های امنیتی تکنیک «تست شکست» را انجام می‌دهند. برخی از آسیب پذیری های رایج عبارتند از:

1. ورود مجدد: این حمله زمانی رخ می دهد که یک تابع دستور فراخوانی خارجی به یک قرارداد نامعتبر را بدهد. سپس قرارداد تایید نشده به عملکرد اصلی برای سرقت دارایی ها باز می گردد.

2. Integer Overflow & Underflow: زمانی که یک عملیات محاسباتی توسط قرارداد هوشمند انجام می شود، اما خروجی از ظرفیت حافظه اصلی فراتر می رود. (معمولا 18 رقم اعشار). این باعث می شود که نتیجه محاسبه تغییر کند.

3. Front Running: Front Running عبارت است از “انجام معامله قبل از یک تراکنش خاص با دانش قبلی”. در صورت عدم ساختار صحیح کدها، هشداری برای خرید و فروش در بازار ایجاد می شود. در نتیجه افراد دیگر از این اطلاعات سوء استفاده کرده و بر اساس آن معامله می کنند.

آسیب پذیری های امنیتی پلتفرم

بیشتر بررسی ها شامل ارزیابی شبکه میزبان قراردادها و حتی API مورد استفاده برای ارتباط با برنامه غیرمتمرکز است. ممکن است یک پروژه در برابر حملات DDoS دچار اختلال شود یا رابط کاربری وب سایت آن آلوده شود. در این صورت، کاربرانی که کیف پول خود را به برنامه های بلاک چین مخرب متصل کرده اند در معرض خطر قرار خواهند گرفت.

گزارش مرور کد چیست؟

گزارش بررسی در پایان فرآیند به پروژه ارائه می شود. تیم توسعه مسئول به اشتراک گذاری اطلاعات گزارش با کاربران و اعضای جامعه است. در غیر این صورت، رتبه شفافیت پروژه کاهش می یابد و افراد کمتری به آن اعتماد می کنند. بیشتر این گزارش‌ها، آسیب‌پذیری‌های یافت شده را بر اساس سطح ریسک امنیتی در دسته‌های مختلف طبقه‌بندی می‌کنند. همچنین ذکر شده است که پروژه تا چه زمانی امکان اصلاح ایرادات را برای دریافت گزارش نهایی دارد.

یک گزارش استاندارد باید شامل خلاصه ای از اطلاعات، کدهای نمونه زباله و توصیه ها باشد. همچنین باید توضیح دهد که نقص های موجود در کد کجا هستند. پس از انجام اقدامات در مورد گزارش اولیه، گزارش نهایی توسط تیم بررسی منتشر می شود.

مقدمه ای بر تیم های بررسی کد

dr5o0qb بازبینی کد audit در قراردادهای هوشمند به چه

CertiK

CertiK به عنوان قابل اعتمادترین تیم بررسی کد شناخته می شود و کدهای قرارداد هوشمند صدها پروژه توسط آنها بررسی شده است. از جمله قراردادهای PancakeSwap که بزرگترین سازنده بازار خودکار BSC است. در تصویر زیر بخشی از گزارش بررسی سرتیک برای تعویض پنکیک را مشاهده می کنید.

rz9nqq7 بازبینی کد audit در قراردادهای هوشمند به چه

بخشی از سایت CertiK به پروژه های ارزیابی شده اختصاص داده شده است تا بتوانید آنها را با هم مقایسه کنید. هر یک از پروژه ها دارای امتیازی هستند که سطح امنیت آن را نشان می دهد. در قسمت دیگری از این سایت می توانید لیست پروژه های در دست بررسی را مشاهده کنید.

2v783er بازبینی کد audit در قراردادهای هوشمند به چه

ConsenSys Due Diligence

ConsenSys توسط جوزف لوبین (یکی از بنیانگذاران اتریوم) راه اندازی شد و یکی از معروف ترین موسسات رمزنگاری در زمینه توسعه بلاک چین است. این تیم مسئول بررسی قراردادهای هوشمند اتریوم است. همچنین مجهز به سرویس تأیید قرارداد خودکار EVM است.

هزینه بررسی کد قرارداد هوشمند

هزینه دقیق به تعداد قراردادهای هوشمند بررسی شده و اعتبار تیم بررسی بستگی دارد. فرآیند بررسی معمولاً هزاران دلار هزینه دارد. یک پروژه بزرگ باید حدود 10000 دلار برای بررسی کد خود بپردازد.

نتیجه

خوشبختانه، بررسی کد قرارداد هوشمند به یک استاندارد پایه تبدیل شده است. با این حال، زمانی که تمام پروژه های DeFi دارای این گواهی هستند، دیگر نمی توان پروژه ها را بر این اساس ارزیابی کرد، در این مرحله شما باید شخصا گزارش های بررسی پروژه را مطالعه کنید تا تصمیم نهایی را بگیرید. حتی بدون داشتن دانش فنی، می توان از اطلاعات موجود در آنها نتیجه گیری و تصمیم گیری کرد. البته تصمیمات سرمایه گذاری شما باید همیشه گسترده و بر اساس معیارهای مختلف باشد.

منبع: halborn / hackernoon / بایننس آکادمی

فناوری بلاک چین و برنامه های غیرمتمرکز به قرارداد هوشمند متکی هستند. این ویژگی های جدید مشکل اعتماد و واسطه ها را از بین برده و درهای جدیدی را به روی کاربران باز کرده است تا کارها را با سرعت و امنیت بالا انجام دهند. اما این موضوع فنی و پیچیده مانند سایر فناوری های جدید در این زمینه با مشکلاتی مواجه می شود. وجود خطاها و نقص ها می تواند باعث ایجاد مشکل در عملکرد بلاک چین یا تراکنش ها شود و حتی مبنایی برای حملات هکری قرار دهد. اصلاح کد قرارداد هوشمند می تواند یکی از راه های موثر برای جلوگیری از این مشکلات باشد.

در واقع مزیت و ویژگی مهم قراردادهای هوشمند ممکن است به طور غیرمنتظره ای به نقطه ضعف آنها تبدیل شود. قراردادهای هوشمند به طور خودکار وظایف را اجرا می کنند و نیاز به واسطه ها و ناظران شخص ثالث را از بین می برند. با این حال، اگر این کدهای رمزگذاری شده خود دارای نقص باشند، به راحتی می توانند امنیت و شفافیت کل شبکه را به خطر بیندازند. زیرا پس از پیاده سازی، هیچ شخص ثالثی مسئولیت صحت عملکرد آنها را ندارد و اصلاح کدهای پیاده سازی شده در بلاک چین غیرممکن خواهد بود. به همین دلیل بازنگری در کد قرارداد هوشمند بسیار مهم است.

در این مقاله با ذکر انواع آسیب‌پذیری‌ها و مسائل احتمالی قراردادهای هوشمند، دید بهتری از دلیل و روش بررسی کد این قراردادهای رمزنگاری ارائه می‌کنیم. علاوه بر این، نکاتی را که باید هنگام بازنگری در کد قرارداد هوشمند در نظر گرفته شود، برجسته می‌کنیم. در پایان با برخی از شرکت های تضمین کننده این قراردادها آشنا می شویم و به شرایط و هزینه های این فرآیند نگاه می کنیم.

بررسی کد قرارداد هوشمند (Audit) چیست؟

قبل از پرداختن به موضوع بررسی قراردادهای هوشمند، بهتر است مفهوم قراردادهای هوشمند را بدانید. به طور خلاصه، قراردادهای هوشمند، پروتکل‌های تراکنش کامپیوتری هستند که برای اجرای شرایط خاص قرارداد طراحی شده‌اند. این قراردادهای رمزنگاری، واسطه ها را حذف می کنند و با رعایت دقیق مفاد قراردادها، خطر حوادث و استثناء را به حداقل می رساند.

1b1cwj1 بازبینی کد audit در قراردادهای هوشمند به چه

در حال حاضر، قراردادهای هوشمند طیف وسیعی از وظایف، از جمله مدیریت زنجیره تامین، توزیع توکن و رای‌گیری انتخاباتی را ممکن می‌سازد. با این حال، این کدهای رمزگذاری شده نیز مانند هر نرم افزار دیگری دارای آسیب پذیری های امنیتی هستند. بنابراین، قبل از اجرای قراردادهای هوشمند، باید کد این قراردادها را به طور اساسی بررسی کنیم تا از مشکلات امنیتی آن ها رنج نبرند. علاوه بر این، بررسی قراردادهای هوشمند می تواند عملکرد ایده آل و بهینه آنها را تضمین کند.

فرآیند بررسی قرارداد هوشمند بر بررسی دقیق کد متمرکز است که شامل کلیه شرایط و ضوابط قرارداد هوشمند است. با این بررسی، توسعه دهندگان قراردادهای هوشمند به راحتی می توانند آسیب پذیری ها، باگ ها و مشکلات را قبل از پیاده سازی و اجرای قراردادهای هوشمند شناسایی و برطرف کنند. برای انجام این کار، نهادهای شخص ثالث اغلب مأمور بررسی کامل قراردادهای هوشمند می شوند. شایان ذکر است شرکت ها می توانند حسابرسان و بازبین حرفه ای را برای تایید کد قراردادهای هوشمند خود انتخاب و استخدام کنند.

بررسی کد قرارداد هوشمند قبل از اجرای آن بسیار مهم است. زیرا زمانی که قرارداد هوشمند روی بلاک چین ثبت شد، تغییر کد عملا غیرممکن است. اجرای قراردادهای هوشمند بدون بررسی مناسب می تواند منجر به شرایط نامطلوب یا عملکرد ضعیف یا مسائل امنیتی جدی در برنامه های غیرمتمرکز شود. علاوه بر این، بررسی نامناسب و سهل انگارانه ممکن است خطراتی مانند از دست دادن داده های شخصی یا سرقت دارایی ها را به همراه داشته باشد.

چرا بررسی کد قرارداد هوشمند مهم است؟

در حال حاضر امنیت یکی از مهم ترین دغدغه ها در اجرای قراردادهای هوشمند است. ناکارآمدی و مسائل امنیتی و اجرای نادرست این قراردادها می تواند منجر به هزینه های سنگین و جبران ناپذیری در شبکه بلاک چین شود.

بازبینی کد audit در قراردادهای هوشمند به چهمراحل بازبینی قراردادهای هوشمند

یکی از مسائلی که گاهی شرکت ها و کسب و کارها را به استفاده از قراردادهای هوشمند بی میل می کند، برگشت ناپذیر بودن این قراردادها است. علاوه بر این، نقض احتمالی امنیتی همیشه می تواند تهدیدی برای کل قرارداد و دارایی های مرتبط با آن در نظر گرفته شود. بنابراین بازنگری قرارداد هوشمند یکی از ضروری ترین اقداماتی است که قبل از اجرای آن باید انجام شود.

دلایلی مانند بهینه سازی بهتر کد، بهبود عملکرد قرارداد هوشمند، افزایش امنیت کیف پول و امنیت در برابر حملات هک از جمله عواملی هستند که بررسی قرارداد را هوشمندانه یک ضرورت می کنند. همچنین، بررسی قرارداد هوشمند برای صاحبان محصول برنامه های غیرمتمرکز و سازندگان و سازمان دهندگان استارت آپ های عرضه اولیه سکه (ICO)، توسعه دهندگان قرارداد هوشمند و افرادی که نیاز به جلب اعتماد سرمایه گذاران، سهامداران و مشارکت کنندگان دارند، مهم است.

با توجه به مزیت های حیاتی فراوانی که برای امنیت قراردادهای هوشمند بیان کردیم، لازم است مراحل و روش های بررسی قراردادهای هوشمند را نیز بیابیم و بدانیم.

بررسی کد قرارداد هوشمند چگونه کار می کند؟

بررسی کد قراردادهای هوشمند شامل ارزیابی دقیق و محاسبه شده از قراردادهای هوشمند و برنامه های کاربردی مبتنی بر بلاک چین است. این بررسی می‌تواند مشکلات طراحی قرارداد، آسیب‌پذیری‌های امنیتی و خطاهای مربوط به کد را شناسایی کند. بازبینی کنندگان قراردادهای هوشمند حرفه ای اغلب نقشه راه دقیقی از فرآیند بررسی را در اختیار فروشندگان قرارداد هوشمند قرار می دهند تا فرآیند بررسی را بهتر درک کنند.

با این حال، تعامل دو طرفه بین بازبین و نهادی که می‌خواهد قرارداد هوشمند را بررسی کند، بخش مهمی از فرآیند بررسی است. داوران اغلب ایده روشنی از پروژه مورد نظر ندارند. بنابراین اولین قدم تعریف ویژگی های مورد نظر قرارداد است تا داور بتواند بر این اساس طرحی را تدوین کند و در نهایت گزارشی از نحوه انجام بررسی ارائه دهد. در ادامه چند اقدام مهم را برجسته کرده و مراحل قراردادهای هوشمند را بررسی می کنیم.

مشخصات و جزئیات قرارداد هوشمند را تعریف کنید

اولین و مهمترین عامل در فرآیند بررسی قرارداد هوشمند، توافق بین سازنده قرارداد و بازبینی کننده در مورد مشخصات و جزئیات قرارداد هوشمند است. این مشخصات و سایر اسناد مربوط به قراردادهای هوشمند توضیح روشنی از روند معماری و ساخت و ساز و اساس طراحی پروژه ارائه می دهد.

مشخصات مستند معمولاً در فایل README پروژه یافت می شود. با این حال، توسعه‌دهنده نیز باید جزئیات و عملکرد آن را به درستی مستند و مشخص کند و در دسترس بازبین قرار دهد. در غیر این صورت، بازبینان قرارداد هوشمند، دید کاملی از عملکرد مطلوب و واقعی کد نخواهند داشت. بنابراین اولین مرحله روش بررسی قرارداد هوشمند با تعریف مشخصات کامل پروژه آغاز می شود.

در این مرحله، ممتحن باید به دنبال زمان انجماد کد نیز باشد. قبل از نهایی شدن کد، قرارداد هوشمند در مرحله پیش نویس نهایی است و در این مرحله توسعه دهندگان باید تمام تلاش خود را برای شناسایی هر گونه ناهنجاری یا عوامل نامطلوب در کد به کار می گرفتند. به عبارت ساده‌تر، تعیین زمان نهایی شدن کد بسیار مهم است. زیرا پس از این مرحله هیچ تغییری قابل بررسی نیست.

فرآیند تست قرارداد

بازبینان تست های متعدد و مختلفی را برای تایید کد قرارداد هوشمند از جنبه های مختلف انجام می دهند. این کار برای شناسایی باگ ها و مشکلات احتمالی انجام می شود و با گزینه های مختلفی از جمله تست های هر بخش (Unit Test) برای بررسی کوچکترین جزئیات کد و تست های یکپارچه سازی (Integration Test) برای بررسی عملکردهای اصلی کد

این تست های کوچک و بزرگ به بررسی کنندگان کمک می کند تا پروژه و عملکردهای مورد انتظار را بهتر درک کنند. اگر کد قرارداد هوشمند اکثر آزمایشات را با یکپارچگی پشت سر بگذارد، احتمال بروز مشکلات ریشه کمتر خواهد بود. در غیر این صورت، با شکست بسیاری از این تست‌ها، رویکرد منطقی متوقف کردن فرآیند بررسی و ایجاد اصلاحات اساسی و اساسی در پایگاه کد خواهد بود.

یکی از عوامل موثر بر هزینه بررسی قراردادهای هوشمند مربوط به پوشش خط کد است. به عبارت دیگر، آزمایش و اصلاح خط به خط کد منبع قرارداد هوشمند برای بازبین بسیار مهم است. برخی از متخصصان QA خواهان پوشش کامل کد منبع هستند. اما پوشش 85 تا 90 درصدی برای بسیاری از پروژه ها کافی و مناسب به نظر می رسد.

به‌علاوه، برخی از این آزمایش‌ها شامل ویژگی‌های اضافی و منحصربه‌فردی هستند که آسیب‌پذیری‌های احتمالی و مسائل ناشناخته بیشتری را بررسی می‌کنند و به کاهش تعداد باگ‌های آسان برای حذف کمک می‌کنند.

تجزیه و تحلیل خودکار

پس از اتمام مراحل تست، به مرحله تحلیل بررسی قرارداد هوشمند می رسیم. اخیراً تقاضا برای کدهای قرارداد هوشمند ایمن به میزان قابل توجهی افزایش یافته است. بنابراین، نیاز به نرم‌افزار تشخیص خودکار باگ نیز به سرعت در حال افزایش است. این ابزارها می توانند آسیب پذیری های رایج و عمومی قراردادهای هوشمند مبتنی بر Solidity را پیدا کنند.

همچنین بخوانید: زبان برنامه نویسی Solidity چیست و چگونه یک قرارداد هوشمند بنویسیم؟

علاوه بر این، ابزارهای تجزیه و تحلیل خودکار می توانند قراردادها را بر اساس ورودی هایی که هر قسمت از قرارداد را آغاز می کنند، ارزیابی کنند. این ابزارها با بهبود سهولت شناسایی مسائل رایج در کد منبع به فرآیند بررسی کمک می‌کنند و به بازبین اجازه می‌دهند تا تلاش‌های خود را بر روی آسیب‌پذیری‌های جدید و پیچیده متمرکز کند.

به طور کلی، ابزارهای تجزیه و تحلیل خودکار نیاز به بازبینی های انسانی را کاهش می دهند و در زمان و هزینه مورد نیاز برای بررسی صرفه جویی می کنند. با این حال، ابزارهای تجزیه و تحلیل قدرت خودکار در حال حاضر در مراحل اولیه توسعه هستند، و به نظر می رسد رسیدن به کمال مطلوب برای ابزارهای بررسی قرارداد هوشمند، زمان بیشتری طول خواهد کشید.

همچنین، از آنجایی که این ابزارها برای یافتن باگ‌ها و مشکلات کلی طراحی شده‌اند، در مورد قطعات خاصی از کد اطلاعاتی ندارند و ممکن است به طور سیستماتیک مشکلات نادرست را گزارش کنند. اینجاست که تحلیل دستی برای بررسی نقاط ضعف شناسایی شده وارد می شود.

تحلیل دستی

ابزارهای تجزیه و تحلیل خودکار در Smart Contract Review مزایای بسیاری را از نظر شناسایی نقاط ضعف رایج ارائه می دهند. با این حال، برخی از ایرادات مختص قراردادهای خاصی است و ابزارهای تحلیل خودکار در درک قصد توسعه دهندگان ناتوان و ناکارآمد به نظر می رسند. بنابراین، تجزیه و تحلیل دستی و بررسی توسط بازبینان انسانی اغلب برای بهبود تشخیص نقاط ضعف احتمالی در کد قرارداد هوشمند مورد نیاز است. یک تیم بررسی با تجربه می تواند جنبه های مختلف عملکرد پروژه را ارزیابی کند و بر اساس مشاهدات خود، توصیه های قابل اعتمادی را برای بهبود کد قرارداد به تیم پروژه ارائه دهد.

گزارش را بررسی کنید و برای اصلاح عیوب مشاوره ارائه دهید

آخرین مرحله بررسی قرارداد هوشمند، تهیه گزارشی از روند و مراحل بررسی است. بازبین باید گزارش بازبینی دقیقی از یافته ها و مشاهدات خود را پس از تکمیل تست و تجزیه و تحلیل خودکار و دستی ارائه دهد. مهمتر از همه، تیم بررسی و تیم پروژه باید در مورد یافته ها و توصیه های گزارش بحث کنند.

این بحث می تواند به تیم پروژه کمک کند تا مسائل و آسیب پذیری های قرارداد هوشمند مورد بررسی و همچنین توصیه های تیم بررسی را بهتر درک کند و برای رفع آنها تلاش کند. لازم به ذکر است که بسیاری از ارائه دهندگان خدمات امنیتی ارائه مشاوره منظم و پیگیری طولانی مدت برای رفع کامل مسائل و مشکلات قرارداد را یکی از مراحل اصلی خدمات خود می دانند.

آسیب پذیری های حیاتی در قراردادهای هوشمند

تا اینجا در مقاله، در مورد اهمیت شناسایی نقاط ضعف در قراردادهای هوشمند و مراحل پیگیری و رفع آنها صحبت کردیم. حال بیایید با فهرستی مختصر و کلی از برخی از این آسیب‌پذیری‌ها و حملات امنیتی و صنایعی که بر آن‌ها تأثیر می‌گذارند، آشنا شویم:

acgvw2s بازبینی کد audit در قراردادهای هوشمند به چه

وابستگی مهر زمانی

ماینرها می توانند به طور قابل توجهی بر عملکرد محیط اجرای قرارداد هوشمند تأثیر بگذارند. یکی از ایراداتی که می تواند این قراردادها را آسیب پذیر کند، وابستگی عملکرد آنها به ارزش مهر زمانی (Timestamp) یا زمان ثبت بلاک در بلاک چین است. در این حالت، ماینر ممکن است بتواند با دستکاری داده های مهر زمانی به یک هدف از پیش تعیین شده دست یابد.

خطاهای دسترسی به عملکرد

توانایی مشاهده و فراخوانی قراردادهای هوشمند قدرت به طور پیش فرض “عمومی” است. یعنی هر فرد توانایی دسترسی و فراخوانی قرارداد را دارد و این مشکل احتمال سوء استفاده از کد را افزایش می دهد. اگر توسعه‌دهنده فراموش کند قابلیت مشاهده و دسترسی به یک تابع را به عنوان “خصوصی” تنظیم کند، نقض امنیتی می‌تواند کل قرارداد را تهدید کند.

حمله ورود مجدد

یکی از حملات مخرب در قراردادهای هوشمند جامد، حمله مجدد ورود است. در این حمله، هکر بارها و بارها بین قرارداد هوشمند هدف و قرارداد هوشمند غیرقابل اعتماد دیگری ارتباط برقرار می کند. بنابراین، قبل از اینکه فرصتی برای به روز رسانی داده ها و موجودی خود داشته باشد، می تواند داده ها و دارایی ها را از قرارداد هدف بدزدد.

حمله با آدرس کوتاه

در این حمله، قرارداد کمتر از مقدار مورد نیاز داده دریافت می کند و زبان برنامه نویسی Solidity داده های خالی را با «صفر» پر می کند. صفرهای اضافی در داده ها می تواند مشکلات جدی ایجاد کند.

حملات با ورود بالا و ورود کم

حمله سرریز با ارائه مقداری بیشتر از حداکثر ارزش قرارداد تحریک می شود و حمله سرریز با ارائه مقدار کمتر از حداقل مبلغ قرارداد تحریک می شود. در هر صورت، هکر می تواند با بهره برداری از پاسخ اشتباه قرارداد به ورودی های غیر معمول، به دارایی های قرارداد دسترسی پیدا کند.

تکرار حمله

Replay Attack با سوء استفاده از تکرار یا تاخیر در انتقال داده های به ظاهر صحیح انجام می شود.

آسیب پذیری اعداد تصادفی

یکی از عواملی که امنیت قراردادهای هوشمند را تضمین می کند، تصادفی بودن اعداد مربوط به کدهای رمزگذاری شده و کنترل دسترسی است. اگر کد قرارداد باگ باشد، مهاجم می تواند عدد تصادفی را به درستی حدس بزند و به داده های حساس قرارداد دسترسی پیدا کند.

عدم تمایز بین انسان و قرارداد

عدم تشخیص اینکه آیا تماس قرارداد هوشمند از طرف شخص منشا می گیرد یا از قرارداد می تواند عواقب غیر قابل پیش بینی داشته باشد. به عنوان مثال، یک باگ شناسایی شده توسط انسان در بازی پلتفرم غیرمتمرکز Fomo3d که به هکر اجازه می داد دارایی ها را از استخر airdrop سرقت کند، شناسایی شد.

حمله سازماندهی مجدد

حمله سفارش مجدد با دستکاری ترتیب تراکنش ها و اختلال در کار قرارداد هوشمند انجام می شود.

اشتباهات املایی

اگر اشتباهات تایپی توسعه‌دهنده قرارداد در طول برنامه‌نویسی بررسی نشود، می‌تواند باعث تغییرات قابل‌توجهی در عملکرد شود و به مهاجم اجازه دسترسی به عملکرد قرارداد را بدهد.

رویکردهای بررسی کد در قراردادهای هوشمند

تاکنون مراحل بررسی قراردادهای هوشمند و نقاط ضعف احتمالی در این کدهای رمزنگاری را طی کرده ایم. اکنون می‌توانیم عناصری را که بازبینان قرارداد هوشمند در این فرآیند بررسی در نظر می‌گیرند، بهتر درک کنیم. به طور کلی، دو عنصر مهم که روش‌های بررسی کد را برای بازبینی‌کنندگان تعریف می‌کنند، آسیب‌پذیری‌های امنیتی و قراردادهای کارآمدی هزینه (Gas) هستند.

کارایی هزینه

بررسی قراردادهای هوشمند تنها برای تضمین امنیت این قراردادها انجام نمی شود. زیرا بهره وری و بهینه سازی نیز ملاحظات مهمی برای بازبینان است. برخی از قراردادها برای رسیدن به هدف خود باید فهرست بلندبالایی از معاملات را تکمیل کنند. اینجاست که اهمیت استفاده از قراردادهای کارآمد از نظر صرفه جویی در هزینه ها برجسته می شود.

همچنین تلاش برای جلوگیری از عملکردهای ناکارآمد و غیر ضروری می تواند از تعداد نقاط ضعف بکاهد. به طور کلی بهینه سازی عملکرد قرارداد مستقیماً به توانمندی و تخصص توسعه دهندگان در این زمینه بستگی دارد و ارزیابی آن بر عهده بازنگری کننده کد قرارداد می باشد.

آسیب پذیری قرارداد

بیشتر اقدامات بازرسان بر یافتن حفره های امنیتی در قراردادها متمرکز است. البته باید به این نکته اشاره کنیم که حتی زمانی که برخی از مشکلات کاملاً مشهود هستند، هکرها باید از رویکردها و برنامه های پیچیده ای برای حملات خود استفاده کنند. به عنوان مثال، حملات وام فوری نتیجه یک فرآیند پیچیده دستکاری بازار و بهره برداری از حفره های امنیتی در قراردادهای هوشمند است.

بنابراین، بازرسان شروع به بررسی مسائل امنیتی با شبیه سازی حملات مخرب در قراردادهای هوشمند می کنند. مسائلی مانند حملات ورود مجدد و حملات کم یا زیاد و فرصت های پیش زمینه ای که با استفاده از کدهای ضعیف برای دستکاری بازار به وجود می آیند از جمله مواردی هستند که بررسی کنندگان در تحلیل های خود زیر ذره بین بررسی می کنند.

شرکت‌هایی که کد قرارداد هوشمند را بررسی می‌کنند

با توجه به اهمیت بررسی قرارداد هوشمند، بهتر است این فرآیند را به متخصصان این حوزه بسپارید. در حال حاضر، بسیاری از شرکت ها در حال انجام کار برای بررسی و تشخیص مسائل امنیتی کد قرارداد هوشمند هستند. در این بخش، برخی از بهترین شرکت های ارائه دهنده خدمات بررسی کد قرارداد هوشمند را معرفی می کنیم.

هکن

cwmynb4 بازبینی کد audit در قراردادهای هوشمند به چه

هکن یک شرکت ارائه دهنده خدمات امنیتی گسترده در حوزه های مختلف بلاک چین و ارزهای دیجیتال است که با استفاده از فناوری های جدید مانند هوش مصنوعی در حوزه امنیت دیجیتال به شهرت زیادی دست یافته است.

این شرکت می‌گوید بررسی دقیق آن هزینه‌های مالی را کاهش می‌دهد و در زمان تیم توسعه صرفه‌جویی می‌کند و به شرکت‌ها اجازه می‌دهد تا قراردادهای هوشمند خود را با اطمینان بیشتری اجرا کنند. علاوه بر این، هکن همچنین بهره وری “ده برابر” و بازگشت قراردادها را پس از بررسی تضمین می کند.

مهر کوانتومی

تیم بررسی کوانتستمپ متشکل از کارشناسان با سابقه علمی است که می توانند کد نرم افزارها و برنامه های مختلف را با زبان های برنامه نویسی مختلف بررسی کنند. این برنامه‌ها طیف وسیعی از حوزه‌ها را پوشش می‌دهند، از فضای DeFi و توکن‌های غیر سنتی گرفته تا کیف پول‌ها و مشتریان بلاک‌چین. علاوه بر این، Quantstamp همچنین در تایید قراردادهای هوشمندی که بر روی اتریوم 2.0 ساخته شده اند، تخصص دارد.

پس از بررسی کد و شناسایی نقاط ضعف، Quantstamp به تیم توسعه در حل مشکلات پروژه کمک می کند. این شرکت در نوآوری منحصر به فرد خود، یک شبکه غیرمتمرکز برای بررسی قراردادهای هوشمند ایجاد کرده است که به کاربران امکان می دهد با استفاده از “شبکه جهانی گره های امنیتی غیرمتمرکز” بررسی های امنیتی خودکار قراردادهای هوشمند را انجام دهند.

دنباله بیت

TrailofBits از شبکه ای از توسعه دهندگان استفاده می کند که در شناسایی و رفع اشکالات در نرم افزار و کدهای رمزنگاری مهارت دارند و در سال های اخیر ابزارهای امنیتی قدرتمندی را برای تأیید قراردادهای هوشمند ایجاد کرده است.

برخی از خدمات امنیتی TrailofBates شامل مشاوره با تیم پروژه و استفاده از ابزارهای خاص و سفارشی برای شناسایی مشکلات کد، و همچنین نظارت و پشتیبانی طولانی مدت پس از تکمیل فرآیند کد است.

زپلین را باز کنید

در واقع، OpenZeppelin یکی از اولین تیم هایی بود که با معرفی عناصر گیمیفیکیشن برای شناسایی اشکالات در قراردادهای هوشمند، گام بزرگی در جهت ایمن سازی بلاک چین برداشت. OpenZeppelin نقشه راه روشنی را در اختیار تیم پروژه قرار می دهد و در پایان گزارشی جامع و خصوصی همراه با توصیه های عملی و قابل اجرا به سازندگان قراردادهای هوشمند ارائه می دهد.

علاوه بر این، این تیم امنیتی به مشتریان خود کمک می کند تا کد رمزگذاری شده با هر پروتکل و زبان برنامه نویسی را تأیید کنند.

بررسی اجمالی توافقی (ConsenSys Due Diligence)

شرکت آمریکایی Consensus یکی از شرکت های بزرگی است که از منابع و متخصصان خود در توسعه اپلیکیشن ها و نرم افزارهای بلاک چین اتریوم به ویژه نرم افزارهای مالی استفاده می کند. یکی از ابزارهای موثر برای تایید قراردادهای هوشمند اتریوم، محصول MythX این شرکت است.

این راه حل همچنین یک API قدرتمند ارائه می دهد که توسعه دهندگان می توانند از آن برای دسترسی به ابزارهای اسکن امنیتی استفاده کنند. Consenses علاوه بر بهره مندی از متخصصان در این زمینه، از ابزارها و برنامه های افزودنی امنیتی متن باز برای تضمین امنیت اپلیکیشن ها استفاده می کند و با ادغام این ابزارها در محیط توسعه پروژه ها، سعی در بررسی مداوم و کدهای مشتریان خود در دراز مدت دارد. .

سرتیک

طبق وب سایت رسمی Certic، این شرکت امنیتی بیش از 188000 خط کد را بررسی کرده و بیش از 6.32 میلیارد دلار دارایی را تضمین کرده است. همچنین به گفته این سایت، «رویکرد ریاضی» سرتیک با بازنگری در قراردادهای هوشمند از طریق محصولات نوآورانه در این زمینه ترکیب شده است.

برخی از این محصولات مانند آنتی ویروس بلاک چین Premium Skynet و همچنین راه اندازی بلاک چین عمومی Certik Chain که همگام با اهداف امنیتی این پلتفرم کار می کند، Certik را در بین شرکت های امنیتی پیشرو در این زمینه قرار داده است.

حداقل اقتدار

Listauthority یک مشاور امنیت سایبری متمرکز بر حریم خصوصی است. اگرچه محصولات اصلی این شرکت عمدتاً با هدف تضمین امنیت منابع ذخیره‌سازی غیرمتمرکز توسعه می‌یابند، Listauhority همچنین وظیفه بررسی پروژه‌های مختلف در بلاک چین اتریوم و تزوس و سایر پلتفرم‌ها را بر عهده گرفته است.

برای این منظور، ListAuthority با توسعه دهندگان در مراحل مختلف چرخه توسعه اپلیکیشن کار می کند تا امنیت پروژه را در هر مرحله از ایجاد قرارداد هوشمند تضمین کند.

کشتی های آبی

این شرکت خدمات امنیتی حاصل ادغام PW Suisse و Chainsecurity است که در زمینه ایمن سازی پروژه های بلاک چین و وب 3.0 فعالیت می کند و به منابع گسترده شرکت PW دسترسی دارد. PWC با ارائه مشاوره و خدمات مختلف به پروژه های بلاک چین، تمامی مراحل توسعه پروژه از شروع کار تا مرحله پس از اجرا را پوشش می دهد.

این پلتفرم عملکرد قراردادهای هوشمند را با معیارهای مهم از طریق ابزارهای خودکار نوآورانه و کارشناسان امنیتی مورد آزمایش و بررسی قرار می دهد و سپس با شناسایی تهدیدات احتمالی سعی در رفع آنها می کند.

مه آرام

Slomyst را می توان پیشروترین شرکت امنیت بلاک چین دانست که در زمینه بررسی قراردادهای هوشمند نیز سابقه درخشانی دارد.

بر اساس وب سایت رسمی Slowmyst، این پلتفرم بیش از 1500 قرارداد هوشمند برجسته در بلاک چین اتریوم و سایر بلاک چین های مبتنی بر ماشین مجازی اتریوم (EVM) از جمله IAS، Fabric، Solana، VChain و Ant را بررسی کرده است.

علاوه بر این، Slomyst از محصولات قدرتمندی مانند فایروال قرارداد هوشمند IAS برای شناسایی مشکلات احتمالی این قراردادها استفاده می کند. بد نیست بدانید که وب‌سایت رسمی Slowmyst در صفحه اصلی خود طبقه‌بندی جالبی از انواع مختلف بررسی‌ها برای پلتفرم‌های مختلف را به کاربران ارائه می‌دهد که می‌تواند نمای کلی از شرایط بررسی کد را به کسانی که به دنبال این خدمات هستند نشان دهد.

تایید اجرا

Runtime Verification یک شرکت تحقیق و توسعه است که متخصص در تأیید رسمی است. این شرکت دو محصول اصلی برای تضمین قراردادهای هوشمند تولید کرده است که از یک سو با هدف بررسی عملکرد قراردادهای هوشمند پلتفرم کاردانو و از سوی دیگر، ابزار تحلیلی نهایی برای ارزیابی قراردادهای هوشمند اتریوم است.

شرکت مذکور اکثر زبان های برنامه نویسی را پوشش می دهد و مجموعه ای جامع از خدمات پروژه ها را ارائه می دهد.

بررسی کد قرارداد هوشمند چقدر هزینه دارد؟

عوامل متعددی بر هزینه بررسی کد قرارداد هوشمند تأثیر می گذارد. برخی از عوامل مهمی که در برآورد هزینه بازنگری کد مورد توجه قرار می گیرد عبارتند از: پیچیدگی کد، حجم کد و تعداد خطوط، شرایط خاص توافق شده در قرارداد، شهرت و کیفیت کار داوران و تعداد ساعات صرف شده توسط مهندسان و منابع انسانی شرکت بازبینی کننده برای بررسی کد. علاوه بر این، پلتفرمی که قرارداد هوشمند بر روی آن ساخته شده و ابزار مورد استفاده برای بررسی کد، نقش تعیین کننده ای در هزینه نهایی خواهد داشت.

در هر صورت تنظیم و بررسی قرارداد کار ارزانی نیست. در منابع مختلف ارقام متفاوتی در مورد هزینه بازنگری در کد قراردادهای هوشمند ذکر شده است. به طور کلی، این فرآیند می تواند بین 5000 تا 500000 دلار برای کسب و کارها هزینه داشته باشد. در این بین همیشه استثناهایی وجود دارد و هزینه تایید برخی کدها گاهی به نیم میلیون دلار هم می رسد! فراموش نکنیم که برخی از بهترین شرکت های ارزیابی، از جمله نمونه های ذکر شده در این مقاله، اغلب رزرو شده و کار با آنها بسیار گران است.

نتیجه

در پایان این مقاله، احتمالاً اهمیت بررسی کد قرارداد هوشمند را می دانید. اکنون، به طور کلی، می‌دانید که چه خطرات و حملاتی می‌توانند قراردادهای هوشمند تجدیدنظر نشده را تهدید کنند. همچنین، مروری بر مراحل و فرآیند بررسی کد در ذهن دارید و برخی از بهترین شرکت های امنیتی قرارداد هوشمند را می شناسید.

بدون شک بررسی قراردادهای هوشمند می تواند رویکرد مناسبی برای بهبود عملکرد و کارایی قراردادهای هوشمند و جلب اعتماد بیشتر شرکت ها و کسب و کارها برای استفاده از این کدهای رمزنگاری باشد. با این حال، هنوز مسائلی مانند زمان مورد نیاز، کیفیت و هزینه بررسی در مورد نحوه بررسی کد این قراردادها وجود دارد. همچنین موضوع نوظهور این دامنه و حملات احتمالی جدید و ناشناخته آن را نیز نباید نادیده گرفت.

به نظر می رسد که رفع موانع و افزایش بهره وری این فرآیند عمدتاً به تعامل پایدار، مستمر و قدرتمند توسعه دهندگان و بازبینان مربوط می شود. مواردی مانند توافق بر سر شرایط بررسی پروژه و توضیح و تعریف اهداف آن و همکاری تیم بررسی با تیم توسعه برای رفع اشکالات و مشکلات می تواند کیفیت کار هر دو گروه را بهبود بخشد و در نهایت به افزایش پذیرش هوشمند کمک کند. قراردادها و برنامه های غیرمتمرکز

در این سری مقالات امنیتی به زبان ساده، قصد داریم به موضوع بررسی کد (Audit) در قراردادهای هوشمند بپردازیم. بررسی کد تجزیه و تحلیل دقیق کدهای قرارداد هوشمند را ارائه می دهد. بررسی کد برای محافظت از وجوه سرمایه گذاری شده در سیستم عامل های DeFi بسیار مهم است. با توجه به غیرقابل برگشت بودن تمامی تراکنش ها در بلاک چین، این مورد اهمیت خود را بیش از پیش نشان می دهد. پس از بررسی و تست کدها، گزارشی توسط تیم بررسی ارائه می شود که نقاط ضعف کدها و موارد قابل بهبود را برجسته می کند. تیم توسعه پس از مطالعه این گزارش موارد ذکر شده را تصحیح خواهد کرد. با دیجی کالا مگ همراه باشید تا ببینیم این بررسی چگونه انجام می شود.

معرفی

بررسی امنیتی کدهای قرارداد هوشمند در اکوسیستم مالی غیرمتمرکز (DeFi) بسیار رایج است. اگر در یک پروژه بلاک چین سرمایه گذاری کرده اید، ممکن است تصمیم شما تا حد زیادی بر اساس نتایج بررسی کد قرارداد هوشمند باشد. بیایید روش‌ها، ابزارها و یافته‌هایی که معمولاً در بررسی‌های امنیتی قراردادهای هوشمند یافت می‌شوند را بررسی کنیم تا بتوانید تصمیمات آگاهانه‌تری بگیرید.

بررسی کد در قرارداد هوشمند چیست؟

tqbuqqk بازبینی کد audit در قراردادهای هوشمند به چه

طی یک بررسی، کدهای قرارداد هوشمند یک پروژه بررسی و ارزیابی می شود. این قراردادها معمولاً به زبان برنامه نویسی Solidity نوشته می شوند و در GitHub میزبانی می شوند. بررسی امنیتی کدهای قرارداد هوشمند به ویژه برای پروژه هایی با تراکنش های چند میلیون دلاری که کاربران زیادی دارند، اهمیت دارد. فرآیند بررسی کد به طور کلی شامل چهار مرحله زیر است:

1. کدهای قرارداد هوشمند برای تجزیه و تحلیل اولیه به تیم بررسی ارائه می شود.

2. تیم بررسی نتایج تجزیه و تحلیل ها را به توسعه دهندگان گزارش می دهد تا بر اساس این نتایج تغییراتی در پروژه ایجاد شود.

3. تیم پروژه تغییراتی را در پروژه بر اساس گزارش اولیه در خصوص ایرادات ذکر شده ایجاد می کند.

4. گزارش نهایی توسط تیم بررسی ارائه می شود که در آن تمامی ایرادات با اصلاحات انجام شده منتشر می شود.

بررسی قرارداد هوشمند هنگام سرمایه گذاری در پروژه های جدید DeFi ضروری است. این فرآیند به استانداردی برای پروژه هایی تبدیل شده است که قصد دارند توجه بسیاری از کاربران را به خود جلب کنند، از جمله بررسی کدهای قرارداد هوشمند توسط برخی از شرکت های پیشرو امنیت سایبری مانند Certik، Quantstamp، Hacken و ConsenSys Diligence باعث می شود کاربران بیشتری به آنها اعتماد کنند. پروژه ها.

چرا بازنگری در کد قرارداد هوشمند ضروری است؟

از آنجایی که سرمایه زیادی در قراردادهای هوشمند معامله می شود یا قفل می شود، هکرها به طور فزاینده ای به آن علاقه مند می شوند. اگر یک خطای امنیتی در قراردادهای هوشمند رخ دهد، سرمایه بسیار زیادی در معرض خطر قرار خواهد گرفت. به عنوان مثال، حدود 60 میلیون دلار ETH در حمله به بلاک چین اتریوم DAO از دست رفت و به همین جا ختم نشد و در نتیجه شبکه اتریوم هارد فورک ایجاد شد.

از آنجایی که تراکنش های روی بلاک چین غیرقابل برگشت هستند، اطمینان از ایمن بودن کد پروژه ضروری است. ماهیت بسیار امن فناوری بلاک چین، بازیابی وجوه و حل مشکلات را پس از تراکنش دشوار می کند، بنابراین بهتر است حتی اگر مجبور به پرداخت هزینه های بالا باشیم، از آسیب های احتمالی جلوگیری کنیم.

بررسی کد قرارداد هوشمند چگونه انجام می شود؟

هر شرکت امنیتی از تکنیک های خاص خود برای بررسی کد استفاده می کند، اما روند کلی تقریباً یکسان است. مراحل بررسی کد به شرح زیر است:

1. قرارداد هوشمند و معماری پروژه توسط تیم تعریف شده و هدف بررسی کد مشخص می شود. به این ترتیب، تیم بررسی می داند که اهداف پروژه برای نوشتن و استفاده از کد چیست.

2. برآورد هزینه ارائه شده است.

3. تیم بررسی شروع به انجام آزمایش دستی و خودکار می کند.

4. گزارش اولیه از عیوب یافت شده به تیم پروژه ارائه می شود تا مسائل را برطرف کنند.

5. گزارش نهایی مسائل و رفع مشکلات پروژه به صورت مستند ارائه می شود.

روش های بررسی کد

l6icpit بازبینی کد audit در قراردادهای هوشمند به چه

بهره وری

بررسی کد قرارداد هوشمند فقط مربوط به مسائل امنیتی نیست. برعکس، آنها نیز بر کارایی و بهینه سازی متمرکز هستند. برخی از قراردادها مجموعه پیچیده ای از معاملات را برای انجام تجارت خود انجام می دهند. از آنجایی که هزینه های GAS در شبکه هایی مانند اتریوم بسیار زیاد است، قراردادهای با بازده بالا می توانند هزینه های تراکنش را به میزان قابل توجهی کاهش دهند.

بهینه سازی عملکرد نیز مهارت توسعه دهنده را نشان می دهد. روش های ناکارآمد خطر شکست بیشتری را ارائه می دهند و باید از آنها اجتناب شود. صرفه جویی در کارمزد تراکنش ها، کاربران زیادی را به پلتفرم ها جذب می کند.

نقاط ضعف امنیتی قرارداد

بررسی کد معمولاً شامل یافتن آسیب‌پذیری‌های امنیتی قراردادی است. برخی از این نقاط ضعف را می توان به راحتی شناسایی کرد. اما یافتن بیشتر نقاط ضعف نیازمند تکنیک ها و استراتژی های پیچیده است. به عنوان مثال، از طریق قراردادهای هوشمند ضعیف، می توان بازار را دستکاری کرد و حملات «وام فوری» را اجرا کرد. برای شبیه‌سازی حملات، تیم‌های امنیتی تکنیک «تست شکست» را انجام می‌دهند. برخی از آسیب پذیری های رایج عبارتند از:

1. ورود مجدد: این حمله زمانی رخ می دهد که یک تابع دستور فراخوانی خارجی به یک قرارداد نامعتبر را بدهد. سپس قرارداد تایید نشده به عملکرد اصلی برای سرقت دارایی ها باز می گردد.

2. Integer Overflow & Underflow: زمانی که یک عملیات محاسباتی توسط قرارداد هوشمند انجام می شود، اما خروجی از ظرفیت حافظه اصلی فراتر می رود. (معمولا 18 رقم اعشار). این باعث می شود که نتیجه محاسبه تغییر کند.

3. Front Running: Front Running عبارت است از “انجام معامله قبل از یک تراکنش خاص با دانش قبلی”. در صورت عدم ساختار صحیح کدها، هشداری برای خرید و فروش در بازار ایجاد می شود. در نتیجه افراد دیگر از این اطلاعات سوء استفاده کرده و بر اساس آن معامله می کنند.

آسیب پذیری های امنیتی پلتفرم

بیشتر بررسی ها شامل ارزیابی شبکه میزبان قراردادها و حتی API مورد استفاده برای ارتباط با برنامه غیرمتمرکز است. ممکن است یک پروژه در برابر حملات DDoS دچار اختلال شود یا رابط کاربری وب سایت آن آلوده شود. در این صورت، کاربرانی که کیف پول خود را به برنامه های بلاک چین مخرب متصل کرده اند در معرض خطر قرار خواهند گرفت.

گزارش مرور کد چیست؟

گزارش بررسی در پایان فرآیند به پروژه ارائه می شود. تیم توسعه مسئول به اشتراک گذاری اطلاعات گزارش با کاربران و اعضای جامعه است. در غیر این صورت، رتبه شفافیت پروژه کاهش می یابد و افراد کمتری به آن اعتماد می کنند. بیشتر این گزارش‌ها، آسیب‌پذیری‌های یافت شده را بر اساس سطح ریسک امنیتی در دسته‌های مختلف طبقه‌بندی می‌کنند. همچنین ذکر شده است که پروژه تا چه زمانی امکان اصلاح ایرادات را برای دریافت گزارش نهایی دارد.

یک گزارش استاندارد باید شامل خلاصه ای از اطلاعات، کدهای نمونه زباله و توصیه ها باشد. همچنین باید توضیح دهد که نقص های موجود در کد کجا هستند. پس از انجام اقدامات در مورد گزارش اولیه، گزارش نهایی توسط تیم بررسی منتشر می شود.

مقدمه ای بر تیم های بررسی کد

m1ks132 بازبینی کد audit در قراردادهای هوشمند به چه

CertiK

CertiK به عنوان قابل اعتمادترین تیم بررسی کد شناخته می شود و کدهای قرارداد هوشمند صدها پروژه توسط آنها بررسی شده است. از جمله قراردادهای PancakeSwap که بزرگترین سازنده بازار خودکار BSC است. در تصویر زیر بخشی از گزارش بررسی سرتیک برای تعویض پنکیک را مشاهده می کنید.

oh327pi بازبینی کد audit در قراردادهای هوشمند به چه

بخشی از سایت CertiK به پروژه های ارزیابی شده اختصاص داده شده است تا بتوانید آنها را با هم مقایسه کنید. هر یک از پروژه ها دارای امتیازی هستند که سطح امنیت آن را نشان می دهد. در قسمت دیگری از این سایت می توانید لیست پروژه های در دست بررسی را مشاهده کنید.

6tvacd0 بازبینی کد audit در قراردادهای هوشمند به چه

ConsenSys Due Diligence

ConsenSys توسط جوزف لوبین (یکی از بنیانگذاران اتریوم) راه اندازی شد و یکی از معروف ترین موسسات رمزنگاری در زمینه توسعه بلاک چین است. این تیم مسئول بررسی قراردادهای هوشمند اتریوم است. همچنین مجهز به سرویس تأیید قرارداد خودکار EVM است.

هزینه بررسی کد قرارداد هوشمند

هزینه دقیق به تعداد قراردادهای هوشمند بررسی شده و اعتبار تیم بررسی بستگی دارد. فرآیند بررسی معمولاً هزاران دلار هزینه دارد. یک پروژه بزرگ باید حدود 10000 دلار برای بررسی کد خود بپردازد.

نتیجه

خوشبختانه، بررسی کد قرارداد هوشمند به یک استاندارد پایه تبدیل شده است. با این حال، زمانی که تمام پروژه های DeFi دارای این گواهی هستند، دیگر نمی توان پروژه ها را بر این اساس ارزیابی کرد، در این مرحله شما باید شخصا گزارش های بررسی پروژه را مطالعه کنید تا تصمیم نهایی را بگیرید. حتی بدون داشتن دانش فنی، می توان از اطلاعات موجود در آنها نتیجه گیری و تصمیم گیری کرد. البته تصمیمات سرمایه گذاری شما باید همیشه گسترده و بر اساس معیارهای مختلف باشد.

منبع: halborn / hackernoon / بایننس آکادمی

نظرات

نظرتان را با ما به اشتراک بگذارید!

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *