Analisis Keamanan Kontrak NFT: Peristiwa Khas dan Masalah Umum
Pada paruh pertama tahun 2022, kejadian keamanan di bidang NFT sering terjadi, menyebabkan kerugian ekonomi yang signifikan. Menurut pemantauan platform data, selama periode tersebut terjadi 10 kejadian keamanan utama, dengan total kerugian sekitar 64,9 juta dolar AS. Metode serangan terutama mencakup eksploitasi celah kontrak, kebocoran kunci pribadi, dan phishing. Selain itu, server Discord juga mengalami serangan yang sering, mengakibatkan pengguna pribadi sering kali mengalami kerugian akibat mengklik tautan phishing.
Analisis Kejadian Keamanan Tipikal
Peristiwa TreasureDAO
Pada 3 Maret 2022, platform perdagangan TreasureDAO diserang oleh peretas, mengakibatkan lebih dari 100 NFT dicuri. Akar masalah terletak pada celah logika dalam kontrak TreasureMarketplaceBuyer. Kontrak tidak memeriksa jenis token dalam fungsi buyItem, langsung mengalikan _quantity dengan _pricePerItem untuk menghitung totalPrice, yang memungkinkan penyerang membeli token dengan pembayaran ERC-20 yang nilainya 0. Masalah ini berasal dari kebingungan logika yang diakibatkan oleh penggunaan campuran token ERC-1155 dan ERC-721, di mana token ERC-721 sebenarnya tidak memiliki konsep jumlah, tetapi kontrak menghitung harga berdasarkan jumlah, dan dalam implementasi transfer tidak ada pemisahan logika.
peristiwa airdrop APE Coin
Pada 17 Maret 2022, peretas mendapatkan lebih dari 60.000 APE Coin airdrop melalui pinjaman kilat. Kontrak airdrop GrapesToken memiliki celah logika, hanya menggunakan alpha.balanceOf() dan beta.balanceOf() untuk menentukan kepemilikan pemanggil terhadap NFT BAYC/MAYC. Cara ini hanya dapat memperoleh status kepemilikan NFT pengguna secara instan, dan status tersebut dapat dimanipulasi melalui pinjaman kilat. Penyerang memanfaatkan celah ini, meminjam NFT BAYC melalui pinjaman kilat dan mendapatkan airdrop yang sesuai.
Peristiwa Revest Finance
Pada tanggal 27 Maret 2022, Revest Finance mengalami serangan hacker, dengan kerugian sekitar 120.000 USD. Terdapat celah reentrancy ERC-1155 dalam kontrak Revest. Ketika pengguna menggunakan depositAdditionalToFNFT() untuk menambah aset jaminan FNFT, kontrak harus terlebih dahulu menghancurkan FNFT asli, kemudian mencetak FNFT baru. Namun, fungsi min() tidak memeriksa apakah FNFT yang akan dicetak sudah ada, dan fnftId diinkrementasi setelah _mint() dieksekusi. Panggilan eksternal _doSafeTransferAcceptanceCheck() dalam _min() menyebabkan celah reentrancy.
NBA insiden mengambil keuntungan
Pada 21 April 2022, proyek NBA diserang oleh hacker. Kontrak The_Association_Sales memiliki dua masalah utama: penyalahgunaan dan penggunaan ulang tanda tangan saat menggunakan tanda tangan untuk memverifikasi whitelist. Penggunaan ulang tanda tangan terjadi karena kontrak tidak menyimpan tanda tangan yang telah digunakan, sehingga penyerang dapat menggunakannya kembali; penyalahgunaan tanda tangan terjadi karena parameter info vData memory tidak memeriksa msg.sender saat melakukan pengiriman.
Akutar事件
Pada 23 April 2022, kontrak AkuAuction dari proyek Akutar terkunci akibat kerentanan pada kontrak pintar, mengakibatkan 11539ETH( sekitar 34 juta dolar AS) terkunci. Kontrak tersebut memiliki dua kerentanan logika: pertama, fungsi pengembalian dana processRefunds menggunakan fungsi call untuk pengembalian dana, dan hasilnya dijadikan kondisi penilaian require, sehingga penyerang dapat dengan jahat melakukan revert dalam fallback untuk mencegah pengembalian dana; kedua, kondisi penilaian dalam fungsi pengembalian dana tidak mempertimbangkan bahwa pengguna dapat menawar beberapa NFT, sehingga operasi pengembalian dana selanjutnya tidak dapat dilakukan.
Peristiwa XCarnival
Pada 24 Juni 2022, protokol pinjaman NFT XCarnival diserang, dan peretas memperoleh 3087 Ethereum ( sekitar 3,8 juta dolar AS ). Fungsi pledgeAndBorrow pada kontrak XNFT tidak memeriksa apakah alamat xToken ada dalam daftar putih saat melakukan staking NFT, dan tidak memeriksa status catatan jaminan saat meminjam, memungkinkan penyerang untuk menggunakan catatan jaminan yang tidak valid berulang kali untuk meminjam.
Pertanyaan Umum tentang Audit Kontrak NFT
Penandatanganan yang disalahgunakan dan digunakan kembali:
Data tanda tangan kurang verifikasi eksekusi berulang, dapat menggunakan kembali data tanda tangan untuk mencetak NFT
Pemeriksaan tanda tangan tidak wajar, pengguna mana pun dapat melakukan pencetakan koin melalui pemeriksaan
Celah logika:
Administrator dapat mencetak koin dengan cara khusus tanpa batasan jumlah total, mengakibatkan jumlah NFT yang sebenarnya melebihi ekspektasi
Saat melelang NFT, pemenang dapat memodifikasi harga tawaran dengan serangan ketergantungan urutan transaksi, sehingga dapat mendapatkan NFT dengan harga rendah.
Serangan Reentrancy ERC721/ERC1155:
Menggunakan fungsi pemberitahuan transfer, kontrak NFT mengirim panggilan ke kontrak target yang dapat menyebabkan serangan reentrancy.
Ruang lingkup otorisasi terlalu besar:
Memerlukan otorisasi _operatorApprovals saat staking atau拍卖, yang dapat menyebabkan risiko pencurian NFT
Manipulasi harga:
Harga NFT bergantung pada jumlah token kontrak yang dimiliki, penyerang dapat memanfaatkan pinjaman kilat untuk meningkatkan harga, yang menyebabkan likuidasi NFT yang dipertaruhkan secara abnormal.
Mengingat seringnya kejadian keamanan kontrak NFT, dan kerentanan yang umum ditemukan dalam audit sering dimanfaatkan dalam praktik, sangat penting untuk mencari perusahaan keamanan profesional untuk melakukan audit menyeluruh terhadap kontrak NFT.
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.
11 Suka
Hadiah
11
9
Bagikan
Komentar
0/400
SerumDegen
· 07-26 15:03
hari lain, peretasan lain... klasik web3 smh
Lihat AsliBalas0
CompoundPersonality
· 07-26 10:33
Bug kontrak ini semua hanya harimau kertas.
Lihat AsliBalas0
BearMarketBuyer
· 07-26 08:12
pemula rugi lima puluh ribu
Lihat AsliBalas0
DefiOldTrickster
· 07-25 07:36
Sudah bermain di dunia ini selama sepuluh tahun, saya telah melihat berapa banyak suckers yang dipermainkan. Apakah mereka memang pantas mengalami kerugian seperti ini?
Lihat AsliBalas0
TokenSleuth
· 07-23 15:36
Kontrak memiliki begitu banyak celah, siapa yang berani membelinya?
Lihat AsliBalas0
pumpamentalist
· 07-23 15:36
Ada ikan yang tertangkap lagi
Lihat AsliBalas0
SelfCustodyBro
· 07-23 15:31
Bagaimana bisa berani masuk ke blockchain jika perlindungannya dibuat begitu buruk?
Lihat AsliBalas0
DogeBachelor
· 07-23 15:23
Benar-benar tidak bisa bermain!
Lihat AsliBalas0
FloorPriceWatcher
· 07-23 15:11
NFT benar-benar menghancurkan, siapa yang membeli siapa yang sial.
Analisis Risiko Keamanan Kontrak NFT: 6 Kasus Klasik dan Penjelasan 5 Masalah Umum
Analisis Keamanan Kontrak NFT: Peristiwa Khas dan Masalah Umum
Pada paruh pertama tahun 2022, kejadian keamanan di bidang NFT sering terjadi, menyebabkan kerugian ekonomi yang signifikan. Menurut pemantauan platform data, selama periode tersebut terjadi 10 kejadian keamanan utama, dengan total kerugian sekitar 64,9 juta dolar AS. Metode serangan terutama mencakup eksploitasi celah kontrak, kebocoran kunci pribadi, dan phishing. Selain itu, server Discord juga mengalami serangan yang sering, mengakibatkan pengguna pribadi sering kali mengalami kerugian akibat mengklik tautan phishing.
Analisis Kejadian Keamanan Tipikal
Peristiwa TreasureDAO
Pada 3 Maret 2022, platform perdagangan TreasureDAO diserang oleh peretas, mengakibatkan lebih dari 100 NFT dicuri. Akar masalah terletak pada celah logika dalam kontrak TreasureMarketplaceBuyer. Kontrak tidak memeriksa jenis token dalam fungsi buyItem, langsung mengalikan _quantity dengan _pricePerItem untuk menghitung totalPrice, yang memungkinkan penyerang membeli token dengan pembayaran ERC-20 yang nilainya 0. Masalah ini berasal dari kebingungan logika yang diakibatkan oleh penggunaan campuran token ERC-1155 dan ERC-721, di mana token ERC-721 sebenarnya tidak memiliki konsep jumlah, tetapi kontrak menghitung harga berdasarkan jumlah, dan dalam implementasi transfer tidak ada pemisahan logika.
peristiwa airdrop APE Coin
Pada 17 Maret 2022, peretas mendapatkan lebih dari 60.000 APE Coin airdrop melalui pinjaman kilat. Kontrak airdrop GrapesToken memiliki celah logika, hanya menggunakan alpha.balanceOf() dan beta.balanceOf() untuk menentukan kepemilikan pemanggil terhadap NFT BAYC/MAYC. Cara ini hanya dapat memperoleh status kepemilikan NFT pengguna secara instan, dan status tersebut dapat dimanipulasi melalui pinjaman kilat. Penyerang memanfaatkan celah ini, meminjam NFT BAYC melalui pinjaman kilat dan mendapatkan airdrop yang sesuai.
Peristiwa Revest Finance
Pada tanggal 27 Maret 2022, Revest Finance mengalami serangan hacker, dengan kerugian sekitar 120.000 USD. Terdapat celah reentrancy ERC-1155 dalam kontrak Revest. Ketika pengguna menggunakan depositAdditionalToFNFT() untuk menambah aset jaminan FNFT, kontrak harus terlebih dahulu menghancurkan FNFT asli, kemudian mencetak FNFT baru. Namun, fungsi min() tidak memeriksa apakah FNFT yang akan dicetak sudah ada, dan fnftId diinkrementasi setelah _mint() dieksekusi. Panggilan eksternal _doSafeTransferAcceptanceCheck() dalam _min() menyebabkan celah reentrancy.
NBA insiden mengambil keuntungan
Pada 21 April 2022, proyek NBA diserang oleh hacker. Kontrak The_Association_Sales memiliki dua masalah utama: penyalahgunaan dan penggunaan ulang tanda tangan saat menggunakan tanda tangan untuk memverifikasi whitelist. Penggunaan ulang tanda tangan terjadi karena kontrak tidak menyimpan tanda tangan yang telah digunakan, sehingga penyerang dapat menggunakannya kembali; penyalahgunaan tanda tangan terjadi karena parameter info vData memory tidak memeriksa msg.sender saat melakukan pengiriman.
Akutar事件
Pada 23 April 2022, kontrak AkuAuction dari proyek Akutar terkunci akibat kerentanan pada kontrak pintar, mengakibatkan 11539ETH( sekitar 34 juta dolar AS) terkunci. Kontrak tersebut memiliki dua kerentanan logika: pertama, fungsi pengembalian dana processRefunds menggunakan fungsi call untuk pengembalian dana, dan hasilnya dijadikan kondisi penilaian require, sehingga penyerang dapat dengan jahat melakukan revert dalam fallback untuk mencegah pengembalian dana; kedua, kondisi penilaian dalam fungsi pengembalian dana tidak mempertimbangkan bahwa pengguna dapat menawar beberapa NFT, sehingga operasi pengembalian dana selanjutnya tidak dapat dilakukan.
Peristiwa XCarnival
Pada 24 Juni 2022, protokol pinjaman NFT XCarnival diserang, dan peretas memperoleh 3087 Ethereum ( sekitar 3,8 juta dolar AS ). Fungsi pledgeAndBorrow pada kontrak XNFT tidak memeriksa apakah alamat xToken ada dalam daftar putih saat melakukan staking NFT, dan tidak memeriksa status catatan jaminan saat meminjam, memungkinkan penyerang untuk menggunakan catatan jaminan yang tidak valid berulang kali untuk meminjam.
Pertanyaan Umum tentang Audit Kontrak NFT
Penandatanganan yang disalahgunakan dan digunakan kembali:
Celah logika:
Serangan Reentrancy ERC721/ERC1155:
Ruang lingkup otorisasi terlalu besar:
Manipulasi harga:
Mengingat seringnya kejadian keamanan kontrak NFT, dan kerentanan yang umum ditemukan dalam audit sering dimanfaatkan dalam praktik, sangat penting untuk mencari perusahaan keamanan profesional untuk melakukan audit menyeluruh terhadap kontrak NFT.