Sebelumnya kita telah mengetahui tentang Apa Itu Remote Code Execution beserta skemanya. Sekarang kita akan mengenali cara kerja RCE beserta cara pencegahannya agar kita dapat menjaga keamanan asset dan pekerjaan kita. So, mari kita simak bersama!
Cara Kerja Remote Code Execution
Kerentanan RCE memungkinkan penyerang mengeksekusi kode arbitrer pada perangkat jarak jauh. Seorang penyerang dapat mencapai RCE dengan beberapa cara berbeda, termasuk:
1. Injection Attacks
Banyak jenis aplikasi yang berbeda, seperti kueri SQL, menggunakan data yang disediakan pengguna sebagai input ke perintah. Dalam serangan injeksi, penyerang dengan sengaja memberikan input yang salah yang menyebabkan sebagian input mereka ditafsirkan sebagai bagian dari perintah. Ini memungkinkan penyerang untuk membentuk perintah yang dieksekusi pada sistem yang rentan atau untuk mengeksekusi kode arbitrer di atasnya.
2. Deserialization Attacks
Aplikasi biasanya menggunakan serialisasi untuk menggabungkan beberapa bagian data menjadi satu string agar lebih mudah untuk dikirim atau dikomunikasikan. Input pengguna yang diformat secara khusus dalam data serial dapat ditafsirkan oleh program deserialisasi sebagai kode yang dapat dieksekusi.
3. Out-Of-Bounds Write
Aplikasi secara teratur mengalokasikan potongan memori berukuran tetap untuk menyimpan data, termasuk data yang disediakan pengguna. Jika alokasi memori ini dilakukan dengan tidak benar, penyerang mungkin dapat merancang input yang menulis di luar buffer yang dialokasikan. Karena kode yang dapat dieksekusi juga disimpan dalam memori, data yang diberikan pengguna yang ditulis di tempat yang tepat dapat dieksekusi oleh aplikasi.
Dampak Ancaman RCE
Serangan RCE dirancang untuk mencapai berbagai tujuan. Perbedaan utama antara eksploit lain ke RCE, adalah rentangnya antara pengungkapan informasi, penolakan layanan, dan eksekusi kode jarak jauh.
Beberapa dampak utama dari serangan RCE meliputi:
1. Akses Awal
Serangan RCE biasanya dimulai sebagai kerentanan dalam aplikasi yang menghadap publik yang memberikan kemampuan untuk menjalankan perintah pada mesin yang mendasarinya. Penyerang dapat menggunakan ini untuk mendapatkan pijakan awal pada perangkat untuk menginstal malware atau mencapai tujuan lain.
2. Pengungkapan Informasi
Serangan RCE dapat digunakan untuk menginstal malware pencuri data atau untuk langsung menjalankan perintah yang mengekstrak dan mengekstrak data dari perangkat yang rentan.
3. Denial Of Service (DOS)
Kerentanan RCE memungkinkan penyerang menjalankan kode pada sistem yang menghosting aplikasi yang rentan. Ini dapat memungkinkan mereka untuk mengganggu operasi aplikasi ini atau aplikasi lain pada sistem.
4. Crypto-Mining
Cryptomining atau cryptojacking adalah malware menggunakan sumber daya komputasi dari perangkat yang disusupi untuk menambang cryptocurrency. Kerentanan RCE biasanya dieksploitasi untuk menyebarkan dan mengeksekusi malware cryptomining pada perangkat yang rentan.
5. Ransomware
Ransomware adalah malware yang dirancang untuk menolak akses pengguna ke file mereka sampai mereka membayar uang tebusan untuk mendapatkan kembali akses. Kerentanan RCE juga dapat digunakan untuk menyebarkan dan mengeksekusi ransomware pada perangkat yang rentan.
Cara Pencegahan Remote Code Execution
Untuk memulainya, Anda harus menghindari penggunaan input pengguna di dalam kode yang dievaluasi. Pilihan terbaik dalam situasi ini adalah menghindari penggunaan fungsi seperti eval. Ini dianggap sebagai bentuk praktik buruk dan dapat dengan mudah dihindari. Anda juga disarankan untuk tidak pernah membiarkan pengguna mengedit konten file yang mungkin telah diuraikan oleh bahasa pemrograman yang bersangkutan. Seringkali, ini termasuk membiarkan pengguna membuat nama dan ekstensi file yang ingin dia unggah atau buat di aplikasi web.
Ini adalah beberapa hal yang tidak boleh dilakukan untuk menghindari serangan berbasis RCE. Diantaranya termasuk:
-> Tidak mensanitasi user input.
-> Membiarkan pengguna memutuskan atau membuat ekstensi atau konten file yang akan digunakan di server web.
-> Memperbolehkan melewati input yang dikontrol pengguna ke dalam callback sistem atau fungsi evaluasi
-> Tidak membuat blacklist setiap karakter khusus atau nama fungsi.
image sources from istock
content sources from wallarm and checkpoint
Comments
Post a Comment