Contoh Nyata: Pada April 2022, platform peminjaman dana Rari Capital diserang karena kesalahan dalam kode. Penyerang meminta pinjaman sebesar 150.000.000 USDC, lalu mengulang permintaan pinjaman sampai berhasil mencuri $80 juta.
Integer Overflow dan Underflow
Hacker memasukkan nilai di luar jangkauan integer yang sudah didefinisikan smart contract. Jika ini terjadi, penyerang bisa meningkatkan jumlah token atau akun dan menarik dana dalam jumlah besar.
Contoh Nyata: Pada Maret 2023, smart contract Poolz Finance diserang hacker yang meningkatkan jumlah token melampaui batas maksimum, sehingga mereka bisa menarik token berlebih ke wallet pribadi. Serangan ini mengakibatkan kerugian setidaknya $390.000.
Kelemahan pada Kendali Akses
Pengguna bisa mengakses atau memodifikasi data smart contract tanpa izin. Hal ini bisa memengaruhi proses minting token, mencairkan dana, atau pemindahan kepemilikan aset.
Denial of Service
Mengeksploitasi berbagai fungsi kontrak untuk menghabiskan sumber daya penting seperti gas, storage, atau siklus CPU.
Kelemahan pada External Call
Terjadi ketika kontrak melakukan external call tanpa validasi, terutama ke alamat sembarangan yang tidak terpercaya. Penyerang bisa menjalankan kode tanpa izin, mencuri aset, atau merusak fungsi kontrak.
Contoh Nyata: Pada Februari 2023, fungsi self-swapping pada DEX Dexible dieksploitasi oleh hacker yang melakukan panggilan ke kontrak ERC-20 berbahaya dan mencuri $2 juta token.
Manipulasi Oracle
Oracle menghubungkan smart contract dengan data off-chain di dunia nyata. Oracle bisa dimanipulasi dengan metode spoofing, ramping, wash trading, dan lain-lain.
Contoh Nyata: Pada Februari 2023, platform lending dan stablecoin BonqDAO mengalami serangan manipulasi harga oracle. BonqDAO memperbarui harga secara instan, sehingga hacker bisa menggunakan harga tinggi ini untuk mengambil pinjaman. Setelah itu, ia menurunkan harganya kembali dan melikuidasi jaminan pengguna lain. Serangan ini menimbulkan kerugian $120 juta.
Flashloan
Serangan ini menggunakan pinjaman tanpa jaminan untuk memanipulasi pasar atau mengeksploitasi kelemahan smart contract di dalam sebuah blok transaksi.
Contoh Nyata: Stablecoin Beanstalk diserang pada April 2022 karena hacker berhasil mengontrol 79% suara pada protokol governance setelah mengambil flashloan dan menyumbangnya ke kontrak protokol untuk mendapat voting power besar. Setelah memenangkan voting, hacker bisa menyetujui dua proposal berbahaya yang digunakan untuk mencuri dana sebesar $181 juta.
Memahami Audit Smart Contract
Apa Itu Audit Smart Contract?
Audit smart contract adalah proses menganalisis kode sebuah kontrak secara menyeluruh untuk mencari dan memperbaiki celah keamanan maupun koding yang salah atau tidak efisien.
Mengapa Audit Smart Contract Itu Penting?
Audit smart contract sangat penting untuk mencegah eksploitasi dari hacker. Tanpa audit, bisa saja ada kelemahan pada smart contract yang bisa dijadikan celah bagi hacker untuk mencuri dana dari suatu exchange, memanipulasi fungsi token dalam sebuah proyek, atau melakukan minting token secara semena-mena.
Proses Audit Smart Contract
Secara sederhana, begini proses audit smart contract.
- Dokumentasi: Mengumpulkan semua dokumentasi relevan seperti whitepaper, codebase, dan bahan lain yang berkaitan dengan smart contract.
- Testing: Auditor menjalankan tes otomatis dengan berbagai tools.
- Review koding: Setelah tes otomatis, auditor tetap menganalisis koding secara manual.
- Memperbaiki masalah: Jika ada masalah yang ditemukan di smart contract, auditor bekerja sama dengan tim proyek untuk memperbaikinya.
- Laporan audit: Auditor menulis laporan lengkap tentang penemuan dan proses audit untuk dijadikan acuan bagi tim proyek.
Alat dan Layanan Audit Smart Contract
Alat Audit Smart Contract
- Slither: Tool Analisis Statis untuk Solidity & Vyper
- Kelebihan:
- 92 detektor bawaan dan detektor custom.
- Membuat Inheritance Graph untuk semuakontrak.
- Call Graph untuk memvisualisasi interaksi dan panggilan antarfungsi sebuah kontrak.
- Eksekusi cepat.
- Kekurangan:
- Hanya terbatas untuk smart contract Solidity dan Vyper.
- Banyak false positive yang diidentifikasi sebagai masalah.
- Mythril: Analisis Keamanan untuk EVM Bytecode
- Kelebihan:
- Mendukung berbagai blockchain yang kompatibel dengan EVM.
- Kekurangan:
- Tidak bisa dikustomisasi.
- Manticore: Analisis dan Uji Coba Smart Contract Ethereum
- Kelebihan:
- Bisa menganalisis berbagai jenis software.
- Gratis.
- Kekurangan:
- Butuh memori yang banyak.
- Performa bisa lambat.
- SuMo: Tool Mutation Testing untuk Smart Contract Solidity
- Kelebihan:
- Pilihan operator mutation yang beragam.
- Mendukung semua proyek dari tools Truffle, Hardhat, Brownie, dan Foundry.
- Kekurangan:
- Mutation testing memakan waktu lama.
- Solidity-Coverage: Tool Code Coverage untuk Smart Contract Ethereum
- Kelebihan:
- Pelacakan test coverage lebih sederhana dan otomatis membuat laporan komprehensif.
- Opsi konfigurasi yang lengkap agar testing lebih terkustomisasi.
- Kekurangan:
- Hanya bisa dipakai untuk smart contract Solidity.
Layanan Audit Smart Contract Terpercaya
- CertiK: Verifikasi Formal dan Real-time Monitoring
- Dashboard monitoring untuk mencari masalah runtime setelah deploy.
- Laporan audit transparan dan skor severity.
- Tools analisis yang diperkuat AI.
- Hashlock: Menggabungkan Keamanan dan Edukasi
- Panduan perbaikan yang komprehensif di setiap laporan.
- Workshop developer dan sesi follow-up.
- Spesialisasi di blockchain EVM.
- Trail of Bits: Berkontribusi ke Riset Keamanan
- Verifikasi formal dengan tools custom.
- Analisis statis dan dinamis yang didukung riset terbaru.
- Telah menerbitkan riset keamanan yang memengaruhi perbaikan protokol di berbagai blockchain.
- OpenZeppelin: Pengembang Bahasa Smart Contract Solidity
- Laporan audit menyeluruh dengan kategorisasi risiko yang jelas.
- Integrasi dengan MythX untuk analisis statis mendalam.
- Pelatihan formal dan dukungan developer untuk memperkuat versi baru.
- QuillAudit: Audit Multi-Layer
- Deteksi kelemahan otomatis, review kode manual, dan red teaming eksternal.
- Menyediakan layanan optimasi gas, pemeriksaan logika bisnis, sampai pemantauan setelah deploy.
- Berkontribusi aktif ke standar keamanan Web3.
Tips Memilih Audit Smart Contract Terpercaya
Bagaimana cara mengetahui apabila sebuah proyek telah diaudit oleh pihak yang terpercaya? Perhatikan perusahaan auditor dengan hal-hal berikut.
- Pengalaman: Auditor yang ahli dan berpengalaman punya pengetahuan detail dan mendalam mengenai teknologi blockchain dan smart contract.
- Reputasi: Cari tahu reputasi perusahaan audit melalui review, testimoni klien, dan rekomendasi dari tim proyek.
- Layanan Terkustomisasi: Pilih perusahaan audit yang menyediakan layanan audit lengkap yang bisa dikustomisasi sesuai kebutuhan.
- Transparan: Perusahaan harus memberi kejelasan mengenai harga layanan.
- Karya Nyata: Kesuksesan perusahaan audit dilihat dari layanan yang sudah mereka berikan sebelumnya. Pilih perusahaan dengan portofolio komprehensif.
FAQ
Audit smart contract butuh waktu berapa lama?
Lamanya waktu yang dibutuhkan tergantung ukuran dan tingkat kerumitan koding smart contract. Umumnya, sebuah tim audit bisa menyelesaikan proses audit dalam beberapa hari.
Seberapa sering audit smart contract harus dilakukan?
Smart contract tidak bisa diubah setelah deploy, sehingga audit smart contract cukup dilakukan sekali sebelum diluncurkan. Namun, sebuah proyek atau blockchain harus diaudit secara rutin.
Apakah proyek yang belum diaudit harus dihindari?
Ya, sebaiknya hindari proyek token atau exchange yang belum diaudit untuk mengurangi risiko aset hilang karena eksploitasi smart contract.
Kesimpulan
Smart contract adalah pondasi yang menjalankan semua kegiatan blockchain, sehingga audit tidak boleh dilupakan. Sebelum berinvestasi ke proyek token atau menggunakan sebuah exchange, pastikan mencari tahu apakah proyek tersebut sudah melalui audit menyeluruh.
Smart contract sangat dekat hubungannya dengan blockchain. Apa itu blockchain? Pelajari selengkapnya di artikel Apa Itu Blockchain dan Cara Kerjanya? Panduan Lengkap untuk Pemula.