ThaiCERT: Thai Computer Emergency Response Team
ศูนย์ประสานงานการรักษาความปลอดภัยคอมพิวเตอร์ ประเทศไทย 
 
 
 

ชื่อเรื่อง : Sniffing FAQ
เรียบเรียงโดย :
ร.อ. วิวัต เรืองมี
เรียบเรียงเมื่อ :
17 สิงหาคม 2544

1.เบื้องต้น

Q: อะไรคือ “sniffer”
A: sniffer คืออุปกรณ์ที่ต่อเข้ากับเครือข่ายคอมพิวเตอร์และคอยดักฟังข้อมูลในเครือข่ายและโปรแกรม “sniffer” เป็นโปรแกรมที่จะคอยดักฟังการสนทนากันของเครือข่าย แต่จะเห็นการสนทนากันนั้นจะเป็นข้อมูลไบนารี ดังนั้นโปรแกรมดังกล่าวต้องทำการถอดรหัสของข้อมูลของคอมพิวเตอร์ เพื่อจะให้รู้ถึงการสนทนานั้นได้

Q: “sniffer” ถูกนำมาใช้ในด้านไหน
A: มีการนำ sniffing program มาใช้เป็นเวลานานแล้ว และลักษณะการใช้จะแบ่งเป็น 2 ประเภทคือ sniffer เชิงพานิชย์ ซึ่งใช้ในการดูแลเครือข่ายและ sniffer ซ่อนเร้น ซึ่งใช้ในการโจมตีหรือบุกรุกคอมพิวเตอร์ โดยปกติการใช้งานโปรแกรมพวกนี้ ได้แก่

Q: มีจุดใดบ้างบนอินเตอร์เน็ตที่ท่านสามารถเห็น traffic ทั้งหมด
A: ไม่มี การเชื่อมต่อของอินเตอร์เน็ตจะคล้ายกับตาข่ายจับปลา จะไม่มีจุดใดเลยที่จะสามารถเห็น traffic ได้ทั้งหมด

Q: sniffing/wiretap ทำงานอย่างไร ?
A: Ethernet ถูกสร้างขึ้นมาบนกฎของการใช้ร่วมกัน นั่นคือคอมพิวเตอร์ทุกเครื่องบน local network จะใช้ Ethernet wire เดียวกัน ฮาร์ดแวร์ของ Ethernet ถูกสร้างมาด้วย “ตัวกรอง” ที่จะไม่น่าสนใจ traffic ที่เป็นของคนอื่น ซึ่งทำได้โดยจะไม่สนใจเฟรมที่มี MAC address ไม่ตรงกับของตนเอง แต่โปรแกรม sniffing หรือ wiretap จะตัดตัวกรองนี้ออกไป ทำให้ฮาร์ดแวร์อยู่ใน “โหมดสำส่อน” (promiscuous mode)

Q: ท่านจะดักฟังการเชื่อมต่อของคนสองคนโดยที่ไม่ได้เข้าใช้ wire ของเขา หรือไม่ ?
A: ไม่ได้ ท่านต้องสามารถเข้าถึง wire นั้นได้จึงจะสามารถลอบดักฟังได้


2. ท่านสามารถปกป้องตัวเองจาก sniffers ได้อย่างไร ?

Q: ท่านจะหยุดการดักฟังข้อมูลของท่านได้อย่างไร
A: ในขณะที่ท่านสามารถทำการปรับแต่ง local network ทำให้การดักฟังยากขึ้น แต่ท่านไม่สามารถที่จะหยุดการดักฟังข้อมูลของท่านจากอินเตอร์เน็ตได้ วิธีการป้องกันตัวเองที่ดีที่สุดคือ การเข้ารหัสข้อมูลเพราะถึงแม้ hacker จะดักฟังข้อมูลท่านได้ แต่ก็อ่านข้อมูลนั้นไม่ได้ ซึ่งทางเทคนิคการเข้ารหัสข้อมูลได้แก่

Q: ท่านจะหยุดการดักฟังรหัสผ่านของท่านได้อย่างไร
A: การเข้ารหัสข้อมูลก็เป็นวิธีหนึ่งที่จะทำให้การรับรองผู้ใช้ปลอดภัยและวิธีอื่น ๆ ได้แก่

Q: ท่านจะปรับแต่ง local network เพื่อให้การลอบดักจับข้อมูลยากขึ้น ได้อย่างไร ?
A: วิธีง่ายและมีประสิทธิภาพคือ ใช้ switch แทน hub แต่ก็ไม่ใช่วิธีที่จะป้องกันการลอบดักจับข้อมูลได้ทั้งหมด เนื่องจาก switch อาจจะสร้าง “broadcast domain” ทำให้ผู้โจมตีสามารถทำการ spoof ARP packets ได้ ซึ่งทำได้โดยการทำ “router redirecion” โดยปกติ ARP queries ประกอบด้วย IP-to-MAC mapping ของผู้ส่ง และเพื่อที่จะต้องการลด ARP traffic เครื่องโดยส่วนใหญ่จะทำการ cache ข้อมูลที่อ่านเข้ามาจาก broadcast ดังนั้นผู้โจมตีสามารถทำการ redirect เครื่องให้ทำการส่งข้อมูลผ่านเครื่องของเขาด้วยการส่ง ARP packet ที่ประกอบด้วย IP address ของ router ที่ถูก mapped เข้ากับ MAC address ของเขา ทำให้ทุก ๆ เครื่องที่อยู่บน wire นั้น เข้าใจว่า hacker นั้นเป็น router และเครื่องเหล่านั้นก็จะส่งข้อมูลผ่านเขา แต่ยังไงก็ตามการนำระบบตรวจจับการบุกรุก (IDS) มาใช้สามารถที่จะตรวจจับเหตุการณ์ลักษณะนี้ได้ Ethernet adapter โดยส่วนใหญ่จะอนุญาตให้มีการปรับแต่ง MAC address ได้ ดังนั้น hacker สามารถทำการ spoof MAC address โดยการกำหนด address ใหม่ให้กับ adapter หรือโดยการ bypass stack และจัดสร้าง frame แต่ hacker ก็จะต้องรักษา stream ของ frames ให้คงที่เพื่อที่ให้ switch มั่นใจว่าเขาเป็นเจ้าของ MAC Address นั้น

Q: ท่านสามารถหาซื้อ adapter ที่ไม่สนับสนุน sniffing ได้หรือไม่
A: ไม่มี แต่อาจจะมีสำหรับ adapter รุ่นเก่า ซึ่งไม่สนับสนุน “promiscuous mode ” อันได้แก่ IBM Token Ring adapter ซึ่งจะไม่ทำงานใน promiscuous mode และอาจยังมี Ethernet adapter บางตัวที่ promiscuous mode ไม่ทำงาน อันเนื่องมาจาก hardware หรือ driver

Q: ท่านตรวจจับ sniffer ได้อย่างไร ?
A: ในทางทฤษฎีแล้ว ไม่มีทางเป็นไปได้เลยที่จะทำการตรวจจับ sniffing programs เนื่องจากการทำงานของ sniffer เป็นแบบ passive กล่าวคือ จะคอยรับ packets อย่างเดียวไม่มีการส่งออก แต่ในทางปฏิบัติแล้วมีความเป็นไปได้บ้างที่จะตรวจจับ sniffer

Sniffer ที่เป็นแบบ stand–alone จะไม่ส่ง packet ใด ๆ แต่ถ้าเป็น non-standalone แล้ว sniffer จะมีการผลิต packet ออกมา เช่น sniffer อาจจะส่ง DNS reverse lookup เพื่อค้นหาชื่อของ IP address ใดๆ แต่ sniffer ที่ท่านต้องการตรวจจับ คือ ที่เป็นแบบ stand–alone เมื่อ cracker/hacker บุกรุกหรือเจาะเข้าสู่เครื่อง พวกเขามักจะติดตั้ง sniffer ไว้ ท่านต้องการที่จะตรวจจับ sniffer ที่ถูกติดตั้งไว้ในเครื่องนั้น ๆ

วิธีของการตรวจจับ

1. ping method
sniffer ส่วนใหญ่จะรันอยู่บนเครื่องที่ใช้ TCP/IP stack ปกติ นั้นหมายความว่า เมื่อท่านส่ง request ไปยังเครื่องนั้น เครื่องนั้นก็จะส่ง response กลับมาแต่แทนที่ท่านจะส่ง request ไปยัง Ethernet adapter ให้ส่งไปยัง IP address ของเครื่อง

     

2. ping method (ภาค 2)
ท่านสามารถเพิ่มประสิทธิภาพของ ping method ได้หลายวิธี กล่าวคือ

3. ARP method
วิธีนี้คล้ายกับ ping method แต่จะใช้ ARP packet แทน วิธีง่ายที่สุดของ ARP method คือ การส่ง ARP ไปยัง non-broadcast address ถ้าเครื่องนั้นตอบสนองต่อ ARP ด้วย IP address ของเครื่องแสดงว่าอยู่ใน promiscuous mode

4. DNS method
โปรแกรม sniffer ส่วนมากจะกระทำ revers-DNS lookup โดยอัตโนมัติต่อ IP address ที่มันเห็น ดังนั้นท่านสามารถตรวจจับ promiscuous mode ได้โดยการสังเกตุ DNS traffic ท่านอาจใช้วิธีนี้เป็นแบบ remote ได้ กล่าวคือ ท่านต้องการเฝ้าตรวจ inverse-DNS lookup ที่เข้ามายัง DNS server ให้ท่านทำการ ping sweep ไปยังเครื่องใด ๆ ที่ไม่ปรากฎอยู่ในองค์กร ถ้าหากมีเครื่องใดทำการ reverse DNS lookup ต่อ IP address ที่เห็นใน ARP packet แสดงว่าเครื่องนั้นกำลัง sniffing อยู่

วิธีนี้ยังใช้ได้กับเครื่อง localโดยให้เครื่องที่เป็นเครื่องตรวจจับเป็น promiscuous แล้วส่ง IP datagram ออกไปยัง address ที่ไม่ปรากฎอยู่จริงและคอยสังเกตุดู reverse-DNS lookup

5. source-router method
เป็นอีกวิธีหนึ่งซึ่งเกี่ยวข้องกับการปรับแต่ง source-router info ใน IP header ซึ่งวิธีนี้สามารถตรวจจับ sniffer ที่อยู่ต่าง segment ได้

6. decoy method
ในขณะที่ ping และ ARP method ใช้ได้ใน local network เท่านั้น แต่ decoy method จะใช้ได้ทุก ๆ ที่ เนื่องจากหลาย ๆ protocol จะยอมให้มีการให้รหัสผ่านที่เป็น “plain text” และ hacker จะทำการดึงรหัสผ่านนั้นจาก wire นี่คือ จุดเริ่มต้นของการใช้ decoy method

อันดับแรก คือ การสร้าง client และ server บนเครือข่าย ซึ่ง client จะทำการใช้ script เพื่อเข้าสู่ server โดยการใช้ Telnet,POP,IMAP หรืออื่น ๆ

โดยที่ท่านต้องสร้าง account ขึ้นที่ server แต่ account นั้นเป็นแค่ตัวหลอก เมื่อ hacker ได้ user name /password เขาก็จะพยายาม logon โดยใช้ user names และ password นี้ และท่านใช้ IDS ในการตรวจจับเหตุการณ์นี้และแจ้งเตือนเมื่อ hacker ได้พยายามใช้ข้อมูลนี้

7. host method
เมื่อใดที่ hacker เจาะเข้าสู่ระบบของท่าน เขามักจะติดตั้ง sniffer ให้ทำงานเป็น background และคอยดักจับ user name และ password บ่อยครั้งที่โปรแกรมนี้ทำงานอยู่หรือไม่ โดยการสอบถามไปยัง interface ว่ากำลังทำงานใน promiscuous mode หรือไม่ โดยใช้คำสั่ง

“ifconfig – a ”

แน่นอนว่า สิ่งแรกที่ hacker จะทำคือการติดตั้งโปรแกรมแทน “ifconfig” ดังนั้นท่านอาจจะใช้เครื่องมืออื่น ๆ เพื่อหาข้อมูลดังกล่าวหรือท่านอาจจะทำการรัน “ifconfig” จาก CD-ROM โดยตรง



Home || เอกสารเผยแพร่ || IDS

ThaiCERT Disclaimer | Copyright © 2001 ThaiCERT(NECTEC). All rights reserved.