Tinjauan dan Pemikiran tentang Tindakan Penyelamatan Kerentanan Proyek
Pada 18 Januari 2022, sistem pemantauan transaksi abnormal kami mendeteksi serangan terhadap sebuah proyek lintas rantai. Karena satu fungsi dalam kontrak proyek tidak menerapkan mekanisme verifikasi dengan benar, menyebabkan token yang diberikan otorisasi oleh pengguna kepada proyek tersebut dapat diekstraksi oleh penyerang.
Meskipun pihak proyek telah mencoba berbagai cara untuk mengingatkan pengguna yang terkena dampak, masih banyak pengguna yang tidak dapat merespons tepat waktu, sehingga penyerang dapat terus melanjutkan serangan dan mendapatkan keuntungan. Mengingat serangan yang terus berlangsung, untuk melindungi calon korban, kami memutuskan untuk mengambil langkah tanggap darurat. Penyelamatan ini ditujukan untuk akun yang terkena dampak di Ethereum, kami akan memindahkan dana akun terkait ke akun multi-tanda tangan yang dibentuk khusus. Untuk memastikan tindakan ini transparan, kami akan mempublikasikan hash dokumen rencana terkait kepada komunitas, yang membedakan perilaku kami dari penyerang tanpa mengungkapkan rincian. Tindakan penyelamatan dimulai pada 21 Januari 2022 dan berakhir pada 11 Maret.
Tanggap darurat menghadapi banyak tantangan teknis dan non-teknis. Setelah tindakan selesai, kami menganalisis seluruh proses, berharap dapat berbagi pengalaman terkait, untuk membantu keamanan komunitas dan ekosistem DeFi.
Gambaran Umum Situasi Penyuluhan
Dalam rentang waktu yang kami amati ( dari 18 Januari 2022 hingga 20 Maret 2022 ), situasi serangan dan penyelamatan secara keseluruhan adalah sebagai berikut:
Perlu dicatat bahwa karena adanya beberapa situasi rumit ( seperti beberapa penyerang kemudian mencapai kesepakatan dengan pihak proyek untuk mengembalikan sebagian keuntungan ), statistik di atas hanya merupakan data kasar.
Tren Perubahan Biaya Flashbots
Persaingan antara white hat dan penyerang dalam mengirimkan transaksi Flashbots untuk melakukan penyelamatan, biaya Flashbots yang dibayarkan mencerminkan tingkat persaingan yang ketat. Kami menghitung proporsi biaya Flashbots dari transaksi serangan dan penyelamatan berdasarkan blok transaksi.
Biaya Flashbots untuk transaksi serangan awal adalah 0, menunjukkan bahwa penyerang belum menggunakan Flashbots. Kemudian, proporsi biaya Flashbots dengan cepat meningkat, bahkan mencapai 80%-91% di beberapa blok. Ini mencerminkan perlombaan senjata biaya yang disebabkan oleh persaingan hak on-chain Flashbots.
Pelaksanaan dan Tantangan Aksi Penyelamatan
Pemikiran dasar dari penyelamatan adalah memantau akun yang berpotensi menjadi korban, ketika ada WETH yang masuk, memanfaatkan celah kontrak untuk mengeluarkannya ke dompet multisig putih. Kuncinya adalah memenuhi persyaratan berikut:
Efektif melokalisasi transaksi transfer ke korban
Membangun transaksi penyelamatan dengan benar
Transaksi penyerang berhasil melakukan serangan awal
Dua poin pertama tidak menjadi hambatan bagi kita, tetapi poin ketiga masih merupakan tantangan. Meskipun kita bisa menggunakan Flashbots untuk melakukan front-running, tingkat keberhasilan tergantung pada besaran biaya karena menggunakan model lelang biaya, sehingga pengaturan strategi perlu dipertimbangkan lebih lanjut. Selain itu, posisi dan urutan transaksi saat mengirim transaksi biasa di mempool juga merupakan faktor kunci. Kami juga bersaing dengan "white hat" lainnya, beberapa tindakan "white hat" tersebut cukup mencurigakan.
Secara keseluruhan, kami berusaha melindungi 171 akun calon korban. Di antara mereka, 10 mencabut otorisasi secara tepat waktu untuk melindungi diri, dan dari 161 yang tersisa, karena adanya berbagai persaingan, kami hanya berhasil menyelamatkan 14.
Pelajaran yang Dipetik
Pengaturan biaya Flashbots
Strategi biaya kami cukup konservatif, cenderung menetapkan biaya yang lebih rendah untuk melindungi kepentingan korban. Namun, strategi ini tidak terlalu berhasil, para penyerang dan beberapa hacker baik biasanya menggunakan strategi yang lebih agresif. Contohnya:
Seorang penyerang mengatur rasio biaya menjadi 70%
Seorang white hat menetapkan proporsi biaya sebesar 79%-81%
Penyerang lain meningkatkan rasio biaya menjadi 86%
Ini tampaknya menjadi permainan zero-sum, yang membutuhkan pemodelan untuk menjelajahi pola perilaku berbagai pihak, mencari keseimbangan antara mengurangi biaya dan memenangkan persaingan.
Urutan transaksi Mempool
Karena persaingan yang sengit dari banyak pihak, Flashbots tidak selalu efektif. Menggunakan mempool untuk mengirim transaksi biasa, jika diatur di posisi yang tepat, juga dapat mencapai tujuan. Seorang penyerang berhasil mendapatkan keuntungan 312 ETH dengan menggunakan strategi ini, tanpa perlu membayar biaya Flashbots.
Serangan transaksi tersebut secara cerdik diatur di posisi yang berdekatan setelah transaksi transfer korban. Strategi ini memiliki kepraktisan dan daya tarik yang patut diperhatikan.
Pemikiran Lain
Definisi White Hat dan Penyerang
Mengenali white hat tidak selalu sederhana dan jelas. Misalnya, suatu alamat awalnya ditandai sebagai penyerang, kemudian diubah menjadi white hat. Ini berasal dari negosiasi antara proyek dan penyerang, di mana penyerang setuju untuk menyimpan sebagian keuntungan sebagai penghargaan dan mengembalikan keuntungan lainnya. Fenomena ini memicu diskusi dalam komunitas tentang keadilan insentif.
Persaingan Topi Putih
Komunitas perlu membangun mekanisme koordinasi untuk mengurangi kompetisi antara para white hat. Kompetisi ini dapat membuang sumber daya penyelamatan dan meningkatkan biaya penyelamatan. Misalnya, kami bersama tiga organisasi white hat lainnya mencoba melindungi 54 korban secara bersamaan, yang melibatkan kerugian sebesar 450 ETH.
Meningkatkan Aksi Penyelamatan
Topi putih dapat mengumumkan tindakan kepada komunitas tanpa mengungkapkan informasi sensitif, untuk mendapatkan kepercayaan dari komunitas.
Semua pihak di komunitas dapat bekerja sama untuk membuat bantuan lebih cepat dan efektif:
Flashbots/Penambang menyediakan jalur hijau untuk white hat yang terpercaya
Pihak proyek menanggung biaya Flashbots
Proyek menggunakan mekanisme peringatan pengguna yang lebih mudah.
Pihak proyek mengambil langkah-langkah darurat yang diperlukan dalam kode
Dengan merangkum pengalaman dan pelajaran, kami berharap bahwa tindakan penyelamatan di masa depan dapat lebih efisien dan memaksimalkan perlindungan terhadap kepentingan pengguna.
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.
Aksi Penyelamatan Kerentanan Proyek cross-chain: Ringkasan Pengalaman dan Petunjuk Keamanan Keuangan Desentralisasi
Tinjauan dan Pemikiran tentang Tindakan Penyelamatan Kerentanan Proyek
Pada 18 Januari 2022, sistem pemantauan transaksi abnormal kami mendeteksi serangan terhadap sebuah proyek lintas rantai. Karena satu fungsi dalam kontrak proyek tidak menerapkan mekanisme verifikasi dengan benar, menyebabkan token yang diberikan otorisasi oleh pengguna kepada proyek tersebut dapat diekstraksi oleh penyerang.
Meskipun pihak proyek telah mencoba berbagai cara untuk mengingatkan pengguna yang terkena dampak, masih banyak pengguna yang tidak dapat merespons tepat waktu, sehingga penyerang dapat terus melanjutkan serangan dan mendapatkan keuntungan. Mengingat serangan yang terus berlangsung, untuk melindungi calon korban, kami memutuskan untuk mengambil langkah tanggap darurat. Penyelamatan ini ditujukan untuk akun yang terkena dampak di Ethereum, kami akan memindahkan dana akun terkait ke akun multi-tanda tangan yang dibentuk khusus. Untuk memastikan tindakan ini transparan, kami akan mempublikasikan hash dokumen rencana terkait kepada komunitas, yang membedakan perilaku kami dari penyerang tanpa mengungkapkan rincian. Tindakan penyelamatan dimulai pada 21 Januari 2022 dan berakhir pada 11 Maret.
Tanggap darurat menghadapi banyak tantangan teknis dan non-teknis. Setelah tindakan selesai, kami menganalisis seluruh proses, berharap dapat berbagi pengalaman terkait, untuk membantu keamanan komunitas dan ekosistem DeFi.
Gambaran Umum Situasi Penyuluhan
Dalam rentang waktu yang kami amati ( dari 18 Januari 2022 hingga 20 Maret 2022 ), situasi serangan dan penyelamatan secara keseluruhan adalah sebagai berikut:
9 akun penyelamatan melindungi 483.027693 ETH, membayar biaya Flashbots 295.970554 ETH( mencakup 61.27%)
21 akun penyerang memperoleh 1433.092224 ETH, membayar biaya Flashbots 148.903707 ETH( menyumbang 10.39%)
Perlu dicatat bahwa karena adanya beberapa situasi rumit ( seperti beberapa penyerang kemudian mencapai kesepakatan dengan pihak proyek untuk mengembalikan sebagian keuntungan ), statistik di atas hanya merupakan data kasar.
Tren Perubahan Biaya Flashbots
Persaingan antara white hat dan penyerang dalam mengirimkan transaksi Flashbots untuk melakukan penyelamatan, biaya Flashbots yang dibayarkan mencerminkan tingkat persaingan yang ketat. Kami menghitung proporsi biaya Flashbots dari transaksi serangan dan penyelamatan berdasarkan blok transaksi.
Biaya Flashbots untuk transaksi serangan awal adalah 0, menunjukkan bahwa penyerang belum menggunakan Flashbots. Kemudian, proporsi biaya Flashbots dengan cepat meningkat, bahkan mencapai 80%-91% di beberapa blok. Ini mencerminkan perlombaan senjata biaya yang disebabkan oleh persaingan hak on-chain Flashbots.
Pelaksanaan dan Tantangan Aksi Penyelamatan
Pemikiran dasar dari penyelamatan adalah memantau akun yang berpotensi menjadi korban, ketika ada WETH yang masuk, memanfaatkan celah kontrak untuk mengeluarkannya ke dompet multisig putih. Kuncinya adalah memenuhi persyaratan berikut:
Dua poin pertama tidak menjadi hambatan bagi kita, tetapi poin ketiga masih merupakan tantangan. Meskipun kita bisa menggunakan Flashbots untuk melakukan front-running, tingkat keberhasilan tergantung pada besaran biaya karena menggunakan model lelang biaya, sehingga pengaturan strategi perlu dipertimbangkan lebih lanjut. Selain itu, posisi dan urutan transaksi saat mengirim transaksi biasa di mempool juga merupakan faktor kunci. Kami juga bersaing dengan "white hat" lainnya, beberapa tindakan "white hat" tersebut cukup mencurigakan.
Secara keseluruhan, kami berusaha melindungi 171 akun calon korban. Di antara mereka, 10 mencabut otorisasi secara tepat waktu untuk melindungi diri, dan dari 161 yang tersisa, karena adanya berbagai persaingan, kami hanya berhasil menyelamatkan 14.
Pelajaran yang Dipetik
Pengaturan biaya Flashbots
Strategi biaya kami cukup konservatif, cenderung menetapkan biaya yang lebih rendah untuk melindungi kepentingan korban. Namun, strategi ini tidak terlalu berhasil, para penyerang dan beberapa hacker baik biasanya menggunakan strategi yang lebih agresif. Contohnya:
Ini tampaknya menjadi permainan zero-sum, yang membutuhkan pemodelan untuk menjelajahi pola perilaku berbagai pihak, mencari keseimbangan antara mengurangi biaya dan memenangkan persaingan.
Urutan transaksi Mempool
Karena persaingan yang sengit dari banyak pihak, Flashbots tidak selalu efektif. Menggunakan mempool untuk mengirim transaksi biasa, jika diatur di posisi yang tepat, juga dapat mencapai tujuan. Seorang penyerang berhasil mendapatkan keuntungan 312 ETH dengan menggunakan strategi ini, tanpa perlu membayar biaya Flashbots.
Serangan transaksi tersebut secara cerdik diatur di posisi yang berdekatan setelah transaksi transfer korban. Strategi ini memiliki kepraktisan dan daya tarik yang patut diperhatikan.
Pemikiran Lain
Definisi White Hat dan Penyerang
Mengenali white hat tidak selalu sederhana dan jelas. Misalnya, suatu alamat awalnya ditandai sebagai penyerang, kemudian diubah menjadi white hat. Ini berasal dari negosiasi antara proyek dan penyerang, di mana penyerang setuju untuk menyimpan sebagian keuntungan sebagai penghargaan dan mengembalikan keuntungan lainnya. Fenomena ini memicu diskusi dalam komunitas tentang keadilan insentif.
Persaingan Topi Putih
Komunitas perlu membangun mekanisme koordinasi untuk mengurangi kompetisi antara para white hat. Kompetisi ini dapat membuang sumber daya penyelamatan dan meningkatkan biaya penyelamatan. Misalnya, kami bersama tiga organisasi white hat lainnya mencoba melindungi 54 korban secara bersamaan, yang melibatkan kerugian sebesar 450 ETH.
Meningkatkan Aksi Penyelamatan
Topi putih dapat mengumumkan tindakan kepada komunitas tanpa mengungkapkan informasi sensitif, untuk mendapatkan kepercayaan dari komunitas.
Semua pihak di komunitas dapat bekerja sama untuk membuat bantuan lebih cepat dan efektif:
Dengan merangkum pengalaman dan pelajaran, kami berharap bahwa tindakan penyelamatan di masa depan dapat lebih efisien dan memaksimalkan perlindungan terhadap kepentingan pengguna.