Apa itu Serangan Penyertaan File?

Diterbitkan: 2023-03-31

Alat apa pun dapat digunakan dengan niat baik atau buruk, dan penyertaan file tidak berbeda. Penyertaan file adalah metode pemrograman yang mempermudah pemeliharaan kode dan memperluas fungsi di seluruh situs. Serangan penyertaan file menyalahgunakan cara PHP menggunakan penyertaan file sebagai metode yang valid untuk menyatukan dan mengeksekusi kode dari banyak file terpisah untuk membuat satu halaman web. Karena PHP adalah bahasa yang digunakan WordPress, WordPress dan aplikasi PHP lainnya rentan terhadap kerentanan penyertaan file ketika langkah-langkah keamanan yang tepat rusak, tidak lengkap, atau tidak ada.

Dalam panduan lengkap untuk serangan penyertaan file ini, kami akan mengeksplorasi cara-cara peretas mengeksploitasi sanitasi dan validasi input pengguna yang buruk untuk menyuntikkan malware dan mengirim instruksi buruk untuk masuk ke situs WordPress.

Anda akan belajar bagaimana serangan penyertaan file WordPress terjadi dan apa yang dapat Anda lakukan untuk melindungi situs web Anda agar tidak menjadi korbannya.

Serangan Penyertaan File

Apa itu Penyertaan File?

Penyertaan file adalah teknik pengembangan untuk memasukkan banyak file ke dalam satu skrip atau halaman web untuk menambah fungsionalitas, menggunakan kembali template desain, atau berbagi konten di beberapa halaman.

Inklusi file mutlak diperlukan. Pengembang biasanya menggunakannya untuk tujuan berikut:

  • Menyertakan file header dan footer yang umum di semua halaman situs web untuk memastikan konsistensi dalam desain dan fungsi.
  • Menyertakan skrip dan pustaka untuk fungsionalitas utama di seluruh situs web atau aplikasi web.
  • Termasuk file konfigurasi yang berisi pengaturan untuk aplikasi, seperti informasi koneksi database dan kunci API.
  • Termasuk konten seperti gambar, video, teks, atau konten lain di halaman web.
  • Termasuk fungsionalitas untuk menghasilkan konten dinamis berdasarkan input pengguna yang diteruskan sebagai parameter URL. Misalnya, pengguna mungkin mengirimkan formulir untuk menghasilkan keluaran tertentu.

Jenis Penyertaan File

Menggunakan teknik penyertaan file, pengembang dapat menambahkan file dan skrip ke halaman web baik secara statis maupun dinamis.

Menggunakan penyertaan file statis, pengembang dapat menggunakan kembali teks atau kode yang sama di banyak halaman dengan merujuk ke Uniform Resource Locator (URL) atau jalur ke file yang disimpan secara lokal, yaitu di server yang sama. Penyertaan file statis memungkinkan tema menggunakan kode menu header, footer, atau navigasi yang sama di banyak halaman web.

Penyertaan file dinamis menerima input pengguna saat runtime. Pengguna menunjukkan keluaran yang diinginkan dengan meneruskan jalur ke file tertentu. Biasanya input pengguna akan diteruskan sebagai parameter dalam URL atau pengiriman formulir. Misalnya, pengguna mungkin memilih "Bahasa Inggris" dari daftar bahasa pilihan dropdown, yang membawa mereka ke versi bahasa Inggris dari laman tempat mereka berada dengan mengubah URL seperti ini: /page.php?language=english . Jika seseorang mengganti " english " dengan URL file jarak jauh, mereka mungkin dapat menyuntikkan web shell sebagai backdoor dan/atau malware lainnya ke situs target jika tidak ada pemeriksaan untuk mencegah hal ini.

Bagaimana Inklusi File Diimplementasikan di WordPress?

Semua aplikasi web dinamis yang ditulis dalam PHP — seperti WordPress — dapat menggunakan penyertaan file dengan aman. Dalam aplikasi yang ditulis dalam PHP, pengembang melakukan penyertaan file dengan menggunakan pernyataan include dan require . Pengembang menggunakan kedua pernyataan tersebut untuk menyisipkan konten dari satu skrip PHP ke skrip lainnya. Ini terjadi sebelum kode dijalankan di server.

Jika Anda melihat beberapa file inti WordPress, banyak di antaranya merujuk ke skrip inti lainnya. Ketika semuanya dimuat bersama, mereka membangun struktur situs Anda dan menghasilkan halaman web individual yang diminta oleh pengunjung. index.php utama mereferensikan wp-blog-header.php , yang memuat lingkungan WordPress dan template tema — masing-masing wp-load.php dan template-loader.php .

File index.php WordPress menggunakan inklusi file.

Seiring dengan inti WordPress, plugin dan tema juga menggunakan penyertaan file untuk melakukan tugas yang diperlukan. Namun, dengan puluhan ribu plugin WordPress yang tersedia, tidak semuanya teruji sebaik inti WordPress.

Penyertaan file menimbulkan risiko keamanan yang serius saat pengembang tidak mengamankannya dengan benar. Jika kode yang Anda gunakan tidak memvalidasi dan membersihkan input pengguna, peretas dapat mengeksploitasinya. Mereka dapat menggunakannya untuk menginstal malware dan mencuri informasi sensitif — mungkin milik Anda atau pelanggan Anda!

Apa itu Serangan Penyertaan File?

Dua jenis serangan penyertaan file dimungkinkan: penyertaan file lokal (LFI) atau penyertaan file jarak jauh (RFI).

Serangan inklusi file adalah bagian dari kelas serangan injeksi yang lebih luas. Ini termasuk injeksi SQL (SQLi), skrip lintas situs (XSS), dan serangan inklusi perintah. Peretas dapat mengeksploitasi kerentanan input untuk membuat jenis serangan lain, seperti serangan buffer overflow.

Serangan Penyertaan File Lokal dan Jarak Jauh

Situs web dan aplikasi web yang mengandalkan penyertaan file dinamis untuk mengaktifkan fitur tertentu dapat terkena serangan penyertaan file jarak jauh dan serangan penyertaan file lokal.

Penyertaan File Lokal (LFI)

Serangan penyertaan file lokal dapat menyuntikkan file yang terletak di server yang sama dengan situs web atau aplikasi web yang ditargetkan. Serangan LFI seringkali dapat memperoleh akses ke file yang biasanya dibatasi. Dalam serangan LFI, file yang disertakan harus sudah ada di server aplikasi lokal yang menjadi sasaran. Dalam serangan LFI, aktor jahat dapat membaca file penting, mengakses informasi yang lebih sensitif, atau menjalankan perintah sewenang-wenang.

Serangan penyertaan file lokal juga dapat memungkinkan seseorang mengakses data sensitif di luar situs web yang ditargetkan. Ini termasuk file konfigurasi server seperti /etc/passwd atau file konfigurasi situs web lain seperti wp-config.php . Penting untuk dicatat, bagaimanapun, bahwa file yang ditargetkan harus dapat dibaca oleh pengguna yang tidak memiliki hak - misalnya, file /etc/passwd pada sistem Linux dimiliki oleh root, tetapi dengan hak akses file diatur ke 644, semua pengguna sistem lainnya dapat melihatnya.

Untuk menavigasi melalui sistem file, penyerang menggunakan traversal direktori, sebuah teknik untuk mengakses file di luar direktori kerja saat ini dengan memanipulasi urutan traversal jalur direktori seperti ../../../ .

Penyertaan File Jarak Jauh (RFI)

Serangan penyertaan file jarak jauh menargetkan situs web dan aplikasi yang memanggil file yang dihosting di server lain. Dengan mengeksploitasi penyertaan file jarak jauh, penyerang dapat memanfaatkan kode berbahaya yang dihosting di tempat lain. Kerentanan harus ada di server yang ditargetkan, tetapi penyerang akan menggunakannya untuk mengeksekusi kode berbahaya yang dihosting di tempat lain.

Dalam serangan Remote File Inclusion, peretas memanfaatkan perintah "termasuk file dinamis" dalam aplikasi web. Peretas dapat mengeksploitasi aplikasi web yang menerima input pengguna, seperti URL dan nilai parameter, dan meneruskannya ke mekanisme "termasuk file" tanpa sanitasi yang tepat. Dalam jenis kerentanan ini, penyerang dapat mengeksploitasi aplikasi web untuk menyertakan file jarak jauh dengan skrip berbahaya.

Mengapa Serangan Penyertaan File WordPress Terjadi?

Situs WordPress membentuk 43% dari internet, jadi mereka adalah target besar bagi penyerang. Laporan Tahunan Kerentanan WordPress 2022 kami menunjukkan bahwa lebih dari 90% dari semua kerentanan WordPress yang ditemukan tahun lalu ada di plugin dan tema. Biasanya, kami melihat setidaknya satu kelemahan keamanan baru yang dilaporkan setiap minggu dalam 20 hingga 50 plugin.

Baru-baru ini, peneliti keamanan menemukan kerentanan inklusi file dalam tema OceanWP yang populer. OceanWP memiliki lebih dari setengah juta pengguna aktif. (Kami melaporkan ini dalam laporan kerentanan WordPress mingguan kami.) Meskipun OceanWP dengan cepat menambal kerentanan, peretas memiliki waktu untuk mengeksploitasinya sementara jutaan situs WordPress masih menggunakan kode lama.

Dapatkan Laporan Kerentanan WordPress mingguan dikirimkan ke kotak masuk Anda setiap hari Rabu.
Berlangganan sekarang

Cara Mendeteksi Serangan Penyertaan File WordPress

Tidak seperti serangan denial-of-service yang secara signifikan dapat memperlambat situs web Anda atau pengalihan jahat yang membuat orang menjauh dari situs web Anda ke sumber daya penipuan, serangan penyertaan file sulit dideteksi. Alasannya sederhana. Peretas menggunakan penyertaan file sebagai titik masuk untuk mengunggah malware dan melakukan serangan lebih lanjut. Penyertaan file adalah jalan yang tenang menuju kerusakan yang lebih terlihat. Jadi, ketika seorang peretas menyuntikkan kode berbahaya ke situs web atau mengakses informasi sensitif, kemungkinan besar Anda tidak akan menyadarinya.

Ini membawa kita pada kesimpulan penting. Keamanan situs web harus dimulai dengan membuat permukaan serangan menjadi kecil dan memperkuatnya. Ini akan membantu mencegah peretas mengeksploitasi kerentanan input yang berasal dari serangan injeksi, seperti serangan penyertaan file, injeksi SQL dan perintah, dan skrip lintas situs (XSS).

Bagaimana Cara Bertahan Terhadap Serangan Penyertaan File WordPress?

Dengan meningkatnya jumlah serangan dunia maya yang menargetkan WordPress, keamanan situs web WordPress menjadi lebih penting dari sebelumnya. Bertahan dari serangan penyertaan file WordPress memerlukan pendekatan multifaset yang membatasi kemungkinan mengeksploitasi kerentanan input dan eksekusi kode arbitrer. Anda dapat melakukan ini jika Anda mengadopsi kombinasi langkah-langkah keamanan proaktif dan reaktif.

Berikut adalah tiga rekomendasi keamanan WordPress teratas untuk melindungi situs web Anda dari serangan penyertaan file.

Selalu Perbarui Semua Perangkat Lunak

Memperbarui semua perangkat lunak Anda — termasuk inti, tema, plugin, dan ekstensi WordPress — sangat penting untuk mengurangi permukaan serangan situs Anda. Karena kerentanan baru muncul setiap hari, jangan berikan kesempatan kepada peretas untuk mengeksploitasinya. Instal tambalan keamanan dan lakukan pembaruan segera setelah tersedia.

Biasakan membuat pembaruan rutin sendiri atau aktifkan pembaruan otomatis untuk memastikan situs web Anda tidak pernah menjalankan kode yang rentan. iThemes Security Pro dapat menangani pembaruan inti, plugin, dan tema WordPress untuk Anda.

iThemes Security Pro secara otomatis memindai versi baru perangkat lunak yang digunakan situs web Anda. Sistem Manajemen Versinya memastikan bahwa Anda telah menginstal semua tambalan dan pembaruan keamanan segera setelah tersedia. Selain itu, iThemes juga akan mengingatkan Anda jika Anda menjalankan perangkat lunak usang di infrastruktur server Anda. Misalnya, jika Anda menggunakan versi PHP yang melewati tanggal akhir masa pakainya atau server MySQL yang rentan, iThemes Pro akan memperingatkan Anda.

Jika Anda memiliki beberapa situs WordPress di bawah kendali Anda, iThemes Sync Pro memberi Anda satu antarmuka untuk mengelola semuanya. Sync juga menawarkan pemantauan uptime lanjutan dan umpan balik SEO.

Nonaktifkan Penyertaan File Jarak Jauh di PHP

Situs web dapat merujuk file jarak jauh dari URL eksternal jika opsi allow_url_fopen diaktifkan di lingkungan PHP. Ini dapat meningkatkan risiko serangan penyertaan file jarak jauh. Menonaktifkan allow_url_fopen secara efektif menghilangkan kemungkinan seseorang menjalankan kode berbahaya yang dimuat dari lokasi jarak jauh di situs web WordPress Anda.

Anda dapat menonaktifkan allow_url_fopen di konfigurasi global PHP atau dengan menyetel allow_url_fopen ke 0 di file .user.ini atau php.ini lokal yang dibuat untuk folder web individual. Anda dapat memeriksa apakah opsi dinonaktifkan di lingkungan PHP Anda dengan membuat halaman informasi PHP sederhana menggunakan fungsi phpinfo() , seperti yang ditunjukkan di bawah ini.

Anda dapat memblokir serangan penyertaan file dengan menonaktifkan allow_furl_open di pengaturan lingkungan PHP Anda.

Terapkan Header Keamanan WordPress

Header respons HTTP seperti Kebijakan Keamanan Konten (CSP) dan Set-Cookie dapat menambahkan lapisan pertahanan terhadap penyertaan file dan serangan injeksi lainnya ke situs web WordPress Anda.

Header keamanan WordPress memungkinkan untuk mengurangi atau memblokir vektor di mana penyertaan file jarak jauh dan serangan skrip lintas situs (XSS) dapat terjadi dengan membuat daftar sumber tepercaya, skrip, dan konten lain yang dapat dimuat. Semua sumber lain akan ditolak. Selain itu, tajuk respons HTTP dapat membantu Anda menambahkan perlindungan terhadap pemalsuan permintaan lintas situs (CSRF) dan pembajakan klik.

Lindungi Situs WordPress Anda dari Serangan Injeksi dengan iThemes Security Pro

Bersamaan dengan SQL dan injeksi perintah, serangan penyertaan file menjadi vektor serangan paling umum yang menargetkan keamanan situs WordPress. Meskipun WordPress membuktikan tingkat keamanan aplikasi yang tinggi, situs yang sangat disesuaikan dikombinasikan dengan praktik keamanan yang buruk dapat membuat situs web WordPress terkena serangan injeksi yang mengeksploitasi kerentanan input.

Setiap hari, kerentanan baru ditemukan dalam populasi plugin dan tema WordPress yang terus bertambah. Dan meskipun biasanya ditambal dengan cepat, kurangnya pembaruan tepat waktu dan ketergantungan pada perangkat lunak lama dapat membuat situs web WordPress Anda menjadi sasaran empuk bagi peretas. Saat ini, keamanan situs web lebih penting daripada sebelumnya. Meningkatnya jumlah serangan siber berarti bahwa pemilik situs web yang paling waspada sekalipun dapat menjadi korban peretas jika mereka tidak mengambil tindakan proaktif untuk melindungi situs mereka.

iThemes Security Pro adalah solusi keamanan WordPress yang kuat yang memungkinkan Anda mengadopsi praktik keamanan WordPress terbaik untuk melindungi situs web Anda dari serangan dunia maya yang paling canggih. Dengan pemantauan integritas file tingkat lanjut, pemindaian kerentanan, dan mitigasi serangan otomatis, iThemes Security Pro membuat pilihan yang sangat baik jika Anda mencari cara yang efektif dan andal untuk melindungi situs WordPress Anda.