திறன் ஒப்பந்த பாதுகாப்பு சரிபார்ப்புப் பட்டியல்
திறன் ஒப்பந்த மேம்பாட்டு சரிபார்ப்புப் பட்டியல்
உங்கள் திறன் ஒப்பந்தங்களை எழுதும்போது நீங்கள் பின்பற்றப் பரிந்துரைக்கும் உயர்மட்ட செயல்முறை இங்கே உள்ளது.
அறியப்பட்ட பாதுகாப்புச் சிக்கல்களைச் சரிபார்க்கவும்:
- ஸ்லித்தர் (புதிய தாவலில் திறக்கப்படும்) மூலம் உங்கள் ஒப்பந்தங்களை மதிப்பாய்வு செய்யவும். இது பொதுவான பாதிப்புகளுக்கான 40-க்கும் மேற்பட்ட உள்ளமைக்கப்பட்ட கண்டறிதல்களைக் கொண்டுள்ளது. புதிய குறியீட்டுடன் ஒவ்வொரு செக்-இன்னிலும் இதை இயக்கி, சுத்தமான அறிக்கையைப் பெறுவதை உறுதிசெய்யவும் (அல்லது சில சிக்கல்களை அமைதியாக்க ட்ரையேஜ் (triage) பயன்முறையைப் பயன்படுத்தவும்).
- Crytic (புதிய தாவலில் திறக்கப்படும்) மூலம் உங்கள் ஒப்பந்தங்களை மதிப்பாய்வு செய்யவும். ஸ்லித்தர் செய்யாத 50 சிக்கல்களை இது சரிபார்க்கிறது. GitHub இல் உள்ள புல் ரெக்வெஸ்ட்களில் (Pull Requests) பாதுகாப்புச் சிக்கல்களை எளிதாக வெளிப்படுத்துவதன் மூலம், உங்கள் குழுவினர் ஒருவருக்கொருவர் ஒருங்கிணைந்து செயல்படவும் Crytic உதவும்.
உங்கள் ஒப்பந்தத்தின் சிறப்பு அம்சங்களைக் கருத்தில் கொள்ளவும்:
- உங்கள் ஒப்பந்தங்கள் மேம்படுத்தக்கூடியவையா?
slither-check-upgradeability(புதிய தாவலில் திறக்கப்படும்) அல்லது Crytic (புதிய தாவலில் திறக்கப்படும்) மூலம் உங்கள் மேம்படுத்தல் குறியீட்டில் உள்ள குறைபாடுகளை மதிப்பாய்வு செய்யவும். மேம்படுத்தல்கள் தவறாகப் போகக்கூடிய 17 வழிகளை நாங்கள் ஆவணப்படுத்தியுள்ளோம். - உங்கள் ஒப்பந்தங்கள் ERC-களுக்கு இணங்குவதாகக் கூறுகின்றனவா? அவற்றை
slither-check-erc(புதிய தாவலில் திறக்கப்படும்) மூலம் சரிபார்க்கவும். ஆறு பொதுவான விவரக்குறிப்புகளிலிருந்து விலகல்களை இந்தக் கருவி உடனடியாக அடையாளம் காட்டுகிறது. - நீங்கள் மூன்றாம் தரப்பு வில்லைகளுடன் ஒருங்கிணைக்கிறீர்களா? வெளிப்புற ஒப்பந்தங்களை நம்புவதற்கு முன், எங்கள் வில்லை ஒருங்கிணைப்பு சரிபார்ப்புப் பட்டியலை மதிப்பாய்வு செய்யவும்.
உங்கள் குறியீட்டின் முக்கியமான பாதுகாப்பு அம்சங்களைக் காட்சிப்பூர்வமாக ஆய்வு செய்யவும்:
- ஸ்லித்தரின் inheritance-graph (புதிய தாவலில் திறக்கப்படும்) பிரிண்டரை மதிப்பாய்வு செய்யவும். கவனக்குறைவான ஷேடோவிங் (shadowing) மற்றும் C3 லீனியரைசேஷன் (linearization) சிக்கல்களைத் தவிர்க்கவும்.
- ஸ்லித்தரின் function-summary (புதிய தாவலில் திறக்கப்படும்) பிரிண்டரை மதிப்பாய்வு செய்யவும். இது செயல்பாட்டுத் தெரிவுநிலை மற்றும் அணுகல் கட்டுப்பாடுகளைப் புகாரளிக்கிறது.
- ஸ்லித்தரின் vars-and-auth (புதிய தாவலில் திறக்கப்படும்) பிரிண்டரை மதிப்பாய்வு செய்யவும். இது நிலை மாறிகள் மீதான அணுகல் கட்டுப்பாடுகளைப் புகாரளிக்கிறது.
முக்கியமான பாதுகாப்புப் பண்புகளை ஆவணப்படுத்தி, அவற்றை மதிப்பிடுவதற்குத் தானியங்கி சோதனை உருவாக்கிகளைப் பயன்படுத்தவும்:
- உங்கள் குறியீட்டிற்கான பாதுகாப்புப் பண்புகளை ஆவணப்படுத்தக் கற்றுக்கொள்ளுங்கள். இது முதலில் கடினமாக இருக்கும், ஆனால் ஒரு நல்ல முடிவை அடைவதற்கு இதுவே மிக முக்கியமான செயலாகும். இந்த டுடோரியலில் உள்ள மேம்பட்ட நுட்பங்களில் ஏதேனும் ஒன்றைப் பயன்படுத்துவதற்கும் இது ஒரு முன்நிபந்தனையாகும்.
- எக்கிட்னா (புதிய தாவலில் திறக்கப்படும்) மற்றும் மேண்டிகோர் (புதிய தாவலில் திறக்கப்படும்) ஆகியவற்றுடன் பயன்படுத்துவதற்காக, Solidity இல் பாதுகாப்புப் பண்புகளை வரையறுக்கவும். உங்கள் நிலை இயந்திரம், அணுகல் கட்டுப்பாடுகள், எண்கணித செயல்பாடுகள், வெளிப்புற தொடர்புகள் மற்றும் தரநிலைகள் இணக்கம் ஆகியவற்றில் கவனம் செலுத்தவும்.
- ஸ்லித்தரின் Python API மூலம் பாதுகாப்புப் பண்புகளை வரையறுக்கவும். மரபுரிமை, மாறி சார்புகள், அணுகல் கட்டுப்பாடுகள் மற்றும் பிற கட்டமைப்புச் சிக்கல்களில் கவனம் செலுத்தவும்.
- Crytic (புதிய தாவலில் திறக்கப்படும்) மூலம் ஒவ்வொரு கமிட்டிலும் (commit) உங்கள் பண்புச் சோதனைகளை இயக்கவும். Crytic பாதுகாப்புப் பண்புச் சோதனைகளை உட்கொண்டு மதிப்பிட முடியும், எனவே உங்கள் குழுவில் உள்ள அனைவரும் அவை GitHub இல் தேர்ச்சி பெறுவதை எளிதாகக் காண முடியும். தோல்வியடையும் சோதனைகள் கமிட்களைத் தடுக்கலாம்.
இறுதியாக, தானியங்கி கருவிகளால் எளிதில் கண்டறிய முடியாத சிக்கல்களைப் பற்றி கவனமாக இருங்கள்:
- தனியுரிமை இல்லாமை: உங்கள் பரிவர்த்தனைகள் பூலில் வரிசையில் இருக்கும்போது மற்ற அனைவரும் அவற்றைப் பார்க்க முடியும்
- முன்-இயங்கும் (Front running) பரிவர்த்தனைகள்
- கிரிப்டோகிராஃபிக் செயல்பாடுகள்
- வெளிப்புற பரவலாக்கப்பட்ட நிதி (DeFi) கூறுகளுடனான ஆபத்தான தொடர்புகள்
உதவி கேட்கவும்
எத்திரியம் அலுவலக நேரங்கள் (புதிய தாவலில் திறக்கப்படும்) ஒவ்வொரு செவ்வாய்க்கிழமை பிற்பகலிலும் இயங்கும். இந்த 1-மணிநேர, 1-க்கு-1 அமர்வுகள், பாதுகாப்பு குறித்து உங்களுக்கு உள்ள ஏதேனும் கேள்விகளைக் கேட்கவும், எங்கள் கருவிகளைப் பயன்படுத்திச் சிக்கல்களைத் தீர்க்கவும், உங்கள் தற்போதைய அணுகுமுறை குறித்து நிபுணர்களிடமிருந்து கருத்துகளைப் பெறவும் ஒரு வாய்ப்பாகும். இந்த வழிகாட்டியின் மூலம் செயல்பட நாங்கள் உங்களுக்கு உதவுவோம்.
எங்கள் Slack-இல் சேரவும்: Empire Hacking (புதிய தாவலில் திறக்கப்படும்). உங்களுக்கு ஏதேனும் கேள்விகள் இருந்தால், நாங்கள் எப்போதும் #crytic மற்றும் #ethereum சேனல்களில் இருப்போம்.