แน่ใจได้อย่างไรว่าระบบของเราปลอดภัยจาก Hacker/Cracker ?
by A.Pinya Hom-anek, CISSP
เป็นที่ทราบกันดีว่า Internet Traffic ในทุกวันนี้ส่วนใหญ่ล้วนแต่เป็น “Plain Text” Traffic ที่ไม่ได้มีการเข้ารหัสข้อมูลแต่อย่างใดเช่น HTTP (Web Traffic), FTP (อัพโหลด/ดาวน์โหลดไฟล์) ,SMTP, POP3 (รับ-ส่งอีเมล์) เป็นต้น การรับส่งอีเมล์ผ่านทาง Web Mail หรือการล็อกอินเข้าไปในระบบผ่านทาง Web Browser นั้น ล้วนแต่เป็นข้อมูลที่ไม่ได้เข้ารหัสทำให้ Hacker/Cracker หรือผู้ไม่หวังดีสามารถใช้โปรแกรมประเภท “Packet Sniffer” แอบดู Traffic ของเราได้ ทำให้ Hacker เห็นชื่อผู้ใช้และรหัสผ่าน (User Name & Password) ของเรา
จากนั้น Hacker ก็สามารถเข้ามาในระบบแทนตัวเราได้ในภายหลัง
เวลาที่เราถูก “Sniff” หรือถูกแอบดูข้อมูลในระบบ LAN นั้น เราอาจจะไม่รู้ตัวเลยก็ได้ว่าถูกแอบดูข้อมูลอยู่ เรียกว่าถ้าเรากำลังสูญเสีย “Confidentiality” ของระบบข้อมูล Hacker มักจะนิยมใช้โปรแกรมประเภท “RootKit” ฝังเข้าระบบ UNIX/Linux ของเราโดยเราไม่สามารถตรวจสอบได้ง่ายๆแนะนำให้ไปที่ Web Sitehttp://www.chkrootkit.org แล้วใช้โปรแกรมใน Site นี้ ในการตรวจสอบระบบของเรา จะช่วยได้มากถ้าเรารู้ตัวก่อน จะได้จัดการลบเจ้า RootKit ออกจากระบบได้ทันก่อนสายเกินแก้
เรามักเข้าใจว่าโปรแกรมประเภท “Sniffer” นั้น สามารถทำงานได้เฉพาะระบบ LAN ที่เป็น Hub เท่านั้น ถ้าเราใช้ Switch มาแทน Hub แล้ว โปรแกรม Sniffer จะไม่สามารถมองเห็นข้อมูลของเราได้
ความคิดนี้ถูกเพียงครึ่งเดียวเท่านั้นคือ โดยปกตินั้น Sniffer จะใช้หลักการที่ Hub ทำการ Broadcast ข้อมูลออกมาในทุกๆพอร์ต ทำให้เราจะใช้โปรแกรม Sniffer จับที่พอร์ตไหนของ Hub ก็ได้ แต่ถ้าเป็น Switch จะมีการตรวจสอบค่า “MAC Address” ของ Workstation หรือ Server ที่ต่ออยู่ที่พอร์ตนั้นๆ ว่าต้องการจะติดต่อไปยังปลายทางที่พอร์ตใด Switch ก็จะจัดการให้ต้นทางกับปลายทางเชื่อมต่อกันโดยข้อมูลจะไม่ถูกส่งไปยังพอร์ตอื่นที่ไม่เกี่ยวข้อง หาก Hacker ใช้ Sniffer จับข้อมูลโดยต่อเข้ากับพอร์ตใดพอร์ตหนึ่งของ Switch เจ้าโปรแกรม Sniffer ก็จะไม่สามารถมองเห็นข้อมูลได้เหมือนกับสภาวะแวดล้อมที่เป็น Hub
ที่บอกว่าถูกเพียงครึ่งเดียวก็เพราะว่าเทคโนโลยีสมัยใหม่ของพวก Hacker และโปรแกรม Sniffer นั้น สามารถทำงานในสภาวะแวดล้อมที่ใช้ Switch แทน Hub ได้ โดยใช้เทคนิค “MIM” หรือ “MITM” ย่อมาจาก “Man In The Middle Attack” ซึ่งมีการทำการปลอม “MAC Address” หลอกเครื่องต้นทาง,เครื่องปลายทาง และ Switch ให้เข้าใจผิดว่าเครื่องของ Hacker ที่กำลังรันโปรแกรมประเภท Sniffer ดักข้อมูลเราอยู่นั้นเป็นเครื่องต้นทางและปลายทางที่กำลังติดต่อกันอยู่ เทคนิคนี้เรียกว่า “ARP Spoofing” และ “ARP Poisoning” โปรโตคอล TCP/IP นั้นมีช่องโหว่อยู่ที่หลักการ ARP นั้นไม่ได้มีการป้องกันด้าน Security ที่ดีพอ ทำให้ Hacker สามารถป้อนค่า MAC Address ปลอมมาหลอกเครื่องของเราเมื่อไรก็ได้โดยที่เราไม่รู้ตัวและ Switch ที่ไม่ได้ถูกโปรแกรมในลักษณะ “Port Security” ก็จะไม่สามารถที่จะแก้ปัญหา ARP Spoofing และ ARP Poisoning ได้
ด้วยหลักการนี้ Hacker จึงสามารถมองเห็นข้อมูลสำคัญๆของเราเช่น User Name และ Password จากการที่เราเข้าเล่น Web หรืออ่านอีเมล์ได้อย่างสบายๆ เพราะข้อมูลไม่ได้เข้ารหัสอยู่แล้ว ถ้าเราใช้ VPN (Virtual Private Network) ก็สามารถที่จะแก้ปัญหานี้ได้ บางคนก็ใช้ SSH (Secure Shell) แทน Telnet ซึ่ง Traffic เป็นลักษณะ “Plain Text” โดยตัว SSH โปรโตคอลจะทำการเข้ารหัสข้อมูลของเราไว้ไม่ให้ Hacker มองเห็นได้ง่ายๆ ( Cipher Text ) ตลอดจน Web Traffic ที่ใช้ HTTP ก็เปลี่ยนเป็น HTTPS โดยมีการใช้ SSL (Secure Socket Layer) โปรโตคอลมาเข้ารหัสข้อมูลให้เป็น “Cipher Text” ที่ Hacker ไม่สามารถอ่านได้เป็นต้น แต่ข่าวร้ายก็คือด้วยเทคนิคของโปรแกรม Sniffer บางตัวเช่นโปรแกรม dsniff ของ Dug Song (เข้าไปดูได้ที่ www.monkey.org/~dugsong/dsniff มีความสามารถในการดักจับข้อมูลที่ใช้ SSH และ SSL ได้ โดยจะโปรแกรมแอบดูข้อมูลมาให้อย่างครบชุด เช่นurlsnarf, mailsnarf, filesnarf และ webspy เป็นต้น โดยโปรแกรมจะดักจับเฉพาะ Username และ Password เป็นหลัก ถ้าเราใช้ Switch อยู่ โปรแกรม dsniff ก็สามารถดักจับข้อมูลได้โดยใช้เทคนิค ARP spoof, DNS spoof และ Macof สำหรับโปรแกรมที่ใช้จัดการกับ SSH และ HTTPS ก็คือโปรแกรม sshmitm และ webmitm
โปรแกรม dsniff ถือว่าเป็นโปรแกรมที่ค่อนข้างจะอันตรายมากถ้ามาใช้ในระบบ LAN ของเรา และอาจทำให้ Switch ของเรา Hang ได้ จะเทคนิค ARP spoofing และ ARP poisoning ดังนั้นเราควรระมัดระวังการใช้งานโปรแกรมประเภทนี้ โปรแกรม dsniff ปกติจะทำงานบน UNIX Platform โดยเฉพาะ Linux แต่ถ้าเราใช้ Windows อยู่แล้วอย่างลองเล่นดู ให้ไปที่ http://www.datanerds.net
/~mike/dsniff.html จะมีโปรแกรมที่เป็น win32 ให้เราเล่นบน Windows แต่เราต้องติดตั้ง Library ของห้องวิจัย Lawrence Berkeley เสียก่อน จาก web site:http://ee.lbl.gov ชุด Library “libpcap” บน Unix และ “winpcap” บน Windows จาก web site http://netgroup-serv.
polito.it/winpcap
เป็นรากฐานของโปรแกรมประเภท Sniffer ส่วนใหญ่ที่ทำงานบน Unix และโปรแกรมจาก Sniffer ที่พอร์ตจาก Unix มาทำงานบน Windows Library “libpcap” , “winpcap” เป็นพื้นฐานของโปรแกรมประเภท Sniffer ที่ Hacker นิยมใช้เช่น tcpdump (http://www.tcpdump.org และ windump (http://windump.polito.it ) ตลอดจนยังเป็นพื้นฐานของโปรแกรมประเภท IDS (Intrusion Detection Systems) ด้วย เช่น snort จาก http://www.snort.orgเป็นต้น
วิธีการป้องกันก็คือ เราควรจะเข้ารหัสข้อมูลที่เป็น Plain Text ของเราเสียก่อนโดยใช้เทคนิค VPN เช่น IPsec ในการเข้ารหัสใน Layer-3, ระบบ DNS ก็ใช้ DNSSEC ป้องกัน DNS spoof Redirection สำหรับข้อมูลใน Layer-2 นั้นเราสามารถใช้ความสามารถของ Switch ที่เรียกว่า “Port Security” ในการโปรแกรมให้ Switch จำค่า MAC Address ที่เรากำหนดให้เท่านั้นกับพอร์ตของ Switch เรียกว่า “Static ARP Entries” เพื่อป้องกัน ARP spoof Redirection แต่เราอาจจะพบกับความไม่สะดวกบ้าง เพราะพอร์ตของ Switch นั้นก็จะถูกบังคับให้ต้องติดกับ MAC Address ที่เรากำหนดเท่านั้น ในกรณีที่มีการเปลี่ยน LAN Card ก็จะต้องโปรแกรมSwitch กันใหม่
อีกวิธีหนึ่งก็คือการตรวจจับว่ามีโปรแกรม Sniffer อยู่ในระบบของเราหรือไม่ นอกจากการตรวจที่ตัวเครื่องโดยใช้โปรแกรมจาก www.chkrootkit.org หรือ การตรวจค่า Integrity โดยใช้โปรแกรม Tripwire (จาก www.tripwire.com หรือwww.tripwire.org) เราสามารถใช้โปรแกรมตรวจจับลักษณะการทำงานของ LAN Card ของเครื่องที่ Sniffer ทำงานอยู่ใน “Promiscuous Mode”ได้ เช่น Antisniff ของ www.atstake.com และโปรแกรม PromiScan ของwww.securityfriday.com เป็นต้น
นอกจากนี้ยังมีโปรแกรมเช่น arpwatch จากห้องวิจัย Lawrence Berkeley ดูที่http://www-nrg.ee.lbl.gov arpwatch จะทำการตรวจสอบ ARP Mapping ในระบบ LAN ของเราว่าโดน ARP spoof หรือไม่ โปรแกรม IDS บางตัวเช่น RealSecure ของ ISS.net หรือ NFR สามารถที่จะตรวจจับลักษณะการใช้เทคนิค DNS Spoof หรือเทคนิค TCP RST หรือ ACK Floods ได้เช่นกัน
สรุปได้ว่าตอนนี้เราคงต้องหันมาตรวจสอบระบบเราว่าโดยการทำ “Penetration Test” ดูว่ามีความปลอดภัยจากโปรแกรมประเภท Sniffer แค่ไหน ในแง่มุมของด้าน Information Security นั้น ภัยจาก Sniffer เราเรียกว่าเป็น “The Real Threat” หมายถึง เป็นภัยที่น่ากลัวเพราะ Hacker มาอยู่ในระบบของเรา แอบดูข้อมูลเราแต่เราไม่รู้ตัวนั่นเอง
ในฉบับหน้า ผมจะกล่าวถึงเทคนิคขั้นสูงของพวก Hacker อื่นๆอีกที่เราควรจะทราบเพื่อที่จะได้ป้องกันระบบของเราต่อไปนะครับ รายละเอียดเพิ่มเติมเข้ามาดูได้ที่www.acisonline.netหรือติดต่อผมได้ที่ สวัสดีครับ
จาก : หนังสือ eWeek Thailand
Update Information : 20 กรกฎาคม 2545