Clear
Lead Graphic Papers

Man-in-the-Middle 101

ผู้เขียน: เสฏฐวุฒิ แสนนาม
วันที่เผยแพร่:
16 ก.ย. 2554
ปรับปรุงล่าสุด:
30 ก.ย. 2554

Share on Facebook Share on Twitter Share on Google+

การโจมตีแบบ 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]

ปัจจุบันได้มีการใช้รูปแบบ 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 ตอบอีเมลกลับมา อีเมลฉบับนั้นก็จะถูกส่งมาที่ที่อยู่อีเมลของผู้โจมตี จากนั้นผู้โจมตีก็จะแก้ไขเนื้อหาและส่วนหัวของอีเมลแล้วส่งกลับไปให้ผู้ส่งตัวจริงอีกครั้งหนึ่ง

mitmb.jpg
ภาพประกอบอ้างอิงจาก nakedsecurity

นักวิจัยพบว่า จากการทดลองจดชื่อโดเมนจำนวน 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

Clear