Dectecting Sniffers On You Network

วิธีตรวจหา sniffer ในเน็ตเวิร์คของคุณ
sniffer เป็นซอฟท์แวร์หรือฮาร์ดแวร์ที่เฝ้าดูการติดต่อสื่อสารที่ผ่านไปมาระหว่าง เน็ตเวิร์คทุกอย่าง ไม่เหมือนกับเครื่องมือเฝ้าดูเน็ตเวิร์คทั่วไปที่จะเฝ้าดูเพียงการติดต่อ สื่อสารที่ส่งไปมากับเน็ตเวิร์คอย่างชัดแจ้งเท่านั้น

ซอฟท์แวร์ sniffer เป็นสามาถทำความเสียหายให้กับเน็ตเวิร์คนั้นได้อย่างแท้จริง ในสมัยก่อน sniffer ใช้ ฮาร์ดแวร์ที่มีขนาดใหญ่ซึ่งต่อเข้ากับเน็ตเวิร์คและเฝ้าดูการติดต่อสื่อสาร ที่ผ่านไปมาในเน็ตเวิร์ค แต่ในปัจจุปัน sniffer เป็นเพียงซอฟท์แวร์ง่าย ๆ ที่สามารถทำงานได้บนยูนิกซ์ ลีนุกซ์ หรือแม้แต่วินโดวส์

สิ่งที่ sniffer สามารถทำความเสียหายให้กับเน็ตเวิร์คคือ มันสามารถดักจับการสื่อสารที่กำลังดำเนินอยู่ รวมถึง รหัสผ่านและข้อมูลที่มีความสำคัญ

โดยทฤษฏีแล้ว sniffer จะไม่สามารถหาเจอได้ ไม่แสดงตัวให้เห็น และทำงานเพียงแต่ดักจับข้อมูลเท่านั้น อย่างไรก็ตาม เป้าหมายของมักจะเป็นเครื่องที่ใช้ยูนิกซ์หรือลีนุกซ์ (เพราะง่ายสำหรับการเซ็ตอัป sniffer) จึง มีวิธีที่จะหา sniffer ที่กำลังรันอยู่ในเครื่องที่ใช้ลีนุกซ์โดยทั่วไป

วิธีการตรวจสอบว่าเครื่องของคุณกำลังรัน sniffer อยู่เหรือไม่

ถ้าเครื่องของคุณใช้ยูนิกซ์ ผู้โจมตีที่สามารถได้สิทธิ์ของ root สามารถรัน sniffer เพื่อให้สามารถเข้าถึงเน็ตเวิร์คได้มากขึ้น ( เช่นเพื่อให้ได้รหัสผ่านของโฮสต์อื่นในเน็ตเวิร์ค) การตรวจหาโปรเซสที่รัน sniffer นั้น ยากเพราะชื่อของโปรเซสสามารถซ่อนในชื่อซึ่งดูไม่มีอันตรายได้ นอกจากนี้ยังอาจโปรแกรมที่เกี่ยวข้อง ที่มีโทรจันฮอร์สอยู่ในโปรแกรมได้ด้วย (ในกรณีนี้ผู้โจมตีไม่จำเป็นต้องมีสิทธิ์ของ root ในเครื่องนั้น เพียงแต่ ใส่โทรจันไว้ในโปรแกรมแล้วรอให้ผู้บริหารระบบรันมันเท่านั้นเอง)

เพียง วิธีเดียวที่สามารถตรวจหา sniffer คือ การตรวจดูว่า network interface อยู่ใน promiscuous mode หรือไม่ ซึ่งหมายความว่ามันดักจับการสื่อสารทั้งหมดในเน็ตเวิร์คทั้งหมดไม่เพียงแต่ การสื่อสารที่มีปลายทางที่เครื่องนั้นเท่านั้น

เครื่องที่ใช้ยูนิกซ์ไม่ควรอยู่ในโหมด promiscuous ถ้าไม่มีเหตุจำเป็นจริง ๆ ดังนั้นเครื่องที่อยู่ใน promiscuous mode จึงเป็นเครื่องบ่งชี้ว่ามี sniffer รันอยู่ที่นั่น

มีโปรแกรมหนึ่งที่สามารถตรวจได้ว่า network interface อยู่ใน promiscuous หรือไม่คือ CPM (check Promiscuous Mode) ของ Carnegie Mellon University อีกวิธีการหนึ่งคือการใช้คำสั่ง: ifconfig -a ซึ่งจะบอกถึง network interface ที่มีทั้งหมดและแสดงข้อมูลเกี่ยวกับมันทั้งหมด คำว่า PROMISC หมายถึง network interface นั้นอยู่ใน promiscuous mode ถ้าใช้คำสั่ง: ifconfig -a | grep PROMISC จะแสดงผลออกมาให้เห็นถ้า network interface อยู่ใน promiscuous mode (สามารถประยุกต์ใช้ใน cron เพื่อตรวจเป็นรายชั่วโมง หรือรายวันเพื่อหา sniffer ที่กำลังรันอยู่)

ข้อควรสังเกตคือบางครั้งโปรแกรม ifconfig จะถูกเปลี่ยนแปลงโดยผู้โจมตีเพื่อไม่ให้ตรวจพบ sniffer จึงควรใช้โปรแกรม checksum (หรือ MD5 signature) เพื่อทำหลักฐานไว้ให้แน่ใจว่าโปรแกรมนี้จะไม่ถูกเปลี่ยนแปลงไป

วิธีการตรวจหา sniffer ที่อยู่ในเครื่องอื่นในเน็ตเวิร์ค วิธีการตรวจหานี้ยากมาก(และบางครั้งก็เป็นไปไม่ได้) แต่การตรวจดูว่าเครื่องที่ใช้ลีนุกซ์นั้นมี sniffer ที่กำลัง รันอยู่หรือไม่มีวิธีที่สามารถทำได้โดยการใช้ประโยชน์จากจุดอ่อน ในการดำเนินการเกี่ยวกับ TCP/IP stack ของลีนุกซ์

ถ้าเครื่องที่ใช้ลีนุกซ์เครื่องนั้นอยู่ใน promiscuous mode มันจะตอบ TCP/IP packet ที่ถูกส่งถึง IP ของมันถึงแม้ว่า MAC address ของ packet นั้นจะผิดก็ตาม (โดยปกติ packet ที่มี MAC address ที่ผิดจะไม่รับคำตอบเพราะ network interface จะไม่สนใจมัน)

ดังนั้นการส่ง TCP/IP packet ไปยังทุก ๆ IP address ที่อยู่ใน subnet นั้นโดยให้ MAC address ที่ผิด ก็จะสามารถบอกคุณได้ว่าลีนกซ์เครื่องใดที่อยู่ใน promiscuous mode (คำตอบจากเครื่องเหล่านี้จะเป็น RST packet) ถึงแม้ว่าวิธีนี้จะไม่เป็นวิธีที่ตรวจสอบได้อย่างแน่นอนแต่ก็สามารถตรวจหากิจกรรมที่น่าสงสัยในเน็ตเวิร์คได้

วิธีหลีกเลี่ยงจากการถูกดักจับ packet จาก sniffer

Active hubs จะส่งข้อมูลไปยังเป้าหมายที่ต้องการเท่านั้น วิธีนี้สามารถป้องกัน sniffer ได้เนื่องจากมันไม่สามารถรับ packet ที่ไม่ตั้งใจส่งไปยังเครื่องที่ต้องการ Cisco, HP และ 3Com มีผลิตภัณฑ์ที่ใช้ Active hubs

ยูทิลิตี้อื่น ๆ

CPM (ตรวจว่าเครื่องนั้นอยู่ใน promicuous หรือไม่) ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/

โปรแกรม AntiSniff และ Neped เป็นเครื่องมือที่ดีเยี่ยมสำหรับการตรวจหา sniffer ในเน็ตเวิร์คนั้น Sniffer Utilities

เขียนโดย Pom infosec.sran.org 02/2544

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License