Security
น้องๆ เคยเจอไหม? เครื่องคอมพิวเตอร์เราที่มัน "แปลกๆ" ไปจากเดิม... ช้าลง, มีโปรแกรมที่เราไม่ได้ลงเองโผล่มา, หรือบางที antivirus ก็ตรวจไม่เจอปัญหาอะไรเลย... นั่นแหละ! อาจจะเป็นฝีมือของ "Rootkit" ก็ได้นะ
สมัยผมทำร้านเน็ตฯ เมื่อ 20 กว่าปีที่แล้ว (SiamCafe Blog นี่แหละ!) เจอลูกค้าหลายคนบ่นเรื่องนี้บ่อยมาก บางคนเล่นเกมอยู่ดีๆ ก็โดนแฮ็กเฉยเลย! ไอ้ตัว Rootkit นี่แหละ ตัวดีเลย
"Rootkit" มันคือชุดเครื่องมือ (tool) ที่คนร้ายใช้เพื่อ "ซ่อน" ตัวเองและกิจกรรมแอบแฝงในระบบคอมพิวเตอร์ของเรา ชื่อ "Root" มาจากบัญชีผู้ดูแลระบบสูงสุดในระบบปฏิบัติการ Unix/Linux ซึ่งมีสิทธิ์ทำอะไรก็ได้ในเครื่อง
คิดง่ายๆ เหมือนเรามีบ้าน แล้วโจรมันแอบเข้ามาอยู่ แถมยังปลอมตัวเป็นคนในบ้านเราอีก! เราก็จะไม่รู้เลยว่ามีโจรอยู่ในบ้านเราแล้ว
Rootkit จะ "ฝัง" ตัวเองเข้าไปในส่วนลึกของระบบปฏิบัติการ (Operating System – OS) เช่น Kernel (หัวใจของ OS) หรือ Firmware (โปรแกรมที่ฝังอยู่ในฮาร์ดแวร์) ทำให้มันยากต่อการตรวจจับและกำจัด
สมัยก่อน Rootkit มันซับซ้อนมาก ต้องมีความรู้เรื่อง OS ลึกๆ ถึงจะเขียนได้ แต่เดี๋ยวนี้มี Rootkit สำเร็จรูปให้โหลดใช้กันเกลื่อนเน็ตเลย น่ากลัวจริงๆ
Step-by-step (แบบง่ายๆ) การทำงานของ Rootkit:
ตัวอย่าง code snippet (สมมติ):
// สมมติ Rootkit แก้ไข System Call Table เพื่อซ่อนตัวเอง
// โค้ดนี้เป็นเพียงตัวอย่าง ไม่สามารถใช้งานได้จริง
// และมีจุดประสงค์เพื่อการศึกษาเท่านั้น
// Get System Call Table address
unsigned long *sys_call_table = (unsigned long*)kallsyms_lookup_name("sys_call_table");
// Original system call
asmlinkage long (*original_getdents)(unsigned int fd, struct linux_dirent *dirp, unsigned int count);
// Our hooked system call
asmlinkage long hooked_getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int count) {
long ret = original_getdents(fd, dirp, count);
// Filter directory entries to hide Rootkit files
// ... (implementation to filter out Rootkit files) ...
return ret;
}
// Hook the system call
original_getdents = (void*)sys_call_table[__NR_getdents];
sys_call_table[__NR_getdents] = (unsigned long)hooked_getdents;
โค้ดข้างบนเป็นแค่ตัวอย่างให้เห็นภาพนะ จริงๆ มันซับซ้อนกว่านี้เยอะมาก!
อันตรายของ Rootkit มันร้ายแรงกว่าที่เราคิดเยอะมาก! เพราะมันสามารถทำอะไรได้หลายอย่างโดยที่เราไม่รู้ตัวเลย
เคยมีเคสลูกค้าผมโดน Rootkit ขโมยข้อมูลบัตรเครดิตไปรูดซื้อของออนไลน์หมดตัว! น่าสงสารมาก
Rootkit มีหลายประเภท ขึ้นอยู่กับว่ามันฝังตัวอยู่ที่ไหนในระบบ:
| ประเภทของ Rootkit | ตำแหน่งที่ฝังตัว | ความยากในการตรวจจับ |
|---|---|---|
| User-mode Rootkit | Application Layer | ค่อนข้างง่าย |
| Kernel-mode Rootkit | Kernel (หัวใจของ OS) | ยาก |
| Bootkit | Master Boot Record (MBR) | ยากมาก |
| Firmware Rootkit | Firmware ของฮาร์ดแวร์ | ยากที่สุด |
User-mode Rootkit จะติดง่ายกว่า แต่ก็ตรวจจับได้ง่ายกว่า Kernel-mode Rootkit จะตรวจจับยากกว่ามาก เพราะมันฝังตัวอยู่ในส่วนลึกของ OS เลย
การป้องกัน Rootkit ดีกว่าการแก้ไขเสมอ! เพราะถ้ามันฝังตัวไปแล้ว การกำจัดมันออกไปอาจจะยากมาก ถึงขั้นต้องลง OS ใหม่เลย
สมัยผมทำร้านเน็ตฯ จะเน้นเรื่องการป้องกันมากกว่า ตั้งแต่การอัพเดท OS, ติดตั้ง Antivirus, และสอนลูกค้าให้ระมัดระวังในการคลิกลิงก์หรือดาวน์โหลดไฟล์
ถ้าสงสัยว่าเครื่องเราอาจจะติด Rootkit ให้ทำตามขั้นตอนเหล่านี้:
ตัวอย่าง Rootkit Scanner (สำหรับ Linux):
// rkhunter (Rootkit Hunter)
sudo apt-get install rkhunter
sudo rkhunter --check
โปรแกรม rkhunter เป็นเครื่องมือที่ใช้ตรวจสอบหา Rootkit บนระบบ Linux แต่ต้องระวังในการใช้งาน เพราะอาจจะรายงานผล false positive ได้
สุดท้ายนี้ อยากฝากน้องๆ ทุกคนว่า การป้องกันตัวเองจากภัยคุกคามทางไซเบอร์เป็นสิ่งที่สำคัญมาก! หมั่นศึกษาหาความรู้ และระมัดระวังในการใช้งานอินเทอร์เน็ตเสมอ
อ่านบทความอื่นๆ ที่น่าสนใจได้ที่ SiamCafe Blog นะครับ!
คำถาม: Rootkit สามารถติดในมือถือได้ไหม?
คำตอบ: ได้ครับ! Rootkit สามารถติดในมือถือได้เหมือนกัน โดยเฉพาะมือถือที่ทำการ Root หรือ Jailbreak แล้ว จะมีความเสี่ยงสูงกว่า
คำถาม: Rootkit ทำให้คอมพิวเตอร์ช้าลงจริงหรือ?
คำตอบ: จริงครับ! Rootkit จะใช้ทรัพยากรของระบบ ทำให้คอมพิวเตอร์ช้าลงได้
คำถาม: ถ้าลง Windows ใหม่ จะกำจัด Rootkit ได้ไหม?
คำตอบ: โดยทั่วไป การลง Windows ใหม่จะสามารถกำจัด Rootkit ได้ แต่ถ้า Rootkit ฝังตัวอยู่ใน Firmware อาจจะต้องใช้วิธีที่ซับซ้อนกว่านั้น
อย่าลืมแวะไปอ่านบทความอื่นๆ ที่ SiamCafe Blog กันด้วยนะ!
ดูวิดีโอเพิ่มเติมเกี่ยวกับRootkit คืออะไร อันตรายแค่ไหน:
สมัยผมทำร้านเน็ตนี่ ปวดหัวสุดคือเรื่องอัพเดท Patch Windows นี่แหละ เด็กมันชอบปิด Auto Update แล้วก็ติดไวรัสกันระนาว Rootkit ก็มากับช่องโหว่พวกนี้เยอะแยะ ดังนั้นอัพเดทระบบปฏิบัติการ, Browser, Antivirus ให้เป็นปัจจุบันเสมอ อันนี้สำคัญมาก
สมัยก่อนนี่โปรแกรม Crack เต็มร้าน คือเด็กมันอยากใช้โปรแกรมแพงๆ ฟรี ก็ไปโหลด Crack มาลงกัน เจอ Rootkit ฝังมาด้วยประจำ ผมเลยต้องบล็อกเว็บโหลด Crack พวกนั้นไปหลายเว็บเลย ระวังการดาวน์โหลดไฟล์จากแหล่งที่ไม่น่าเชื่อถือ โดยเฉพาะไฟล์ .exe หรือไฟล์แนบในอีเมลแปลกๆ
ลงทุนกับ Antivirus ดีๆ หน่อย สมัยก่อนผมใช้ Nod32 กับ Kaspersky สลับๆ กันไป แล้วก็สแกนเครื่องลูกค้าเป็นประจำ ลงทุนตรงนี้ไปคุ้มกว่ามานั่งแก้ปัญหา Rootkit ทีหลังเยอะเลย เลือก Antivirus ที่มี Real-time Scanning และสามารถตรวจจับ Rootkit ได้
Secure Boot ช่วยป้องกัน Rootkit ที่จะบูตขึ้นมาก่อนระบบปฏิบัติการของเราได้ สมัยนี้ Mainboard ส่วนใหญ่รองรับ UEFI แล้ว ก็เปิดใช้งานไว้เถอะ ป้องกันไว้ก่อนดีกว่าแก้
Rootkit มักจะมากับการหลอกให้ติดตั้งโปรแกรมปลอม, ช่องโหว่ของระบบปฏิบัติการ, หรือมากับ Trojan horse สมัยก่อนนี่ผมเจอเยอะสุดคือมากับโปรแกรม Crack นี่แหละ ตัวดีเลย
อาการที่พบบ่อยคือ เครื่องทำงานช้าลง, มีโปรแกรมแปลกๆ รันอยู่, Antivirus ทำงานผิดปกติ, หรือมีหน้าต่าง Pop-up โฆษณาขึ้นมาบ่อยๆ แต่บางที Rootkit มันก็ซ่อนตัวเก่งมาก ต้องใช้เครื่องมือเฉพาะในการตรวจจับ
Rootkit สามารถขโมยข้อมูลได้แทบทุกอย่าง ตั้งแต่รหัสผ่าน, ข้อมูลบัตรเครดิต, ข้อมูลส่วนตัว, ไปจนถึงข้อมูลสำคัญทางธุรกิจ ถ้าโดน Rootkit เล่นงานนี่เสียหายเยอะแน่นอน
การกำจัด Rootkit ค่อนข้างซับซ้อน บางครั้งต้องใช้เครื่องมือเฉพาะ หรือต้อง Format เครื่องใหม่เลย สมัยก่อนผมเคยเจอเคสที่ต้องลง Windows ใหม่ทั้งร้านก็มี เพราะ Rootkit มันฝังลึกเกินไป
Rootkit สามารถถูกใช้เพื่อขโมยข้อมูลบัญชีเทรด Forex หรือเปลี่ยนแปลงข้อมูลการเทรดได้ ดังนั้นต้องระวังให้ดี ถ้าสนใจเรื่อง Forex ลองศึกษาเพิ่มเติมได้ที่ iCafeForex
Rootkit เป็นภัยคุกคามที่ร้ายแรงและซับซ้อน การป้องกัน Rootkit ที่ดีที่สุดคือการระมัดระวังในการใช้งานอินเทอร์เน็ต, อัพเดทซอฟต์แวร์สม่ำเสมอ, และใช้ Antivirus ที่ดี อย่าลืมติดตามข่าวสารและบทความดีๆ ได้ที่ SiamCafe Blog นะครับ
หวังว่าบทความนี้จะเป็นประโยชน์กับทุกคนนะครับ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย