Seorang Hacker Telah Mencuri Jutaan ETH Hanya dengan Menebak Private Keys Yang Lemah
Jelajahcoin.me – Awal pekan ini, perusahaan konsultan keamanan yang berbasis di Amerika Serikat Independent Security Evaluators (ISE) menerbitkan laporan tentang kunci pribadi untuk blockchain Ethereum.
Meskipun membangun sekitar 700 kunci privat lemah yang secara teratur digunakan oleh banyak orang, para peneliti menemukan “blockchain bandit” yang telah berhasil mengumpulkan hampir 45.000 eter (ETH) dengan berhasil menebak kunci privat lemah itu.
Adrian Bednarek, seorang analis keamanan senior di ISE, untuk mencari tahu lebih banyak tentang apa yang mereka gambarkan sebagai “ethercombing.”
Latar belakang penelitian dan temuan utama
Bednarek mengatakan dia menemukan hacker secara tidak sengaja. Pada saat itu, ia sedang melakukan penelitian untuk klien korporat yang berencana untuk mengimplementasikan dompet mereka sendiri dengan algoritma penghasil kunci terintegrasi.
“Sebagai seorang analis keamanan, sebelum Anda memulai penilaian apa pun, Anda harus memahami teknologi yang mendasarinya dengan sangat jelas – pada dasarnya seolah-olah Anda sendiri yang membuatnya,” katanya.
“Generasi kunci pribadi adalah salah satu komponen yang harus kami teliti, dan saya mempelajari dasar-dasar apa yang merupakan kunci pribadi pada Ethereum: Seberapa besar itu? Bagaimana ini dihasilkan? Dan bagaimana ini digunakan untuk mendapatkan kunci publik dan alamat publik? “
Protokol ECDSA
Pada Ethereum, bitcoin (BTC) atau blockchain besar lainnya yang mendukung protokol ECDSA (Elliptic Curve Digital Signature Algorithm), kunci privat diwakili oleh angka 256-bit.
ISE mempersempitnya menjadi delapan “sub-region” 32-bit dalam ruang utama 256-bit selama penelitian mereka, karena brute yang memaksa kunci privat di dalam wilayah yang lebih besar dimaksudkan sebagai ketidakmungkinan statistik.
Kedelapan sub-wilayah itu mengandung 34 miliar kunci yang lebih lemah, yang kemudian dipindai oleh ISE. “Butuh satu hari penuh,” kata Bednarek.
Patut ditekankan bahwa kunci-kunci itu dihasilkan karena kode yang salah dan generator angka acak yang salah, dan para peneliti secara khusus menargetkan kunci-kunci suboptimal.
“Kunci pribadi adalah ID pengguna dan kata sandi Anda pada saat yang sama,” analis keamanan menjelaskan sambil menghancurkan mekanisme dasar.
“Ini berbeda dari login perbankan Anda, di mana Anda memiliki nama pengguna dan kata sandi […] Karena itu, ketika dua orang menggunakan kata sandi yang sama untuk membuat Brainwallet [yaitu, dompet yang memerlukan frasa sandi sebagai bagian dari pembuatan kunci pribadi] – seperti ‘password123’ – mereka berdua akan memiliki dompet yang sama persis.”
Seperti yang dikatakan Bednarek,” itu seperti menghubungkan dua orang ke rekening bank yang sama. “
Awalnya, spesialis ISE menemukan bahwa kunci privat “1” *, yang dipilih karena merupakan batas bawah dari kunci privat yang mungkin, sebenarnya digunakan pada blockchain. Selain itu, telah terlibat dalam beberapa ribu transaksi.
*-(0x0000000000000000000000000000000000000000000000000000000000000000000001, jika ditulis menggunakan kode 256-bit)
“Itu bendera merah,” kenang Bednarek. “Mengapa orang menggunakan kunci pribadi 1? Itu seharusnya tidak mungkin.” Timnya mulai memindai lebih banyak kunci untuk melihat seberapa luas masalahnya.
Meskipun para peneliti ISE telah menetapkan bahwa masalah ini tidak ada di mana-mana, mereka telah menemukan sebanyak 732 kunci pribadi yang lemah terkait dengan total 49.060 transaksi.
“Secara kasar, ada sekitar 50 juta kunci yang telah digunakan pada [blockchain] Ethereum, dan kami hanya menemukan 732 dari mereka.”
Bandit blockchain
Seperti disebutkan di atas, selama penelitian mereka, tim ISE memperhatikan bagaimana beberapa dompet yang terkait dengan kunci pribadi – ditemukan dengan metode suboptimal mereka – memiliki banyak transaksi pergi ke alamat tertentu, dan tidak ada uang yang keluar.
Seperti yang dikatakan Bednarek dalam video penjelasan yang diposting di situs web ISE :
“Ada seorang lelaki yang memiliki alamat yang berkeliling dan menyedot uang dari beberapa kunci yang kami akses. Kami menemukan 735 kunci pribadi, ia kebetulan mengambil uang dari 12 kunci yang kami juga memiliki akses. Secara statistik mustahil dia akan menebak kunci-kunci itu secara kebetulan, jadi dia mungkin melakukan hal yang sama. […] Dia pada dasarnya mencuri dana begitu mereka masuk ke dompet orang. “
Bednarek menjelaskan bahwa peretas (atau sekelompok peretas) telah menyiapkan simpul untuk secara otomatis menggesek dana dari alamat dengan kunci yang lemah.
Untuk memverifikasi itu, para peneliti menggunakan honeypot, Mereka mengirim dolar menggunakan kunci pribadi yang lemah, yang mereka tahu peretas tahu, untuk melihat seberapa cepat akan diambil. Uang itu hilang dalam hitungan detik, kata karyawan ISE :
“Jika itu adalah hal manual, mungkin itu akan diambil dalam sehari atau apa pun. Tetapi segera setelah kami mengirimkannya, kami melanjutkan dengan explorer blockchain, kami melihat bahwa ada transfer yang segera terjadi, dalam beberapa detik. Jadi pada dasarnya apa yang dia [peretas] miliki adalah simpul blockchain yang merupakan bagian dari jaringan transaksi yang diatur di suatu tempat. Begitu melihat transaksi datang dengan kunci pribadi yang dia ketahui, segera mengirim permintaan untuk mentransfer uang.”
Sesuai data yang diperoleh dari Etherscan, dompet peretas berisi sekitar 45.000 ETH (bernilai lebih dari $ 7,3 juta, pada saat penulisan). Pada puncak nilai eter, diperkirakan bahwa rampasan bandit bisa terjual lebih dari $ 50 juta.
Menurut bagian komentar untuk alamat dompet si penipu, ia telah mencuri dana selama beberapa tahun.
Salah satu komentar, yang konon disampaikan oleh penyedia dompet ETH utama MyEtherWallet (MEW) menampilkan tautan ke thread Reddit 2016 berjudul “Node Ethereum dengan pengaturan RPC yang tidak aman secara aktif dieksploitasi.” Di dalamnya.
Redditor menggambarkan pengaturan node Ethereum “dengan HTTP RPC API-nya terpapar ke internet” dan diserang dalam beberapa menit setelah ditayangkan.
“Jika Anda menyebut alamat Google [peretas] ada banyak orang yang mengeluhkannya,” Bednarek mengonfirmasi, mengakui bahwa taktik penipu telah terbukti cukup sukses :
“Orang ini telah mengambil pendekatan multi-cabang untuk mencuri uang.”
Analis keamanan kemudian menggambarkan metode penipu secara lebih rinci :
“Satu – dia melihat kunci pribadi yang buruk. Dua – dia melihat dompet berbasis kata sandi yang lemah dan RPC yang salah konfigurasi. Anda tidak benar-benar seharusnya mengekspos RPC dari node Ethereum Anda tetapi kadang-kadang orang melakukannya, dan jika Anda tidak memiliki set kata sandi seseorang pada dasarnya dapat mengosongkan dompet default yang terkait dengan node Anda.”
Bukan Masalah Yang Eksklusif
Tapi perampasan aset semacam itu bukan masalah yang eksklusif untuk blockchain Ethereum, peneliti keamanan ISE memperingatkan.
“Ini [blockchain] berfungsi sebagaimana mestinya, itu hanya cara orang menggunakannya,” katanya, menggambarkan masalah terkait etika yang dihadapi timnya saat melakukan penelitian:
“Sebelum kami memulai [penelitian] ini, kami memiliki dilema etika – bagaimana jika kami menemukan dompet dengan kunci yang memiliki sejuta dolar di dalamnya? Apakah kita tinggalkan saja di sana? Tetapi jika kita membiarkannya di sana, kita tahu itu di belakang kunci pribadi yang buruk dan kemungkinan akan dicuri, oleh karena itu kita akan agak bertanggung jawab bahwa uang ini dicuri karena kita bisa memberi tahu seseorang.” Jelasnya
“Tapi kemudian masalah kedua adalah siapa yang kita beri tahu? Tidak ada cara mudah untuk mengidentifikasi pemilik kunci pribadi. Mungkin kita bisa mengambil uang itu sementara sampai seseorang bisa membuktikan bahwa itu milik mereka? Tapi kemudian itu menciptakan banyak masalah hukum.” Ia Melanjutkan
“Jadi CEO perusahaan [yang sedang mereka teliti] menghubungi IFS untuk mendapatkan nasihat hukum dan mereka pada dasarnya berkata : ‘jika Anda menemukan sesuatu, tinggalkan saja di sana. Jangan lakukan transfer apa pun. Dengan begitu Anda tidak akan mendapatkan air panas legal apa pun.'” Ia Menjelaskan Lagi
Saran keamanan dan penelitian lebih lanjut
Karena itu, menurut Bednarek, kunci privat cenderung rentan karena dua faktor utama. Yang pertama adalah kesalahan pengkodean dalam perangkat lunak yang bertanggung jawab untuk menghasilkannya.
Kedua, beberapa pemilik crypto memiliki kecenderungan untuk mendapatkan kunci privat yang identik melalui frasa sandi yang lemah seperti “abc123,” atau bahkan membiarkannya kosong.
Misalnya, laporan ISE menetapkan bahwa salah satu kunci pribadi lemah paling populer adalah yang dihasilkan dari frasa pemulihan kosong – mis., “” – menggunakan dompet Parity. Dilaporkan ada 8.772 transaksi pada alamat ini dengan total 5.215.586 ETH yang ditransfer.
“Untuk sementara Parity membiarkan Anda menggunakan kata sandi default apa pun dan itu akan menghasilkan kunci pribadi berdasarkan itu,” Bednarek menjelaskan, menambahkan bahwa pengembang dompet diduga memperbaiki masalah di beberapa titik.
“Saya pikir mereka telah memperkenalkan persyaratan kata sandi minimum [sejak itu]. Itu mungkin hanya satu karakter, tetapi Anda tidak dapat menggunakan kata sandi kosong di Parity sekarang jika Anda menggunakan versi terbaru dari perangkat lunak mereka.”
Belum ada pencipta dompet yang menghubungi ISE, menurut Bednarek :
“Itu adalah masalah yang menarik karena sulit untuk mengatakan dompet mana yang bertanggung jawab, jika ada dompet sama sekali – bisa saja orang-orang memasukkan kunci privat yang salah, bisa saja versi debug awal dari dompet, bisa juga pengembang sendiri. Agak sulit untuk mengatakan mengapa ini ada dan dompet mana yang salah. Itu sesuatu yang saya pikir kita tidak akan pernah tahu. “
Saran utama Bednarek bagi mereka yang tidak paham komputer adalah dengan menggunakan dompet yang terkenal dan tepercaya, kemungkinan pindah ke dompet perangkat keras atau berbasis kertas jika melibatkan banyak cryptocurrency. Dia berkata:
“Jika akan ada perdagangan atau penahanan banyak mata uang maka gunakan dompet perangkat keras di mana kunci pribadi tidak akan pernah terungkap.” Katanya
“Banyak teman saya yang pemegang jangka panjang menggunakan dompet kertas tempat mereka menghasilkan kunci acak dan menyimpannya di atas kertas sehingga tidak pernah menyentuh komputer sama sekali.” Lanjutnya
Namun demikian, selalu ada beberapa risiko yang terlibat bahkan ketika datang ke perangkat lunak populer, Bednarek memperingatkan, mengemukakan contoh dompet Iota dikompromikan oleh pengembang dari Oxford yang ditangkap dan dituduh mencuri sekitar 10 juta euro bulan lalu.
Dompet Iota Bersumber Terbuka
Mengingat bahwa dompet Iota bersumber terbuka, kodenya diposkan secara publik di Github. Pada titik tertentu, penipu memodifikasi generator nomor acak dengan mengirimkan perubahan ke kode.
“Itu dilakukan dengan cara yang sangat membingungkan,” kata Bednarek. “Meskipun banyak orang bisa meninjau kode,” mereka hanya menganggap itu harus bekerja, menurutnya.
Dengan begitu, peretas dapat melihat bagaimana kunci privat dihasilkan dan mereproduksi mereka menggunakan kode yang disuntikkannya, spesialis ISE menjelaskan.
“Setelah banyak orang kehilangan banyak uang, seseorang akhirnya mengubah rekayasa modifikasinya menjadi generator angka acak dan mereka dapat melihat bahwa dia menciptakan nomor berurutan dalam rentang spesifik ruang kunci.”
Sedangkan untuk masa depan, ISE berencana untuk terus memantau blockchain dan kunci privat yang lemah pada skala yang lebih besar.
“Kami akan memindahkan metode pemindaian kami untuk menggunakan GPU di mana kami akan dapat memindai 38 miliar kunci dalam hitungan detik,” kata Bednarek.
“Karena kami menjadikan pemindaian lebih efisien, kami akan dapat melakukan beberapa hal gila seperti pergi mencari brainwallets atau algoritma pembangkitan kunci lainnya yang mungkin salah. Jadi kami akan memperluas ke area yang berbeda untuk mengidentifikasi lebih banyak kunci. “
Selain itu, kelompok riset keamanan akan mempublikasikan lebih banyak informasi – termasuk kunci publik yang salah – bagi orang-orang untuk melakukan penelitian mereka sendiri dan tetap diingatkan akan kemungkinan pelanggaran keamanan.
“Mungkin ini akan berubah menjadi upaya kolaboratif untuk membantu menemukan beberapa penyebab untuk ini,” saran Bednarek.