مرکزی مواد پر جائیں

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

سمارٹ کنٹریکٹس
سیکیورٹی
solidity
درمیانی
Trailofbits
۷ ستمبر، ۲۰۲۰
4 منٹ کا مطالعہ

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

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

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

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

اپنے کنٹریکٹ کی خاص خصوصیات پر غور کریں:

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

اہم سیکیورٹی خصوصیات کو دستاویزی شکل دیں اور ان کا جائزہ لینے کے لیے خودکار ٹیسٹ جنریٹرز کا استعمال کریں:

  • اپنے کوڈ کے لیے سیکیورٹی خصوصیات کو دستاویزی شکل دینا سیکھیں۔ یہ شروع میں مشکل ہوتا ہے، لیکن یہ ایک اچھے نتیجے کے حصول کے لیے سب سے اہم سرگرمی ہے۔ یہ اس ٹیوٹوریل میں موجود کسی بھی جدید تکنیک کو استعمال کرنے کے لیے ایک لازمی شرط بھی ہے۔
  • ایکڈنا (نئے ٹیب میں کھلتا ہے) اور مینٹیکور (نئے ٹیب میں کھلتا ہے) کے ساتھ استعمال کے لیے، Solidity میں سیکیورٹی خصوصیات کی وضاحت کریں۔ اپنی حالت کی مشین (state machine)، رسائی کے کنٹرولز، حسابی کارروائیوں، بیرونی تعاملات، اور معیارات کی مطابقت پر توجہ مرکوز کریں۔
  • سلدر کے Python API کے ساتھ سیکیورٹی خصوصیات کی وضاحت کریں۔ وراثت (inheritance)، متغیر انحصار، رسائی کے کنٹرولز، اور دیگر ساختی مسائل پر توجہ مرکوز کریں۔
  • Crytic (نئے ٹیب میں کھلتا ہے) کے ساتھ ہر کمٹ پر اپنے پراپرٹی ٹیسٹ چلائیں۔ Crytic سیکیورٹی پراپرٹی ٹیسٹس کو استعمال اور جانچ سکتا ہے تاکہ آپ کی ٹیم کا ہر فرد آسانی سے دیکھ سکے کہ وہ GitHub پر پاس ہو رہے ہیں۔ ناکام ہونے والے ٹیسٹ کمٹس کو روک سکتے ہیں۔

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

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

مدد طلب کریں

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

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