Analisis Insiden Serangan Hacker pada Poly Network
Baru-baru ini, protokol interoperabilitas lintas rantai Poly Network mengalami serangan Hacker, yang menarik perhatian luas di industri. Setelah analisis tim keamanan, serangan ini bukan disebabkan oleh kebocoran kunci pribadi keeper, melainkan penyerang menggunakan data yang dibangun dengan cerdik untuk memodifikasi alamat keeper dari kontrak EthCrossChainData dengan memanfaatkan celah dalam kontrak.
Prinsip Serangan
Inti dari serangan terletak pada fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager yang dapat mengeksekusi transaksi lintas rantai tertentu melalui fungsi _executeCrossChainTx. Karena pemilik kontrak EthCrossChainData adalah kontrak EthCrossChainManager, yang terakhir dapat memanggil fungsi putCurEpochConPubKeyBytes dari kontrak EthCrossChainData untuk mengubah keeper kontrak.
Penyerang memanfaatkan fungsi verifyHeaderAndExecuteTx, dengan memasukkan data yang dirancang dengan cermat, untuk mengeksekusi panggilan fungsi putCurEpochConPubKeyBytes pada kontrak EthCrossChainData melalui fungsi _executeCrossChainTx, sehingga mengubah peran keeper menjadi alamat yang ditentukan oleh penyerang. Setelah mengganti alamat keeper, penyerang dapat membangun transaksi untuk menarik jumlah dana yang diinginkan dari kontrak.
Proses Serangan
Penyerang pertama-tama memanggil fungsi putCurEpochConPubKeyBytes melalui fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager untuk mengubah keeper.
Setelah keeper diubah, penyerang mulai melaksanakan serangkaian transaksi serangan untuk menarik dana dari kontrak.
Setelah serangan selesai, karena keeper telah dimodifikasi, transaksi normal pengguna lain ditolak untuk dieksekusi.
Pola serangan ini juga memiliki operasi serupa di jaringan Ethereum.
Ringkasan
Kunci serangan kali ini adalah bahwa keeper dari kontrak EthCrossChainData dapat dimodifikasi oleh kontrak EthCrossChainManager, dan fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager dapat mengeksekusi data yang dimasukkan oleh pengguna melalui fungsi _executeCrossChainTx. Penyerang memanfaatkan hal ini dengan membangun data tertentu, berhasil mengubah keeper dari kontrak EthCrossChainData menjadi alamat yang dikendalikan oleh penyerang.
Peristiwa ini sekali lagi mengingatkan kita bahwa dalam desain kontrak pintar, perlu perhatian ekstra terhadap manajemen hak akses dan keamanan pemanggilan fungsi. Untuk fungsi yang dapat mempengaruhi parameter kunci, seharusnya diterapkan kontrol akses dan mekanisme pemeriksaan keamanan yang lebih ketat. Selain itu, keamanan proyek lintas rantai juga perlu mendapatkan perhatian lebih, karena mereka sering melibatkan sejumlah besar dana dan logika interaksi yang kompleks.
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.
21 Suka
Hadiah
21
3
Bagikan
Komentar
0/400
GasFeeCrier
· 07-11 15:43
Lagi-lagi terjadi kegagalan pada smart contract, terlalu buruk ya
Poly Network diserang: kerentanan smart contract menyebabkan keeper dimanipulasi
Analisis Insiden Serangan Hacker pada Poly Network
Baru-baru ini, protokol interoperabilitas lintas rantai Poly Network mengalami serangan Hacker, yang menarik perhatian luas di industri. Setelah analisis tim keamanan, serangan ini bukan disebabkan oleh kebocoran kunci pribadi keeper, melainkan penyerang menggunakan data yang dibangun dengan cerdik untuk memodifikasi alamat keeper dari kontrak EthCrossChainData dengan memanfaatkan celah dalam kontrak.
Prinsip Serangan
Inti dari serangan terletak pada fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager yang dapat mengeksekusi transaksi lintas rantai tertentu melalui fungsi _executeCrossChainTx. Karena pemilik kontrak EthCrossChainData adalah kontrak EthCrossChainManager, yang terakhir dapat memanggil fungsi putCurEpochConPubKeyBytes dari kontrak EthCrossChainData untuk mengubah keeper kontrak.
Penyerang memanfaatkan fungsi verifyHeaderAndExecuteTx, dengan memasukkan data yang dirancang dengan cermat, untuk mengeksekusi panggilan fungsi putCurEpochConPubKeyBytes pada kontrak EthCrossChainData melalui fungsi _executeCrossChainTx, sehingga mengubah peran keeper menjadi alamat yang ditentukan oleh penyerang. Setelah mengganti alamat keeper, penyerang dapat membangun transaksi untuk menarik jumlah dana yang diinginkan dari kontrak.
Proses Serangan
Penyerang pertama-tama memanggil fungsi putCurEpochConPubKeyBytes melalui fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager untuk mengubah keeper.
Setelah keeper diubah, penyerang mulai melaksanakan serangkaian transaksi serangan untuk menarik dana dari kontrak.
Setelah serangan selesai, karena keeper telah dimodifikasi, transaksi normal pengguna lain ditolak untuk dieksekusi.
Pola serangan ini juga memiliki operasi serupa di jaringan Ethereum.
Ringkasan
Kunci serangan kali ini adalah bahwa keeper dari kontrak EthCrossChainData dapat dimodifikasi oleh kontrak EthCrossChainManager, dan fungsi verifyHeaderAndExecuteTx dari kontrak EthCrossChainManager dapat mengeksekusi data yang dimasukkan oleh pengguna melalui fungsi _executeCrossChainTx. Penyerang memanfaatkan hal ini dengan membangun data tertentu, berhasil mengubah keeper dari kontrak EthCrossChainData menjadi alamat yang dikendalikan oleh penyerang.
Peristiwa ini sekali lagi mengingatkan kita bahwa dalam desain kontrak pintar, perlu perhatian ekstra terhadap manajemen hak akses dan keamanan pemanggilan fungsi. Untuk fungsi yang dapat mempengaruhi parameter kunci, seharusnya diterapkan kontrol akses dan mekanisme pemeriksaan keamanan yang lebih ketat. Selain itu, keamanan proyek lintas rantai juga perlu mendapatkan perhatian lebih, karena mereka sering melibatkan sejumlah besar dana dan logika interaksi yang kompleks.