Semua diskusi
Donny Sanjaya, M.Kom
Dosen TRPL Di Politeknik Negeri Medan · Medan· bertanya 3 jam
CyberSecurity
CyberSecurity

Menurut sudut pandang masing-masing, bagaimana cara mengantisipasi ancaman PHP2Shell pada sistem berbasis PHP?

Sebagai mahasiswa Politeknik Negeri Medan jurusan Teknologi Rekayasa Perangkat Lunak (TRPL), saya tertarik membahas keamanan aplikasi web, terutama setelah munculnya isu kerentanan PHP2Shell yang berkaitan dengan potensi eksekusi kode pada sistem berbasis PHP. Isu seperti ini mengingatkan kita bahwa aplikasi yang berjalan normal belum tentu bebas dari celah keamanan. Jika kerentanan tidak segera ditangani, server dan data yang dikelola aplikasi bisa menghadapi risiko.

Menurut saya, pencegahan serangan siber bukan hanya tanggung jawab administrator server, tetapi juga pengembang aplikasi dan pihak yang mengelolanya. Contohnya, pengembang perlu memantau informasi keamanan resmi, memperbarui PHP ke versi yang telah mendapatkan perbaikan, menguji aplikasi setelah pembaruan, serta membatasi hak akses server. Namun, setiap orang mungkin memiliki pendekatan berbeda berdasarkan pengalaman, kemampuan teknis, dan sistem yang pernah dikelola.

Pemantik: Dari sudut pandang dan pengalaman masing-masing, langkah apa yang akan kalian prioritaskan untuk mengantisipasi ancaman seperti PHP2Shell, dan apa contoh penerapannya?

  • Jika kalian menjadi pengembang aplikasi PHP, apa tindakan pertama yang akan dilakukan setelah mengetahui adanya kerentanan kritis?
  • Menurut kalian, mana yang perlu diprioritaskan: memperbarui versi PHP, melakukan pengujian keamanan, atau memperketat konfigurasi server? Apa alasannya?
  • Jika pembaruan berisiko mengganggu aplikasi yang sedang berjalan, bagaimana kalian akan mengatasinya?
  • Apakah kalian pernah menerapkan langkah pengamanan pada proyek kuliah atau aplikasi yang dikelola? Ceritakan contoh dan pelajaran yang didapat.
Jawab
6 jawaban 68 dilihat
Punya jawaban atau pengalaman serupa? Bagikan ke penanya. Masuk untuk menjawab

6 Jawaban

Diurutkan dari dukungan terbanyak
KHAIRULY ELISA
Pemula · Medan · 3 jam

Menurut saya, beberapa cara untuk mencegah dan menangani ancaman PHP2Shell pada sistem berbasis PHP adalah:

1) Memeriksa kondisi sistem terlebih dahulu

Langkah awal yang saya lakukan adalah memeriksa versi PHP yang digunakan dan mencari tahu apakah sistem terkena dampak PHP2Shell. Kerentanan ini perlu diwaspadai karena bisa dimanfaatkan oleh penyerang untuk menjalankan kode pada server dari jarak jauh tanpa perlu login.

2) Menentukan langkah penanganan utama

Saya akan mengutamakan pembaruan PHP ke versi yang sudah memperbaiki kerentanan tersebut. Setelah pembaruan dilakukan, aplikasi perlu diuji kembali agar dapat dipastikan tetap berjalan normal dan masalah keamanannya sudah ditangani.

3) Mengatasi risiko saat melakukan pembaruan

Jika pembaruan dikhawatirkan menyebabkan error pada aplikasi, saya akan mencobanya terlebih dahulu di lingkungan pengujian sebelum diterapkan ke server utama. Selama proses tersebut, akses ke server juga perlu dibatasi untuk mengurangi kemungkinan terjadinya serangan.

4) Menerapkan keamanan pada proyek kuliah

Dalam proyek kuliah, saya bisa menerapkan beberapa langkah, seperti memeriksa input yang dimasukkan pengguna, mengatur hak akses sesuai kebutuhan, menghindari tampilan pesan error yang berisi informasi penting, dan rutin memperbarui PHP maupun library yang digunakan.

Kesimpulan: Menurut saya, menjaga keamanan aplikasi tidak cukup hanya dengan memperbaiki masalah ketika serangan terjadi. Kita juga perlu melakukan pembaruan dan pengujian secara rutin serta menerapkan pengamanan sejak awal pembuatan aplikasi.

RASYID KURNIAWAN
Pemula · Medan · 3 jam
  • Jika kalian menjadi pengembang aplikasi PHP, apa tindakan pertama yang akan dilakukan setelah mengetahui adanya kerentanan kritis?

lihat dahulu bagian mana yang terdampak.

  • Menurut kalian, mana yang perlu diprioritaskan: memperbarui versi PHP, melakukan pengujian keamanan, atau memperketat konfigurasi server? Apa alasannya?

perbarui versi. Biasanya regresi php terhadap kode sangat minimum jika diupgrade, kecuali downgrade.

  • Jika pembaruan berisiko mengganggu aplikasi yang sedang berjalan, bagaimana kalian akan mengatasinya?

sayangnya saya belum pernah menangani ini dikasus jika penggunanya aktif dan banyak. Biasa saya memilih tetap upgrade. Tapi kalau ternyata ini aplikasi besar seperti soal pertama saya cek dahulu fitur mana yang terdampak, perlu g mematikan sistem secara total atau sebagian, atau menyiapkan domain alternatif terlebih dahulu dengan fitur sangat minimum.

  • Apakah kalian pernah menerapkan langkah pengamanan pada proyek kuliah atau aplikasi yang dikelola? Ceritakan contoh dan pelajaran yang didapat.

Saya g tau, aman aman aja tuh selama ini. Langkah pengaman mungkin dengan layar login, lalu dibaliknya keynya itu g disimpan begitu aja tapi dienkripsi, lalu kunci enkripsinya diletakkan disalah satu bagian yang seharusnya tidak disangka sangka.

A
Azura Tyan Naura B. Barus
Pemula · Medan · 2 jam

Untuk mencegah dan menangani ancaman PHP2SHell pada sistem berbasis PHP, menurut pandangan saya adalah :

  • Mengisolasi dan Memeriksa Tingkat Kerentanan

Langkah pertama saat mendengar adanya kerentanan kritis adalah melakukan audit sistem. Saya akan

mengecek apakah versi PHP yang dipakai terdampak, membatasi akses publik sementara ke bagian

yang mencurigakan, serta memeriksa log aktivitas untuk memastikan belum ada akses mencurigakan

yang masuk.

  • Memprioritaskan Pembaruan Resmi dan Pembatasan Hak Akses

Prioritas utama saya adalah menerapkan pembaruan resmi dari pengembang PHP karena solusi

tersebut langsung menutup akar masalahnya. Bersamaan dengan itu, hak akses di server harus

diperketat, misalnya dengan memastikan akun web server hanya memiliki izin minimal agar jika celah

ditembus, penyerang tidak bisa mengendalikan seluruh sistem.

  • Menguji Pembaruan di Lingkungan Simulasi

Untuk menghindari risiko aplikasi crash atau fitur terganggu, proses update tidak boleh langsung

diterapkan pada server utama. Pembaruan harus diuji terlebih dahulu di server replika atau lingkungan

pengujian. Jika timbul kendala, kita bisa menyiapkan firewall aplikasi web sebagai tameng sementara

selagi sistem disesuaikan.

  • Penerapan Keamanan dan Pelajaran dari Proyek Kuliah

Pada proyek perkuliahan, tindakan pencegahan dilakukan dengan membatasi format file yang boleh

atau diunggah ke sistem dan memisahkan data kredensial penting agar tidak terbuka sembarangan.

Pelajaran utamanya adalah keamanan bukan sekadar tugas di akhir proyek, melainkan kebiasaan yang

harus dijaga secara berkelanjutan.

M. RIZKY ANDIKA
Pemula · Medan · 2 jam

Menurut saya, hal pertama yang perlu dilakukan bukan cuma langsung memperbarui PHP, tetapi memastikan dulu sistem mana saja yang masih menggunakan versi rentan. Soalnya, kadang kita terlalu fokus mengamankan kode aplikasi yang kita buat sendiri, padahal celahnya justru ada di teknologi yang menjadi fondasi aplikasi tersebut. PHP2Shell ini contohnya, jadi memperbaiki validasi input atau memperketat login saja belum tentu menyelesaikan masalah.

Kalau harus memilih prioritas, saya akan mendahulukan pembaruan PHP ke versi yang sudah diperbaiki, terutama pada server yang bisa diakses dari internet. Namun, bukan berarti asal update tanpa persiapan. Saya akan melakukan backup, menguji aplikasi di lingkungan terpisah, lalu menerapkan pembaruan setelah fitur utamanya dipastikan tetap berjalan. Kalau pembaruan belum memungkinkan, akses ke server perlu dibatasi sementara sambil mencari solusi yang aman.

Ada satu hal yang menurut saya juga sering terlewat, yaitu menganggap masalah selesai setelah versi PHP diperbarui. Padahal, kalau server sempat dieksploitasi sebelum diperbaiki, penyerang mungkin sudah meninggalkan akses tersembunyi atau mengambil data. Jadi, setelah update saya tetap akan memeriksa log aktivitas, file yang mencurigakan, dan proses yang berjalan di server. Menurut saya, mencegah serangan itu penting, tetapi memastikan tidak ada dampak yang tertinggal juga sama pentingnya.

Untuk penerapan di proyek kuliah, saya akan mulai dari kebiasaan sederhana, seperti menggunakan versi PHP yang masih mendapat dukungan keamanan, membatasi hak akses database, dan menguji setiap pembaruan sebelum aplikasi dirilis. Saya melihat keamanan bukan cuma soal membuat sistem sulit ditembus, tetapi juga membatasi seberapa besar kerusakan yang bisa terjadi kalau suatu saat pertahanan kita gagal. Karena pada akhirnya, tidak ada sistem yang bisa dijamin aman sepenuhnya, tetapi dampak serangannya masih bisa kita kendalikan.

Samalona Simanjuntak
Pemula · Medan · 2 jam

1. Tindakan pertama setelah tahu ada kerentanan kritis

Yang pertama saya lakukan adalah memeriksa apakah sistem saya terdampak, bukan langsung panik mengubah konfigurasi. Caranya dengan menjalankan "php-v" dan mengecek paket di server. Hal ini penting karena menjalankan "aptupgrade"tidak otomatis memperbaiki kerentanannya, dan distribusi Linux kadang memasang perbaikan (backport) tanpa mengubah nomor versi PHP menjadi versi rilis resmi yang sudah ditambal. Jadi, selain melihat nomor versi, saya juga mengecek advisory dari distribusi atau hosting yang dipakai. Jika server dikelola pihak lain, misalnya shared hosting, langkah yang disarankan adalah meminta penyedia hosting segera memasang pembaruan.

2. Prioritas: update PHP, pengujian keamanan, atau konfigurasi server?

Untuk kasus PHP2Shell, saya memprioritaskan update PHP. Alasannya, PHP menyatakan bahwa patch adalah satu-satunya perbaikan yang lengkap dan tidak ada perubahan konfigurasi yang sepenuhnya menutup celah ini; setiap mitigasi sementara hanya mengurangi satu jalur serangan. Selain itu, pengujian keamanan pada kode aplikasi tidak akan menemukan masalah ini karena sumbernya bukan kode kita. Seperti kata seorang peneliti, masalah ini tidak selesai hanya dengan memperbarui WordPress atau plugin karena kerentanannya ada di PHP.

Meski begitu, ketiganya tetap saling melengkapi. Setelah update, pengujian memastikan aplikasi masih berjalan normal. Konfigurasi server yang ketat, misalnya hak akses minimum dan user PHP yang tidak punya akses root, membatasi kerusakan jika suatu saat ada celah lain yang berhasil ditembus.

Satu hal yang sering terlewat: server baru memakai versi yang sudah ditambal setelah process manager PHP di-restart. Jadi update tanpa me-restart PHP-FPM atau Apache sama saja belum ditambal.

3. Jika update berisiko mengganggu aplikasi yang sedang berjalan

Pendekatan saya:

  • Uji dulu di staging. Buat salinan lingkungan produksi dengan versi PHP yang baru, lalu jalankan pengujian fungsional pada fitur utama. Karena update ini masih dalam satu branch (misalnya 8.3.35 ke 8.3.36), risiko kodenya rusak biasanya kecil.
  • Siapkan rollback. Ambil backup database dan snapshot server sebelum update supaya bisa kembali dengan cepat jika ada masalah.
  • Pasang mitigasi sementara selama menunggu. Mitigasi konfigurasi utama dari advisory adalah menetapkan "memory_limit=-1" secara administratif lalu me-restart semua worker PHP, sambil memastikan tidak ada pool, direktori, atau aplikasi yang mengembalikan batas memori terbatas. Tapi ini ada konsekuensinya: tanpa batas memori, satu request bisa memakan seluruh memori server, jadi batas memori sebaiknya diatur lewat container atau cgroup.
  • Masalah terbesar ada di versi lama. PHP 8.1 ke bawah tidak mendapat perbaikan resmi. Jika aplikasi masih memakai PHP 7.x atau 8.1, migrasi ke versi yang masih didukung harus segera dijadwalkan, bukan ditunda terus.

Jika server sudah sempat terekspos dalam kondisi belum ditambal, saya juga akan mengganti kredensial, token, dan key yang mungkin tersimpan di memori worker PHP. Salah satu tanda serangan yang bisa dipantau adalah proses anak yang tidak wajar yang muncul langsung dari proses PHP.

4. Pengalaman di proyek kuliah

Saat magang, saya pernah terlibat dalam proses hosting aplikasi berbasis PHP. Salah satu langkah pengamanan yang saya terapkan adalah memastikan file .env tidak diletakkan di folder publik (document root) server. File .env berisi informasi sensitif seperti kredensial database, API key, dan konfigurasi aplikasi lainnya. Jika file ini berada di folder publik, siapa pun bisa membukanya hanya dengan menambahkan /.env di belakang alamat situs, misalnya namadomain.com/.env. Dengan menempatkannya di luar folder publik, file tersebut tetap bisa dibaca oleh aplikasi, tetapi tidak bisa diakses langsung melalui browser.

Pelajaran yang saya dapat:

  • Kesalahan kecil saat deployment bisa berakibat besar. Aplikasi bisa berjalan normal di lokal, tetapi struktur folder yang salah saat hosting dapat membocorkan seluruh kredensial tanpa perlu peretasan yang rumit.
  • Keamanan perlu dicek setelah aplikasi online. Setelah hosting, ada baiknya mencoba sendiri mengakses URL seperti /.env untuk memastikan file tersebut memang tidak bisa dibuka publik.
  • Satu lapis pengamanan tidak cukup. Kasus PHP2Shell menunjukkan hal ini dengan jelas. Menyembunyikan .env dari akses URL memang melindungi dari kebocoran sederhana, tetapi jika penyerang berhasil mengeksekusi kode di server melalui celah seperti PHP2Shell, file tersebut tetap bisa dibaca dari dalam server. Karena itu, langkah seperti ini perlu didukung dengan pembaruan PHP secara rutin, pembatasan hak akses, dan penggantian kredensial jika server diduga pernah terekspos.

Kesimpulan

Dari kasus PHP2Shell, saya belajar bahwa keamanan tidak cukup hanya menulis kode yang aman. Kita juga perlu tahu versi PHP yang dipakai, rutin memantau advisory resmi, dan punya prosedur update yang teruji. Kasus ini juga menunjukkan bahwa jarak waktu antara pengumuman CVE dan eksploitasi aktif sekarang sangat singkat, jadi kesiapan sebelum ada insiden sama pentingnya dengan respons setelahnya. i

FARHAN SADIQ ALFARITZI MUNTHE
Pemula · Medan · 1 jam

Menurut saya, langkah pertama yang harus dilakukan setelah mengetahui adanya kerentanan kritis seperti PHP2Shell adalah memeriksa apakah aplikasi menggunakan versi PHP atau komponen yang terdampak. Jika terdampak, saya akan segera memperbarui ke versi yang sudah mendapatkan perbaikan keamanan dan melakukan pengujian sebelum diterapkan ke server utama.

Menurut saya, pembaruan versi PHP perlu diprioritaskan, tetapi tetap harus disertai pengujian keamanan dan konfigurasi server yang baik. Jika pembaruan berisiko mengganggu aplikasi, saya akan melakukan backup terlebih dahulu, menguji pembaruan di lingkungan pengembangan, lalu menerapkannya setelah dipastikan aplikasi tetap berjalan normal. Selama proses tersebut, akses ke sistem perlu dibatasi untuk mengurangi risiko serangan.

Sebagai mahasiswa TRPL yang mempelajari pengembangan aplikasi web menggunakan Laravel dan database, saya juga menyadari pentingnya validasi input, pengelolaan hak akses, serta penggunaan autentikasi yang aman. Dari situ, saya belajar bahwa keamanan seharusnya dipertimbangkan sejak proses pengembangan, bukan hanya setelah aplikasi selesai dibuat. Dengan menerapkan langkah-langkah tersebut, risiko serangan dapat dikurangi dan keamanan data pengguna lebih terjaga.

Gambar status WhatsApp
Menyiapkan gambar…
Di HP: tekan Bagikan → WhatsApp → Status. Atau unduh gambarnya, lalu unggah sebagai status.