Man-in-the-Middle
การโจมตีแบบ Man-in-the-Middle (MitM) หมายถึง การที่มีผู้ไม่หวังดีเข้ามาแทรกกลางในการสนทนาระหว่างคน 2 คน แล้วทำหน้าที่เป็นตัวกลางในการรับส่งข้อมูลของคู่สนทนา โดยที่คู่สนทนาไม่สามารถทราบได้ว่ามีผู้อื่นเป็นผู้รับและส่งสารต่อกับคู่สนทนาของตนอยู่ ทำให้ผู้ไม่หวังดีสามารถใช้รูปแบบการโจมตีในลักษณะนี้ในการดักรับหรือเปลี่ยนแปลงข้อมูลที่ทั้ง 2 ฝั่งสื่อสารกันอยู่ได้ ซึ่งการโจมตีในรูปแบบนี้ถูกนำมาประยุกต์ใช้กับการสื่อสารต่างๆ ในระบบคอมพิวเตอร์ ตัวอย่างเช่น การโจมตีแบบ MitM ในระบบเครือข่าย Wi-Fi ทำให้ผู้ไม่หวังดีสามารถแทรกแซงการเชื่อมต่อระหว่างเครื่องคอมพิวเตอร์และอุปกรณ์ Wi-Fi Access Point เพื่ออ่าน ปลอมแปลง หรือแก้ไขข้อมูลที่รับส่งระหว่างคอมพิวเตอร์ทั้ง 2 เครื่องนั้นได้ ซึ่งการเข้ารหัสลับข้อมูลในการสื่อสารเพียงอย่างเดียวไม่สามารถป้องกันการโจมตีในรูปแบบนี้ได้เสมอไป [1]
ถ้าผู้รับและผู้ส่งสารไม่ได้มีกลไกใดๆ ในการยืนยันคู่สนทนาได้อย่างถูกต้อง การโจมตีแบบ MitM สามารถใช้โจมตีการสื่อสารข้อมูลของระบบต่างๆ ในเครือข่ายอินเทอร์เน็ตได้โดยง่าย เนื่องจากรูปแบบและมาตรฐานของการสื่อสารข้อมูลต่างๆ ในระบบอินเทอร์เน็ตไม่ได้ถูกออกแบบมาให้มีการรักษาความมั่นคงปลอดภัยของข้อมูล เช่น การสื่อสารข้อมูลผ่านโพรโทคอล HTTP สำหรับเรียกดูข้อมูลเว็บไซต์ต่างๆ ซึ่งส่วนใหญ่จะไม่มีการเข้ารหัสลับ ทำให้ผู้โจมตีสามารถใช้โปรแกรมสำหรับดักจับข้อมูลในระบบเครือข่าย เช่นโปรแกรม WireShark หรือ TCPDump ได้
ถึงแม้ว่าในปัจจุบัน การเรียกดูข้อมูลเว็บไซต์ที่สื่อสารผ่านโพรโทคอล HTTP จะถูกออกแบบให้รองรับการเข้ารหัสลับข้อมูลด้วยการเชื่อมต่อผ่านโพรโทคอล HTTPS ซึ่งใช้การเข้ารหัสลับข้อมูลด้วยโพรโทคอล SSL [7] แต่ยังไม่สามารถป้องกันการโจมตีแบบ MitM ได้ถ้าผู้ใช้งานไม่ได้ระมัดระวังในการตรวจสอบว่าเป็นเซิร์ฟเวอร์ที่ให้บริการเว็บไซต์จริงหรือเป็นเครื่องที่เป็น MitM ด้วยวิธีการตรวจสอบใบรับรอง SSL (SSL Certificate) ในกรณีนี้ผู้ใช้งานอาจจะถูกหลอกลวงให้ติดต่อกับเครื่องที่เป็น MitM ผ่านโพรโทคอล HTTPS และในขณะเดียวกันข้อมูลหรือบริการที่ผู้ใช้เรียกใช้งานกับเครื่อง MitM นี้ จะถูกส่งต่อผ่านโพรโทคอล HTTPS ไปยังเซิร์ฟเวอร์ที่ให้บริการเว็บไซต์จริงเพื่อเรียกข้อมูลหรือบริการและส่งต่อผ่านกลับไปให้ผู้ใช้งาน เพราะฉะนั้นในการเรียกดูเว็บไซต์ผ่านเครื่อง MitM ด้วยโพรโทคอล HTTPS นี้ผู้ใช้งานจะไม่สังเกตความผิดปกติกับข้อมูลหรือบริการที่เรียกใช้งานเมื่อเทียบกับการเรียกจากเว็บไซต์จริงแต่อย่างใด ในบางกรณี ผู้โจมตีสามารถหลอกเบราว์เซอร์ไม่ให้แจ้งเตือนว่าใบรับรองไม่ถูกต้องได้ โดยการใช้ใบรับรองปลอมที่ได้มาจากการเจาะระบบของผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ CA (Certificate Authorities) ที่ได้รับการยอมรับในระดับสากลได้ [2] นอกจากนี้ยังมีการทำ SSL Strip ซึ่งเป็นการดัก Request/Response ระหว่างเครื่องผู้ใช้งานกับเครื่องเซิร์ฟเวอร์ ในกรณีที่ผู้ใช้เข้าเว็บไซต์ผ่านโพรโทคอล HTTP แต่เว็บไซต์นั้นต้องการการเชื่อมต่อแบบ SSL จึงส่งคำร้องขอให้ผู้ใช้เรียก URL ที่เป็น HTTPS ซึ่งผู้โจมตีก็จะเข้ามาเป็นตัวกลางในการเชื่อมต่อ โดยหลอกเครื่องผู้ใช้ว่าให้เรียก URL เป็น HTTP ตามเดิม และหลอกเซิร์ฟเวอร์ว่าผู้ใช้ได้เชื่อมต่อผ่าน HTTPS แล้ว ทำให้ผู้โจมตีสามารถรู้ข้อมูลทุกอย่างที่รับส่งระหว่างผู้ใช้กับเครื่องเซิร์ฟเวอร์ [8]
วิธีการทำอย่างหนึ่งคือ การส่งข้อมูล MAC Address ของเครื่องของแฮกเกอร์ไปให้กับเครื่องของผู้ใช้โดยแจ้งว่าเป็น MAC Address ของ Gateway ของระบบเครือข่าย หลังจากนั้นเมื่อเครื่องเหยื่อรับ MAC Address ดังกล่าวไปใส่ไว้ใน ARP Table cached แล้ว กระบวนการส่งข้อมูลจากเบราว์เซอร์ของเครื่องเหยื่อจะถูกส่งผ่านไปยังเครื่องแฮกเกอร์ก่อนที่จะส่งไปยังเครื่องเซิร์ฟเวอร์
ดังนั้นเมื่อเครื่องเหยื่อเข้าไปยังหน้าเว็บเพจที่ต้อง login ด้วย Username และ Password โปรแกรมดักฟังข้อมูลก็จะทำการส่งหน้าเว็บเพจที่ไม่ได้ป้องกันไปให้เครื่องเหยื่อ ดังรูป
ที่มา : sysadmin.psu.ac.th
ผู้ใช้ทั่วไปจะสังเกตไม่ออก (หรือไม่มีความรู้) ก็จะคลิกผ่านคำเตือนใดๆที่เบราว์เซอร์แจ้งเตือนไปแล้วสุดท้ายผู้ใช้งานก็จะใส่ Username และ Password ในหน้า login ซึ่งแฮกเกอร์ก็จะได้ข้อมูลดังกล่าว ดังรูป
ที่มา : sysadmin.psu.ac.th
และถ้าใส่ Username และ Password ก็ถูกดักไปได้ครับ ดังรูป
ที่มา : sysadmin.psu.ac.th
เราสามารถตรวจสอบด้วยวิธีอย่างง่ายๆด้วยคำสั่ง arp -a ทั้งบนวินโดวส์และลินุกซ์ เพื่อดูว่ามีเลข MAC Address ของ IP คู่ใดบ้างที่ซ้ำกัน มักจะเป็นคู่ระหว่าง IP ของ Gateway กับ IP ของเครื่องแฮกเกอร์ ดังรูป
ที่มา : sysadmin.psu.ac.th
ถ้าเห็นอย่างนี้แสดงว่า “โดนเข้าแล้วครับ” ทางแก้ไขทางเดียวคือปิดเครื่องและแจ้งผู้ดูแลระบบประจำหน่วยงานของท่าน
การป้องกันตัวเองไม่ต้องรอพึ่งระบบเครือข่าย(เพราะอาจไม่มีระบบป้องกัน) ในทุกครั้งที่เปิดเครื่องและก่อนใช้งานใดๆ ให้ใช้คำสั่ง arp -s เพื่อทำ static ค่า IP กับ MAC ของ Gateway ลงในตาราง ARP ของเครื่องคอมฯ
คำสั่ง คือ arp -s [IP ของ Gateway] [MAC Address ของ Gateway]
เราจะรู้ค่า IP และ MAC Address ของ Gateway ก็ด้วยคำสั่งดังนี้
- ดูว่า IP ของ Gateway (default) คือเบอร์ใด
Linuxip route show
Windows
route -4 print
- arp -a เพื่อดูค่า IP กับ MAC คู่ที่ต้องการ
เช่นIP ของ Gateway คือ 192.168.10.1 และMAC Address ของ Gateway คือ 00-13-64-2b-3d-a1
ก็ใช้คำสั่งว่า
arp -s 192.168.10.1 00-13-64-2b-3d-a1
โดยที่เครื่องวินโดวส์รุ่นใหม่ๆ (8 ขึ้นไป) ให้คลิกขวาที่ปุ่ม Start เลือก “Command Prompt (Admin)” เพื่อเปิดหน้าต่าง Cmd ดังรูป
ที่มา : sysadmin.psu.ac.th
ส่วนเครื่องลินุกซ์ ให้เปิด Terminal แล้วใส่คำว่า sudo นำหน้าคำสั่งนั้นด้วย ดังรูป
ที่มา : sysadmin.psu.ac.th
แต่ปัจจุบันได้มีการใช้รูปแบบ Man-in-the-Middle ไปพัฒนาการโจมตีในรูปแบบใหม่ ได้แก่ Man-in-the-Browser และ Man-in-the-Mailbox ซึ่งแต่ละแบบก็ใช้วิธีการและได้ผลลัพธ์ที่แตกต่างกันไป
Man-in-the-Browser
การโจมตีแบบ Man-in-the-Browser (MitB) มีความแตกต่างจากการโจมตีแบบ MitM คือ การโจมตีแบบ MitB เกิดจากโทรจันที่ฝังตัวอยู่ในเบราว์เซอร์ คอยดักจับและแก้ไขหน้าเว็บไซต์หรือข้อมูลที่มีการรับส่ง โดยที่ทางฝั่งผู้ใช้หรือฝั่งผู้ให้บริการไม่รู้ว่าข้อมูลถูกแก้ไข ซึ่งโดยส่วนมากแล้ว การโจมตีด้วยวิธีนี้จะมุ่งเน้นไปที่เว็บไซต์ที่เกี่ยวข้องกับสถาบันการเงิน เช่น เว็บไซต์ของธนาคาร [3] การโจมตีแบบ MitB สามารถดักจับข้อมูลได้ทุกอย่าง ไม่ว่าเว็บไซต์นั้นจะใช้วิธีเข้ารหัสลับด้วยโพรโทคอล SSL ก็ตาม เพราะโทรจันที่ฝังอยู่ในเบราว์เซอร์จะใช้วิธีดักจับข้อมูลการเข้าระบบ เช่น ชื่อผู้ใช้หรือรหัสผ่าน ก่อนที่เบราวเซอร์จะเอาข้อมูลนั้นมาเข้ารหัสลับและส่งออกไป [4] ตัวอย่างโปรแกรมที่เป็นการโจมตีแบบ MitB เช่น Zeus, Zbot, URLZone, SpyEye [5]
Man-in-the-Mailbox
การโจมตีแบบ Man-in-the-Mailbox (MitMb) เป็นการโจมตีด้วยวิธี MitM แบบล่าสุดที่เพิ่งค้นพบ โดยอาศัยความผิดพลาดที่เกิดจากการพิมพ์ที่อยู่อีเมลผิดพลาด เช่น การไม่ได้พิมพ์ . ในระหว่างชื่อโดเมนขององค์กรที่มีความน่าจะเป็นที่อาจจะเกิดขึ้นได้ ซึ่งผู้โจมตีจะสร้างระบบเพื่อรับอีเมลที่เกิดความผิดเหล่านี้ไว้สำหรับใช้ในการโจมตีในรูปแบบ MitMb
การโจมตีแบบ MitMb นั้นจะเกิดขึ้นเมื่อมีผู้ส่งอีเมลจากหน่วยงานหนึ่งไปยังอีกหน่วยงานหนึ่ง โดยที่ผู้ส่งนั้นพิมพ์ที่อยู่อีเมลผิด เช่น ผู้ใช้จาก @th.biz.com ต้องการส่งอีเมลหาผู้ใช้ที่อยู่ใน @th.bank.com แต่พิมพ์ที่อยู่อีเมลผิดกลายเป็น @thbank.com อีเมลฉบับนั้นจะถูกส่งไปยังอีเมลของผู้โจมตี จากนั้นผู้โจมตีจะปรับแต่งเนื้อหาของอีเมล รวมถึงแก้ไขส่วนหัวของอีเมล (E-mail header) ว่าถูกส่งมาจาก @thbiz.com แล้วส่งต่ออีเมลฉบับนั้นไปยัง @th.bank.com ซึ่งเป็นผู้รับที่แท้จริง เมื่อทาง @th.bank.com ตอบอีเมลกลับมา อีเมลฉบับนั้นก็จะถูกส่งมาที่ที่อยู่อีเมลของผู้โจมตี จากนั้นผู้โจมตีก็จะแก้ไขเนื้อหาและส่วนหัวของอีเมลแล้วส่งกลับไปให้ผู้ส่งตัวจริงอีกครั้งหนึ่ง
ภาพประกอบอ้างอิงจาก thaicert
นักวิจัยพบว่า จากการทดลองจดชื่อโดเมนจำนวน 30 โดเมน แล้วรอรับอีเมลที่ส่งผิด ปรากฏว่าภายในเวลา 6 เดือน มีอีเมลที่พิมพ์ที่อยู่อีเมลผิดแล้วถูกส่งออกมามากกว่า 120,000 ฉบับ ซึ่งเนื้อหาบางส่วนในอีเมลเหล่านั้นเป็นความลับทางการค้า ข้อมูลพนักงาน หรือแม้กระทั่งรหัสผ่าน [6]
ควรรับมืออย่างไร?
การโจมตีด้วยวิธี Man-in-the-X นั้นประสบความสำเร็จง่ายและตรวจจับได้ยาก เนื่องจากผู้ถูกโจมตีส่วนใหญ่มักจะไม่รู้ตัวและค่อนข้างละเลยในเรื่องของความปลอดภัย ดังนั้น วิธีการป้องกันที่ดีที่สุดคือสร้างความตระหนักในเรื่องของความปลอดภัยให้กับผู้ใช้ เช่น ตรวจสอบความถูกต้องของใบรับรองของเว็บไซต์ทุกครั้งที่ต้องทำธุรกรรมทางอิเล็กทรอนิกส์ หมั่นปรับปรุงโปรแกรมตรวจจับไวรัสและไม่ติดตั้งโปรแกรมที่น่าสงสัย หรือในกรณีที่ต้องการส่งข้อมูลที่เป็นความลับผ่านทางอีเมล ควรทำการเข้ารหัสลับข้อมูลก่อนที่จะส่งออกไป
อ้างอิง
[1] http://en.wikipedia.org/wiki/Man-in-the-middle_attack
[2] https://www.owasp.org/index.php/Man-in-the-middle_attack
[3] http://en.wikipedia.org/wiki/Man_in_the_Browser
[4] https://www.owasp.org/index.php/Man-in-the-browser_attack
[5] http://www.entrust.com/mitb
[6] http://nakedsecurity.sophos.com/2011/09/12/missing-dots-from-email-addresses-opens-20gb-data-leak/
[7] http://en.wikipedia.org/wiki/Https
[8] http://thaicomsec.citec.us/?p=739
[9] https://neoslab.com/2018/08/07/inject-arbitrary-code-during-mitm-attack-using-mitmf/
ที่มา : ThaiCERT, sysadmin.psu.ac.th