Insights

Kripto dan Peretasan — Mimpi Buruk Black Hat

Insiden kripto black-hat — jembatan, kunci, rekayasa sosial, dan eksploitasi tata kelola — serta pertahanan lambat dan mahal yang diterapkan oleh tim-tim yang serius.

Diterbitkan Tim Netts 14 menit membaca

Bahasa lain: EnglishРусскийEspañol中文ไทยFrançaisУкраїнськаTürkçeहिंदीفارسیالعربيةHausaPortuguêsTiếng Việt한국어日本語DeutschTagalog

Kripto dan Peretasan — Mimpi Buruk Black Hat
Daftar isi
  1. Dari Mana Eksploitasi Kontrak Pintar Berasal
  2. Dampak dan Hard Fork
  3. Era Logika yang Tidak Terinisialisasi dan Delegate Call
  4. Pembekuan Dompet Multi-Sig
  5. Fatamorgana Kriptografi dari Jembatan Lintas Rantai
  6. Eksploitasi Bridge Nomad
  7. Bug Kompiler dan Manipulasi Pasar
  8. Perjuangan Berkelanjutan antara Kode dan Konsekuensi

Kripto sering kali digambarkan sebagai benteng kriptografi, konsensus terdesentralisasi, dan buku besar yang tidak dapat diubah. Namun, kenyataan dari tanah perjanjian digital ini jauh lebih rumit dan berbahaya. Media arus utama biasanya membahas peretasan di ruang kripto melalui kampanye rekayasa sosial atau phishing, atau sekadar penipuan di mana seseorang memanipulasi pengguna yang tidak curiga untuk mengetikkan alamat bursa atau kunci privatnya di situs berbahaya.

Namun, artikel ini akan sepenuhnya mengabaikan kegagalan yang berbasis manusia tersebut. Dalam artikel ini, kita akan membahas tentang peretasan murni. Ini adalah ranah keamanan siber yang rusak dan kode yang sangat cacat yang mengakibatkan pembobolan mengerikan. Ini adalah mimpi para peretas black hat di mana kode dipersenjatai untuk melawan penciptanya sendiri, menguras ratusan juta dolar dalam hitungan menit tanpa perlu melepaskan satu tembakan pun; memaksa kita menghadapi titik ekstrem dari kekeliruan logika, bug kompiler, dan kelalaian arsitektural.

Dari Mana Eksploitasi Kontrak Pintar Berasal

Peretasan kontrak pintar murni memerlukan penjelasan awal — salah satu kasus paling menggemparkan dalam sejarah DeFi pada saat itu, yang mengubah arah Ethereum selamanya. Di masa awal blockchain yang dapat diprogram, ada sebuah proyek bernama The DAO. Dana tersebut dimaksudkan untuk menjadi semacam dana modal ventura terdesentralisasi yang dikelola sepenuhnya oleh kontrak pintar — tanpa campur tangan manusia.

Kontrak tersebut telah menarik Ether senilai jutaan dolar dari para investor yang berharap dapat memberikan suara pada proposal dan mendapatkan imbalan. Namun, para pengembang tidak menerapkan proses penarikan dengan cara yang aman, yang merupakan bug yang disebut reentrancy.

Reentrancy — Sebuah kontrak pintar memanggil kontrak eksternal tetapi tidak memperbarui status internalnya. Sebagai contoh — di dalam The DAO, fungsi penarikan pertama-tama mentransfer dana yang diminta ke pengguna dan baru kemudian memperbarui status pengguna dengan jumlah yang telah ditarik.

Peretas black hat menyadari bahwa mereka juga dapat menyebarkan kontrak pintar berbahaya dengan fungsi fallback.

Fungsi fallback dipanggil setiap kali The DAO mengirimkan dana ke kontrak jahat ini. Fungsi fallback tersebut tidak hanya menerima dana, tetapi langsung memanggil kembali fungsi penarikan milik The DAO. Hal ini memicu fungsi fallback sekali lagi, yang dieksekusi oleh The DAO, karena saldo peretas belum diperbarui pada saat penarikan pertama dilakukan.

Proses ini berulang terus-menerus, menguras jutaan dolar dari The DAO sebelum jaringan sempat merespons.

Dampak dan Hard Fork

Dampak dari peretasan ini tidak seperti apa pun yang pernah kita lihat sebelumnya. Jaringan berada dalam bahaya keruntuhan; dan sebagian besar dari seluruh Ether yang ada telah dicuri. Hal ini menciptakan krisis eksistensial dan teknis bagi komunitas, yang akhirnya berujung pada penerapan hard fork oleh komunitas untuk memutar balik riwayat blockchain dan mengembalikan dana tersebut.

Keputusan kontroversial ini menyebabkan perpecahan permanen, yang melahirkan Ethereum dan Ethereum Classic. Kerentanan khusus ini sekarang sudah dikenal luas dan sebagian besar telah dimitigasi dengan penggunaan pola Checks-Effects-Interactions.

Pola ini menyatakan bahwa sebuah kontrak harus memvalidasi semua kondisi terlebih dahulu, baru kemudian dapat memperbarui status internalnya, dan hanya boleh memanggil kontrak eksternal pada tahap paling akhir.

Namun, meskipun reentrancy dasar kini sangat mudah dideteksi oleh alat audit otomatis, serangan reentrancy lintas kontrak yang halus masih dapat terjadi dalam situasi yang sangat khusus dan spesifik, menunjukkan bahwa konsep yang sudah matang sekalipun dapat bermetamorfosis menjadi serangan baru.

Era Logika yang Tidak Terinisialisasi dan Delegate Call

Pelajaran yang dipetik dari The DAO dengan cepat diserap oleh komunitas pengembang, yang sejak saat itu mengembangkan sistem dengan kompleksitas yang semakin tinggi, dan mengaitkan diri mereka pada konsep-konsep seperti kontrak library dan pola proksi untuk menghemat gas serta memberikan jalur yang lebih mudah untuk peningkatan (upgradability). Di dalam kompleksitas ini muncul vektor tambahan peretasan murni, dengan contoh paling terkenal adalah kerentanan Dompet Multi-Sig Parity.

Parity adalah klien Ethereum yang banyak digunakan dan menawarkan kontrak pintar untuk dompet multi-tanda tangan yang logika intinya berada di dalam kontrak library pusat. Hal ini dimaksudkan agar efisien dalam penggunaan sumber daya, karena banyak dompet akan dapat merujuk ke library yang sama alih-alih menerapkan kode yang sama berulang kali.

Golongan kerentanan ini disebabkan oleh kesalahpahaman terhadap fungsi delegatecall dan variabel status yang tidak terinisialisasi. Fungsi delegatecall memungkinkan sebuah kontrak untuk mengeksekusi fungsi dari kontrak lain tetapi memberikan akses kepada fungsi tersebut ke penyimpanan (storage) kontrak pemanggil. Di dalam kontrak library Parity terdapat fungsi untuk menginisialisasi pemilik dompet.

Namun kontrak library itu sendiri sebenarnya tidak pernah diinisialisasi." Seorang peretas menyadari bahwa mereka dapat memanggil fungsi inisialisasi secara langsung pada kontrak library, dan mengeklaim sebagai pemilik library tersebut. Setelah mendapatkan kepemilikan library tersebut, mereka menjalankan fungsi untuk menghancurkannya (self-destruct).

Pembekuan Dompet Multi-Sig

Dompet multi-sig yang bergantung pada library tersebut segera menjadi tidak berfungsi ketika library itu dihancurkan. Seluruh logika yang diperlukan untuk menangani transaksi, mengizinkan penarikan dana, atau bahkan sekadar memeriksa saldo, hilang begitu saja. Selama proses ini, akibat kesalahan arsitektur murni, ratusan juta dolar dalam bentuk Ether tidak dicuri, melainkan membeku secara fisik.

Hal ini menyoroti bahaya ekstrem dari kontrak logika yang tidak diinisialisasi dan risiko halus yang terkait dengan fungsi delegatecall — serangkaian risiko yang tampak seperti pengetahuan umum saat ini, namun belum dipahami dengan baik pada waktu itu. Untuk memperbaiki hal ini, para pengembang kini mengandalkan modifier inisialisasi khusus yang memastikan bahwa sebuah kontrak hanya dapat diinisialisasi satu kali, dan mereka sering kali menempatkan nilai dummy pada status kontrak logika deployer sehingga tidak ada yang bisa mengeklaim pembayaran.

Meskipun situasi yang sama persis kecil kemungkinannya terjadi saat ini, risiko umum dari salah pengelolaan pola proksi tetap merupakan sesuatu yang harus dipertimbangkan dengan cermat dalam arsitektur keuangan terdesentralisasi yang layak.

Fatamorgana Kriptografi dari Jembatan Lintas Rantai

Dengan meluasnya ekosistem kripto ke lebih dari satu blockchain, muncul permintaan akan interoperabilitas, yang terwujud dalam berbagai jenis jembatan lintas rantai (cross-chain bridges). Protokol-protokol ini memungkinkan aset untuk dikunci di satu rantai dan mencetak representasinya di rantai lainnya.

Karena besarnya volume aset yang mereka simpan, mereka menjadi honey pot impian bagi para peretas topi hitam (black hat hacker).

Eksploitasi bridge Wormhole adalah pengingat yang sangat mengerikan tentang bagaimana satu detail kecil yang terlewatkan dalam implementasi dapat menyebabkan verifikasi kriptografi yang kompleks gagal begitu saja. Wormhole memungkinkan transfer aset antara Solana dan Ethereum. Hal ini melibatkan sekelompok guardian yang memantau suatu peristiwa di satu chain dan menandatangani pesan untuk membuktikannya. Tanda tangan ini kemudian akan diverifikasi oleh chain tujuan sebelum mencetak (minting) token tersebut sebagai token baru.

Kelemahannya terletak pada verifikasi tanda tangan di dalam smart contract Solana. Verifikasi kriptografi dilakukan oleh program bawaan Solana yang dipanggil oleh kontrak tersebut. Namun, pengembang Wormhole tidak memeriksa apakah program yang dipanggil adalah program sistem yang sebenarnya. Peretas tersebut juga membuat program yang selalu mengembalikan pesan sukses, terlepas dari apa pun inputnya.

Selanjutnya, kontrak Wormhole diperintahkan untuk menggunakan aplikasi palsu ini untuk validasi. Di bawah asumsi palsu bahwa tanda tangan tersebut memang valid, kontrak tersebut melanjutkan proses dan mencetak wrapped Ethereum senilai ratusan juta dolar di jaringan Solana tanpa ada Ethereum yang benar-benar dikunci di sisi lainnya. Peretas kemudian melakukan wrapping kembali token yang baru dicetak dan tanpa jaminan tersebut ke Ethereum, menguras aset asli dari protokol tersebut.

Ini merupakan eksekusi yang rapi dan sangat teknis terhadap model validasi akun Solana. Masalah ini diperbaiki dengan validasi yang lebih ketat untuk memastikan bahwa shell verifikasi tersebut memang merupakan alamat sistem resmi yang telah di-hardcode.

Dampaknya sangat besar, memerlukan dana talangan dari para pendukung proyek guna mencegah keruntuhan sistemik pada ekosistem DeFi Solana.

Kerentanan semacam ini dapat terulang di masa depan karena karakteristik unik dari paradigma pengembangan smart contract, terutama di lingkungan yang sangat bergantung pada model akun seperti di jaringan Solana, jika pengembang tidak melakukan validasi dan verifikasi akun serta program yang ketat untuk setiap entitas eksternal yang dipanggil dalam smart contract mereka.

Eksploitasi Bridge Nomad

Jika Wormhole merupakan serangan terkoordinasi ke arah tertentu, eksploitasi bridge Nomad membuktikan betapa mudahnya satu celah logika sederhana membuat protokol dipenuhi kekacauan massal yang tidak terkendali. Untuk mengimplementasikan pengiriman pesan lintas rantai ini, Nomad menggunakan model optimistic rollup yang mengandalkan Merkle tree untuk menunjukkan bahwa pesan tersebut valid. Para pengembang melakukan kesalahan fatal pada inisialisasi trusted root saat menerapkan pembaruan pada protokol tersebut.

Hal ini terjadi karena mereka menyetel trusted root ke hash nol — nilai default untuk variabel yang tidak terinisialisasi dalam Solidity. Hal itu menyebabkan setiap pesan yang tidak divalidasi secara eksplisit akan merujuk kembali ke hash nol, yang kini dianggap sebagai trusted root yang valid oleh kontrak tersebut. Intinya, seorang peretas menyadari bahwa ia dapat membuat transaksi yang meminta kontrak untuk menarik dana, dan karena bukti tersebut dihash menjadi hash nol, kontrak akan selalu menerimanya.

Peretasan ini unik karena kesederhanaannya dan kekacauan luar biasa yang terjadi setelahnya. Setelah peretas awal melakukan eksploitasi, pengguna lain ikut serta. Tidak diperlukan kemampuan peretasan teknis; mereka cukup menyalin dan menempelkan informasi transaksi peretas, mengubah alamat tujuan menjadi milik mereka sendiri, dan mengirimkannya ke jaringan.

Ratusan pelaku yang berbeda menguras bridge Nomad hingga hampir dua ratus juta dolar dalam kurun waktu beberapa jam.

Ini adalah kegagalan keamanan siber yang klasik: satu baris kode inisialisasi yang salah konfigurasi yang melampaui seluruh sistem keamanan kriptografi. Hal ini dimitigasi dengan menambal logika inisialisasi zero root dan menolaknya secara eksplisit sebagai root yang valid. Para pengguna bridge tersebut menanggung akibatnya, dan ini menjadi pengingat keras bahwa saat mengembangkan smart contract, satu karakter yang hilang atau nilai default yang salah dapat secara efektif membahayakan seluruh protokol.

Bug khusus ini sangat mudah dihindari dengan pengujian yang teliti, namun kategori kesalahan inisialisasi yang lebih luas masih aktif menghantui berbagai sistem.

Bug Kompiler dan Manipulasi Pasar

Salah satu jenis peretasan murni yang paling mengerikan adalah ketika kesalahannya bukan terletak pada kode pengembang, melainkan pada alat yang digunakan untuk mengompilasinya. Kita diingatkan akan hal ini saat eksploitasi Curve Finance yang mengirimkan guncangan ke seluruh fondasi DeFi. Sebagai DEX terkemuka untuk stablecoin, sebagian besar kontrak inti Curve ditulis dalam Vyper, bahasa smart contract bergaya Python yang menekankan keamanan dan kesederhanaan.

Untungnya, para pengembang Curve telah menerapkan pelindung reentrancy dalam smart contract mereka, melindungi mereka dari jenis serangan yang persis sama dengan yang telah menghancurkan The DAO. Namun, di dalam satu versi lama spesifik dari kompiler Vyper, bug tersebut terkubur.

Kompiler berhasil menerjemahkan kode Vyper yang dapat dibaca manusia menjadi bytecode yang dapat dibaca mesin untuk diimplementasikan di Ethereum Virtual Machine, namun kompiler tersebut tidak bekerja dengan baik dalam menyebarkan kunci reentrancy ke beberapa fungsi.

Kodenya aman, para pengembang menulisnya sebagaimana mestinya, namun kompiler justru berbalik menusuk mereka dari belakang dengan menghasilkan bytecode yang memiliki kerentanan. Ini berarti seorang peretas topi hitam menyadari dan memahami bahwa beberapa pool likuiditas Curve rentan terhadap reentrancy lintas fungsi. Mereka memanfaatkan hal ini untuk mengambil puluhan juta dolar dari pool tersebut.

Peretasan ini sangat berbahaya karena tidak ada cara untuk mendeteksinya melalui audit kode sumber tradisional; kode sumbernya sudah benar. Kerentanan tersebut hanya ada pada bytecode hasil kompilasi. Peristiwa ini mendorong seluruh industri untuk mempertimbangkan kembali kepercayaan mereka terhadap kompiler dan infrastruktur. Masalah ini telah diatasi dengan memperbarui kompiler Vyper dan memigrasikan pool yang rentan ke kontrak baru yang dikompilasi dengan aman.

Hasilnya adalah krisis kepercayaan besar-besaran dan pengakuan bahwa keamanan harus mencakup seluruh tumpukan teknologi. Bug kompiler memang jarang terjadi, tentu saja, tetapi juga hampir mustahil untuk diprediksi, sehingga mimpi buruk di tingkat infrastruktur seperti itu bisa dengan mudah terjadi lagi.

Flash loan — sebuah jenis instrumen keuangan baru yang muncul seiring perkembangan keuangan terdesentralisasi, secara mendasar telah mengubah sifat peretasan murni. Flash loan memungkinkan pengguna untuk meminjam aset kripto dalam jumlah yang hampir tak terbatas tanpa agunan, selama pinjaman tersebut dilunasi sebelum transaksi yang sama selesai. Jika dana tidak diselesaikan, seluruh transaksi akan dibatalkan — seolah-olah transaksi tersebut tidak pernah terjadi.

Flash loan, yang biasanya ditujukan untuk arbitrase atau likuidasi, memberikan likuiditas yang diperlukan bagi peretas topi hitam untuk mengeksploitasi celah logika yang mendalam dalam mekanisme pasar. Menggunakan peretasan Euler Finance sebagai studi kasus, Euler adalah protokol peminjaman untuk melakukan deposit dan menghasilkan keuntungan. Pengguna juga dapat mendonasikan aset yang mereka depositkan ke cadangan protokol, sebuah fungsi yang disebut donateToReserves di dalam protokol tersebut.

Namun, para pengembang melewatkan pemeriksaan kesehatan (health check) yang sangat penting dalam fungsi tersebut. Mereka juga tidak memeriksa apakah akun tempat donor menarik dana akan tetap sehat setelah donasi dilakukan. Penyerang meminjam aset dalam jumlah besar melalui flash loan dan mendepositkannya ke Euler. Selanjutnya, mereka memanggil fungsi donateToReserves untuk mendonasikan sebagian dari deposit mereka.

Tanpa adanya pemeriksaan kesehatan, protokol menyetujui donasi tersebut, yang mendorong akun peretas ke tahap kebangkrutan yang sangat artifisial. Peretas kemudian melakukan likuidasi terhadap akunnya sendiri. Namun, perhitungan matematika di balik bonus likuidasi Euler sangatlah rumit, dan jumlah flash loan tersebut sangat besar, sehingga likuidator akhirnya meraup nilai yang lebih besar dari protokol dibandingkan dengan apa yang mereka depositkan.

Mereka mengembalikan flash loan tersebut dan melarikan diri dengan membawa sekitar dua ratus juta dolar. Ini bukanlah kegagalan kriptografi atau bug kompiler, melainkan murni kegagalan logika finansial di dalam kode tersebut. Dalam kasus ini, para pengembang hanya lupa memasukkan satu baris kode yang memeriksa kesehatan akun setelah tindakan tertentu dilakukan. Perbaikan (patch) tersebut terdiri dari penyediaan pemeriksaan kesehatan yang sesuai dan pengerjaan ulang total terhadap logika manajemen risiko protokol.

Hal ini menimbulkan dampak yang parah, mengganggu operasional protokol dan membutuhkan waktu berbulan-bulan negosiasi untuk memulihkan sebagian modal." Eksploitasi logika semacam itu, di mana mekanisme keuangan yang kompleks bereaksi satu sama lain dengan cara yang tidak diinginkan, merupakan bentuk peretasan murni yang paling lazim dan berbahaya saat ini. Kompleksitas protokol akan terus meningkat, dan kekhilafan logika jenis ini kemungkinan besar hampir pasti akan terulang kembali.

Perjuangan Berkelanjutan antara Kode dan Konsekuensi

Jika Anda melihat kembali peristiwa bersejarah dari pembobolan raksasa ini, Anda akan dengan mudah melihat sebuah pola. Kerentanan ini jarang sekali merupakan hasil dari kegagalan mekanisme konsensus blockchain yang mendasarinya. Tidak, ini adalah kegagalan logika manusia yang dituangkan ke dalam kode yang tidak dapat diubah. Terlepas dari apakah itu pembaruan state yang salah, jalur kode yang tidak tertulis untuk proksi, pemeriksaan kriptografi yang terlewat, kesalahan kompiler, atau pemeriksaan invariansi keuangan yang tidak ada, masalah mendasarnya selalu merupakan kesalahan dalam desain kontrak pintar sejak awal.

Untuk mengeliminasi risiko-risiko ini, industri memiliki sistem pertahanan yang menyeluruh. Ini termasuk:

1. Audit kode manual oleh pihak ketiga oleh perusahaan keamanan independen. 2. Alat verifikasi formal yang membuktikan secara matematis bahwa kode berjalan tepat sesuai rencana. 3. Bug bounty yang sangat besar yang membayar peretas white hat untuk menemukan cacat sebelum dilakukan oleh pihak jahat. 4. Penggunaan time release lock dan kontrol kunci admin multi-sig untuk memperlambat penerapan pembaruan berbahaya. 5. Penggunaan protokol asuransi terdesentralisasi untuk memberikan perlindungan jika terjadi pembobolan.

Namun, peretasan black hat masih tetap ada, meskipun langkah-langkah pertahanan ini telah menjadi lebih canggih. Titik awal dari pengembangan perangkat lunak adalah bahwa kompleksitas menciptakan peluang terjadinya kegagalan.

Kompleksitas keuangan terdesentralisasi yang kian meningkat, dengan para pengembang yang membangun protokol rumit yang mengintegrasikan puluhan kontrak pintar lainnya dan berfungsi di berbagai blockchain, menciptakan celah serangan baru yang belum pernah ada sebelumnya.

Karena penyerang hanya dibatasi oleh imajinasi mereka sendiri, mereka hanya perlu menemukan satu vektor yang berhasil untuk mencapai kesuksesan, sementara pertahanan selalu bersifat reaktif dan selamanya tertinggal. Ini akan menjadi perjuangan abadi di mana para pembangun masa depan yang terdesentralisasi beradu dengan para pengeksploitasinya. Mimpi buruk peretasan habis-habisan akan terus bermutasi sebagai pengingat konstan: di dunia di mana kode adalah hukum, satu kesalahan ketik dapat melenyapkan segalanya.

Dengan setiap baris kode yang secara harfiah bernilai ratusan ribu dolar, efisiensi dan presisi dalam operasional sehari-hari sama pentingnya dengan keamanan untuk memastikan tingkat performa tertinggi. Pengguna secara rutin dibebani oleh hambatan biaya jaringan saat mengelola aset digital, terutama stablecoin. Kini, setiap kali Anda mengirim USDT, jika itu adalah sesuatu yang sering Anda lakukan untuk mentransfer modal, Anda tahu bahwa biaya transaksi USDT ini dapat sangat bervariasi dan berpotensi menggerus modal Anda.

Sebagai partisipan aktif dalam ekosistem ini, menemukan metode transfer USDT yang murah sangatlah krusial. Di sinilah alat-alat spesifik memberikan Anda keuntungan. Layanan netts: USDT Transfer Calculator diciptakan tepat untuk meningkatkan efisiensi penggunaan tersebut. Saat Anda mentransfer Tether di jaringan TRON, transaksi tersebut menggunakan sejumlah Energy dan Bandwidth milik Anda. Jika Anda tidak memiliki keduanya, jaringan akan membakar TRX Anda berdasarkan biaya USDT Anda.

Estimator Netts yang menghitung jumlah Energy dan Bandwidth tepat yang dibutuhkan sebelumnya memungkinkan pengguna untuk berhemat secara signifikan dengan menyewa energy alih-alih membakar TRX, memastikan aset Anda dikelola seefisien mungkin di dunia di mana setiap pecahan token sangatlah berharga.

bagikan X Telegram LinkedIn Reddit

Langkah berikutnya