Clear
Lead Graphic Papers

URL Obfuscation

ผู้เขียน: นายเจษฎา ช้างสีสังข์
วันที่เผยแพร่: 26 ธันวาคม 2556
ปรับปรุงล่าสุด: 26 ธันวาคม 2556

Share on Facebook Share on Twitter Share on Google+

ปัจจุบันมีภัยคุกคามมากมายบนโลกอินเทอร์เน็ต ไม่เว้นแม้แต่ URL ที่ผู้ใช้คลิกเพื่อเข้าไปยังเว็บไซต์ ซึ่งอาจจะคิดว่าไม่เป็นอันตรายอะไร แต่แท้จริงแล้ว หากไม่ได้พิจารณาให้รอบคอบ URL ดังกล่าว อาจพาท่านไปยังเว็บไซต์อันตรายได้

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

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

URL คืออะไร ?

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

URL (Uniform Resource Locator) คือสิ่งที่ใช้ระบุตำแหน่งของทรัพยากรบนเครือข่ายอินเทอร์เน็ต เช่น URL http://www.thaicert.or.th/index.html มีโครงสร้างที่อ้างอิงตาม RFC1738 [1] ดังนี้

<scheme>//<user>:<password>@<host>:<port>/<url-path>

  • scheme  คือ โพรโทคอลต่างๆ ที่ใช้เข้าถึงเช่น HTTP, HTTPS, FTP, SMB
  • user คือ Username ที่ใช้ในการยืนยันตัวตนในกรณีที่มีการพิจารณาการยืนยันตัวตน หากระบบไม่มีการพิจารณา จะไม่สนใจค่านี้
  • password คือ รหัสผ่านที่ใช้ยืนยันตัวตนร่วมกับ Username
  • host คือ ตำแหน่งของเครื่องที่เราต้องการเข้าถึง โดยจะระบุเป็น Domain name หรือ IP Address
  • port คือ หมายเลขอ้างอิงของบริการต่างๆ ที่เครื่องให้บริการเปิดให้เข้าถึง โดยทั่วไปหากไม่ได้กำหนด โปรแกรมจะกำหนดตาม โพรโทคอล หรือ <scheme> เช่น http จะถูกกำหนดเป็น 80  https จะถูกกำหนดเป็น 443 เป็นต้น
  • url-path คือ ตำแหน่งที่ระบุเป็นไฟล์หรือเป็นพารามิเตอร์ที่ใช้รับค่า เช่น /a/b/c/test.html , index.php?id=1

ตัวอย่างการระบุ URL

"http://username:password@www.thaicert.or.th:80/image/test.html"

อธิบายตัวอย่าง ดังตารางข้างล่างได้ดังนี้

Field Name Value
scheme username
user http
password password
host www.thaicert.or.th
port 80
url-path /image/test.html
ตารางอธิบาย ตัวอย่างโครงสร้างของ URL

URL Obfuscation

Obfuscation คือ การทำให้เกิดความสับสนหรือทำให้ผู้อ่านไม่สามารถเข้าใจได้ง่าย
ดังนั้น URL Obfuscation จึงเป็นการทำให้ผู้ที่อ่าน URL เกิดความสับสนหรือไม่สามารถเข้าใจ URL ได้ทันที URL Obfuscation นั้นอาจให้ผลลัพธ์ในแต่ละ Browser ไม่เหมือนกัน โดยในที่นี้ผู้เขียนได้ทดลองใน Browser Chrome เนื่องจาก สถิติที่มีการใช้งานเป็นอันดับ 1 เมื่อเทียบกับ Firefox และ Internet Explorer [2] โดยจะยกตัวอย่างให้ผู้ใช้ได้ทราบดังนี้

URL Encoding

คือการแปลง IP หรือ Hostname ให้อยู่ในรูปของ URL Encoding โดยเป็นการแทนอักขระด้วยรหัสต่างๆ โดยสามารถดูได้จาก ตาราง หรือใช้เครื่องมือออนไลน์ เช่น http://www.url-encode-decode.com/urldecode

ตัวอย่าง การแปลง http://thaicert.or.th จะได้
http://%74%68%61%69%63%65%72%74%2E%6F%72%2E%74%68

IP Obfuscation

เทคนิคนี้จะเป็นการพยายามแปลง IP Address ไม่ให้อยู่ในรูปเดิม โดยจะยกตัวอย่าง IP 74.125.131.105 ซึ่งเป็นการเรียนแทน host ที่ชื่อ www.google.com

1. Hexadecimal Number คือการแปลง IP Address ให้รูปในรูปฐาน 16 ทำได้โดยการ แบ่ง IP Address เป็น 4 ส่วนจากนั้นแปลงให้เป็นในรูปฐาน 16 (Hex) ดังตาราง

Dec 74 125 131 105
Hex 4A 7D 83 69

นำค่าฐาน 16 ทั้ง 4 มากำหนดให้อยู่ในรูปแบบดังนี้
หากผู้ใช้ลอง เข้าถึง URL http://0x4a.0x7d.0x83.0x69/ Browser ของท่านจะพาไปยัง IP Address 74.125.131.105 โดยอัตโนมัติ

2. Octal Number คือการแปลง IP Address ให้รูปในรูปฐาน 8 ทำได้โดยการ แบ่ง IP Address เป็น 4 ส่วน จากนั้นแปลงให้เป็นในรูปฐาน 8 (Oct) ดังตาราง

Dec 74 125 131 105
Oct 112 175 203 151

นำค่าฐาน 16 ทั้ง 4 มากำหนดให้อยู่ในรูปแบบดังนี้
หากผู้ใช้ลอง เข้าถึง URL http://0112.0175.0203.0151/ Browser ของท่านจะพาไปยัง IP Address 74.125.131.105 โดยอัตโนมัติ

3. DWORD คหรือ Double Word คือ ตัวเลขจำนวนเต็ม โดยทั่วไปจะมีขนาด 32 bit รูปแบบที่ผู้ไม่ประสงค์ดีนำมาใช้โจมตีเช่น การแปลงจาก IP Address 74.125.131.105 ให้อยู่ในรูปแบบ DWORD ดังนี้
แบ่ง IP Address เป็น 4 ส่วนจากนั้นแปลงให้เป็นในรูปฐาน 16 (Hex) ดังตาราง

Dec 74 125 131 105
Hex 4A 7D 83 69

นำค่าฐาน 16 ทั้ง 4 มาต่อกัน: 4A7D8369
แปลงค่าฐาน 16 กลับเป็นฐานสิบ (Decimal): 1249739625
หากผู้ใช้ลอง เข้าถึง URL http://1249739625 Browser ของท่านจะพาไปยัง IP Address 74.125.131.105 โดยอัตโนมัติ[3][4]

ตัวอย่างรูปแบบที่ผู้ไม่ประสงค์ดีนำไปใช้

จากการแปลง IP Address ให้อยู่ในรูปเลขฐานต่างๆ ข้างต้น ผู้ไม่ประสงค์ดีอาจนำความรู้เกี่ยวกับโครงสร้างของ URL มาใช้เพิ่มเติม เพื่อให้เกิดความสมจริง ดังนี้

"http://www.bank.com:login.html@74.125.131.105"

จาก URL ดังกล่าวหากเข้าถึง Browser จะถูกกำหนดให้ไปยัง IP Address 74.125.131.105 เนื่องจาก หากดูจาก โครงสร้างของ URL ดังที่ได้อธิบายก่อนหน้านี้จะพบว่า www.bank.com คือ Username และ login.html คือ รหัสผ่าน ซึ่งสังเกตได้จากเครื่องหมาย “:” ซึ่งคั่นระหว่าง Username และรหัสผ่าน และจะอยู่ก่อนเครื่องหมาย “@” เสมอ

หากผู้โจมตีใช้เทคนิคดังกล่าว ร่วมกับ IP Obfuscation จะได้ตัวอย่างดังนี้
Type URL
URL Encoding http://www.bank.com:login.html@%74%68%61%69%63%65%72%74%2E%6F%72%2E%74%68
Hexadecimal http://www.bank.com:login.html@0x4a.0x7d.0x83.0x69/
Octal http://www.bank.com:login.html@0112.0175.0203.0151
DWORD http://www.bank.com:login.html@1249739625/

ตัวอย่าง จำลองสถานการณ์

ผู้เขียนขอจำลองสถานการณ์ว่า ผู้ไม่ประสงค์ดีได้ส่งอีเมลมายังเหยื่อที่ใช้งาน Gmail โดยส่งข้อมูล แจ้งให้ทำการยืนยันตัวตน ไม่เช่นนั้น account ของผู้ใช้ จะถูกระงับการใช้งาน โดยให้ผู้ใช้คลิก URL ที่มีโดเมนเนมเป็นของ Google ดังนี้

http://www.google.co.th/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&
url=%68%74%74p%3A%2F%2F%74%68%61%69%63%65%72%74%2E%6F%72%2E%74%68%2F&ei=JPgAUeieHs7wrQev5IC4DQ&
usg=AFQjCNECZ1VHgfys3dSMAiaEU6H9_ftWfw&sig2=XQPZjnPhMpaNA1eu49Yljw&bvm=bv.41524429,d.bmk&cad=rja

จะเห็นได้ว่า URL ดังกล่าวมีการ redirect ไปยังเว็บไซต์ http://thaicert.or.th โดยอัตโนมัติ ซึ่งหากผู้ไม่ประสงค์ดี กำหนดให้เป็นเว็บไซต์อันตรายที่มีมัลแวร์ฝังอยู่แทน ก็อาจทำให้ผู้ใช้ติดมัลแวร์ได้
หมายเหตุ: redirect คือการเปลี่ยนเส้นทางการเข้าถึงข้อมูลหรือเว็บไซต์ จากแหล่งหนึ่งไปยังอีกแหล่งที่เครื่องต้นทางได้กำหนดไว้ ซึ่งเป็นอีกเทคนิคหนึ่งที่ผู้ไม่ประสงค์ดี นำไปใช้หลอกล่อเหยื่อให้เข้าไปยังเว็บไซต์อันตราย ซึ่งผู้เขียนจะขออธิบายให้ท่านเข้าใจในโอกาสต่อไป

พิจารณาอย่างไร

หากสังเกตลักษณะของ URL จะพบว่ามีส่วนที่ถูก Encode ด้วย URL Encoding อยู่

“%68%74%74p%3A%2F%2F%74%68%61%69%63%65%72%74%2E%6F%72%2E%74%68%2F”


เมื่อนำส่วนดังกล่าวมา Decode จะได้ http://thaicert.or.th/

URL ที่ถูก decode แล้ว

"http://www.google.co.th/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFjAA&
url=http://thaicert.or.th/&ei=JPgAUeieHs7wrQev5IC4DQ&usg=AFQjCNECZ1VHgfys3dSMAiaEU6H9_ftWfw&sig2=XQPZjnPhMpaNA1eu49Yljw&
bvm=bv.41524429,d.bmk&cad=rja"

สรุป

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

อ้างอิง

  1. http://www.ietf.org/rfc/rfc1738.txt
  2. http://www.w3schools.com/browsers/browsers_stats.asp
  3. http://www.aldeid.com/wiki/Dword2url
  4. http://research.zscaler.com/2011/08/malicious-urls-using-dword-formatted-ip.html
  5. http://blog.opensecurityresearch.com/2013/01/deofuscating-potentially-malicious-urls.html
Clear