Lompat ke konten

Risiko modul multisig: izin mana yang melewati ambang batas?

Modul aktif dapat mengeksekusi operasi dari akun multisig tanpa mengumpulkan ambang normal pemilik. Pelajari cara mengaudit modul, Guard, Fallback Handler, peningkatan, dan jalur pemulihan.

Diperbarui

Hanya untuk tujuan edukasi; bukan merupakan nasihat investasi atau rekomendasi investasi. Investasi dapat mengakibatkan kerugian.

Jawaban langsung

Modul aktif merupakan jalur otorisasi terpisah. Pada akun pintar bergaya Safe, modul yang disetujui dapat memanggil execTransactionFromModule dan menjalankan CALL atau DELEGATECALL tanpa mengumpulkan tanda tangan normal M-dari-N pemilik untuk tindakan itu. Karena itu, ambang yang ditampilkan hanya menggambarkan satu jalur eksekusi, bukan seluruh batas keamanan akun.

Modul mendukung otomatisasi yang berguna, seperti batas belanja, pembayaran berkala, pemulihan, dan operasi protokol. Namun kewenangannya dapat luas: kontrak Safe resmi menyatakan bahwa modul aktif dapat mengeksekusi transaksi sewenang-wenang dan memperingatkan bahwa modul berbahaya dapat mengambil alih Safe. Tinjau setiap modul aktif, bukan hanya pemilik dan ambangnya.

Cara kerjanya

Pemilik lebih dahulu mengotorisasi enableModule melalui transaksi Safe biasa. Akun menyimpan modul dalam registri modul aktif. Setelah itu, modul memvalidasi sendiri pemanggil dan aturannya, lalu memanggil execTransactionFromModule; akun memastikan pemanggil telah diaktifkan dan menjalankan operasi yang diminta. Keamanan kini juga bergantung pada kode, konfigurasi, administrator, kunci peningkatan, dan dependensi eksternal modul.

Guard transaksi dan Module Guard adalah kontrol yang berbeda. Guard transaksi memeriksa panggilan execTransaction biasa, sedangkan Module Guard memeriksa panggilan yang dimulai modul. Guard dapat menolak eksekusi, tetapi Guard yang rusak atau terlalu ketat juga dapat menyebabkan penolakan layanan. Pastikan jenis yang terpasang, apa yang diperiksanya, serta cara memulihkan atau menghapusnya.

Fallback Handler adalah titik ekstensi lain. Ketika calldata tidak cocok dengan fungsi inti akun, akun meneruskan panggilan ke Handler yang dikonfigurasi dan menambahkan alamat pemanggil asli. Handler dapat menambahkan validasi tanda tangan dan callback token, tetapi logika atau konfigurasi yang tidak aman menciptakan permukaan izin dan interpretasi tambahan.

Contoh

Sebuah perbendaharaan memakai ambang pemilik 3-of-5 dan mengaktifkan modul tunjangan untuk pembayaran rutin. Modul dapat ditingkatkan, dan administrator peningkatannya adalah satu dompet panas. Jika kunci itu dibobol, penyerang dapat meningkatkan modul, memakai jalur eksekusi modul, dan memindahkan aset tanpa memperoleh 3 tanda tangan. Ambang 3-of-5 tetap utuh, tetapi tidak mengatur jalur ini.

Audit harus mengidentifikasi alamat modul dan implementasi terverifikasi, proksi dan administrator, batas belanja, target dan pemilih fungsi yang diizinkan, apakah DELEGATECALL diperbolehkan, Module Guard terpasang, Fallback Handler, dan transaksi tepat untuk menonaktifkan modul. Verifikasi nilai ini dari kontrak akun dan proksi di setiap rantai, bukan hanya dari antarmuka dompet.

Risiko

  • Risiko kewenangan: Modul rentan atau berbahaya dapat memindahkan aset, menyetujui pembelanja, mengubah status akun melalui DELEGATECALL, atau memanggil kontrak berhak istimewa lainnya. Antarmuka terbatas tidak membuktikan kewenangan on-chain juga terbatas.
  • Risiko kontrol dan peningkatan: Proksi modul, administrator, oracle, pelaksana otomatisasi, atau kunci pemulihan dapat mengecilkan susunan yang tampak 3-of-5 menjadi kelompok kontrol efektif yang lebih kecil. Telusuri setiap jalur peningkatan dan konfigurasi hingga penanda tangan akhir dan waktu tundanya.
  • Risiko ketersediaan: Guard yang rusak dapat memblokir transaksi sah, sementara modul yang dibobol dapat bertindak lebih cepat daripada koordinasi pemilik untuk menghapusnya. Uji penonaktifan dan pemulihan, pantau perubahan modul, Guard, dan Handler, serta pertahankan jalur respons yang tidak bergantung pada komponen yang dihapus.

Kesalahpahaman umum

  • Kesalahpahaman 1: “Akun ini 3-of-5, jadi setiap transfer memerlukan 3 tanda tangan.” Ambang berlaku pada jalur normal yang diotorisasi pemilik; modul aktif dapat memakai kebijakan berbeda.
  • Kesalahpahaman 2: “Satu Guard melindungi semua jalur eksekusi.” Guard transaksi biasa dan Module Guard mencakup titik masuk berbeda; cakupan bergantung pada kontrak terpasang dan aturannya.
  • Kesalahpahaman 3: “Menghapus modul di antarmuka mengakhiri risiko.” Pastikan registri modul aktif on-chain, penyimpanan Handler dan Guard, implementasi proksi, serta transaksi perubahan yang dijalankan pada setiap rantai.

Topik terkait

Sumber

Navigasi

Cari di wiki...