Crypto-wallet dan crypto-exchangees dapat menderita dari serangan hacker (atau dari kebodohan pengguna, pengembang, serta masalah dengan logika sistem). Pengujian dapat membantu ini untuk mengidentifikasi kerentanan dan masalah dalam logika aplikasi, namun, saya masih belum menemukan metodologi formal di mana akan ditulis apa yang harus diperhatikan selama pengujian. Setelah menguji selusin bursa dan dompet, saya memutuskan untuk meresmikan prosedur untuk menguji mereka, yang tertarik, selamat datang di kucing.
Saat menguji pertukaran dan dompet, saya memerhatikan fungsinya, dan saya merumuskan aspek-aspek pengujian mereka di bawah ini dalam bentuk teknik kecil, tetapi secara berurutan.
Pertama-tama, Anda perlu memahami apa yang penting bagi pelanggan? Penting bagi pelanggan bahwa uang dari pertukaran atau dompet dan penyimpanan data pribadi pengguna tidak dicuri. Dan karena, pada kenyataannya, setiap pertukaran atau dompet, sebagian besar, adalah situs web atau aplikasi web, pelanggan ingin melakukan simulasi serangan hacker, mis. Pengujian Black Box (lihat Tabel 1), tetapi untuk kelengkapan pengujian, pengujian Gray Box lebih sering dipilih (lihat Tabel 1).
Untuk menguji logika kerja, Anda perlu tes cryptocurrency. Dan karena masing-masing pertukaran memiliki batasan sendiri pada penyetoran / penarikan dana, jumlah cryptocurrency tes harus setidaknya minimum yang diizinkan untuk penarikan dan harus cukup untuk melakukan setidaknya 5 transaksi pembelian dan penjualan dan / atau input-output.
Tabel 1. Jenis pengujian tergantung pada informasi yang diberikan.
Jenis | Deskripsi |
---|
Kotak hitam | - pengujian dilakukan tanpa melibatkan tim teknis pelanggan
|
Kotak abu-abu | - kontak dengan tim teknis pelanggan
- menambahkan akun yang sedang diuji di "daftar putih"
- pelanggan menyediakan dana (koin) untuk pengujian
|
Kotak putih | - dukungan pelanggan penuh
- menyediakan kode sumber aplikasi
- penyediaan log
- memberikan akses ke berbagai hak istimewa
- penyediaan dana (koin) dalam jumlah yang diperlukan untuk pengujian
|
Di Hacken, kami menguji kerentanan dengan urutan sebagai berikut:- Mempelajari informasi yang tersedia untuk umum.
- Verifikasi oleh alat otomatis.
- Periksa dalam mode manual.
- Menulis laporan.
Fitur pengujian pertukaran crypto dan dompet crypto1. Menguji Verifikasi KYC - ini adalah persyaratan dari sebagian besar pertukaran crypto dan ICO.Bagian ini membahas pengujian unduhan file (foto atau tangkapan layar dokumen yang mengonfirmasi identitas seseorang).
- Memeriksa kemampuan untuk mengunduh file yang dapat dieksekusi ke server sistem
- Periksa kemungkinan pencurian dokumen yang dipindai - nama file brute-force dan direktori.
- Memeriksa akses tidak sah ke sistem file server.
2. Pengujian dana input-output- Memeriksa kebenaran angka pembulatan saat menyimpan / menarik dana.
- Memeriksa penggantian alamat dompet saat menyetor / menarik dana (kesalahan paling sederhana adalah tidak memeriksa dompet pengirim dan penerima, tetapi sangat penting).
- Memeriksa logika kerja saat menyimpan / menarik dana.
- Memeriksa bypass konfirmasi operasi pembelian-penjualan (kode otentikasi dua faktor, OTP, kata sandi khusus).
- Periksa kerentanan penarikan kondisi Ras.
- Memeriksa kemungkinan melampaui batas input / output dana.
3. Menguji pembelian dan penjualan cryptocurrency (hanya berlaku untuk pertukaran)- Memeriksa kebenaran angka pembulatan saat membeli dan menjual dana.
- Verifikasi spoofing alamat selama penjualan.
- Memeriksa logika kerja saat membeli dan menjual dana.
- Memeriksa kemungkinan substitusi atau modifikasi order penjualan.
- Memeriksa bypass konfirmasi operasi pembelian-penjualan (kode otentikasi dua faktor, OTP, kata sandi khusus).
- Memeriksa kemungkinan kondisi Balapan dalam pelaksanaan operasi pembelian / penjualan
- Memeriksa kemungkinan spoofing alamat dompet.
Pengujian Komponen Web4. Menguji proses pendaftaran- Memeriksa pemfilteran parameter yang masuk saat pendaftaran.
- Verifikasi fungsi konfirmasi pengguna.
- Memeriksa kemampuan untuk mengulangi nama pengguna, alamat email, dan nomor telepon.
- Memeriksa kemungkinan melewati cek captcha selama pendaftaran.
- Memeriksa kerentanan dan logika saat mengatur ulang kata sandi dan mengubah data.
5. Menguji proses otentikasi- Pemeriksaan pemfilteran otentikasi.
- Memeriksa kemungkinan memilih nama pengguna dan kata sandi untuk akun dalam kamus (perlindungan terhadap kekerasan).
- Periksa memotong periksa captcha.
- Memverifikasi Bypass Otentikasi Dua-Faktor
- Memeriksa kemampuan untuk menonaktifkan otentikasi dua faktor.
- Memeriksa kebocoran data selama otentikasi.
6. Menguji kerangka kerja dan teknologi yang digunakan dalam pengembangan pertukaranSelama pengujian untuk kerentanan, penting untuk menentukan teknologi dan teknik (kerangka kerja) yang dengannya pertukaran dikembangkan. Dengan demikian, ketika memahami teknologi yang digunakan untuk dompet atau pertukaran, Anda dapat menemukan kemungkinan eksploitasi atau kerentanan yang sudah ditemukan di sumber terbuka. Penting untuk memverifikasi bahwa semua perpustakaan, kerangka kerja, dan perangkat lunak pihak ketiga tidak memiliki kerentanan yang tersedia untuk umum pada saat rilis atau konfigurasi yang benar dari sistem keamanan (misalnya, CloudFlare).
7. Pengujian OWASPMetodologi OWASP berisi daftar periksa yang memeriksa semua risiko keamanan yang mungkin terjadi untuk situs web. Dengan demikian, pemeriksaan semacam itu memungkinkan Anda untuk mengidentifikasi kemungkinan kerentanan (yah, lebih banyak tergantung pada
langsungnya pengalaman dan keterampilan penguji)
Paling sering ditemukan:
- Memeriksa parameter pemfilteran di ujung belakang, karena sering diperiksa hanya di ujung depan
- Tidak adanya flag permintaan HTTP, yang tidak kritis, tetapi dapat menyebabkan caching kata sandi atau kemungkinan serangan Clickjacking
- Kurangnya manajemen sesi: ini dapat mengarah pada fakta bahwa ketika cookie dicuri atau penyerang memiliki akses langsung ke komputer atau telepon, operasi dari pengguna yang valid dapat dilakukan
- Versi layanan terbuka yang rentan
- Menggunakan JSON Web Tokens (JWT), dengan algoritma enkripsi yang lemah
8. Menguji API- Memeriksa kerentanan API dengan menulis modul program untuk berinteraksi dengan API dan memeriksa kemungkinan kerentanan logis di sisi klien dan API.
- Gunakan Swagger untuk melihat struktur permintaan, perlu memahami apa yang perlu dikirim ke server dan dengan demikian memeriksa API untuk kerentanan.
9. Menguji WebSocketsPerangkat lunak yang biasa digunakan untuk pengujian:- Burpsuite
- Acunetix
- Zenmap
- Owasp zap
- Sqlmap
Dan alat-alat lain sesuai kebutuhan.
Kesimpulan:Dalam artikel ini saya mencoba memformalkan dan menyusun metodologi untuk pengujian pertukaran, yang saya terapkan di lebih dari 10 kasus pengujian pertukaran dan dompet. Kami menggunakan metodologi ini sebagai metodologi utama untuk menguji pertukaran di
Hacken . Saat ini, industri teknologi blockchain, solusi desentralisasi dan cryptocurrency berada di puncak popularitas. FAQ dan manual menjadi usang jauh lebih cepat daripada Hukum Moore, oleh karena itu artikel tersebut tidak mengklaim sebagai manual luar biasa untuk menguji pertukaran crypto, hanya mengungkapkan pengalaman yang diperoleh selama pengulangan berulang prosedur ini.