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


Firewalk : เมื่อไฟร์วอลล์ไม่ใช่คำตอบสุดท้ายของ security
ที่มา :
http://www.sans.org/infosecFAQ/firewall/firewalk.htm
เรียบเรียงโดย : ภูวดล ด่านระหาญ
เรียบเรียงเมื่อ : 27 กันยายน 2544


จุดประสงค์ของบทความนี้คือ ต้องการให้ผู้ดูแลระบบในองค์กรได้ตระหนักว่าไฟร์วอลล์ไม่ใช่ทางเลือกสำเร็จรูปของ computer network security เสมอไป และต้องการกระตุ้นให้ผู้ดูแลระบบได้นำวิธีการป้องกันอื่นๆ มาประยุกต์ใช้ในองค์กรของตนต่อไป

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

ในขั้นตอนของการหาข้อมูลของเครื่องเป้าหมายนั้น ผู้บุกรุกจำเป็นต้องทราบว่าเครื่องเป้าหมายนั้น service อะไรอยู่บ้าง และถ้าได้ข้อมูลของ network topology และระบบปฏิบัติการด้วยแล้วก็จะเป็นข้อมูลที่มีประโยชน์มาก มีเครื่องมือหลายตัวและมีหลายวิธีในการตรวจสอบ network topology และ service ของเครื่องเป้าหมาย Firewalk ก็เป็นอีกเครื่องมือหนึ่งที่ David Goldsmith และ Michael Schiffman สร้างขึ้นมา โดยลักษณการทำงานจะคล้ายๆ กับ traceroute เพื่อใช้ตรวจสอบว่ามี service อะไรที่ไฟร์วอลล์เปิดให้ผ่านเข้าไปได้ และใช้ตรวจสอบ access control ได้ด้วย

โดยส่วนใหญ่แล้วไฟร์วอลล์มักจะถูกคาดหวังจากผู้ใช้งานว่า จะเป็นตัวที่ทำหน้าที่ปกป้องเครือข่ายจากโลกภายนอก แต่ Firewalk ก็ได้แสดงให้เห็นแล้วว่าไม่ได้เป็นเช่นนั้นเสมอไป ผู้บุกรุกยังมีโอกาสในการหาข้อมูลเกี่ยวกับเป้าหมายมากกว่าที่เราคาดการณ์ไว้ และในการที่จะทำความรู้จักกับหลักการทำงานของ Firewalk จะต้องเข้าใจ traceroute เสียก่อน

Traceroute
คำสั่ง tracert (Windows) หรือ traceroute (*NIX) เป็นเครื่องมือช่วยในการตรวจสอบเครือข่าย โดยจะแสดง IP ของ router หรือ gateway ที่ packet วิ่งผ่านจากที่หนึ่งไปยังอีกเครือข่ายหนึ่งทีละ hop โดย traceroute ใช้คุณสมบัติของ IP Time To Live (TTL) ในการทำงาน

TTL ถูกนำไปใช้ในโปรโตคอล IP เพื่อป้องการการเกิดลูปที่ไม่รู้จบจากการวนของ pakcet โดยในแต่ละ device ที่ได้รับ packet จะลดค่าของ TTL ลงทีละ 1 และถ้า TTL มีค่าเป็นศูนย์หรือน้อยกว่า packet นั้นจะถูก drop ไป และ router ก็จะส่งข้อมูล ICMP "TTL Exceed in Transit" กลับมายังเครื่องที่รันคำสั่งนี้

Traceroute ใช้หลักการนี้ในการทำงาน โดยมันจะกำหนดค่า TTL counter ที่ทำให้ router ที่ packet ผ่านไปนั้นต้องสร้าง ICMP message กลับมาเสมอ สำหรับคำสั่ง tracert ใน Windows นั้น จะใช้ ping (ICMP Echo) เป็นตัวส่ง packet ออกไป ในขณะที่ traceroute ใน Unix นั้น จะใช้ UDP datagram เป็นตัวส่งข้อมูลออกไป datagram ที่ถูกส่งออกไปนั้นจะถูกส่งไปยัง port 33434 โดยดีฟอลต์ และ ค่าหมายเลข port นี้จะถูกเพิ่มขึ้นเมื่อได้รับ packet ที่ตอบกลับมาอย่างถูกต้อง โดยปกติแล้ว traceroute มักจะส่ง datagram ออกไปจำนวน 3 datagram เพื่อป้องกันการสูญหายระหว่างทาง

ด้านล่างนี้แสดงตัวอย่างการใช้ tracert.exe ใน Windows

C:\WINDOWS>tracert quote.yahoo.com
Tracing route to finance.yahoo.com [204.71.203.155]
over a maximum of 30 hops:
1 99 ms 100 ms 119 ms tnt3.culpeper.va.da.uu.net [206.115.221.174]
2 99 ms 119 ms 115 ms 206.115.233.205
3 106 ms 104 ms 102 ms Fddi0-0.HR1.DCA1.ALTER.NET [137.39.33.130]
4 112 ms 95 ms 113 ms 102.ATM3-0.XR1.DCA1.ALTER.NET [146.188.160.254]
5 103 ms 98 ms 104 ms 195.at-7-2-0.XR1.DCA8.ALTER.NET [146.188.163.6]
6 98 ms 111 ms 111 ms POS6-0.BR3.DCA8.ALTER.NET [152.63.36.5]
7 110 ms 102 ms 104 ms 137.39.52.18
8 106 ms 104 ms 112 ms pos2-0-155M.cr1.WDC2.gblx.net [208.178.174.53]
9 172 ms 180 ms 167 ms pos7-0-2488M.cr2.SNV.gblx.net [208.50.169.86]
10 168 ms 165 ms 167 ms ge1-0-1000M.hr8.SNV.gblx.net [206.132.254.41]
11 168 ms 174 ms 165 ms bas1r-ge3-0-hr8.snv.yahoo.com [208.178.103.62]
12 176 ms 169 ms 175 ms finance.yahoo.com [204.71.203.155]
Trace complete.

เมื่อไฟร์วอลล์ถูกติดตั้งให้ไม่ตอบสนองต่อ traceroute และ ping จากโลกภายนอก เพื่อป้องกันไม่ให้ผู้บุกรุกเก็บข้อมูลของเครือข่ายภายในได้ ตัวอย่างด้านล่างนี้แสดงถึงผลลัพธ์ที่ได้จาก tracert.exe เมื่อถูกป้องกัน traffic ของ ping โดยไฟร์วอลล์หรือ router

C:\WINDOWS>tracert vanguard.com
Tracing route to vanguard.com [192.175.182.6]
over a maximum of 30 hops:
1 103 ms 98 ms 97 ms tnt3.culpeper.va.da.uu.net [206.115.221.174]
2 105 ms 104 ms 104 ms 206.115.233.205
3 103 ms 97 ms 104 ms Fddi0-0.HR1.DCA1.ALTER.NET [137.39.33.130]
4 101 ms 736 ms 103 ms 102.ATM2-0.XR2.DCA1.ALTER.NET [146.188.160.250]
5 105 ms 105 ms 103 ms 294.at-7-2-0.XR2.DCA8.ALTER.NET [146.188.163.30]
6 100 ms 104 ms 118 ms POS7-0.BR2.DCA8.ALTER.NET [152.63.35.193]
7 107 ms 105 ms 106 ms uu-gw.wswdc.ip.att.net [192.205.32.133]
8 103 ms 104 ms 103 ms gbr4-p50.wswdc.ip.att.net [12.123.9.54]
9 100 ms 102 ms 98 ms gbr1-p60.wswdc.ip.att.net [12.122.1.221]
10 101 ms 117 ms 126 ms ar1-a3120s4.wswdc.ip.att.net [12.123.8.45]
11 118 ms 103 ms 104 ms 12.127.47.50
12 * * * Request timed out.
13 * * * Request timed out.

จากตัวอย่างแสดงให้เห็นว่า ไม่สามารถ trace ได้อย่างสมบูรณ์ และจะได้รับ timeout message เมื่อคำสั่ง ping ถูก drop โดยปลายทาง

Firewalking
ไฟร์วอลล์จะเป็นตัวหยุดยั้ง traceroute packet และจะไม่ยินยอมให้ traceroute packet ผ่านไปยังเครื่องเป้าหมาย วิธีการทำงานของ firewalking นั้น ใช้พื้นฐานที่ว่า ถ้าไฟร์วอลล์อนุญาตให้ traffic ชนิดใดผ่านไปได้ firewalking ก็จะส่ง packet ชนิดนั้นๆ ผ่านเข้าไป เช่น ถ้าไฟร์วอลล์อนุญาตให้ UDP port 53 (DNS queries) ผ่านเข้าไปยัง DNS server ที่ตั้งอยู่ภายในเครือข่ายนั้นๆ ผู้บุกรุกก็สามารถส่ง UDP port 53 พร้อมกับค่า TTL ของ hop ถัดไป เพื่อให้ผ่านไฟร์วอลล์เข้าไปได้ และได้ข้อมูลกลับออกมา และเนื่องจาก traceoute ถูกออกแบบให้ใช้งานฟิลด์ TTL ซึ่งทำงานบน IP protocol (network layer) ดังนั้นมันจึงสามารถใช้งานได้กับ upper layer protocol อื่นๆ ได้ เช่น UDP, TCP, ICMP ดังนั้นจึงทำให้สามารถตรวจสอบ service ที่เปิดให้บริการหลังไฟร์วอลล์ได้

สรุป
เราสามารถหยุดการใช้งาน Firewalking ได้โดยการบล็อค TTL Exceeded in Transit packet ขาออกที่ไฟร์วอลล์ หรือใช้ NAT (Network Address Translation) เพื่อซ่อน IP address ของโฮสต์ภายในเครือข่าย

สิ่งที่บทความนี้ต้องการจะเน้นย้ำก็คือ การใช้ระบบป้องกันเพียง layer เดียวนั้นไม่เพียงพอแล้วในปัจจุบัน และเราก็ไม่สามารถที่จะไว้วางใจไฟร์วอลล์ได้ว่าจะสามารถปกป้องเครือข่ายจากการหาข้อมูลของบรรดาผู้บุกรุกได้ ดูเหมือน host based detection จะเป็นตัวช่วยที่ดีอีกทางหนึ่งได้เช่นกัน นอกจากนี้ network intrusion detection system (NIDS) ก็ยังสามารถเป็นหูเป็นตาให้ผู้ดูแลระบบได้ด้วย

ดังนั้นการใช้ multiple layers สำหรับการทำ overlapping security นั้นเป็นสิ่งที่จำเป็นอย่างยิ่ง ผู้ที่มีหน้าที่เกี่ยวกับเรื่องนี้ในแต่ละองค์กรควรตระหนัก และหาทางนำเทคโนโลยีที่มีอยู่ในปัจจุบันไปประยุกต์ใช้เพื่อให้เกิดประโยชน์สูงสุด



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

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