Treceți la conținutul principal

Ajutați-ne să actualizăm această pagină

🌏

Există o nouă versiune a acestei pagini, dar este doar în limba engleză pentru moment. Ajutați-ne să traducem versiunea cea mai recentă.

Traduceți pagina
Afișați versiunea în limba engleză

Nici o eroare aici!🐛

Această pagină nu este tradusă. Am lăsat în mod intenționat această pagină în limba engleză deocamdată.

Lista de verificare a securității contractelor inteligente

contracte inteligentesecuritatesolidity
Intermediar
✍️Trailofbits
📚Construirea de contracte securizate
📆7 septembrie 2020
⏱️3 minute de citit

Lista de verificare pentru dezvoltarea contractelor inteligente

Iată un proces în linii mari pe care vă recomandăm să îl urmați pentru scrierea contractelor inteligente.

Verificați dacă există problemele de securitate cunoscute:

  • Revizuiți-vă contractele cu Slither. Are încorporate peste 40 de detectoare pentru vulnerabilitățile obișnuite. Executați acest program la fiecare verificare cu cod nou și asigurați-vă că primește un raport curat (sau utilizați modul triaj pentru a pune în surdină anumite probleme).
  • Revizuiți-vă contractele cu Crytic. Acesta verifică existența a 50 de probleme pe care Slither nu le verifică. Crytic vă poate ține și echipa la curent, evidențiind cu ușurință problemele de securitate în solicitările de tip „Pull Requests” pe GitHub.

Gândiți-vă să includeți funcționalități speciale contractul dvs:

  • Pot fi actualizate contractele dvs.? Revizuiți-vă codul posibilității de actualizare contra deficiențelor cu slither-check-upgradeability sau Crytic. Am documentat 17 moduri în care actualizările pot merge prost.
  • Este în intenția contractelor dvs. să se conformeze cu ERC-urile? Verificați-le cu slither-check-erc. Acest instrument identifică instantaneu abaterile de la șase specificații comune.
  • Aveți teste de unitate în Truffle? Îmbogățiți-le cu slither-prop. Acesta generează automat o suită robustă de proprietăți de securitate pentru funcționalitățile ERC20 pe baza codului dvs. specific.
  • Puteți să integrați tokenuri de la terți? Revizuiți lista noastră de verificare pentru integrarea cu tokenurile înainte de a vă baza pe contracte externe.

Inspectați vizual funcționalitățile de securitate de importață majoră ale codului dvs:

  • Examinați pe imprimanta Slither inheritance-graph. Evitați problemele de umbrire involuntară și de linearizare C3.
  • Examinați pe imprimanta Slither function-summary. Aceasta indică vizibilitatea funcțiilor și controalele de acces.
  • Examinați pe imprimanta Slither vars-and-auth. Aceasta informează despre controalele de acces la variabilele de stare.

Documentați proprietățile de securitate de importanță majoră și utilizați generatoarele automate de teste pentru a le evalua:

  • Învățați să documentați proprietățile de securitate ale codului dvs.. La început este greu, dar este cea mai importantă activitate pentru a obține un rezultat bun. Este și o condiție prealabilă pentru utilizarea oricărei tehnici avansate din acest tutorial.
  • Definiți proprietățile de securitate în Solidity pentru utilizarea cu Echidna și Manticore. Axați-vă pe mașina de stare, controalele de acces, operațiile aritmetice, interacțiunile externe și conformitatea cu standardele.
  • Definiți proprietățile de securitate cu API-ul Python al Slither. Axați-vă pe moștenire, dependențe de variabile, controalele de acces și alte aspecte structurale.
  • Executați testele proprietăților dvs. la fiecare comitere cu Crytic. Crytic poate consuma și evalua testele proprietăților de securitate, ca toți cei din echipa dvs. să poată vedea ușor că acestea au reușit pe GitHub. Testele eșuate pot să blocheze comiterile.

În sfârșit, fiți vigilent cu privire la problemele pe care instrumentele automate nu le pot găsi cu ușurință:

  • Lipsa de confidențialitate: oricine poate să vă vadă tranzacțiile cât timp acestea se află în coada de așteptare a grupului
  • Tranzacții cu executare devansată (front running)
  • Operațiuni criptografice
  • Interacțiuni riscante cu componente externe DeFi

Solicitați ajutor

Biroul Ethereum este deschis în fiecare marți după-amiază. Aceste sesiuni individuale de 1 oră reprezintă ocazia să ne puneți orice întrebări despre securitate și depanare cu instrumentele noastre, precum și să primiți feedback de la experți cu privire la abordarea dvs. actuală. Vă vom ajuta să parcurgeți acest ghid.

Veniți cu noi pe site-ul Slack: Empire Hacking. Vă stăm tot timpul la dispoziție pe canalele #crytic și #ethereum dacă aveți întrebări.

Ultima modificare: , Invalid DateTime
Modificați pagina

A fost utilă această pagină?