Vai al contenuto principale

Elenco di controllo di sicurezza per gli smart contract

smart ContractsicurezzaSolidity
Intermedio
Trailofbits
Creare contratti sicuri(opens in a new tab)
7 settembre 2020
3 minuti letti minute read

Elenco di controllo per lo sviluppo di smart contract

Ecco un processo d'alto livello che consigliamo di seguire per la scrittura degli smart contract.

Verifica i problemi di sicurezza noti:

  • Revisiona i tuoi contratti con Slither(opens in a new tab). Ha oltre 40 rilevatori integrati per le vulnerabilità comuni. Eseguilo a ogni check-in con il nuovo codice e assicurati di ottenere un report pulito (o usa la modalità triage per silenziare certi problemi).
  • Revisiona i tuoi contratti con Crytic(opens in a new tab). Controlla 50 problemi non verificati da Slither. Crytic può aiutare il tuo team a prevenire problemi, facendo affiorare facilmente le questioni di sicurezza nelle richieste pull su GitHub.

Considera le funzionalità speciali del tuo contratto:

Ispeziona visivamente le funzionalità di sicurezza critiche del tuo codice:

Documenta le proprietà di sicurezza critiche e usa generatori di test automatizzati per valutarle:

  • Impara a documentare le proprietà di sicurezza per il tuo codice. All'inizio è difficile, ma è l'attività in assoluto più importante per ottenere un buon risultato. È anche un prerequisito per usare qualsiasi tecnica avanzata in questo tutorial.
  • Definisci le proprietà di sicurezza in Solidity, per l'uso con Echidna(opens in a new tab) e Manticore(opens in a new tab). Concentrati sulla tua macchina di stato, controlli d'accesso, operazioni aritmetiche, interazioni esterne e conformità agli standard.
  • Definisci le proprietà di sicurezza con l'API di Python di Slither. Concentrati su eredità, dipendenze della variabile, controlli d'accesso e altri problemi strutturali.
  • Esegui i tuoi test di proprietà a ogni commit con Crytic(opens in a new tab). Crytic può consumare e valutare i test di proprietà di sicurezza in modo che tutti nel team possano facilmente vedere che passano su GitHub. I testi falliti possono bloccare i commit.

Infine, ricordati dei problemi che gli strumenti automatizzati non possono facilmente trovare:

  • Mancanza di privacy: tutti gli altri possono vedere le tue transazioni mentre sono accodate nel pool
  • Transazioni in esecuzione frontale
  • Operazioni crittografiche
  • Interazioni rischiose con componenti esterni della DeFi

Chiedi aiuto

Orari lavorativi di Ethereum(opens in a new tab): ogni martedì pomeriggio. Queste sessioni 1 a 1 di un'ora sono un'opportunità per farci domande sulla sicurezza, la risoluzione dei problemi usando i nostri strumenti e la ricezione di feedback dagli esperti sul tuo approccio corrente. Ti aiuteremo ad arrivare in fondo a questa guida.

Unisciti al nostro Slack: Empire Hacking(opens in a new tab). Siamo sempre disponibili nei canali #crytic ed #ethereum se hai domande.

Questo tutorial è stato utile?