Analisis Kerentanan Compiler Solidity dan Strategi Penanganannya
Compiler adalah salah satu komponen inti dari sistem komputer modern, yang bertanggung jawab untuk mengubah kode sumber bahasa pemrograman tingkat tinggi menjadi instruksi yang dapat dieksekusi di tingkat rendah. Meskipun pengembang dan petugas keamanan biasanya lebih memperhatikan keamanan kode aplikasi, compiler itu sendiri sebagai sebuah program komputer juga dapat memiliki kerentanan keamanan. Kerentanan ini dalam keadaan tertentu dapat menimbulkan risiko keamanan yang serius.
Fungsi compiler Solidity adalah mengubah kode kontrak pintar menjadi kode instruksi untuk mesin virtual Ethereum (EVM). Berbeda dengan kerentanan EVM itu sendiri, kerentanan compiler Solidity tidak secara langsung mempengaruhi jaringan Ethereum, tetapi dapat menyebabkan kode EVM yang dihasilkan tidak sesuai dengan yang diharapkan pengembang, yang dapat mengakibatkan konsekuensi serius.
Berikut adalah beberapa contoh kerentanan kompilator Solidity yang nyata:
Kerentanan HighOrderByteCleanStorage ( versi 0.1.6-0.4.4):
Kerentanan ini dapat menyebabkan variabel storage mengembalikan nilai yang salah tanpa dimodifikasi.
Kerentanan InlineAssemblyMemorySideEffects( versi 0.8.13-0.8.15):
Karena strategi optimasi kompilator yang tidak diterapkan dengan benar, ini dapat menyebabkan operasi penulisan memori dihapus secara keliru.
Kerentanan AbiReencodingHeadOverflowWithStaticArrayCleanup ( versi 0.5.8-0.8.16):
Saat melakukan operasi abi.encode pada array tipe calldata, mungkin terjadi kesalahan dalam membersihkan data yang mengakibatkan hasil pengkodean dan penguraian yang tidak konsisten.
Untuk mengatasi risiko kerentanan compiler Solidity, pengembang harus:
Gunakan versi compiler yang lebih baru
Menyempurnakan kasus uji unit
Hindari penggunaan operasi seperti penyusunan inline assembly yang kompleks dan pengkodean/dekodean ABI
Petugas audit keamanan harus:
Pertimbangkan risiko yang mungkin diperkenalkan oleh compiler selama proses audit
Disarankan agar tim pengembang segera memperbarui versi compiler
Memperkenalkan pemeriksaan otomatis versi compiler dalam proses CI/CD
Sumber daya praktis yang dapat dirujuk meliputi:
Peringatan Keamanan Resmi Solidity
Daftar bug di repositori GitHub Solidity
Pemeriksaan versi compiler kontrak yang disediakan oleh Etherscan
Singkatnya, meskipun tidak perlu terlalu khawatir, pengembang dan petugas keamanan harus sepenuhnya menyadari risiko potensial dari kerentanan compiler Solidity, dan mengambil langkah-langkah yang sesuai untuk mencegahnya.
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.
12 Suka
Hadiah
12
6
Posting ulang
Bagikan
Komentar
0/400
NftCollectors
· 08-07 11:16
Dari data dasar, setidaknya 10% kode kontrak tidak memiliki audit keamanan, risiko kerentanan smart contract tidak kalah dengan risiko peredaran karya seni, tetapi hanya sedikit orang yang benar-benar memahami hal ini, ini adalah celah nilai.
Lihat AsliBalas0
LiquidityHunter
· 08-06 16:01
Seberapa besar ruang untuk arbitrase dari celah compiler ini dalam pemikiran mendalam di malam hari
Lihat AsliBalas0
fren.eth
· 08-06 15:44
Semua sudah bermain smart contract, bahkan bisa menghindari lubang yang lebih besar dari bug. Bukankah ini soal yang mudah?
Lihat AsliBalas0
ImpermanentPhilosopher
· 08-06 15:35
Menghadap ke compiler untuk berdoa... nasib pengembang ada di tangan siapa
Lihat AsliBalas0
DefiSecurityGuard
· 08-06 15:35
menemukan bendera merah compiler solidity lainnya... kapan para pengembang akan belajar untuk benar-benar memverifikasi output bytecode mereka smh
Lihat AsliBalas0
HashBard
· 08-06 15:33
bug di compiler? ngmi... solidity sedang menjadi puisi rasa sakit fr fr
Analisis Mendalam Risiko Kerentanan Compiler Solidity dan Strategi Penanggulangannya
Analisis Kerentanan Compiler Solidity dan Strategi Penanganannya
Compiler adalah salah satu komponen inti dari sistem komputer modern, yang bertanggung jawab untuk mengubah kode sumber bahasa pemrograman tingkat tinggi menjadi instruksi yang dapat dieksekusi di tingkat rendah. Meskipun pengembang dan petugas keamanan biasanya lebih memperhatikan keamanan kode aplikasi, compiler itu sendiri sebagai sebuah program komputer juga dapat memiliki kerentanan keamanan. Kerentanan ini dalam keadaan tertentu dapat menimbulkan risiko keamanan yang serius.
Fungsi compiler Solidity adalah mengubah kode kontrak pintar menjadi kode instruksi untuk mesin virtual Ethereum (EVM). Berbeda dengan kerentanan EVM itu sendiri, kerentanan compiler Solidity tidak secara langsung mempengaruhi jaringan Ethereum, tetapi dapat menyebabkan kode EVM yang dihasilkan tidak sesuai dengan yang diharapkan pengembang, yang dapat mengakibatkan konsekuensi serius.
Berikut adalah beberapa contoh kerentanan kompilator Solidity yang nyata:
Kerentanan HighOrderByteCleanStorage ( versi 0.1.6-0.4.4): Kerentanan ini dapat menyebabkan variabel storage mengembalikan nilai yang salah tanpa dimodifikasi.
Kerentanan InlineAssemblyMemorySideEffects( versi 0.8.13-0.8.15): Karena strategi optimasi kompilator yang tidak diterapkan dengan benar, ini dapat menyebabkan operasi penulisan memori dihapus secara keliru.
Kerentanan AbiReencodingHeadOverflowWithStaticArrayCleanup ( versi 0.5.8-0.8.16): Saat melakukan operasi abi.encode pada array tipe calldata, mungkin terjadi kesalahan dalam membersihkan data yang mengakibatkan hasil pengkodean dan penguraian yang tidak konsisten.
Untuk mengatasi risiko kerentanan compiler Solidity, pengembang harus:
Petugas audit keamanan harus:
Sumber daya praktis yang dapat dirujuk meliputi:
Singkatnya, meskipun tidak perlu terlalu khawatir, pengembang dan petugas keamanan harus sepenuhnya menyadari risiko potensial dari kerentanan compiler Solidity, dan mengambil langkah-langkah yang sesuai untuk mencegahnya.