![]()

ThaiCERT:
Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย
ชื่อเรื่อง : จะรู้ได้อย่างไรว่าโดนแฮ็คไปแล้ว
ที่มา : http://www.sans.org
เรียบเรียงโดย : ร.อ. วิวัต เรืองมี
เรียบเรียงเมื่อ : 20 สิงหาคม 2544
Have I been Hacked
หลังจาก hacker ได้ทำการ compromise ระบบแล้วนั้น ส่วนใหญ่ hacker จะไม่ทำการลบข้อมูลหรือทำอะไรที่จะเป็นผลเสียต่อระบบของท่าน
แต่ hackers จะทำการติดตั้ง back door ในระบบซึ่งทำให้ hacker สามารถเข้าถ้าระบบในฐานะ
root หรือบางที hacker อาจใช้ระบบของท่านในการโจมตีระบบอื่นๆต่อไป
เพราะฉะนั้นหากท่านประสบปัญหาอย่างเช่น ระบบของท่านเกิดช้าขึ้นมาอย่างผิดปกติแต่เมื่อท่านได้ทำการตรวจสอบ disk space และ process แล้วก็ไม่มีสิ่งใดผิดปกติ checklist ต่อไปนี้คือสิ่งที่ท่านควรตรวจสอบเพื่อบอกว่าระบบของท่านถูก hacked หรือไม่
1. เหตุการณ์หรือสัญญาณที่ผิดปกติ
2. ตรวจหา sniffer
เนื่องจาก sniffer จะทำให้ network interface รับ packet ทุกชนิดที่เข้ามาและทำการบันทึก packet ซึ่งประกอบด้วย username และ password ของ ftp และ telnet แม้ว่าท่านจะแก้ปัญหานี้โดยการใช้ switching แทน hub แต่ถ้าเครื่องดังกล่าวเป็น Internet gateway แล้วปัญหาก็ไม่ได้หมดไป ท่านสามารถทำการ check promiscoous mode ได้โดย # ifconfig - a/grep PROMISC
แต่มี rootkit บางตัวที่ทำการเปลี่ยนแปลง ifconfig เพื่อหลบซ่อนจากการใช้ parameters นี้ เพื่อความแน่ใจให้ท่าน run antisniff (http://www.securitysoftwaretech.om/antisniff/) จาก remote machine
3. ตรวจสอบ logs
# last | head
# grap "vid = 0" /var/log/
และ
# grep "su" /var/log/
4. ไม่ควรเชื่อ ps command
#ps --no-headers -ef | wc
5. ตรวจสอบ ports
ทำการ scan ports ของเครื่องโดยใช้ port scanner เช่น nmap [http://www.insecure.org/nmap/] ซึ่งค่า defaults ของ nmap นั้นคือ port1-1024 แต่ trojan horses ส่วนใหญ่จะใช้ ports ที่สูงกว่านั้น หากท่านต้องการเฉพาะเจาะจง ports ที่ต้องการจะ scan ให้ใช้ option-p เช่น
# nmap - p 1 - 65535 your_machin_address
หลังจากนั้น ให้ทำการใช้คำสั่ง netstat -a เพื่อตรวจสอบ port ที่เปิดอยู่บนเครื่องนั้นๆ
# netstat -aหากพบว่ามี ports ที่ปรากฎใน output ของการใช้ nmap แต่ไม่ปรากฎใน output เมื่อใช้คำสั่ง netstat นั้นอาจหมายถึง netstat ได้ถูกเปลี่ยนแปลงเพื่อหลบซ่อน service บางอย่าง
6. ตรวจสอบ binaries
rootkits ส่วนใหญ่จะทำการเปลี่ยนแปลง system binaries เพื่อทำการหลบซ่อน file, sniffer หรือ port ที่ถูกเปิดอยู่ บน RedHat ท่านสามารถตรวจสอบ binaries ได้โดยใช้คำสั่ง
altis $ rpm - va | grep '1...5'
ซึ่งผลลัพธ์ที่เกิดขึ้นอาจเป็นลักษณะนี้คือ
s.5.....T c/etc/services
s.5....T c/etc/info-dir
s.5....T c/etc/inetd.conf
นั้นหมายถึงขนาดของ file เปลี่ยน (5)
MD5 checksum เปลี่ยน (5)
และเวลาที่ได้รับการเปลี่ยนแปลงถูกเปลี่ยน (T)บนระบบซึ่งเป็น UNIX ท่านสามารถใช้คำสั่ง find ค้นหา files ที่ถูกเปลี่ยนแปลงในช่วงเวลาหนึ่งๆ ส่วน option ที่ใช้น่าจะใช้ -ctime option ดังนี้
# find/ bin -ctime -7
แต่วิธีที่ดีที่สุดคือใช้คำสั่ง cmp แล้วเปรียบเทียบ วันที่ ขนาดของไฟล์ และ time-stamp ของ system files กับ machine ที่เป็น clean machine และใช้ OS ประเภทเดียวกันซึ่งโดยปกติ binaries files ที่ถูกเปลี่ยนคือ
chsh, crontab, du, df, find, ifconfig, inedd, killall, login, ls, netstat, passwd, ps, sshd, syslogd และ top
ท่านสามารถใช้โปรแกรม tripwire หรือ samhain เพื่อให้แจ้งเตือนเมื่อ system files ถูกเปลี่ยนแปลง
Tripwire [ http://www.tripwire.org]
samhain [http://samhain.sourceforge.net]
7. ตรวจสอบ Config Files
ท่านควรตรวจสอบ files ซึ่งถูกเปลี่ยนแปลงบ่อยๆได้แก่
/etc/inetd.conf file
หรือ
/etc/xinetd.conf file
หรือ
/etc/xinetd.d directoryพยายามตรวจดู service ที่เพิ่มเข้ามา ถูกเปลี่ยนแปลงหรือเป็น service ที่ท่านไม่คุ้นเคย
/etc/hosts.eguiv, ~/.rhosts
พยายามตรวจดู creationdate และ "+" รวมทั้ง host names ที่ท่านไม่คุ้นเคย
/dev/* เนื่องจากมี rootkits บางประเภทที่จะติดตั้ง configuration files ใน /dev/ ท่านสามารถตรวจสอบ text files ใน /dev directory ได้ดัวนี้
# file /dev/* | grep text
/ dev/ ptyp : ASCIItext
/ dev/ ptyq : ASCIItext
/ dev/ ptyr : ASCIItext
จากตัวอย่างนี้ท่านจะเห็นว่า rootkit ได้ใช้ text file ptyr เพื่อจะหลบซ่อนจาก command lsใช้ ptyq เพื่อจะลบ sockets/ addresses ออกจาก netstat และใช้ ptyq เพื่อจะลบ processes ออกจาก ps
ในฐานะ root ให้ท่าน run crontab - l and atq เพื่อตรวจดูว่ามีโปรแกรมใดที่กำลังรอการทำงานอยู่หรือไม่
8. ตรวจสอบ setuid, setgid และไฟล์อื่นๆที่หลบซ่อนอยู่
ทำ setuid และ setgid files จะ run อยู่ในฐานะ root แม้ว่าจะถูก executed โดย user ธรรมดาก็ตาม
หากท่านต้องการค้นหา setuid files ให้ใช้คำสั่ง
# find / - perm -4000 -print
และในการค้นหา setgid ให้ใช้คำสั่ง
# find / -perm -2000 -print
โดยปกติแล้วผู้บุกรุกจะแอบซ่อน setuid files และ tools ท่านไว้ใน hidden directories ท่านสามารถตรวจสอบหา files ที่แอบซ่อนอยู่ได้โดยใช้คำสั่ง find
# find / -name " . * "
หรือบางทีผู้บุกรุกจะเลือก directory ไปในการแอบซ่อน files เช่น ~/ gnome, ~/.xauth เหล่านี้เป็นต้น
สรุป
หากท่านคิดว่าท่านถูก hacked แน่นอนแล้ว ให้ทำการ disconnect จาก network ทันทีและทำการ back up data แล้ว reinstall OS หรือว่าหากท่านไม่สามารถปิดระบบได้ทันทีก็ควรจะเปลี่ยน root password, ลบ user account ที่คิดว่าเป็นอันตรายและทำการ set เวลาที่จะปิดระบบหลังทำการ reinstall OS
Home
|| เอกสารเผยแพร่ || Unix & Linux
ThaiCERT Disclaimer
| Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.