Lompat ke konten utama

Daftar periksa keamanan kontrak pintar

kontrak pintar
keamanan
Solidity
Menengah
Trailofbits
7 September 2020
3 menit baca

Daftar periksa pengembangan kontrak pintar

Berikut adalah proses tingkat tinggi yang kami sarankan untuk diikuti saat Anda menulis kontrak pintar Anda.

Periksa masalah keamanan yang diketahui:

  • Tinjau kontrak Anda dengan Slither (opens in a new tab). Alat ini memiliki lebih dari 40 detektor bawaan untuk kerentanan umum. Jalankan pada setiap check-in dengan kode baru dan pastikan mendapatkan laporan yang bersih (atau gunakan mode triase untuk membungkam masalah tertentu).
  • Tinjau kontrak Anda dengan Crytic (opens in a new tab). Alat ini memeriksa 50 masalah yang tidak diperiksa oleh Slither. Crytic juga dapat membantu tim Anda untuk saling memantau, dengan memunculkan masalah keamanan secara mudah di Pull Request pada GitHub.

Pertimbangkan fitur khusus dari kontrak Anda:

Periksa secara visual fitur keamanan penting dari kode Anda:

Dokumentasikan properti keamanan penting dan gunakan pembuat pengujian otomatis untuk mengevaluasinya:

  • Pelajari cara mendokumentasikan properti keamanan untuk kode Anda. Awalnya memang sulit, tetapi ini adalah aktivitas tunggal yang paling penting untuk mencapai hasil yang baik. Ini juga merupakan prasyarat untuk menggunakan teknik lanjutan apa pun dalam tutorial ini.
  • Tentukan properti keamanan di Solidity, untuk digunakan dengan Echidna (opens in a new tab) dan Manticore (opens in a new tab). Fokus pada mesin status Anda, kontrol akses, operasi aritmatika, interaksi eksternal, dan kesesuaian standar.
  • Tentukan properti keamanan dengan API Python Slither. Fokus pada pewarisan, dependensi variabel, kontrol akses, dan masalah struktural lainnya.
  • Jalankan pengujian properti Anda pada setiap komit dengan Crytic (opens in a new tab). Crytic dapat mengonsumsi dan mengevaluasi pengujian properti keamanan sehingga semua orang di tim Anda dapat dengan mudah melihat bahwa pengujian tersebut lulus di GitHub. Pengujian yang gagal dapat memblokir komit.

Terakhir, perhatikan masalah yang tidak dapat ditemukan dengan mudah oleh alat otomatis:

  • Kurangnya privasi: orang lain dapat melihat transaksi Anda saat sedang mengantre di kolam
  • Transaksi front running
  • Operasi kriptografi
  • Interaksi berisiko dengan komponen DeFi eksternal

Minta bantuan

Jam kerja Ethereum (opens in a new tab) diadakan setiap Selasa sore. Sesi 1 lawan 1 selama 1 jam ini adalah kesempatan untuk menanyakan pertanyaan apa pun yang Anda miliki tentang keamanan, memecahkan masalah menggunakan alat kami, dan mendapatkan umpan balik dari para ahli tentang pendekatan Anda saat ini. Kami akan membantu Anda menyelesaikan panduan ini.

Bergabunglah dengan Slack kami: Empire Hacking (opens in a new tab). Kami selalu tersedia di saluran #crytic dan #ethereum jika Anda memiliki pertanyaan.

Pembaruan terakhir halaman: 7 Februari 2025

Apakah tutorial ini membantu?