🇮🇩 Bagaimana Cardano Terlindungi Dari Serangan DDoS?

Source : https://cexplorer.io/article/how-is-cardano-protected-from-ddos-attacks

Screenshot_20231201-160611_Mises

Serangan DDoS merupakan ancaman signifikan terhadap layanan online. Tujuan utama serangan ini adalah membuat layanan tidak tersedia. Cardano dapat dilihat sebagai layanan online. Ini menyediakan platform untuk melaksanakan kontrak pintar, mentransfer dana, dan fungsi lainnya melalui Internet. Seperti layanan online lainnya, secara teoritis layanan ini dapat menjadi sasaran serangan DDoS. Namun, karena sifatnya yang terdesentralisasi dan langkah-langkah keamanan yang diterapkan, layanan ini jauh lebih tahan terhadap serangan semacam itu dibandingkan layanan online tradisional yang terpusat. Baca tentang seberapa tahan Cardano terhadap serangan DDoS.

Apa itu serangan DDoS?

Serangan Distributed Denial of Service (DDoS) adalah upaya jahat untuk mengganggu fungsi normal jaringan, layanan, atau server dengan membanjirinya dengan membanjirnya lalu lintas internet. Ini juga disebut mengirim spam ke jaringan. Penyerang (atau juga pelaku spam) mencoba membuat lalu lintas serupa (misalnya transaksi) yang terlihat serupa dengan lalu lintas normal dari pengguna. Artinya, transaksi spam tercampur dengan transaksi pengguna.

Dalam konteks artikel, istilah spam digunakan untuk transaksi penyerang. Ini bukan email spam.

Serangan ini bekerja dengan memanfaatkan beberapa sistem komputer (botnet) yang disusupi sebagai sumber lalu lintas serangan. Mesin yang dieksploitasi dapat mencakup komputer dan sumber daya jaringan lainnya seperti perangkat IoT. Ketika server korban ditargetkan oleh botnet, setiap bot mengirimkan permintaan dalam jumlah besar ke alamat IP target, berpotensi menyebabkan server kewalahan, dan mengakibatkan penolakan layanan pada lalu lintas normal.

Server biasanya berukuran untuk sejumlah lalu lintas tertentu. Lalu lintas spam akan meningkatkan lalu lintas secara dramatis dan tiba-tiba.

Jadi, tujuan utama serangan DDoS adalah membuat layanan (sementara) tidak tersedia. Hal ini biasanya dicapai dengan menghabiskan sumber daya server yang ditargetkan, memaksanya untuk memulai ulang, atau membebani saluran komunikasi secara berlebihan untuk mengisolasi server.

Lalu lintas spam menghabiskan sumber daya seperti lalu lintas biasa. Namun, server mungkin tidak memiliki sumber daya yang tersedia.

Serangan DDoS dapat menyebabkan gangguan serius pada layanan online. Selama serangan yang sedang berlangsung, pengguna tidak dapat menggunakan layanan secara normal. Gejala serangan DDoS yang paling jelas adalah situs atau layanan tiba-tiba menjadi lambat atau tidak tersedia. Hal ini dapat mengakibatkan kerugian finansial dan reputasi yang signifikan bagi bisnis.

Kebutuhan untuk melindungi terhadap serangan DDoS adalah hal terpenting di era digital saat ini.

Mekanisme utama untuk melindungi terhadap serangan DDoS meliputi:

  • Pembatasan Tingkat: Ini melibatkan pembatasan jumlah permintaan yang akan diterima server dalam jangka waktu tertentu dari satu alamat IP.
  • Deteksi Anomali: Dengan memantau lalu lintas jaringan dan menganalisis pola yang menyimpang dari norma, potensi serangan DDoS dapat diidentifikasi.
  • Firewall dan Router: Ini dapat dikonfigurasi untuk menolak lalu lintas yang berasal dari alamat IP yang mencurigakan atau berisi konten berbahaya.
  • Layanan Mitigasi DDoS: Layanan ini dapat membantu menyerap membanjirnya permintaan selama serangan DDoS, melindungi target dan menjaganya tetap online.
  • Sistem Pencegahan Intrusi (IPS): Sistem ini dapat mendeteksi serangan DDoS dan ancaman keamanan lainnya, lalu mengambil tindakan untuk memitigasi ancaman tersebut.

Jika serangan DDoS berhasil terjadi, biasanya serangan tersebut dapat dicegah dalam beberapa jam (hari) agar layanan tersedia kembali.

Bagaimana Cardano terlindungi dari serangan DDoS?

Tujuan serangan DDoS pada blockchain dapat memperlambat atau menghentikan sepenuhnya pemrosesan transaksi dan pelaksanaan kontrak pintar. Dari sudut pandang pengguna, jaringan (yaitu layanan) akan padat atau tidak tersedia.

Mirip dengan serangan DDoS biasa yang menargetkan server, dalam kasus Cardano, penyerang dapat mencoba membanjiri jaringan dengan transaksi (transaksi spam). Penyerang ingin mencapai keadaan di mana jaringan hanya akan memproses transaksi spam (yang valid dan dikenakan biaya) dengan mengorbankan transaksi pengguna normal.

Perhatikan bahwa penyerang bersedia membayar untuk transaksi tersebut (yaitu menginvestasikan uang dalam serangan tersebut). Sebuah node akan segera membuang dan tidak menyebarkan transaksi yang tidak valid. Upaya membanjiri node dengan transaksi yang tidak valid hanya akan berdampak kecil pada jaringan. Namun, penyerang mungkin dapat merusak node tersebut.

Cardano telah menerapkan beberapa langkah untuk memitigasi risiko serangan DDoS. Hal ini termasuk biaya transaksi untuk mencegah spamming ke jaringan dengan transaksi dalam jumlah besar, protokol yang digerakkan oleh permintaan untuk mengontrol kecepatan data yang tiba di setiap node, dan penerusan tervalidasi untuk memeriksa transaksi sebelum meneruskannya. Desentralisasi jaringan (terutama jumlah node) juga merupakan faktor penting.

Sederhananya, Cardano tahan terhadap serangan DDoS karena alasan berikut:

  • Desentralisasi
  • Biaya
  • Validasi transaksi sebelum disebarkannya
  • Setiap node penghasil blok memiliki beberapa node relai (jumlah node lebih banyak dan perlindungan node penghasil blok)
  • Kemampuan untuk mendeteksi node spam dan memutuskan sambungan darinya

Mari kita jelaskan beberapa mekanisme pertahanan dasar.

Dalam serangan DDoS, penyerang biasanya menguasai satu target dengan membanjirnya lalu lintas internet.

Cardano adalah jaringan terdistribusi yang terdiri dari sejumlah besar node. Cardano tidak memiliki satu titik kegagalan pun. Penyerang perlu membanjiri sebagian besar node dengan transaksi spam untuk mengganggu jaringan.

Jadi, pencegahan terbaik terhadap serangan DDoS adalah desentralisasi. Cardano memiliki sekitar 3K pool dan masing-masing memiliki 2-3 node relay. Pools adalah node penghasil blok yang tersembunyi di balik node relay. Menyerang Cardano adalah sebuah tantangan karena perlu menyerang sekitar 10 ribu node.

Operator staking pool (SPO) dapat mengonfigurasi node mereka untuk interaksi langsung satu sama lain. Ini berarti bahwa node penghasil blok dapat terhubung ke node relai mereka sendiri (tepercaya) dan ke node relai lain yang dioperasikan oleh SPO lain. Dengan kata lain, SPO memutuskan node rekan mana yang akan diajak berkomunikasi. Konfigurasi jaringan dapat diubah kapan saja.

Jika sebuah node terhubung ke node spam dengan jumlah transaksi spam yang tidak normal di mem-pool, operator dapat memutuskan untuk memutuskan koneksi nodenya sendiri dari node spam. Hal ini dapat dilakukan dengan skrip dengan logika yang telah diprogram sebelumnya.

Menyerang satu node penghasil blok pada dasarnya berarti menyerang beberapa node relai. Dengan kata lain, node penghasil blok bukanlah node yang terlihat secara publik (bahkan bagi penyerang).

Jika node penghasil blok terputus dari satu node relai, node tersebut akan tetap terhubung ke setidaknya satu node relai lainnya. Selain itu, dimungkinkan untuk terhubung ke node relai lain (yang jujur). Hal ini mempersulit penyerang untuk melumpuhkan fungsi produksi blok suatu node.

Di Cardano, blok dan transaksi disebarkan secara P2P. Transaksi baru dimasukkan ke dalam mem-pool, yaitu semacam ruang tunggu tempat transaksi menunggu untuk dimasukkan ke salah satu blok berikutnya.

Setiap node mengelola mem-poolnya sendiri. Isi mem-pool di jaringan bervariasi seiring dengan penyebaran transaksi dari satu node di lokasi tertentu ke node lain di jaringan.

Sekarang bayangkan node dalam jaringan terdistribusi yang dapat memiliki transaksi serupa di mem-pool mereka (urutan transaksi yang dimasukkan ke dalam mem-pool mungkin berbeda). Jika serangan diluncurkan, isi mem-pool pada beberapa node mungkin mulai bervariasi secara signifikan. Di beberapa mem-pool, sebagian besar akan ada transaksi spam.

Pemimpin slot dipilih secara acak berdasarkan ukuran taruhan. Pemimpin slot mengambil transaksi dari mem-pool mereka dan membuat blok baru. Seorang penyerang tidak mengetahui sebelumnya di jaringan mana blok baru berikutnya akan dicetak.

Blok baru lainnya mungkin berisi transaksi spam atau transaksi pengguna. Itu tergantung di mana posisi pemimpin slot yang terpilih.

Jika serangan hanya terjadi di Eropa, node Eropa akan membuat blok dengan transaksi spam, namun blok dengan lebih banyak transaksi pengguna akan ditambang di seluruh dunia.

Serangan terhadap server dan node Cardano memiliki spesifikasi tertentu.

Seorang penyerang tidak bisa begitu saja menyiarkan banyak transaksi ke node yang dipilih (seperti dalam serangan DDoS biasa). Transaksi tidak dapat didorong ke node. Node menarik transaksi dari node rekannya. Fakta ini, dikombinasikan dengan fakta bahwa operator kumpulan memutuskan node rekan mana yang terhubung, mewakili mekanisme pertahanan yang kuat.

Ingatlah bahwa hanya transaksi valid yang tersebar di jaringan.

Saat pengguna mengirimkan transaksi dari dompetnya, transaksi tersebut selalu diproses oleh sebuah node. Ini belum tentu merupakan node (kumpulan) penghasil blok. Kemungkinan besar hanya berupa node relai. Transaksi yang valid dimasukkan ke dalam mem-pool oleh node. Transaksi yang tidak valid segera dibuang oleh node dan tidak lagi tersebar.

Jika sebuah node mengirimkan transaksi yang tidak valid atau berulang kali mengirimkan transaksi yang sama, koneksi ke node (relay) tersebut akan ditutup. Sebelum node menyampaikan transaksi, header/konten diperiksa berdasarkan aturan. Mekanisme ini membantu mencegah node membanjiri jaringan dengan transaksi dalam jumlah besar.

Jika seorang penyerang ingin mengirim spam ke jaringan, ia harus terlebih dahulu mengisi mem-pool di nodenya sendiri. Sebagai alternatif, ia dapat mengisi mem-pool dari node yang terhubung dengan dompet. Dari node ini, transaksi berpotensi disebarkan ke node lain. Jika valid, node akan memasukkannya ke dalam mem-pool.

Node dapat mendeteksi node spam dan memutuskan sambungan dari node tersebut. Dapat dikatakan bahwa node menggunakan strategi yang mirip dengan server, yaitu rate limit. Di jaringan Cardano, node bertanggung jawab atas kecepatan transaksi.

Protokol Cardano dirancang dengan gaya yang didorong oleh permintaan. Parameter protokol membatasi jumlah sumber daya jaringan yang dapat digunakan oleh node. Untuk setiap node dan setiap peer yang terhubung ke node tersebut, node mengontrol kecepatan kedatangan data, konkurensi maksimum, dan jumlah data yang beredar.

Jika operator node mengubah parameter protokol untuk memungkinkan tingkat transaksi yang lebih tinggi daripada yang ditentukan oleh parameter protokol, jaringan akan menganggapnya sebagai spammer. Hal ini mencegah rekan musuh melancarkan serangan konsumsi sumber daya. Jika rekan mematuhi protokol, kemampuannya untuk menggunakan sumber daya di node dibatasi. Jika melanggar maka akan diputus. Dengan kata lain, node rekan memutuskan koneksi dengan node spam ini.

Jadi, jika penyerang ingin mengirim spam ke jaringan dari satu lokasi, rekan-rekannya akan berhenti menarik transaksi dari lokasi tersebut. Jelas sekali bahwa jaringan yang terdesentralisasi tidak dapat diserang dari satu lokasi saja.

Poin berikutnya yang akan saya uraikan sangatlah penting.

Penting untuk menyerang beberapa node secara bersamaan. Jika penyerang ingin memperlambat jaringan secara drastis atau menyebabkan masalah yang lebih serius, maka ia perlu menyerang hampir semua node secara bersamaan.

Node menarik transaksi dari semua rekan yang terhubung, sehingga mereka memasukkan transaksi pengguna reguler serta transaksi spam (yang valid) ke dalam mem-pool. Transaksi pengguna dan transaksi spam akan mulai saling berebut tempat di mem-pool (yang 2x lebih besar dari ukuran blok). Kumpulan mem dari node yang diserang akan berisi transaksi spam, namun node yang tidak diserang akan berisi transaksi pengguna.

Tergantung siapa yang menjadi pemimpin slot berikutnya, akan ada lebih banyak transaksi spam atau transaksi pengguna di blok tersebut.

Jika penyerang tidak menyerang semua node pada saat yang sama, ia tidak memiliki peluang untuk mencegah transaksi pengguna masuk ke salah satu dari banyak mem-pool di jaringan.

Memori (mem-pool) yang dimiliki penyerang untuk melakukan spam dengan transaksi bukanlah ukuran satu mem-pool, tetapi pada dasarnya adalah ukuran memori semua mem-pool di jaringan jika digabungkan.

Mem-pool dapat diisi kurang lebih 11 transaksi yang masing-masing berukuran 16K byte. Diperlukan setidaknya 0,86 ADA untuk mengirim satu transaksi tersebut. Dibutuhkan setidaknya 10 ADA untuk mengisi mem-pool.

Cardano terdiri dari 10 ribu node dan masing-masing memiliki mem-pool berukuran 2 blok. Mengisi semua mem-pool dengan transaksi unik pada satu waktu akan memerlukan pembuatan 110 ribu transaksi. Seorang penyerang akan membayar 95K ADA.

Jika penyerang berhasil membuat node spam terhubung ke semua node (jujur) di jaringan dan mengisi mem-pool dengan transaksi spam, transaksi pengguna akan kesulitan untuk masuk ke mem-pool. Saya berani mengatakan bahwa dalam praktiknya hal ini tidak realistis.

Saya ulangi bahwa 110K transaksi adalah jumlah maksimum. Dalam praktiknya, pengguna dapat mengamati perlambatan jaringan jika penyerang mengisi beberapa mem-pool dengan transaksi spam. Semakin banyak mem-pool yang diserang, semakin lambat jaringannya.

Mungkin lebih mudah bagi penyerang untuk melakukan spam hanya pada sebagian node dan berharap transaksi spam tersebar ke beberapa mem-pool. Dia secara bertahap dapat mengirimkan kumpulan transaksi spam lainnya berulang kali.

Jaringan (semua node) menghapus mem-pool setiap kali blok baru dibuat. Seperti yang telah disebutkan, setiap mem-pool dapat berisi transaksi yang berbeda. Yang penting, jumlah transaksi di mem-pool akan cenderung berkurang secara bertahap jika penyerang tidak membuat transaksi spam baru.

Node tidak membedakan antara transaksi spam dan transaksi pengguna. Selama valid (termasuk biaya yang dibayarkan), harus diproses.

Jadi, transaksi yang termasuk dalam blok baru dihapus dari mem-pool oleh node. Jika transaksinya tidak unik, blok baru pada dasarnya akan memicu pembersihan transaksi di mem-pool di banyak node (hanya setengah ukuran mem-pool yang akan dibebaskan dengan satu blok penuh).

Jadi, transaksi spam yang tidak unik membuat serangan menjadi kurang efektif. Penting untuk lebih sering mengisi ulang mem-pool dengan transaksi spam tambahan.

Agar penyerang dapat meningkatkan dampak serangan, dia harus mengatur agar transaksinya dimasukkan ke dalam mem-pool sebelum transaksi pengguna (yaitu, agar transaksi tersebut diprioritaskan). Namun, ini bukanlah tugas yang mudah. Misalnya, penyerang harus berada sedekat mungkin secara geografis dengan node yang diserangnya (karena penundaan jaringan).

Operator memiliki kemampuan untuk merespons serangan.

Operator kumpulan dapat dengan mudah mendeteksi serangan tersebut dan mudah bagi mereka untuk mengosongkan mem-pool. Dalam hal ini, mereka akan meningkatkan kemungkinan transaksi pengguna masuk ke mem-pool. Penyerang harus mengirim ulang transaksi spam. Namun, hal ini hanya akan menyebabkan jaringan terputus koneksinya dengan node spam. Operator kumpulan dapat secara mandiri memutuskan untuk memutuskan sambungan dari node spam atau dompet spam.

Relatif mudah bagi suatu jaringan untuk menghilangkan node spam dan hanya terdiri dari node tepercaya.

Kesimpulan

Agar serangan spam berhasil, penyerang harus memiliki akses ke semua mem-pool di jaringan secara merata dan instan. Hal ini sulit dicapai dalam praktiknya. Saya dapat membayangkan bahwa penyerang mungkin dapat memperlambat jaringan. Alternatifnya, ia mungkin mencoba mematikan node tertentu yang sering digunakan pengguna.

Perlambatan jaringan dapat mengganggu jika pengguna ingin transaksinya diselesaikan dengan cepat karena mereka berisiko, misalnya, melikuidasi posisi mereka.

Di masa lalu, jaringan Cardano telah mengalami banyak tekanan beberapa kali, baik karena pencetakan NFT, atau pengujian ketahanannya terhadap serangan DDoS. Beban terbesar yang saya dengar adalah 44 kali lebih tinggi dari kapasitas jaringan (bebannya sekitar 250 ribu transaksi baru dalam satu jam). Sebagian besar pengguna bahkan tidak menyadari perlambatan tersebut.

Jika serangan DDoS mudah dilakukan pada Cardano atau blockchain lainnya, kita akan melihat serangan ini setiap hari. Itu tidak terjadi. Percayalah, tidak mudah untuk mempersiapkan dan melaksanakan serangan seperti itu.