ArpON: ARP Poisoning Protection
Submitted by neutron on 13 August, 2009 – 02:18. ARP ArpON networking Poisoning Protection
ฝันร้ายของ admin ในระบบเครือข่าย อย่างหนึ่งที่เจอกันบ่อย ๆ คือ ARP poisoning หรือที่คนทั่วไปรู้จักกันในชื่อ NetCut ซึ่งปัญหานี้ เป็นช่องโหว่ของระบบเครือข่าย ซึ่งรู้โดยทั่วกันว่า หาทางแก้ได้แบบเด็ดขาดลำบากมาก เนื่องจากทางแก้ที่สมบูรณ์นั้น ต้องได้รับความร่วมมือจากผู้ใช้ด้วย
ARP poisoning หรือ ARP spoofing คือวิธีการโจมตีลักษณะหนึ่งในระบบเครือข่ายแบบ ethernet ไม่ว่าจะเป็นแบบ มีสายหรือไร้สาย โดยอาศัยช่องโหว่ของ ARP (Address Resolution Protocol) ซึ่งมีระบบความปลอดภัยต่ำมาก เนื่องจาก ARP เป็นโพรโทคอลที่คุยกัน และให้ความเชื่อถือข้อมูลที่ถูกส่งออกมาโดยไม่มีเงื่อนไขในการตรวจสอบที่มา และความน่าเชื่อถือของข้อมูลใด ๆ ทั้งสิ้น ซึ่งช่องโหว่นี้ เป็นที่มาของการปลอมข้อมูล (spoofing) เพื่อหลอกให้ชาวบ้านหลงเชื่อตามที่โกหก
ในการโจมตี เป้าหมายหลัก ๆ ที่พบบ่อย มีอยู่ 2 สาเหตุ คือ
การทำ Man-In-The-Middle (MITM) คือ การที่ผู้ก่อการร้าย หลอกให้ชาวบ้านหลงเชื่อว่า ตัวเองนั้น เป็นเครื่องเกตเวย์ของเครือข่าย เพื่อให้ส่งข้อมูลต่าง ๆ มาที่เครื่องของผู้ก่อการร้าย และหลังจากนั้น ผู้ก่อการร้ายจะส่งข้อมูลต่อไปยังเกตเวย์ที่แท้จริงต่อไป ในกรณีนี้ ผู้ใช้จะยังใช้งานได้เหมือนไม่มีอะไรเกิดขึ้น ยกเว้นว่า ผู้ใช้อยู่ในระบบที่มีการตรวจสอบที่มา IP + MAC address ซึ่งกรณีนี้ ระบบอาจจะตรวจพบว่า ผู้ใช้มีการส่งข้อมูลมาจากแหล่งที่ไม่ได้รับอนุญาต แต่หากว่า เครื่องที่ผู้ก่อการร้ายใช้นั้น ได้รับอนุญาตเช่นกัน ก็จะไม่เห็นความผิดปกติใด ๆ เกิดขึ้น
การทำ Denial-of-Service (DoS) หรือบางครั้งเรียกการทำ blackhole คือ การที่ผู้ก่อการร้าย หลอกให้ชาวบ้านหลงเชื่อว่า เครื่อง เกตเวย์อยู่ในที่ที่ไม่มีตัวตนจริงในระบบ หรือพูดง่าย ๆ คือ ส่ง MAC address ที่ไม่มีเครื่องใดเลยในระบบใช้อยู่ ผลที่ตามมาคือ ผู้ใช้ที่โดนหลอกด้วยการทำ blackhole จะไม่สามารถเชื่อมต่อกับเกตเวย์ของระบบได้ ทำให้ใช้งานเครือข่ายอินเทอร์เน็ตไม่ได้ หรือที่รู้จักกันในนาม NetCut
โปรแกรมสำหรับทำ ARP spoofing หาได้โดยทั่วไปในอินเทอร์เน็ต และถูกใช้โดยผู้ที่รู้เท่าไม่ถึงการณ์ (และผู้ที่รู้เท่า และถึงการณ์) อย่างแพร่หลาย จึงมีความพยายามที่จะป้องกันการโจมตีในลักษณะดังกล่าวในหลาย ๆ รูปแบบ ทั้งทางฮาร์ดแวร์และซอฟต์แวร์ ซึ่งรู้โดยทั่วกันว่า ฮาร์ดแวร์ที่มีความสามารถในการจัดการเรื่องนี้ มีราคาที่ค่อนข้างสูง ถึงสูงมาก สำหรับระบบเครือข่ายที่มีทุนทรัพย์จำกัด (ทั่วไปในประเทศไทย) นั้น ทางออกที่น่าสนใจ คงตกอยู่ที่ซอฟต์แวร์
ArpON “Arp handler inspectiON” – http://arpon.sourceforge.net เป็นซอฟต์แวร์ที่ถูกพัฒนาขึ้น เพื่อคอยตรวจสอบ และจัดการ ARP cache เพื่อให้เครื่องที่ใช้งาน ArpON ปลอดภัยขึ้นอีกระดับหนึ่ง ซึ่งเป็นการดี ที่จะติดตั้ง ArpON ไว้ที่เครื่องเกตเวย์ เพื่อที่จะป้องกันการถูกหลอกจากผู้ก่อการร้าย ซึ่งวิธีการติดตั้งเป็นดังนี้
สำหรับ Lenny (ArpON เป็นแพกเกจใหม่ ซึ่งเข้ามาใน repository หลังจากที่ Lenny release ออกไปแล้ว)
# cd /var/cache/apt/archives
# wget ftp://ftp.debianclub.org/debian/pool/main/a/arpon/arpon_1.90-1_amd64|i386].deb
ติดตั้ง ArpON
# dpkg -i arpon_1.90-1_[amd64|i386].deb ; apt-get -f install
สำหรับ Squeeze และ Sid
# apt-get install arpon
หลังจากติดตั้งเสร็จ จะต้องมีการตั้งค่า ที่ /etc/default/arpon ซึ่งในแฟ้มดังกล่าวจะมีตัวอย่างการตั้งค่าไว้ทั้งแบบ SARPI (Static ARP Inspection) และ DARPI (Dynamic ARP Inspection) ซึ่ง SARPI จะใช้กับระบบมีการ fix ค่า IP ส่วน DARPI จะใช้กับระบบที่ใช้ DHCP ซึ่งรายละเอียดสามารถอ่านเพิ่มเติมได้ที่เว็บไซต์ของ ArpON
การกำหนดค่าใน /etc/default/arpon
SARPI
DAEMON_OPTS=”-d -f /var/log/arpon/arpon.log -g -i eth0 -s”
DARPI
DAEMON_OPTS=”-d -f /var/log/arpon/arpon.log -g -i eth0 -y”
กำหนดค่าให้ ArpON ทำงาน
RUN=”yes”
สั่งให้ ArpON ทำงาน
# /etc/init.d/arpon start
ArpON “Arp handler inspection” version 1.90 (http://arpon.sourceforge.net)
[07/13/2009 - 01:35:22 ICT] Task is forking to background, using /var/run/arpon.pid pid file…
.
ซึ่งค่าตั้งที่กำหนดไว้ข้างบน เป็นการกำหนดว่า ให้ ArpON ตรวจสอบ ARP สำหรับอินเทอร์เฟซ eth0 หากต้องการตรวจสอบมากกว่า 1 อินเทอร์เฟซ สามารถกำหนดเพิ่มเติมได้ดังนี้
DAEMON_OPTS=”-d -f /var/log/arpon/eth0.log -g -i eth0 -s -f /var/log/arpon/eth1.log -g -i eth1 -y”
ซึ่งจะกำหนดให้
(-i) eth0 : (-s) SARPI ทำการ log ไปที่แฟ้ม (-f) /var/log/arpon/eth0.log
(-i) eth1 : (-y) DARPI ทำการ log ไปที่แฟ้ม (-f) /var/log/arpon/eth1.log
หลังจากที่ ArpON ทำงาน ก็จะตรวจสอบ ARP request/reply ให้ และคอยตรวจสอบความถูกต้องให้อยู่เสมอ ทำให้เครื่องที่เป็นเกตเวย์ปลอดภัยจาก ARP poisoning ในระดับหนึ่ง อย่างน้อยก็ป้องกันได้ “ครึ่งทาง”
ตรวจ ARP cache table จะพบ
# arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.1.1 ether 00:22:57:62:xx:xx CM eth0
Flags: CM แสดงให้เห็นว่า ArpON ทำการเพิ่ม 192.168.1.1:00:22:57:62:xx:xx เข้าไปใน ARP cache table แบบ manual ซึ่งหมายความว่า ระบบจะไม่เปลี่ยนแปลงค่านี้เองไม่ว่าจะมีการส่งค่าใด ๆ มาหลอกก็ตาม
แต่ทว่า การป้องกันเพียงข้างเดียว (ที่เกตเวย์) ไม่เพียงพอสำหรับการแก้ปัญหา ARP poisoning ต้องมีการแก้ที่ผู้ใช้ด้วย ซึ่งหากฝั่งผู้ใช้เป็น Linux, FreeBSD, NetBSD, OpenBSD and Mac OS X สามารถใช้ ArpON เพื่อป้องกันในลักษณะเดียวกับตัวอย่างนี้ได้ แต่หากผู้ใช้เป็น MS Windows แล้ว ต้องหาซอฟต์แวร์ที่ทำงานบน Windows เพื่อมาช่วยจัดการในลักษณะเดียวกัน ซึ่งโดยประสบการณ์ของผู้เขียน ยังให้ข้อสรุปไม่ได้ว่าซอฟต์แวร์ชุดไหนที่ทำงานบน Windows ได้ดี เนื่องจากไม่ค่อยได้ใช้ Windows ถ้า ArpON มีการพอร์ตให้ใช้กับ Windows ได้ก็คงจะดี
ข้อแนะนำเพิ่มเติมสำหรับ admin ที่ดูแลระบบภายในโรงเรียน หรือสถานที่ ที่เครื่องคอมพิวเตอร์ไม่ได้มีการเคลื่อนย้าย สามารถทำ Static ARP ได้เองโดยอาจจะเขียน batch file ให้ระบบทำการเพิ่ม static ARP เข้าไปในระหว่างที่เครื่องเริ่มเปิดใช้งาน หรือใช้โปรแกรมชื่อ ARPFreeze (http://www.irongeek.com/i.php?page=security/arpfreeze-static-arp-poisoni…) ซึ่งช่วยอำนวยความสะดวกในการตั้งค่าเหล่านี้ให้เรา ก็จะช่วยปิดทางการทำ ARP poisoning ได้อย่างสมบูรณ์
โดย neutron
Refer : http://debianclub.org/node/492