Sumber artikel yang dicetak ulang: Bayam Bayam!

Sumber: X

Saya baru saja menandatangani nama saya, mengapa uang saya hilang? ? "Phishing tanda tangan" saat ini menjadi metode phishing favorit para peretas Web3. Baru-baru ini, saya telah melihat bahwa Cosine dan perusahaan dompet dan keamanan besar terus-menerus mempromosikan pengetahuan tentang tanda tangan phishing yang populer, tetapi masih banyak orang yang terkena phishing setiap hari.

Spinach percaya bahwa salah satu alasannya adalah kebanyakan orang tidak memahami logika yang mendasari interaksi dompet, dan ambang pembelajaran terlalu tinggi bagi orang yang tidak memahami teknologi. Oleh karena itu, Spinach memutuskan untuk membuat versi ilustrasi dari logika yang mendasarinya tanda tangan phishing dan cobalah menggunakannya. Bentuk bahasa sehari-hari maksimal dapat dipahami oleh orang yang tidak ahli teknis.

Jika menurut Anda ini bermanfaat, silakan sukai dan teruskan agar lebih banyak orang dapat melihatnya! Jika ada kesalahan, silakan tunjukkan!

Pertama-tama, kita perlu tahu bahwa hanya ada dua operasi dalam menggunakan dompet: "penandatanganan" dan "interaksi". Pemahaman yang paling sederhana dan langsung adalah bahwa tanda tangan terjadi di luar blockchain (off-chain) dan tidak memerlukan biaya gas; interaksi terjadi di atas blockchain (on-chain) dan memerlukan biaya gas.

Skenario penggunaan umum tanda tangan adalah untuk memverifikasi bahwa Anda adalah Anda, seperti masuk ke dompet. Sama seperti jika Anda ingin pergi ke Uniswap untuk menukar token, Anda perlu menautkan dompet Anda terlebih dahulu nama untuk memberi tahu situs web "Saya adalah" Pemilik Dompet "ini, maka Anda dapat menggunakan Uniswap. Langkah ini tidak akan menyebabkan perubahan data atau status apa pun pada blockchain, jadi tidak perlu mengeluarkan uang. Dalam hal interaksi, ketika Anda ingin benar-benar menukarkan Token di Uniswap, Anda perlu mengeluarkan sejumlah uang terlebih dahulu untuk memberi tahu kontrak pintar Uniswap: "Saya ingin menukar 100USDT dengan koin bayam, dan saya setuju Anda dapat memindahkan 100USDT saya ." Langkah ini disebut otorisasi, dan kemudian Anda harus mengeluarkan sejumlah uang lagi untuk memberi tahu kontrak pintar Uniswap: "Saya ingin menukar 100USDT dengan koin bayam sekarang, dan Anda dapat melakukan operasinya sekarang." Maka Anda telah selesai menggunakan 100USDT Operasi penukaran koin bayam.

Setelah memahami secara singkat perbedaan antara tanda tangan dan interaksi, kami akan memperkenalkan prinsip phishing. Bayam akan mencantumkan tiga metode berbeda: phishing otorisasi, phishing tanda tangan Izin, dan phishing tanda tangan Izin2. Ketiga metode ini adalah metode phishing yang sangat umum.

Mari kita bicara tentang otorisasi phishing terlebih dahulu. Ini adalah salah satu metode phishing paling klasik di Web3 di masa lalu. Seperti namanya, ini menggunakan mekanisme otorisasi (menyetujui). Contoh Uniswap sebelumnya memberi tahu kita bahwa otorisasi adalah memberi tahu orang pintar kontrak “Saya menyetujui Anda untuk memindahkan token xxx saya", maka peretas dapat membuat situs web phishing palsu dengan tampilan depan cantik yang disamarkan sebagai proyek NFT. Di tengah situs web terdapat tombol besar yang indah "Terima airdrop Anda". Faktanya, antarmuka yang muncul di dompet setelah Anda mengkliknya sebenarnya Alamat di atas meminta Anda untuk mengotorisasi token Anda kepada peretas. Jika Anda mengklik Konfirmasi saat ini, selamat kepada peretas karena berhasil menyelesaikan KPI.

Namun, ada masalah dengan phishing resmi: karena memerlukan biaya, banyak orang sekarang yang waspada terhadap operasi yang melibatkan uang. Setelah mengklik situs web yang tidak dikenal, Anda akan menemukan sesuatu yang salah setelah melihat sekilas, jadi lebih baik untuk mencegahnya.

Lalu muncul protagonis masa kini: Permit dan Permit2 tanda tangan phishing, yang merupakan area yang paling terkena dampak di bidang keamanan aset Web3. Mengapa begitu sulit untuk dicegah? Karena setiap kali Anda ingin menggunakan Dapp, Anda harus masuk ke dompet Anda. Banyak orang mungkin telah membentuk pemikiran inersia di benak mereka: "Operasi ini aman." Entah apa arti di balik setiap tanda tangan itu.

Mari kita lihat mekanisme Izinnya terlebih dahulu. Izin adalah fungsi tambahan untuk otorisasi di bawah standar ERC-20. USDT yang biasa kami gunakan adalah ERC-20. Sederhananya, Anda dapat menandatangani untuk menyetujui orang lain untuk memindahkan Token Anda. Menyetujui) adalah ketika Anda mengeluarkan uang untuk memberi tahu kontrak pintar: "Anda dapat memindahkan Token saya dalam jumlah xxx." Kemudian Izin adalah ketika Anda menandatangani "catatan" kepada orang tertentu -jadi untuk memindahkan jumlah Token xxx saya", maka orang ini membawa "catatan" ini ke kontrak pintar dan mengeluarkan biaya bahan bakar untuk memberi tahu kontrak pintar: "Dia mengizinkan saya memindahkan jumlah Token xxx-nya", dan kemudian Anda Uang tersebut dapat disalahgunakan oleh orang lain. Dalam proses ini, Anda hanya menandatangani nama, tetapi di balik layar itu berarti Anda mengizinkan orang lain untuk memanggil otorisasi (Menyetujui) dan mentransfer token Anda untuk masuk ke dompet dengan Izin phishing, maka Anda dapat dengan mudah melakukan phishing aset Anda.

Jadi apa itu Izin2? Permit2 sebenarnya bukan fungsi dari ERC-20, melainkan fungsi yang diluncurkan oleh Uniswap untuk kenyamanan pengguna. Contoh sebelumnya mengatakan bahwa jika Anda ingin menukar USDT dengan koin bayam di Uniswap, Anda perlu melakukan otorisasi (Menyetujui) satu kali lalu kemudian. menukarnya. , yang memerlukan dua biaya bahan bakar, jadi Uniswap menemukan cara: "Anda memberikan semua kuota kepada saya sekaligus, dan Anda menandatangani nama Anda setiap kali Anda menukarkan dan saya akan menanganinya untuk Anda." Pengguna Uniswap Anda hanya perlu membayar biaya Gas satu kali saat menggunakannya, dan langkah ini adalah penandatanganan, jadi biaya Gas sebenarnya tidak Anda bayarkan, tetapi dibayar berdasarkan kontrak Izin2, tetapi akan dipotong dari Token yang akhirnya Anda tukarkan. .

Namun, prasyarat untuk phishing Permit2 adalah Anda telah menggunakan Uniswap sebelumnya, dan Anda juga telah mengotorisasi kuota tak terbatas ke kontrak pintar Permit2. Karena operasi default Uniswap saat ini adalah otorisasi kuota tak terbatas, jumlah pengguna yang memenuhi ketentuan ini sebenarnya adalah otorisasi kuota tak terbatas cukup besar. Demikian pula, Peretas dapat mentransfer token Anda dengan menipu Anda agar menandatangani nama Anda (hanya yang berwenang).

Singkatnya, inti dari otorisasi phishing adalah Anda mengeluarkan sejumlah uang untuk memberi tahu kontrak pintar: "Saya menyetujui Anda untuk menyalahgunakan Token saya kepada peretas." Inti dari phishing tanda tangan adalah Anda menandatangani "catatan" yang mengizinkan orang lain untuk memindahkan aset Anda. Peretas mengeluarkan uang untuk memberi tahu kontrak pintar: "Saya ingin menyalahgunakan Tokennya dan mentransfernya kepada saya." Izin dan Izin2 saat ini merupakan area yang paling terkena dampak tanda tangan phishing. Izin adalah fungsi ekstensi resmi dari ERC-20, dan Izin2 adalah fitur baru yang diluncurkan oleh Uniswap.

Jadi, begitu Anda memahami prinsipnya, bagaimana cara mencegahnya?

1. Hal pertama dan terpenting adalah menumbuhkan kesadaran keamanan Anda. Setiap kali Anda mengoperasikan dompet Anda, Anda harus memeriksa apa sebenarnya yang Anda lakukan?

2. Dana besar dipisahkan dari dompet di WanChain, sehingga kerugian dapat diminimalkan setelah terjadi phishing.

3. Pelajari cara mengidentifikasi format tanda tangan Izin dan Izin2. Selama Anda melihat format tanda tangan berikut, Anda harus waspada:

Interaktif: URL interaktif

Pemilik: Alamat pihak yang memberi otorisasi

Pembelanja: Alamat pihak yang berwenang

Nilai: Kuantitas resmi

Nonce: nomor acak

Batas waktu: Waktu kedaluwarsa