Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Server web menyimpan file (halaman web, gambar, video, formulir, dll.) yang menyusun aplikasi web Anda dan menyajikan file ini saat seseorang mengunjungi situs web Anda. Beberapa server lebih canggih dan juga mengontrol berapa banyak akses yang dimiliki pengunjung web. Mereka mungkin membatasi pengunjung biasa untuk mengakses akun pengguna lain atau dasbor administratif. Meskipun server web efisien dalam apa yang mereka lakukan—dan mereka melakukannya dengan agak aman—penyerang dapat mengeksploitasi kesalahan yang muncul dari kesalahan manusia atau kesalahan logika dalam cara server menyajikan file yang dihostingnya.

Apa Itu Serangan LFI?

Serangan Local File Intrusion (LFI) terjadi saat penyerang mengeksploitasi kerentanan dalam cara server web menyimpan, melayani, memvalidasi, atau mengontrol akses ke file-nya. Kerentanan ini biasa terjadi pada situs web berbasis PHP.

instagram viewer

Tidak seperti banyak bentuk serangan dunia maya di mana penyerang mengandalkan malware untuk merusak aplikasi, penyerang di LFI sebagian besar mengandalkan trik pintar dan baris kode pendek. Ini jarang membutuhkan alat canggih atau skrip yang rumit; serangan biasanya terjadi di browser web. Trik yang paling umum digunakan penyerang adalah memodifikasi string URL dengan kode, jalur file, atau nama file.

Bagaimana Serangan LFI Terjadi?

Serangan LFI biasanya terjadi dalam empat tahap.

Pertama, penyerang mengidentifikasi situs web PHP yang menjalankan aplikasi web yang rentan, biasanya dengan menjalankan kode dasar di URL browser untuk melihat apakah aplikasi web (yaitu situs) menangani perintah tersebut. Anggap saja seperti menekan kombinasi tombol pada pengontrol game Anda untuk membuka kunci telur Paskah — katakanlah, misalnya, menekan tombol bawah untuk memasuki terowongan di Super Mario. Tetapi perintah yang dijalankan penyerang dalam serangan LFI lebih konsisten daripada memeriksa setiap terowongan di Super Mario.

Aplikasi web atau server yang telah dikonfigurasi dengan tidak benar atau gagal memvalidasi input akan menjalankan kode berbahaya. Dari sini, peretas dapat memperoleh akses dan hak istimewa yang mereka perlukan untuk membaca file yang rentan atau mengunggah file berbahaya ke server.

Sebagian besar serangan LFI mengakibatkan penyerang mengakses informasi sensitif. Kemungkinan mengunggah malware jarang berhasil karena tidak ada jaminan bahwa aplikasi web akan menyimpan file di server yang sama di mana terdapat kerentanan LFI. Ini sering terjadi jika aplikasi web berada di lingkungan multi-server.

Jadi, jika kerentanan LFI ada di server yang menghosting gambar tetapi tidak di server yang menyimpan karyawan kredensial atau kata sandi pengguna, penyerang hanya akan memiliki akses ke file gambar di server yang rentan itu. Terlepas dari itu, acara dunia maya seperti serangan terhadap LastPass menunjukkan bahwa peretas dapat mendatangkan malapetaka dengan tingkat akses yang tampaknya paling tidak signifikan.

Cara Mencegah Serangan LFI

Serangan LFI cukup umum, menurut Buka Proyek Keamanan Aplikasi Web (OWASP). Maklum, hacker akan menyukai serangan ini karena, sebagai W3Techs laporan, hampir delapan dari 10 situs web menjalankan PHP sebagai bahasa pemrograman sisi server — begitu banyak korban, bisa dikatakan. Dimungkinkan untuk mencegah serangan LFI dengan mengadopsi praktik terbaik keamanan web.

File Server Publik Daftar Putih

Aplikasi web sering menggunakan jalur file sebagai input URL. Peretas dapat mengeksploitasi sistem pengarsipan ini dengan mengubah bagian URL yang berfungsi ganda sebagai jalur file. Misalnya, penyerang bisa berubah https://dummywebsite.com/?module=contact.php ke https://dummywebsite.com/?module=/etc/passwd. Server yang rentan dengan pemfilteran yang buruk dan logika yang cacat akan menampilkan konten file yang disimpan di jalur /etc/passwd.

Tentu saja, peretas menggunakan variasi nama file umum dan kombinasi karakter kueri untuk meningkatkan kemungkinan serangan yang berhasil. Tujuannya adalah untuk mengelabui aplikasi web agar menjalankan skrip atau menampilkan file di server web.

Anda dapat memblokir kerentanan ini dengan membuat daftar putih dokumen publik di server Anda dan menginstruksikan aplikasi web untuk mengabaikan kueri untuk setiap dokumen atau jalur file lainnya. Jadi, jika penyerang mencoba memanipulasi URL untuk meminta atau menjalankan kode yang meminta pribadi, mereka malah akan mendapatkan halaman kesalahan.

Tes untuk Kerentanan Sering

Anda dapat gunakan alat pemindaian web untuk menemukan dan memperbaiki kerentanan yang dapat membuat Anda terkena serangan LFI. Pemindai aplikasi web adalah alat otomatis yang merayapi aplikasi Anda seperti penyerang dan mengingatkan Anda akan potensi kerentanan. Ada beberapa pemindai web sumber terbuka seperti OpenVAS dan Wireshark, tetapi sebagian besar pemindai kerentanan adalah perangkat lunak berpemilik dan memerlukan paket berbayar untuk digunakan.

Tapi, tentu saja, Anda tidak mendapatkan pemindai web hanya untuk serangan LFI. Alat ini juga mencari kerentanan keamanan yang lebih luas seperti penyertaan file jarak jauh, skrip lintas situs, injeksi SQL, dan konfigurasi server yang buruk. Jadi, mereka sangat berharga.

Batasi Keistimewaan Pengunjung Situs

Peretas sering berhasil mengeksekusi serangan LFI karena aplikasi web gagal untuk mengkotak-kotakkan hak pengguna, dan dengan demikian memungkinkan pengunjung untuk mengakses file yang seharusnya hanya dapat dilihat oleh admin. Tindakan ini berfungsi seperti daftar putih: konfigurasikan aplikasi web dan server Anda sehingga mereka melayani file publik dan mengabaikan permintaan tidak sah saat pengunjung berinteraksi dengan aplikasi web. Ini sangat penting untuk kueri ke jalur file yang berisi file sensitif.

Untuk tujuan ini, Anda mungkin perlu mencegah jalur file diubah secara langsung. Aplikasi web seharusnya hanya melayani dokumen dari daftar jalur hardcoded. Selanjutnya, konfigurasikan aplikasi web untuk memproses permintaan dengan penggabungan jalur dinamis (URL harus berisi karakter alfanumerik), bukan fungsi base64 atau bin2hex.

Jika Anda berpikir tentang nama file daftar hitam, jangan. Peretas biasanya memiliki daftar nama file yang dapat mereka gunakan untuk mengeksekusi serangan LFI. Selain itu, secara praktis tidak mungkin (dan membuang-buang waktu) ke daftar hitam daftar sumber yang terus meningkat serangan.

Gunakan Lingkungan Multi-Server

Lingkungan multi-server memungkinkan Anda mengisolasi dokumen penting dan sensitif dari file publik, sehingga mengurangi risiko jika terjadi pelanggaran. Dedicated server kurang rentan terhadap serangan LFI karena, meskipun bekerja sama, konfigurasinya berbeda.

Selain keamanan ini, beberapa server juga dapat diandalkan (dengan risiko downtime yang lebih rendah), cepat, dan efisien. Memang, menggunakan lingkungan multi-server tidak hemat biaya jika situs web Anda kecil. Jika demikian, pertimbangkan untuk membagi akses aplikasi web Anda ke data antara database untuk data pribadi dan server untuk file publik.

Haruskah Anda Khawatir Tentang Serangan LFI?

Ada kemungkinan serangan LFI, terutama jika situs Anda menggunakan PHP, tetapi Anda dapat mengurangi keterpaparan Anda dengan mengonfigurasi aplikasi web dan server sesuai dengan praktik terbaik keamanan web.

Selain itu, Anda harus mempertimbangkan untuk melakukan pemeriksaan keamanan rutin untuk menemukan kerentanan. Hal-hal selalu rusak, terutama karena arsitektur situs menjadi kompleks. Alat yang Anda perlukan untuk melindungi diri sendiri bersifat otomatis, dan banyak yang tidak memerlukan penyiapan yang rumit atau pengetahuan teknis tingkat lanjut.