ตั้งแต่ วิธีตรวจสอบเว็บไซต์ที่โดน Hack #1 เป็นต้นมา เป็นการแสดงให้เห็นถึง ปัญหา, การตรวจสอบ, การค้นหา หลังจากเกิดปัญหาแล้วทั้งสิ้น ก็จะเห็นได้ว่า ยุ่งยาก และเป็นเรื่องยากมาก ที่จะค้นหา Backdoor ให้หมด และการจะกำจัดให้หมดนั้นเป็นภาระอย่างมาก
ในบทความนี้ จะกล่าวถึง การสำรองข้อมูลไว้ พร้อมๆกับ สามารถตรวจสอบได้ว่า มี Backdoor ใดเกิดขึ้น, มีการแก้ไขไฟล์เพื่อวาง Backdoor ไว้บ้าง, มีการเปลี่ยนแปลงไฟล์ของระบบเป็น Backdoor บ้างหรือไม่ และยังสามารถ กู้ระบบกลับมาได้ แล้วจึงดำเนินการป้องกันไม่ให้เกิดขึ้นซ้ำอีกได้
การสำรองข้อมูล หรือการ Backup มี 2 แบบ
- Full Backup: สำรองทุกไฟล์และไดเรกทอรี่
- Incremental Backup: สำรอง “เฉพาะ” ไฟล์และไดเรกทอรี่ ที่มีการเพิ่ม หรือเปลี่ยนแปลง เท่านั้น
เครื่องมือในการ Backup มีหลายอย่าง ในบทความนี้ ขอใช้ tar เพราะสามารถใช้งานได้ง่าย
โดยยกตัวอย่าง เป็นการ Backup /var/www/joomla15
1. Full Backup ทำได้โดยการสร้างไฟล์ fullbackup.sh และมีข้อมูลดังนี้
d=$(date "+%Y%m%d%H%M%S") cp /dev/null joomla15.snar tar -zcvf joomla15-full-$d.tar.gz -g joomla15.snar /var/www/joomla15
2. Incremental Backup ทำได้โดยการสร้างไฟล์ incrementalbackup.sh และมีข้อมูลดังนี้
d=$(date "+%Y%m%d%H%M%S") tar -zcvf joomla15-inc-$d.tar.gz -g joomla15.snar /var/www/joomla15
โดยคำสั่ง tar มีคำสั่งเพิ่มเติม เล็กน้อย คือ -g ตามตัว joomla15.snar ซึ่ง จะเก็บสถานะของการ Backup ล่าสุดเอาไว้ ทำให้สามารถทราบได้ว่า มีต้อง Backup ไฟล์ใดบ้าง, ส่วน ชื่อไฟล์ .tar.gz ก็จะนำหน้าด้วย วันเวลานาที ของการทำ backup ไว้
เมื่อทำคำสั่ง
sh fullbackup.sh
จะได้ไฟล์นี้
joomla15-full-20140105004433.tar.gz
ต่อมา สมมุติ มีการโจมตี Joomla ด้วยช่องโหว่ของ JCE แบบนี้
เมื่อใช้คำสั่ง
find /var/www/ -name "*.php" -type f | grep 'images/stories'
ได้ผลดังนี้
/var/www/joomla15/images/stories/0day.php
และ สมมุติ Hacker ใช้งาน Backdoor 0day.php ดังกล่าวทาง URL
http://localhost/joomla15//images/stories/0day.php
และ แก้ไขไฟล์
/var/www/joomla15/CREDITS.php
ดังนี้
สรุปคือ Hacker สามารถ สร้างและเปลี่ยนแปลงไฟล์
/var/www/joomla15/images/stories/0day.php /var/www/joomla15/CREDITS.php
เมื่อใช้คำสั่ง
sh incrementalbackup.sh
จะได้ไฟล์
joomla15-inc-20140105021906.tar.gz
วิธีตรวจสอบ ไฟล์ที่เพิ่มเข้ามา และมีการเปลี่ยนแปลง ใช้คำสั่ง diff โดยเอารายการของไฟล็ใน .tar.gz มาเปรียบเทียบกัน ด้วยคำสั่ง
diff <(tar -ztvf joomla15-full-20140105004433.tar.gz) <(tar -ztvf joomla15-inc-20140105021906.tar.gz) |grep '>'
ผลที่ได้คือ จะทราบว่ามีไฟล์ ต่อไปนี้ เพิ่ม/เปลี่ยนแปลง
> -rw-r--r-- www-data/www-data 15571 2014-01-05 02:10 var/www/joomla15/CREDITS.php > -rw-r--r-- www-data/www-data 14315 2014-01-05 01:55 var/www/joomla15/images/stories/0day.php
หาก ต้องการไฟล์ต้นฉบับของ CREDITS.php ก็ใช้คำสั่ง
tar -zxvf joomla15-full-20140105004433.tar.gz var/www/joomla15/CREDITS.php
ก็สามารถกู้ไฟล์เดิมกลับมาได้ครับ
ขอให้โชคดี
Comments are closed.