Panduan Lengkap Membersihkan Server Ubuntu yang Terkena Serangan React2Shell

Ketika sebuah server dikompromikan oleh ancaman seperti React2Shell, tindakan segera dan metodis diperlukan untuk mengembalikan keamanan dan fungsionalitas. React2Shell umumnya merujuk pada kerentanan dalam aplikasi web berbasis React yang memungkinkan penyerang mengeksekusi kode arbitrer di server. Hal ini dapat mengakibatkan akses tidak sah, pencurian data, dan instalasi malware lebih lanjut. Membersihkan server yang terkena dampak melibatkan beberapa langkah kritis untuk memastikan semua komponen berbahaya dihapus dan server diperkuat dari serangan di masa depan. Panduan ini akan memandu Anda melalui proses di server Ubuntu, memberikan instruksi terperinci di setiap tahap. Prosesnya dapat dibagi menjadi fase persiapan, identifikasi, isolasi, eradikasi, pemulihan, dan pencegahan. Setiap fase harus didekati dengan hati-hati untuk menghindari mengabaikan ancaman tersembunyi atau menyebabkan downtime yang tidak diinginkan.

Langkah pertama dalam menanggapi sebuah kompromi adalah menilai situasi tanpa memperingatkan penyerang. Jika memungkinkan, putuskan server dari jaringan untuk mencegah kerusakan atau eksfiltrasi data lebih lanjut. Namun, dalam beberapa kasus, Anda mungkin ingin memantau aktivitas penyerang untuk mengumpulkan intelijen. Untuk skenario paling umum, terutama di lingkungan produksi, isolasi adalah kunci. Untuk mengisolasi server, Anda dapat menonaktifkan antarmuka jaringan menggunakan baris perintah. Sebagai contoh, gunakan sudo ifconfig eth0 down untuk menonaktifkan antarmuka jaringan utama. Atau, jika Anda menggunakan penyedia cloud, Anda dapat menggunakan dashboard mereka untuk mengisolasi instansi. Setelah diisolasi, Anda dapat melanjutkan dengan analisis forensik tanpa risiko menyebarkan infeksi. Juga disarankan untuk mengambil snapshot atau image server untuk analisis forensik sebelum membuat perubahan apa pun. Ini melestarikan bukti yang mungkin diperlukan untuk tujuan hukum atau investigasi. Pastikan Anda memiliki cadangan data kritis, tetapi perhatikan bahwa cadangan yang diambil setelah kompromi mungkin telah tercemar, jadi gunakan cadangan yang lebih awal jika tersedia.

Setelah isolasi, Anda perlu mendapatkan akses ke server. Jika akses remote dikompromikan, gunakan manajemen di luar pita seperti koneksi konsol atau mode pemulihan. Banyak penyedia cloud menawarkan akses konsol serial atau mode rescue yang memungkinkan Anda boot ke lingkungan yang bersih. Setelah login, ubah semua kata sandi segera, termasuk akun pengguna dan kredensial aplikasi. Gunakan sudo passwd nama_pengguna untuk mengubah kata sandi pengguna dan perbarui kata sandi database serta kunci API. Langkah ini mencegah penyerang mempertahankan akses melalui kredensial yang dicuri. Selanjutnya, dokumentasikan semua yang Anda lakukan. Simpan catatan perintah yang dieksekusi, file yang dimodifikasi, dan observasi yang dibuat. Dokumentasi ini sangat penting untuk analisis pasca-insiden dan persyaratan hukum potensial. Gunakan file teks atau buku catatan khusus untuk merekam stempel waktu dan tindakan. Pertimbangkan untuk menggunakan alat seperti script untuk merekam sesi terminal Anda untuk log yang akurat.

Sekarang, mulailah mengidentifikasi file dan proses yang dikompromikan. Mulailah dengan memeriksa proses tidak biasa yang berjalan di server. Gunakan perintah seperti ps aux, top, atau htop untuk mendaftar semua proses. Cari proses dengan nama aneh, penggunaan sumber daya tinggi, atau berjalan dari direktori yang tidak biasa. Berikan perhatian khusus pada proses yang terkait dengan aplikasi web, seperti skrip Node.js atau React. Gunakan netstat -tulnp atau ss -tulnp untuk memeriksa koneksi jaringan yang mencurigakan. Catat koneksi apa pun ke alamat IP atau port yang tidak dikenal. Setelah diidentifikasi, hentikan proses berbahaya menggunakan kill -9 PID. Namun, berhati-hatilah untuk tidak menghentikan proses sistem penting. Selain itu, gunakan lsof untuk mendaftar file dan koneksi jaringan terbuka untuk proses tertentu. Sebagai contoh, lsof -p PID dapat menunjukkan file yang dibuka oleh suatu proses. Anda juga dapat menggunakan pstree untuk melihat hierarki proses, yang mungkin mengungkap hubungan induk-anak yang mengindikasikan aktivitas berbahaya.

Setelah berurusan dengan proses, periksa sistem file untuk file berbahaya. React2Shell sering melibatkan injeksi kode berbahaya ke dalam file aplikasi React. Periksa direktori aplikasi web, biasanya tempat aplikasi React Anda di-deploy. Cari file yang baru saja dimodifikasi menggunakan find /jalur/ke/app -type f -mtime -7 untuk menemukan file yang dimodifikasi dalam tujuh hari terakhir. Juga, gunakan alat seperti grep untuk mencari string mencurigakan seperti eval, base64_decode, atau perintah shell dalam file JavaScript. Sebagai contoh, grep -r "eval(" /var/www/html dapat membantu menemukan kode berbahaya potensial. Selain itu, periksa file atau direktori tersembunyi dengan nama yang dimulai dengan titik. Gunakan ls -la untuk mendaftar semua file, termasuk yang tersembunyi. Penyerang sering menyembunyikan file di direktori seperti /tmp, /dev/shm, atau dalam direktori tersembunyi di rumah pengguna. Anda juga dapat menggunakan find dengan opsi -perm untuk menemukan file dengan izin yang tidak biasa, seperti file yang dapat ditulis secara global.

Selain file aplikasi, file sistem mungkin dikompromikan. Periksa perubahan tidak sah dalam file sistem kritis seperti /etc/passwd, /etc/shadow, /etc/hosts, dan entri crontab. Gunakan sudo cat /etc/passwd untuk mencari akun pengguna yang tidak terduga. Periksa crontab untuk pekerjaan berbahaya dengan crontab -l untuk setiap pengguna dan ls /etc/cron.d/ untuk pekerjaan cron sistem. Jika Anda menemukan entri mencurigakan, hapus. Juga, verifikasi integritas biner sistem dengan membandingkan checksum dengan versi yang diketahui baik. Alat seperti debsums di Ubuntu dapat membantu memverifikasi paket yang terinstal. Instal dengan sudo apt install debsums dan jalankan sudo debsums -c untuk memeriksa file yang dimodifikasi. Untuk deteksi yang lebih menyeluruh, pertimbangkan untuk menggunakan pemindai rootkit seperti rkhunter atau chkrootkit. Instal dan jalankan dengan sudo rkhunter --check. Alat-alat ini dapat mendeteksi rootkit dan backdoor umum yang mungkin terlewat.

Setelah Anda mengidentifikasi file dan entri berbahaya, lanjutkan untuk menghapusnya. Namun sebelum penghapusan, pertimbangkan untuk mencadangkan bukti untuk analisis. Anda dapat menyalin file mencurigakan ke lokasi aman untuk investigasi lebih lanjut. Gunakan cp /jalur/ke/file_berbahaya /lokasi/aman/ untuk mencadangkan. Kemudian, hapus file berbahaya menggunakan rm /jalur/ke/file_berbahaya. Untuk file sistem yang dimodifikasi, pulihkan dari paket asli. Sebagai contoh, untuk memulihkan biner seperti ls, gunakan sudo apt-get --reinstall install coreutils. Demikian pula, untuk file konfigurasi, instal ulang paket yang terkena dampak. Bersikaplah teliti dalam penghapusan; penyerang sering menginstal backdoor di banyak lokasi. Juga, periksa mekanisme persistensi seperti skrip init, layanan systemd, atau modul kernel. Gunakan systemctl list-unit-files untuk memeriksa layanan mencurigakan dan lsmod untuk mendaftar modul kernel yang dimuat. Hapus layanan atau modul tidak sah apa pun.

Setelah membersihkan file, fokuslah pada aplikasi web. Jika aplikasi React Anda dikompromikan, Anda mungkin perlu memulihkannya dari sumber bersih yang diketahui. Hapus seluruh direktori aplikasi dan deploy ulang dari repositori yang aman. Pastikan repositori tidak dikompromikan. Sebelum deployment ulang, audit kode untuk kerentanan, terutama yang terkait React2Shell. Kerentanan ini sering berasal dari server-side rendering yang tidak aman atau injeksi input pengguna. Tambal aplikasi dengan memperbarui React dan dependensi terkait ke versi terbaru yang aman. Gunakan npm update atau yarn upgrade untuk memperbarui paket, tetapi verifikasi bahwa pembaruan berasal dari sumber terpercaya. Tinjau file package.json untuk dependensi mencurigakan apa pun. Pertimbangkan untuk menggunakan alat seperti npm audit atau yarn audit untuk mengidentifikasi kerentanan yang diketahui dalam dependensi. Selain itu, terapkan kebijakan keamanan konten (CSP) di aplikasi web Anda untuk mengurangi serangan cross-site scripting.

Sekarang, perbarui dan tambal sistem operasi server serta perangkat lunak. Jalankan sudo apt update untuk memperbarui daftar paket, lalu sudo apt upgrade untuk mengupgrade semua paket yang terinstal. Perhatikan pembaruan keamanan. Juga, perbarui perangkat lunak pihak ketiga, seperti Node.js, jika digunakan. Pastikan semua perangkat lunak mutakhir untuk memperbaiki kerentanan yang diketahui. Selain itu, tinjau dan perkuat keamanan server. Konfigurasikan firewall menggunakan ufw untuk hanya mengizinkan port yang diperlukan. Sebagai contoh, izinkan SSH di port 22 dan HTTP/HTTPS di port 80 dan 443. Gunakan sudo ufw enable untuk mengaktifkan firewall. Terapkan sistem deteksi intrusi seperti AIDE atau Tripwire untuk memantau integritas file. Instal dan konfigurasikan fail2ban untuk melindungi dari serangan brute force. Pertimbangkan untuk menggunakan Linux yang ditingkatkan keamanannya (SELinux) atau AppArmor untuk kontrol akses tambahan. Alat-alat ini dapat membatasi apa yang diizinkan dilakukan proses, membatasi dampak potensi pelanggaran.

Dengan server dibersihkan dan ditambal, pulihkan data dari cadangan. Pastikan cadangan berasal dari sebelum kompromi dan bersih. Jangan pulihkan dari cadangan yang mungkin mengandung malware. Verifikasi integritas cadangan dengan memindainya untuk malware atau memeriksa checksum. Setelah diverifikasi, pulihkan data aplikasi dan database. Untuk database, gunakan perintah mysql atau psql untuk mengimpor cadangan. Untuk data file, gunakan rsync atau tar untuk mengekstrak cadangan. Setelah pemulihan, uji fungsionalitas aplikasi untuk memastikan semuanya berfungsi dengan benar. Periksa konsistensi data dan pastikan tidak ada kode berbahaya yang tersisa dalam data yang dipulihkan. Ini juga merupakan praktik yang baik untuk mengubah semua kata sandi dan kunci lagi setelah pemulihan, sebagai tindakan pencegahan.

Mengamankan server lebih lanjut sangat penting untuk mencegah serangan di masa depan. Ikuti praktik terbaik keamanan seperti menggunakan kunci SSH alih-alih kata sandi, menonaktifkan login root, dan mengubah port default. Perbarui perangkat lunak secara teratur dan pantau log untuk aktivitas mencurigakan. Gunakan alat seperti logwatch atau syslog-ng untuk memusatkan dan menganalisis log. Terapkan langkah-langkah keamanan tingkat aplikasi seperti validasi input, encoding output, dan menggunakan header aman. Untuk aplikasi React, pastikan server-side rendering aman dan bahwa input pengguna disanitasi dengan benar. Pertimbangkan untuk menggunakan firewall aplikasi web (WAF) untuk menyaring lalu lintas berbahaya. Selain itu, batasi hak istimewa pengguna dengan mengikuti prinsip hak istimewa paling rendah. Gunakan sudo dengan bijak dan buat pengguna terpisah untuk layanan yang berbeda. Tinjau akun pengguna secara teratur dan hapus yang tidak lagi diperlukan.

Setelah pembersihan dan pengamanan, pantau server dengan ketat untuk tanda-tanda infeksi ulang. Siapkan peringatan untuk aktivitas tidak biasa, seperti upaya login gagal atau perubahan file yang tidak terduga. Gunakan alat pemantauan seperti Nagios, Zabbix, atau layanan pemantauan berbasis cloud. Tinjau patch keamanan secara teratur dan terapkan dengan cepat. Lakukan audit keamanan dan penilaian kerentanan berkala untuk mengidentifikasi dan mengatasi kelemahan. Edukasi diri Anda dan tim Anda tentang praktik terbaik keamanan dan tetap diperbarui tentang ancaman dan kerentanan baru. Pertimbangkan untuk menerapkan sistem manajemen informasi dan kejadian keamanan (SIEM) untuk logging dan analisis yang komprehensif.

Kesimpulannya, membersihkan server yang terkena dampak React2Shell membutuhkan pendekatan sistematis yang melibatkan isolasi, penilaian, eradikasi, dan pemulihan. Dengan mengikuti langkah-langkah ini dengan teliti, Anda dapat mengembalikan server Anda ke keadaan aman dan meminimalkan risiko kompromi di masa depan. Ingatlah bahwa keamanan adalah proses yang berkelanjutan, dan kewaspadaan adalah kunci untuk mempertahankan lingkungan server yang aman. Prosesnya mungkin memakan waktu, tetapi penting untuk melindungi data dan layanan Anda. Selalu simpan cadangan, pantau sistem Anda, dan terapkan pembaruan keamanan secara teratur untuk tetap unggul dari ancaman potensial. Selain itu, pertimbangkan untuk melibatkan profesional keamanan siber untuk insiden kompleks atau jika Anda kekurangan keahlian internal. Melalui langkah-langkah proaktif dan respons menyeluruh, Anda dapat melindungi infrastruktur Anda dari serangan serupa di masa depan.

Similar Posts