Analisis Kerentanan Kompiler Solidity dan Strategi Penanganannya

robot
Pembuatan abstrak sedang berlangsung

Analisis Kerentanan Compiler Solidity dan Tindakan Penanggulangan

Kompiler adalah salah satu komponen dasar dari sistem komputer modern, fungsinya adalah untuk mengubah kode sumber dari bahasa pemrograman tingkat tinggi menjadi kode instruksi yang dapat dieksekusi oleh komputer. Meskipun sebagian besar pengembang dan profesional keamanan biasanya fokus pada keamanan kode aplikasi, keamanan kompilernya sendiri juga sama pentingnya. Kerentanan kompilator dalam skenario tertentu dapat membawa risiko keamanan yang serius, misalnya, saat browser mengeksekusi kode Javascript, kerentanan pada mesin pengurai dapat menyebabkan eksekusi kode jarak jauh.

Analisis Kerentanan Compiler Solidity dan Tindakan Penanggulangan

Kompiler Solidity juga tidak terkecuali, terdapat celah keamanan di berbagai versi. Fungsi dari kompiler Solidity adalah mengubah kode kontrak pintar menjadi kode instruksi mesin virtual Ethereum (EVM). Perlu dicatat bahwa celah di kompiler Solidity berbeda dengan celah di EVM itu sendiri. Celah EVM dapat mempengaruhi seluruh jaringan Ethereum, sedangkan celah di kompiler Solidity terutama berdampak pada pengembang dan pengguna kontrak pintar.

Salah satu bahaya dari kerentanan compiler Solidity adalah dapat menyebabkan kode EVM yang dihasilkan tidak sesuai dengan harapan pengembang. Karena kontrak pintar biasanya melibatkan aset cryptocurrency pengguna, setiap bug yang disebabkan oleh compiler dapat mengakibatkan konsekuensi serius. Masalah semacam ini sulit ditemukan hanya dengan audit kode sederhana, dan memerlukan analisis gabungan antara versi compiler tertentu dan pola kode.

Berikut adalah beberapa contoh kerentanan kompilator Solidity yang nyata:

  1. SOL-2016-9 HighOrderByteCleanStorage: Vuln ini ada pada versi awal compiler Solidity (>=0.1.6 <0.4.4). Karena compiler tidak menangani operasi penghapusan tinggi setelah overflow integer dengan benar, nilai variabel yang berdekatan dapat diubah secara tidak sengaja.

  2. SOL-2022-4 InlineAssemblyMemorySideEffects: Kerentanan ini ada di dalam versi compiler >=0.8.13 <0.8.15. Karena penanganan yang salah terhadap kode assembly inline selama proses optimasi compiler, beberapa operasi memori mungkin dioptimalkan secara salah.

  3. SOL-2022-6 AbiReencodingHeadOverflowWithStaticArrayCleanup: Kerentanan ini mempengaruhi versi compiler >= 0.5.8 < 0.8.16. Saat melakukan operasi abi.encode pada array tipe calldata, mungkin ada kesalahan dalam membersihkan beberapa data, yang menyebabkan data yang berdekatan diubah.

Analisis Kerentanan Kompilator Solidity dan Tindakan yang Ditempuh

Terkait kerentanan compiler Solidity, tim keamanan blockchain Cobo mengajukan saran berikut:

Untuk pengembang:

  • Gunakan versi terbaru dari compiler Solidity
  • Memperbaiki kasus uji unit
  • Hindari penggunaan inline assembly, operasi pengkodean dan penguraian ABI yang kompleks, dll.
  • Gunakan fitur bahasa baru dan fungsi eksperimental dengan hati-hati

Kepada petugas keamanan:

  • Pertimbangkan risiko yang mungkin diperkenalkan oleh compiler saat audit keamanan
  • Mendorong peningkatan versi compiler dalam proses pengembangan
  • Memperkenalkan pemeriksaan otomatis versi compiler dalam proses CI/CD
  • Menilai dampak keamanan nyata dari kerentanan compiler berdasarkan situasi spesifik proyek

Beberapa sumber daya yang berguna:

  • Peringatan keamanan resmi dari Solidity
  • Daftar bug yang diperbarui di repositori resmi Solidity
  • Daftar bug compiler untuk setiap versi
  • Fitur peringatan kerentanan compiler yang disediakan oleh Etherscan

Analisis Kerentanan Compiler Solidity dan Tindakan yang Dapat Diambil

Dengan memperhatikan keamanan compiler, menyempurnakan pengujian, menggunakan fitur kompleks dengan hati-hati, dan memperbarui versi compiler secara tepat waktu, para pengembang dan profesional keamanan dapat secara efektif mengurangi risiko yang ditimbulkan oleh kerentanan compiler Solidity, serta meningkatkan keamanan keseluruhan kontrak pintar.

SOL-1.58%
ETH-0.47%
Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • 6
  • Bagikan
Komentar
0/400
Rekt_Recoveryvip
· 07-12 06:08
rip untuk dana semua orang... sudah pernah mengalami, kehilangan semuanya karena bug compiler pada tahun 2018 smh
Lihat AsliBalas0
RunWhenCutvip
· 07-12 05:51
Mau diuji atau tidak, tetap saja akan dipermainkan.
Lihat AsliBalas0
FUDwatchervip
· 07-12 03:11
Bug ini sangat menakutkan, saya pergi!
Lihat AsliBalas0
ResearchChadButBrokevip
· 07-09 10:27
Compiler bermasalah lagi? Begadang untuk memperbaiki bug.
Lihat AsliBalas0
MoonlightGamervip
· 07-09 10:19
Kode sudah diperiksa, tidak ada masalah.
Lihat AsliBalas0
GasGuzzlervip
· 07-09 09:58
Masih menulis smart contract, ada aroma suckers.
Lihat AsliBalas0
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)