CertiK membedah kejadian Rangkaian Axion dan kemerosotan harga berikutnya

Pada 2 November, Axion Network melancarkan token barunya, yang dikenali sebagai AXN. Projek ini menyebut aset itu sebagai kenderaan pelaburan baru, dan menyatakan bahawa ia akan menjadi blockchain paling menguntungkan seumpamanya hingga kini. Semasa penghentian sementara ke layar udara AXN, lima pasukan berasingan didakwa memeriksa kod token; rakan industri seperti CertiK dan Hacken adalah antara mereka yang menjalankan audit.
Beberapa jam selepas peristiwa tuntutan bebas protokol, bagaimanapun, menjadi jelas bahawa ada sesuatu yang serba salah. Seorang pelakon tanpa izin secara tiba-tiba mencetak 79 bilion AXN dan memunggahnya di pasaran. Harga runtuh melebihi 99%, menjaringkan penyerang 1300 ETH yang hebat – bernilai sekitar $ 500,000 pada saat penerbitan.
Pada jam-jam berikutnya, pasukan di belakang projek Axion mendorong para peserta untuk menjauhkan diri dari berdagang atau berinteraksi dengan aset tersebut, dengan menyatakan melalui saluran Telegram rasmi platform:
“Jangan beli AXN sekarang, jangan berinteraksi dengan papan pemuka,”
Akaun Twitter Axion Network terus menghantar kemas kini, termasuk:
Kami masih di sini.
Semua orang AXN / HEX2T yang ditahan pada masa eksploitasi akan dikreditkan.
Kami akan melancarkan portal ganjaran kecairan untuk membina kembali kecairan.
Kami berusaha keras untuk melancarkan semula AXN secepat mungkin.
– Axion (@axion_network) 2 November 2023
Walaupun ada jaminan ini, CertiK melangkah maju untuk memberikan penjelasan yang lebih jelas kepada masyarakat tentang apa yang mereka anggap salah, dan pandangan tentang bagaimana serangan serupa dapat dicegah di masa depan. Cointelegraph menghubungi melalui e-mel kepada “Jack Durden,” yang digambarkan kepada kami sebagai Ketua Pegawai Eksekutif Axion Network, tetapi tidak mendapat respons segera. Tidak ada ahli pasukan yang tercantum dalam kertas putih projek atau di laman web, dan nama “Jack Durden” dikongsi dengan pencerita yang tidak dapat dilihat dari filem Fight Club.
Perhatikan bahawa baki artikel ini disusun semula kata demi kata, dengan ihsan CertiK, sebagai perkhidmatan awam untuk mendidik pembaca mengenai pemahaman pasukan audit mengenai apa yang berlaku. Cointelegraph belum mengaudit kod dan pandangan yang dinyatakan selepas ini adalah eksklusif CertiK.
Kakitangan CertiK melaporkan kemalangan harga Axion
Pada 2 November 2023 di lebih kurang jam 11:00 pagi + UTC penggodam berjaya mengumpulkan sekitar ~ 80 bilion token AXN dengan memanfaatkan fungsi kontrak Axion Staking yang tidak dapat dilaksanakan.
Penggodam kemudian membuang token di bursa Uniswap AXN untuk Ether, mengulangi proses ini sehingga pertukaran Uniswap habis dan harga token didorong ke 0.
Kami dimaklumkan mengenai kejadian itu dalam beberapa minit serangan berlaku dan penganalisis keselamatan kami mula menilai keadaan dengan segera.
Kami telah membuat kesimpulan bahawa serangan itu mungkin direncanakan dari dalam, yang melibatkan suntikan kod jahat pada masa kod itu digunakan dengan mengubah kod dari ketergantungan OpenZeppelin.
Fungsi yang dieksploitasi bukan merupakan bagian dari audit yang kami jalankan seperti yang ditambahkan setelah menggabungkan kod Axion dengan kod OpenZeppelin melalui “meratakan” dan memasukkannya ke dalam kod OpenZeppelin sebelum penyebaran.
Perancangan
Penggodam menggunakan dana tanpa nama yang diperoleh dari puting beliung sehari sebelum penggodaman berlaku, mengisyaratkan serangan pra-meditasi. Mungkin untuk menjimatkan sejumlah wang sekiranya serangan gagal, 2.1 Ether diedarkan kembali di tornado.cash tepat setelah akaun menerima dana.
Untuk menyelesaikan persediaan serangan, penggodam membeli sekitar ~ 700k token HEX2T dari pertukaran Uniswap. Namun, dana ini akhirnya bukan merupakan bagian dari serangan dan berfungsi sebagai tabir asap mengenai bagaimana serangan itu terungkap.
Persediaan
Penggodam memulakan jalan mereka untuk menggerakkan serangan mereka dengan membuat saham “kosong” pada kontrak Staking dari Axion Network dengan memanggil fungsi saham dengan jumlah 0 dan durasi saham 1 hari pada lebih kurang 09:00 AM + UTC. Ini membuat entri Sesi untuk penyerang dengan jumlah 0 dan 0 nilai saham pada sesi ID 6.
Selepas itu, penyerang telah meluluskan jumlah AXN tanpa had ke pertukaran Uniswap sebagai jangkaan serangan mereka berjaya. Oleh itu, mereka meluluskan kontrak NativeSwap Axion untuk jumlah dana yang ingin mereka tukar kepada token AXN.
Mereka menggunakan fungsi deposit kontrak NativeSwap di lebih kurang jam 10:00 pagi + UTC, namun penggodam tidak pernah memanggil fungsi penarikan kontrak untuk menuntut AXN yang ditukar sebagai bukti pada fungsi swapTokenBalanceOf kontrak NativeSwap. Setelah itu, mereka membuat satu lagi panggilan fungsi deposit gagal sebelum melakukan serangan.
Pelaksanaan
Urus niaga ini hanyalah layar asap bagaimana serangan tanpa henti itu sebenarnya dilakukan. Oleh kerana transaksi yang dilakukan penyerang tidak menghasilkan perubahan pada pemetaan sessionDataOf, kami menyimpulkan bahawa ini adalah serangan berbilang alamat.
Kami menyiasat kod sumber kontrak di repositori GitHub yang telah dikongsi dengan kami untuk mengenal pasti kekurangan yang akan menyebabkan pemetaan sesiDataOf terjejas.
Kami tidak dapat mengesan sebarang penugasan kepadanya atau anggota di luar fungsi kepentingan yang mendorong kami untuk mempersoalkan apakah penyebaran kontrak dilakukan dengan baik.
Vektor Serangan
Setelah menganalisis kod sumber kontrak Staking yang digunakan, kami menunjukkan suntikan kod di perpustakaan AccessControl OpenZeppelin antara L665-L671 dari kod sumber yang digunakan kontrak Staking. Fungsi checkRole yang dipautkan bukan sebahagian daripada pelaksanaan OpenZeppelin v3.0.1, yang disenaraikan sebagai ketergantungan di repositori GitHub projek.
Dalam fungsi checkRole, blok pemasangan berikut ada:

Fungsi khusus ini membolehkan alamat tertentu untuk membuat penulisan kontrak secara sewenang-wenang berdasarkan pemboleh ubah input yang disertakannya melalui panggilan peringkat rendah. Di beri komen, blok pemasangan akan kelihatan seperti ini:

Fungsi ini disuntik semasa penyebaran kerana tidak ada dalam pelaksanaan OpenZeppelin AccessControl, yang bermaksud bahawa anggota Rangkaian Axion yang terlibat dengan penggunaan token bertindak jahat.
Kesimpulannya
Serangan itu menggunakan kod yang sengaja disuntikkan sebelum penerapan protokol. Kejadian ini tidak mempunyai kaitan dengan audit yang dilakukan oleh CertiK dan pihak yang bertanggung jawab atas serangan itu adalah orang yang sepertinya terlibat dengan penyebaran kontrak Rangkaian Axion.
Sebagai tahap keselamatan tambahan, laporan audit harus diseragamkan untuk memasukkan alamat kontrak pintar yang diterapkan yang kod sumbernya telah disahkan sama dengan yang telah diaudit.
The Keselamatan Oracle berfungsi sebagai penyambung intelijen keselamatan dalam talian, melakukan pemeriksaan keselamatan yang merangkumi pengesahan kontrak pintar yang diterapkan agar sesuai dengan versi yang diaudit.

Facebook
Pinterest