Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Menemukan PID Suatu Proses dan Melakukan Auto-Kill dalam Linux

Jadi ceritanya begini, suatu saat server VPS salah seorang rekan mendapat warning tentang abuse dan serangan spam yang berasal dari VPSnya. Singkat kata nih, saya segera login root ke terminal VPS Tersebut untuk melakukan semacam audit hehehe (sok pakar dikit lah). Untuk menemukan apakah ada aplikasi ilegal yang running, seperti biasa saya luncurkan command sederhana yaitu:

ps ax

Hanya dengan melihat sekilas, pandangan saya langsung menangkap hal mencurigakan! Terdapatlah suatu Proses yang berasal dari sebuah Script dg nama acak yang berada di direktori

/tmp
(sebuah direktori incaran favorit para attacker).

Saya langsung yakin bahwa inilah biang keroknya. Benar saja ketika saya tengok direktori

/tmp
, di dalamnya terdapat beberapa file dengan nama acak  yang di awali dengan string
php
dan beberapa scriptnya berekstensi .c.

Menemukan sebab pasti kenapa script ilegal dapat terinjek ke direktori tersebut sebetulnya bisa dibilang sulit. Tapi hampir bisa dipastikan bahwa vulnerability yang dimanfaatkan ini umumnya berasal dari theme, plugin, script (kebetulan cms yang dipakai adalah WordPress), aplikasi-aplikasi yang terinstal misalnya panel, ftp, webserver, dll.

Nah sebelum script ilegal atau malware tersebut mengakibatkan kerusakan lebih berat yang dapat berakibat dimatikannya networking di VPS oleh pihak provider, maka saya harus segera menghentikannya dan mematikannya jika di waktu depan proses tersebut running lagi. Jika dilihat dari output perintah ps ax, tiap proses termasuk proses malware ini akan mempunyai PID, yaitu suatu angka unik yang merujuk pada proses yang sedang dijalankan oleh filenya. Bermodal nomor PID, saya bisa mematikan prosesnya dengan command:

kill -9 12345
(12345 ini adalah contoh PID dari suatu proses, bisa dilihat dari ps ax kolom paling kiri).

Matilah dia… Hmm tapi karena sumber exploitnya belum ketemu maka script jahat yang baru bisa masuk lagi dan proses tersebut akan aktif lagi (tentu PID-nya sudah berbeda). Oleh karena itu saya mengutak atik sebuah bash script untuk otomatis menemukan PID dari script tersebut dan mengirimkan signal kill jika ditemukan. Kurang lebih begini:

#!/bin/sh
pid=`ps -ef | grep "tmp/php" | grep -v grep | awk '{print $2}'`
if [[ "" != "$pid" ]]; then
kill -9 $pid
fi


Tengok dengan seksama baris kedua, di situ saya gunakan string

tmp/php
untuk menemukan prosesnya via command
grep
, supaya lebih paham kenapa saya pake string
tmp/php
coba cek lampiran screenshot di bagian atas postingan ini. Rangkaian mantra ini saya simpan ke dalam sebuah berkas di
/usr/bin/killtmp
lalu saya berikan
chmod +x
kemudian supaya autorun saya oprek file
/etc/crontab
dan memasukkan entri supaya bash script tersebut running tiap 5 detik.

Alhasil, aman! Tidak pernah lagi proses malware tersebut beraksi di VPS. Karena tentu jika dia sempat nongol maka 5 detik kemudian dia akan otomatis kena kill. Untuk lebih mengoptimalkan pengamanan simpel ini, saya juga membuat script sederhana berisi command untuk menemukan file dengan nama phpxxxxxxxxx dan phpxxxxxxxxxx.c di /tmp dan men-deletenya otomatis.



This post first appeared on ARI-F.COM » Q: What Word You Break When You Say I, please read the originial post: here

Share the post

Menemukan PID Suatu Proses dan Melakukan Auto-Kill dalam Linux

×

Subscribe to Ari-f.com » Q: What Word You Break When You Say I

Get updates delivered right to your inbox!

Thank you for your subscription

×