วันพุธที่ 20 สิงหาคม พ.ศ. 2551

เรื่องราวของ Netcut


เรื่องราวของ Netcut
เมื่อมีคนใช้โปรแกรมนี้ก่อกวนเราจะทำอย่างไร?

ก่อนอื่นมาวิเคราะห์หาสาเหตุกันก่อน
Netcut ใช้หลักการ arp spoofing (หรือแหลงภาษาบ้าน ๆ ก็คือ การปลอม MAC address นั่นเอง)
cracker สามารถใช้ net cut ในการปลอมแปลง MAC address โดยการส่ง ARP Reply ไปบอก router ว่า MAC เครื่องเรา มี IP เป็นของเครื่อง cracker (พูดง่าย ๆ ก็คือ ไปขโมย MAC addr จากเครื่องเรามาใช้) นั่นก็แสดงว่า เฟรมที่ถูกส่งมาจาก Router ด้วย MAC addr เรา ก็จะวิ่งไปยัง IP ที่ cracker ได้ไป Map ไว้ใหม่กับ MAC addr ของเรา การกระทำเช่นนี้ เราเรียกเป็นศัพท์เท่ห์ (แต่อย่าทำนะครับ) ว่า Man-in-the-middle attack ครับ

และ cracker ไม่จำเป็นต้องทำเช่นนั้นเสมอไป เพราะ cracker สามารถเปลี่ยน MAC addr ของเราไปเป็น IP อื่น ๆ ซึ่งอาจจะไม่ได้เชื่อมต่อในระบบเครือข่าย หรือ เปลี่ยน MAC addr ของ Default Gateway เราให้มีค่าไม่ถูกต้อง ทำให้ เราไม่สามารถใช้งาน internet ได้นั่นเอง

ที่เขียนอย่างนี้ ไม่ได้หมายความว่า cracker สามารถมาแก้ข้อมูลใน ARP cache ของเรา โดยตรง แต่ cracker อาศัยหลักการทำงานของ Ethernet ว่า ก่อนที่ใครจะส่งข้อมูลก็จะต้องมีการถาม MAC addr ก่อน เช่น เครื่องเรา ต้องการติดต่อไปที่ www.google.com แน่นอน ว่า เมื่อถาม Routable มันก็ต้อง route ไปที่ IP ของ Gateway เครื่องเรา แต่ถ้าเครื่องเราไม่ได้ กำหนด MAC addr ไว้เป็นแบบ static เครื่องเราก็จะ broadcast message โดย ARP Request ไปถามในระบบเครือข่ายว่า IP Gateway ที่ กำหนดไว้ในเครื่องเราตรงกับ MAC addr ของใคร ถ้าในเหตุการณ์ปรกติ เครื่อง Router ก็จะส่ง ARP Response ตอบข้อความให้กับเรา แล้วเราก็นำ MAC addr ตัวนั้นไปเก็บใน ARP cache และส่งข้อมูลผ่านไปยัง Router แต่ ถ้ามีเครื่อง cracker ที่ run netcat ไว้ มันก็จะพยายามแย่งตอบ MAC addr ของ Router ที่ผิด ๆ มาให้เครื่องเรา register ใน ARP cache ทำให้ เครื่องเรา ส่งข้อมูลผ่านไปยัง IP ที่ผิด ๆ นั้นไป และ ไม่สามารถส่งข้อมูลออกไปยังระบบเครือข่ายข้างนอกได้ครับ ( จริง ๆ แล้วต้องบอกว่าส่งได้ แต่มัน Route ไปผิดที่มากกว่า )

โปรแกรมนี้ ใช้งานได้กับ อุปกรณ์ทุกตัวที่มี MAC addr รวมไปถึง Switch ต่าง ๆ ด้วยครับ

ดังนั้นวิธีป้องกัน มีดังนี้
- Block ด้วย Firewall ไม่ให้ ping ได้ , ไม่ให้ scan port ได้ หรือ ที่มันฉลาดพอที่จะป้องกัน arp cache ของเราได้
- กำหนด MAC ให้เป็นแบบ static จะได้ไม่โดนเปลี่ยน
Windows:
c:\> arp -a [ เพื่อตรวจสอบดูว่า gateway เรา มีค่า MAC addr เป็นอะไร ต้องทำก่อนที่จะโดน netcut นะครับ ]
c:\> arp -s 192.168.193.xxx 00-0f-8f-2a-dc-xx
[ เพื่อ เพิ่ม MAC ADDR 00-0f-8f-2a-dc-xx ที่ match กับ IP 192.168.193.xxx เป็นแบบ static ]
c:\> arp -a [ เพื่อตรวจสอบดูค่า MAC addr อีกครั้ง ]
ถ้าโดน netcut เล่นงานไปแล้ว ให้สั่ง arp -d เพื่อลบ MAC addr เก่าที่ผิดไปก่อน
เพิ่มเติม arp /?

Linux:
# arp -a
# arp -i eth0 -s 192.168.193.xxx 00-0f-8f-2a-dc-xx
# arp -anv เพิ่มเติม #man arp

- run anti-netcut โปรแกรมนี้ ผมเดาเอาว่ามันน่าจะใช้วิธีแข่งกัน update ARP response กับ netcut เพื่อไม่ให้ใช้ค่า MAC addr ที่ผิด ๆ ไป พอแข่งกันยิง ARP มันก็ทำให้ Traffic jam มากกว่าเดิม แถมต้องเสียเวลา CPU กับ RAM ไปในสิ่งที่ไม่ควรจะเสียอีกด้วย

run netcut ทำเพื่ออะไร?
- เพื่อทดสอบการทำงานของ ARP Protocol [ดี]
- เพื่อต้องการใช้ Bandwidth คนเดียว โดยการปลอม MAC addr ของ Router ที่ผิดไปบอกชาวบ้านในวง LAN ทำให้ ไม่มีใครสามารถใช้งานระบบเครือข่ายข้างนอกได้ เนื่องจาก cracker รู้ MAC addr ของ Router จริง ๆ เพียงผู้เดียว [ไม่ดี]

วิธีหาผู้ร้าย
ให้ run โปรแกรมพวก sniffer ต่าง ๆ เช่น Wireshark (คิดว่าคงได้ลง Lab กันไปแล้ว) แล้วสังเกตว่าเครื่องไหน broadcast arp packet เยอะผิดปรกติ ก็ตั้งสมมุติฐานไว้ได้เลยครับหรือ ถ้าเครื่องไหน มี MAC addr หลาย ๆ ตัว ที่ จับคู่กับ IP ตัวเดียว ก็เครื่องนั้นแหละ Netcut run อยู่แน่ ๆ

วิธีแก้ปัญหา
หากจับได้ว่าใคร แอบ Run Netcut อย่าคิดไปทำกลับครับ (ไม่มีประโยชน์) ให้ Capture หน้าจอนั้นไว้แล้วส่ง Mail ไปฟ้องผู้ดูแลระบบให้ลงโทษกับคนที่ประพฤติตัวเช่นนี้ครับ

พระราชบัญญัติ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. ๒๕๕๐ที่เกี่ยวข้องกับโปรแกรม Netcut
มาตรา 10 ผู้ใดกระทำด้วยประการใดโดยมิชอบ เพื่อให้การทำการของระบบคอมพิวเตอร์ของผู้อื่นถูกระงับ ชะลอ ขัดขวาง หรือ รบกวนจนไม่สามารถทำงานตามปกติได้ต้องระวางโทษจำคุก ไม่เกินห้าปี หรือปรับไม่เกินหนึ่งแสนบาท หรือ ทั้งจำทั้งปรับ

ไม่มีความคิดเห็น: