Remote Code Execution (RCE) adalah kerentanan yang memungkinkan penyerang menjalankan kode di sistem milik orang lain dari jarak jauh, biasanya lewat jaringan, tanpa akses fisik. Karena kode itu berjalan dengan hak akses aplikasi yang rentan, RCE sering menjadi titik awal pengambilalihan server, pencurian data, hingga penyebaran ransomware. Artikel ini menjelaskan cara kerja RCE secara konseptual, penyebab yang paling sering muncul, dan cara mencegahnya.
Apa Itu Remote Code Execution (RCE)?
Inti RCE adalah membuat program menjalankan sesuatu yang tidak dimaksudkan pembuatnya. Aplikasi seharusnya hanya menjalankan kodenya sendiri, dan memperlakukan input dari luar sebagai data. Ketika batas itu bocor, input yang dikendalikan penyerang berubah menjadi perintah atau kode yang dieksekusi. Hasilnya bisa menjadi kendali penuh atas proses aplikasi, dan dari sana atas server dan jaringan di sekitarnya.
Karena dampaknya, kerentanan RCE hampir selalu diberi skor keparahan tinggi dan menjadi prioritas utama tambalan. Skor tersebut biasanya dibaca lewat CVSS, yang dijelaskan di panduan membaca skor CVSS, dan kerentanannya tercatat dengan nomor CVE seperti dibahas di artikel tentang CVE.
Penyebab Umum RCE
RCE bukan satu teknik tunggal. Ia adalah hasil akhir dari berbagai cacat pemrograman dan konfigurasi:
- Command injection: aplikasi menyusun perintah sistem operasi dari input pengguna. OWASP menyarankan menghindari pemanggilan perintah OS secara langsung dan memakai fungsi pustaka bawaan bahasa pemrograman.
- Code injection: input pengguna masuk ke fungsi yang menafsirkan kode, seperti eval() pada PHP, atau ke mekanisme yang memuat berkas dari luar. OWASP menyebut kategori ini hanya dibatasi oleh kemampuan bahasa yang disuntikkan.
- Insecure deserialization: aplikasi membangun kembali objek dari data tidak tepercaya memakai format serialisasi bawaan bahasa. Cheat sheet OWASP tentang deserialisasi menyebut RCE sebagai salah satu akibatnya, dan memberi contoh bahwa memuat data pickle yang tidak tepercaya di Python dapat mengeksekusi kode sembarang.
- Kerentanan pustaka dan komponen pihak ketiga: cacat di pustaka yang dipakai banyak aplikasi menjadikan RCE masalah rantai pasok sekaligus. Ini sejalan dengan naiknya kategori Software Supply Chain Failures di OWASP Top 10 2025.
- Kesalahan konfigurasi: layanan administrasi yang terbuka ke internet, kredensial bawaan, atau fitur unggah berkas yang tidak dibatasi. Lihat pembahasan security misconfiguration.
Kerentanan injection lain, seperti SQL injection, dalam kondisi tertentu juga dapat meningkat menjadi eksekusi kode, bergantung pada fitur basis data dan hak akses akun yang dipakai.
Contoh Nyata: Log4Shell
Kasus yang paling sering dijadikan pelajaran adalah Log4Shell, kerentanan CVE-2021-44228 pada pustaka logging Apache Log4j. Menurut panduan CISA, cacat ini berada pada cara fitur JNDI pustaka tersebut menyelesaikan variabel, dan memungkinkan penyerang tanpa autentikasi mengambil alih sistem yang terdampak dengan permintaan yang dirancang khusus. CISA menyebutnya kritis dan mencatatnya dalam Known Exploited Vulnerabilities Catalog. Versi yang terdampak adalah Log4j 2.0-beta9 sampai 2.14.1.
Pelajarannya bagi organisasi bukan sekadar menambal satu versi. Banyak tim awalnya tidak tahu apakah mereka memakai Log4j, karena pustaka itu tertanam di dalam produk lain. CISA menganjurkan memprioritaskan sistem yang menghadap internet, mengidentifikasi instans rentan, memeriksa tanda kompromi pada log, dan menyusun manajemen kerentanan jangka panjang termasuk untuk perangkat lunak buatan sendiri dan layanan cloud.
Cara Mencegah RCE
- Jangan memperlakukan input sebagai kode. Hindari eval() dan sejenisnya. Bila perlu memanggil perintah OS, pakai API pustaka atau mekanisme yang memisahkan perintah dari argumen, dan validasi dengan allow-list.
- Hindari deserialisasi data tidak tepercaya. Pilih format data murni seperti JSON, tandatangani pesan, dan batasi tipe objek yang boleh dibuat.
- Kelola pembaruan dan inventaris perangkat lunak. Catat pustaka dan versi yang dipakai di setiap aplikasi, pantau pengumuman keamanan, dan tambal komponen yang menghadap internet lebih dulu.
- Terapkan hak akses minimum. Jalankan aplikasi dengan akun yang hanya memiliki izin seperlunya, di wadah atau lingkungan terisolasi, sehingga eksekusi kode tidak otomatis berarti kendali penuh.
- Batasi unggahan berkas dan paparan layanan. Periksa tipe dan lokasi simpan berkas unggahan, dan jangan membuka panel administrasi atau layanan internal ke internet tanpa kontrol akses.
- Segmentasikan jaringan dan filter lalu lintas keluar. Ini mempersulit penyerang menghubungi server luar atau berpindah ke sistem lain setelah berhasil menjalankan kode.
- Pasang pemantauan. WAF, EDR, dan log yang dikumpulkan secara terpusat membantu menangkap proses atau koneksi keluar yang tidak lazim.
Bila organisasi sudah terlanjur menjadi korban, ikuti prosedur incident response: isolasi sistem, kumpulkan bukti, bersihkan, lalu tutup celah awalnya. Pengujian apakah sebuah sistem rentan RCE hanya boleh dilakukan atas izin tertulis pemilik sistem. Akses tanpa hak ke sistem elektronik orang lain melanggar Pasal 332 KUHP.
Pertanyaan yang Sering Diajukan
Apakah RCE sama dengan command injection?
Tidak persis. Command injection adalah salah satu penyebab RCE. RCE adalah akibatnya, yaitu kemampuan menjalankan kode dari jauh, yang juga bisa muncul dari deserialisasi tidak aman, cacat pustaka, atau kelemahan lain.
Apa dampak terburuk dari RCE?
Penyerang dapat mengambil alih server, mencuri atau merusak data, memasang malware, dan bergerak ke sistem lain di jaringan yang sama. Karena itu RCE sering dijadikan pintu masuk ransomware.
Apakah menambal rutin cukup untuk mencegah RCE?
Menambal sangat penting, tetapi tidak cukup sendirian. Kerentanan zero-day belum punya tambalan saat diketahui, sehingga pertahanan berlapis seperti hak akses minimum, segmentasi, dan pemantauan tetap dibutuhkan. Konsep ini dibahas di kerentanan zero-day.
Bagaimana cara belajar mengenali RCE secara legal?
Pelajari konsep dan pola kodenya, lalu berlatih di lab pribadi atau platform latihan yang sah. Jangan mencoba pada sistem pihak lain tanpa izin.
Kesimpulan
RCE berbahaya karena mengubah satu cacat kecil menjadi kendali penuh atas sistem. Pencegahannya bertumpu pada disiplin dasar: input diperlakukan sebagai data, komponen selalu diperbarui, hak akses diminimalkan, dan pemantauan berjalan. Jika organisasi Anda ingin menilai paparan RCE pada aplikasi dan infrastrukturnya, tim Linuxhackingid menyediakan layanan pengujian dan keamanan untuk organisasi yang dilakukan dengan izin tertulis dan laporan yang dapat ditindaklanjuti.
Every article is reviewed by the practice lead who ran the work before it is published.
