Metamask, dompet kripto terpopular dengan lebih dari 21 juta pengguna, ternyata ada celah keamanannya, terkait pengiriman NFT. Pengguna berpotensi terkuak privasinya, jika peretas mengirimkan NFT. Pihak pengembang aplikasi sudah mengetahuinya sejak lama, tapi belum melakukan langkah nyata.
Hal itu diungkapkan oleh Alexandru Lupascu, seorang pengembang blockchain-kripto di OMNIA di blog pribadinya pada Kamis (20/1/2022) lalu.
Menurut Lupascu, modus yang dapat digunakan oleh peretas adalah dengan mengirimkan NFT (non-fungible token) apa saja ke wallet pengguna di Metamask. Sebelum melakukan itu, peretas mengubah terlebih dahulu data URL (uniform resources locator) file digital yang dirujuk oleh kode program di token itu.
Salah satu situs web popular untuk menerbitkan NFT adalah OpenSea yang mengandalkan Metamask dalam proses penerbitan dan transfer, termasuk transaksi jual-beli. Setiap akun pengguna di Metamask terdapat address kripto masing-masing yang terpampang di laman akun depan, termasuk di blockchain itu sendiri.
“Saya sudah membuktikan bagaimana peretas, setelah menerbitkan NFT, mengirimkannya ke korban dan mendapatkan alamat IP mereka, sehingga membahayakan privasi mereka. Ini adalah masalah privasi besar dalam ekosistem blockchain yang dapat dieksploitasi oleh siapa saja, dengan biaya hanya US$50,” tulis Lupascu, sembari menekankan ini adalah bagian dari eksperimen dan pihak pengembang Metamask sudah diberitahu sebelumnya.
Alamat IP (Internet Protocol) adalah identitas unik untuk setiap pengguna yang menggunakan Internet, baik lewat ponsel ataupun komputer desktop. Bocornya informasi IP ini memungkinkan orang-orang yang tak bertanggung jawab bisa memperoleh informasi lainnya, mulai dari lokasi fisik pengguna, operator GSM dan banyak lagi.
“Bahkan untuk potensi risiko lain, celah seperti ini bisa saja berujung pada penculikan dan memaksa pemilik kripto menyerahkan dana kripto mereka,” tegasnya.
Bisa Digunakan untuk Serangan DDos Masif
Bahkan, lanjut Lupascu, pelaku yang cerdas dan bermotivasi tinggi dapat membuat NFT dalam jumlah banyak, lalu mengarahkan semuanya ke satu URL dan mengirimkannya ke jutaan pengguna.
“Dengan cara itu pelaku bisa melakukan serangan DDoSÂ dengan skala yang belum pernah terjadi sebelumnya. Potensinya bisa sekitar 8 kali lebih besar daripada botnet Mirai yang menghapus beberapa data di situs web terkenal, termasuk GitHub, Twitter, Reddit, Netflix, Airbnb dan banyak lainnya,” tambahnya.
Serangan DDos adalah modus sangat lazim dan efektif untuk membanjiri komputer server dengan banyak unduhan, hingga komputer tak sanggup menanganinya. Pada akhirnya komputer jadi padam.
Ia menerangkan bahwa file gambar (JPG, PNG), suara (WAV), bahkan video (MP4) yang dijadikan NFT, tidaklah disimpan di blockchain, misalnya Ethereum. Pasalnya file-file itu terlalu besar untuk dikelola di sistem simpanan data blockchain.
File-file itu lazimnya disimpan di komputer server berbasis cloud biasa atau menggunakan IPFS (Interplanetary File System). Setiap file itu, misalnya di komputer cloud memiliki URL seperti biasa, yang bisa diakses oleh publik di Internet.
Sedangkan NFT (token berupa kode program disebut smart contract) memang benar disimpan di blockchain secara permanen dan merujuk kepada URL di mana file itu tersimpan. Dalam satu paket kesatuan, inilah yang sebenarnya NFT.
Namun, beberapa bagian dari smart contract yang digunakan dalam penerbitan NFT itu bisa berubah, jika dieksekusi dengan program lain secara jarak jauh.
Nah, di sinilah pertanyaan Lupascu terbit: bagaimana jikalau komputer server tempat file itu disimpan dikendalikan secara penuh oleh pelaku peretasan, ketika ia mengirimkan NFT ke wallet Metamask pengguna lain, maka informasi alamat IP bisa diketahui.
Lewat eksperimen itu, Lupascu memang menggunakan Metamask versi mobile. Tapi dia mengklaim hal serupa bisa juga terjadi ada Metamask versi desktop yang digunakan di browser Chrome.
Dalam skenario membuktikan celah ini, Lupascu menyoroti bagian pentingnya, yakni “ketika Metamask melakukan proses pemanggilan terhadap file digital yang dirujuk oleh token tersebut.”
Lupascu pun menemukan bahwa kode sumber Metamask di Github, tidak ada fungsi, bahwa ketika pemanggilan itu berlangsung, tidak diperlukan persetujuan dari pengguna lewat Metamask. Hal ini terkonfirmasi juga ketika menggunakan wallet itu di OpenSea.
Dalam eksperimen itu Lupascu hanya perlu menambahkan 8 baris kode program untuk meng-compile dan menghasilkan program khusus agar bisa berinteraksi dengan NFT yang sebelumnya sudah diterbitkan di OpenSea.
Berbekal program itulah, dia bisa membuka informasi URL lewat URI (Uniform Resource Identifier), tempat file itu disimpan lewat OpenSea. Dari sana dia cukup mengubah URL itu menjadi URL yang berbeda yang mengandung program jahat yang bisa menyusup ke wallet Metamask pengguna lain.
Lupascu menyarankan perubahan di source code Metamask. Salah satunya adalah Metamask harus punya fungsi yang memerlukan konfirmasi pengguna secara eksplisit untuk mengakses domain tertentu saat mengambil file digital yang dirujuk NFT.
Fungsi khusus ini pula punya fitur yang menginformasikan, bahwa URL itu berpotensi membahayakan dan dapat mengakibatkan kebocoran alamat IP.
“Pilihan solusi lainnya adalah mengambil gambar jarak jauh di backend dan bukan di aplikasi selular. Namun yang satu ini masih menyisakan potensi serangan DDoS,” sebutnya.
Pendiri Metamask Sudah Tahu, Tapi Tidak Lekas Diperbaiki
Perihal kelemahan ini sudah diakui oleh Daniel Finlay si pendiri Metamask lewat Twitter.
Yeah, I think this issue has been widely known for a long time, so I don't think a disclosure period applies. Alex is right to call us out for not addressing it sooner. Starting work on it now. Thanks for the kick in the pants, and sorry we needed it. https://t.co/SeKMRKSUGN
— Dan Finlay 🦊💙 (@danfinlay) January 20, 2022
“Ya, saya pikir masalah ini sudah diketahui secara luas sejak lama dan kami tidak menanganinya lebih awal,” sebut Finlay. [ps]