اہم مواد پر جائیں

اسمارٹ کنٹریکٹ سیکورٹی چیک لسٹ

اسمارٹ معاہدات
سیکورٹی
solidity
متوسط
Trailofbits
7 ستمبر، 2020
3 منٹ کی پڑھائی

اسمارٹ کنٹریکٹ ڈیولپمنٹ چیک لسٹ

یہاں ایک اعلیٰ سطحی عمل ہے جس پر عمل کرنے کی ہم تجویز کرتے ہیں جب آپ اپنے اسمارٹ کنٹریکٹس لکھتے ہیں۔

معلوم سیکورٹی مسائل کے لیے چیک کریں:

  • Slither (opens in a new tab) کے ساتھ اپنے کنٹریکٹس کا جائزہ لیں۔ اس میں عام کمزوریوں کے لیے 40 سے زیادہ بلٹ ان ڈیٹیکٹرز ہیں۔ اسے نئے کوڈ کے ساتھ ہر چیک ان پر چلائیں اور یقینی بنائیں کہ اسے ایک کلین رپورٹ ملے (یا بعض مسائل کو خاموش کرنے کے لیے ٹرائج موڈ استعمال کریں)۔
  • Crytic (opens in a new tab) کے ساتھ اپنے کنٹریکٹس کا جائزہ لیں۔ یہ 50 ایسے مسائل کی جانچ کرتا ہے جو Slither نہیں کرتا۔ Crytic، GitHub پر Pull Requests میں سیکورٹی مسائل کو آسانی سے سامنے لا کر آپ کی ٹیم کو ایک دوسرے کے کام سے باخبر رہنے میں بھی مدد کر سکتا ہے۔

اپنے کنٹریکٹ کے خصوصی فیچرز پر غور کریں:

  • کیا آپ کے کنٹریکٹس اپ گریڈ کے قابل ہیں؟ slither-check-upgradeability (opens in a new tab) یا Crytic (opens in a new tab) کے ساتھ خامیوں کے لیے اپنے اپ گریڈیبلٹی کوڈ کا جائزہ لیں۔ ہم نے 17 ایسے طریقوں کو دستاویز کیا ہے جن سے اپ گریڈز غلط ہو سکتے ہیں۔
  • کیا آپ کے کنٹریکٹس ERCs کے مطابق ہونے کا دعویٰ کرتے ہیں؟ انھیں slither-check-erc (opens in a new tab) سے چیک کریں۔ یہ ٹول چھ عام اسپیکس سے انحراف کو فوری طور پر شناخت کرتا ہے۔
  • کیا آپ تھرڈ پارٹی ٹوکنز کے ساتھ انٹیگریٹ کرتے ہیں؟ بیرونی کنٹریکٹس پر انحصار کرنے سے پہلے ہمارے ٹوکن انٹیگریشن چیک لسٹ کا جائزہ لیں۔

اپنے کوڈ کے اہم سیکورٹی فیچرز کا بصری طور پر معائنہ کریں:

  • Slither کے inheritance-graph (opens in a new tab) پرنٹر کا جائزہ لیں۔ نادانستہ شیڈونگ اور C3 لینیئرائزیشن کے مسائل سے بچیں۔
  • Slither کے function-summary (opens in a new tab) پرنٹر کا جائزہ لیں۔ یہ فنکشن کی ویزیبلٹی اور رسائی کے کنٹرولز کو رپورٹ کرتا ہے۔
  • Slither کے vars-and-auth (opens in a new tab) پرنٹر کا جائزہ لیں۔ یہ اسٹیٹ ویری ایبلز پر رسائی کے کنٹرولز کو رپورٹ کرتا ہے۔

اہم سیکورٹی پراپرٹیز کو دستاویز کریں اور ان کا جائزہ لینے کے لیے آٹومیٹڈ ٹیسٹ جنریٹرز کا استعمال کریں:

  • اپنے کوڈ کے لیے سیکورٹی پراپرٹیز کو دستاویز کرنا سیکھیں۔ پہلے تو یہ مشکل ہے، لیکن یہ ایک اچھا نتیجہ حاصل کرنے کے لیے سب سے اہم سرگرمی ہے۔ یہ اس ٹیوٹوریل میں کسی بھی جدید تکنیک کو استعمال کرنے کے لیے ایک پیشگی شرط بھی ہے۔
  • Solidity میں سیکورٹی پراپرٹیز کی وضاحت کریں، Echidna (opens in a new tab) اور Manticore (opens in a new tab) کے ساتھ استعمال کے لیے۔ اپنی اسٹیٹ مشین، رسائی کے کنٹرولز، حسابی کارروائیوں، بیرونی تعاملات، اور معیارات کی مطابقت پر توجہ دیں۔
  • Slither's Python API کے ساتھ سیکورٹی پراپرٹیز کی وضاحت کریں۔ انہیریٹنس، ویری ایبل ڈیپنڈنسیس، رسائی کے کنٹرولز، اور دیگر ساختی مسائل پر توجہ دیں۔
  • Crytic (opens in a new tab) کے ساتھ ہر کمٹ پر اپنے پراپرٹی ٹیسٹ چلائیں۔ Crytic سیکورٹی پراپرٹی ٹیسٹ کو استعمال اور ان کا جائزہ لے سکتا ہے تاکہ آپ کی ٹیم میں ہر کوئی آسانی سے دیکھ سکے کہ وہ GitHub پر پاس ہو گئے ہیں۔ ناکام ٹیسٹ کمٹس کو بلاک کر سکتے ہیں۔

آخر میں، ان مسائل سے آگاہ رہیں جنہیں آٹومیٹڈ ٹولز آسانی سے نہیں ڈھونڈ سکتے:

  • پرائیویسی کی کمی: جب آپ کے ٹرانزیکشنز پول میں قطار میں ہوتے ہیں تو ہر کوئی انہیں دیکھ سکتا ہے
  • فرنٹ رننگ ٹرانزیکشنز
  • کرپٹوگرافک آپریشنز
  • بیرونی DeFi کمپونینٹس کے ساتھ پرخطر تعاملات

مدد طلب کریں

Ethereum آفس آورز (opens in a new tab) ہر منگل کی سہ پہر کو ہوتے ہیں۔ یہ 1 گھنٹے کے، 1-آن-1 سیشنز سیکورٹی کے بارے میں آپ کے کسی بھی سوال کو پوچھنے، ہمارے ٹولز کا استعمال کرتے ہوئے ٹربل شوٹ کرنے، اور ماہرین سے اپنے موجودہ نقطہ نظر کے بارے میں فیڈبیک حاصل کرنے کا ایک موقع ہیں۔ ہم اس گائیڈ پر کام کرنے میں آپ کی مدد کریں گے۔

ہمارے Slack میں شامل ہوں: Empire Hacking (opens in a new tab)۔ اگر آپ کے کوئی سوالات ہیں تو ہم #crytic اور #ethereum چینلز میں ہمیشہ دستیاب ہیں۔

صفحہ کی آخری تازہ کاری: 7 فروری، 2025

کیا یہ ٹیوٹوریل کارآمد تھا؟