ข้ามไปเนื้อหา

การไฮแจ็กเซสชัน

จากวิกิพีเดีย สารานุกรมเสรี

ในวิทยาการคอมพิวเตอร์ การไฮแจ็กเซสชัน (อังกฤษ: session hijacking) เป็นการโจมตีทางไซเบอร์ชนิดหนึ่ง ที่ผู้โจมตีสามารถเข้าถึงเซสชันคอมพิวเตอร์ของผู้ใช้โดยไม่ได้รับอนุญาต แล้วทำให้เข้าถึงข้อมูลหรือบริการในระบบคอมพิวเตอร์เหมือนกับเป็นผู้ใช้เอง โดยบางครั้งเรียกว่า การไฮแจ็กคุกกี้ (อังกฤษ: cookie hijacking) เพราะมักเกี่ยวกับการขโมยคุกกี้เซสชันที่ใช้พิสูจน์ตัวตนของผู้ใช้

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

ในเว็บแอป เอชทีทีพีคุกกี้มักใช้เป็นตัวเก็บสถานะการพิสูจน์ตัวตนของผู้ใช้ คือ คุกกี้เช่นนี้ทำหน้าที่เป็น "กุญแจเซสชัน" (session key) ที่ระบุตัวผู้ใช้และช่วยเว็บเซิร์ฟเวอร์ในการรักษาเซสชัน ผู้โจมตีที่ขโมยคุกกี้เช่นนี้ได้จะสามารถใช้เทคนิค "ส่งคุกกี้ต่อ" (Pass the Cookie) เพื่อไฮแจ็กเซสชันของผู้ใช้และเข้าถึงแอปเหมือนกับเป็นผู้ใช้เอง

การไฮแจ็กเซสชันสามารถทำได้หลายวิธี คือ

  1. Source-Routed IP Packets เป็นการกำหนดเส้นทางของแพ็กเกตไอพีจากคอมพิวเตอร์ต้นทาง ผู้โจมตีสามารถใช้วิธีนี้เพื่อเข้าร่วมการสื่อสารระหว่างเหยื่อ (ก) กับเซิร์ฟเวอร์ (ค) เพราะแพ็กเกตไอพีจะส่งผ่านอุปกรณ์ของผู้โจมตี (ข) ซึ่งทำให้ผู้โจมตีดักจับและขโมยคุกกี้เซสชันได้ แต่เครือข่ายปัจจุบันก็มักจะปิดไม่ให้กำหนดเส้นทางเองเพื่อความปลอดภัย
  2. Blind Hijacking เป็นการไฮแจ็กแบบไม่เห็น คือ หากการกำหนดเส้นทางจากต้นทางไม่เปิดให้ใช้งาน ผู้โจมตีสามารถพยายามไฮแจ็กเซสชันแบบมองไม่เห็น โดยการทายคำตอบที่ถูกต้องระหว่าง ก กับ ค ซึ่งอาจทำให้สามารถสั่งตั้งรหัสผ่านใหม่และเข้าถึงระบบบริการจากที่อื่นได้แม้จะไม่สามารถดูคำตอบ
  3. Man-in-the-Middle Attack การโจมตีแบบเป็นคนกลาง คือ ผู้โจมตีสามารถแทรกตัวเองอยู่ระหว่าง ก กับ ค โดยใช้ตัวดักฟังเพื่อติดตามการสื่อสารและขโมยคุกกี้เซสชัน

การไฮแจ็กเซสชันเป็นภัยคุกคามที่สำคัญต่อเว็บแอป เพราะคุกกี้เซสชันที่ถูกขโมยสามารถให้ผู้โจมตีเข้าถึงบัญชีและข้อมูลของผู้ใช้ได้อย่างเต็มที่ เพื่อบรรเทาภัยนี้ เว็บเบราว์เซอร์สมัยใหม่จึงมีกลไกป้องกันคุกกี้[1] แต่ผู้พัฒนาเว็บก็ยังคงต้องออกแบบแอปของตนอย่างรอบคอบเพื่อลดความเสี่ยง

วิธีการ

[แก้]

มีวิธีหลักสี่วิธีที่ใช้ไฮแจ็กเซสชัน ซึ่งได้แก่

  • การตั้งค่าเซสชันคงที่ (Session fixation) ซึ่งผู้โจมตีตั้งค่าตัวระบุเซสชันของผู้ใช้ให้เป็นค่าที่ตนรู้ เช่น โดยการส่งอีเมลไปยังผู้ใช้พร้อมลิงก์ที่มีตัวระบุเซสชันโดยเฉพาะ แล้วก็เพียงแต่ต้องรอจนกว่าผู้ใช้จะคลิกลิงก์เพื่อเข้าสู่ระบบ
  • การดักจับเซสชั่น (Session side jacking) ซึ่งผู้โจมตีดักจับแพ็กเก็ตเพื่ออ่านข้อมูลสื่อสารระหว่างสองฝ่ายเพื่อขโมยคุกกี้เซสชัน เว็บไซต์หลายแห่งเคยใช้การเข้ารหัส SSL สำหรับหน้าเข้าสู่ระบบเพื่อป้องกันไม่ให้ผู้โจมตีเห็นรหัสผ่าน แต่ไม่เข้ารหัสหน้าที่เหลือของไซต์หลังจากยืนยันตัวตนแล้ว ซึ่งช่วยให้ผู้โจมตีสามารถดักจับข้อมูลทั้งหมดที่ส่งไปยังเซิร์ฟเวอร์ หรือดูเว็บเพจที่ผู้ใช้เข้าชม เนื่องจากข้อมูลนี้รวมถึงคุกกี้เซสชัน จึงทำให้สามารถปลอมตัวเป็นเหยื่อได้ แม้ตัวรหัสผ่านเองจะไม่ได้เปิดเผยเลย[2] ฮอตสปอตวายฟายที่เข้ารหัสไม่ดีจะเสี่ยงเป็นพิเศษ เนื่องจากทุกคนที่ใช้เครือข่ายร่วมกันโดยทั่วไปจะสามารถอ่านการรับส่งข้อมูลที่ป้องกันไว้ไม่ดีเกือบทั้งหมดระหว่างลูกข่ายกับแอกเซสพอยต์ได้
  • การโจมตีด้วยสคริปต์ข้ามไซต์ (Cross-site scripting) ซึ่งผู้โจมตีหลอกให้คอมพิวเตอร์ของผู้ใช้เรียกใช้โค้ดที่น่าเชื่อถือเพราะดูเหมือนจะเป็นของเซิร์ฟเวอร์ ทำให้ผู้โจมตีสามารถได้คุกกี้หรือดำเนินการอื่น ๆ ได้
  • มัลแวร์และซอฟต์แวร์ที่อาจจะไม่พึงปรารถนาอาจไฮแจ็กเบราว์เซอร์เพื่อขโมยไฟล์คุกกี้โดยที่ผู้ใช้ไม่รู้ตัว และดำเนินการต่าง ๆ (เช่น ติดตั้งแอป)[3] ผู้โจมตีที่เข้าถึงอุปกรณ์ได้โดยตรงอาจสามารถขโมยกุญแจเข้ารหัสลับสำหรับเซสชัน (session key) เช่น โดยเข้าถึงเนื้อหาไฟล์หรือหน่วยความจำของคอมผู้ใช้หรือของเซิร์ฟเวอร์

หลังจากได้คุกกี้เซสชันที่สมควร ผู้ร้ายอาจใช้เทคนิคส่งคุกกี้ต่อ (Pass the Cookie) เพื่อไฮแจ็กเซสชัน

ไฟร์ชีป

[แก้]

ไฟร์ชีป (Firesheep) เป็นส่วนขยายบราวเซอร์ไฟร์ฟอกซ์ที่เปิดตัวในเดือนตุลาคม 2010 และแสดงให้เห็นถึงช่องโหว่การไฮแจ็กเซสชันในเครือข่ายที่ไม่ปลอดภัย โปรแกรมสามารถดักจับคุกกี้ที่ไม่ได้เข้ารหัสสำหรับเว็บไซต์ยอดนิยม ทำให้ผู้ใช้สามารถเข้าควบคุมเซสชันของผู้อื่นในเครือข่ายเดียวกันได้ เครื่องมือจะแสดงเป้าหมายที่เป็นไปได้ในแถบด้านข้าง ช่วยให้เข้าถึงเซสชันคนอื่นได้โดยไม่ต้องขโมยรหัสผ่าน เว็บไซต์ที่รองรับรวมถึงเฟซบุ๊ก ทวิตเตอร์ ฟลิคเกอร์ แอมะซอน วินโดวส์ไลฟ์ และกูเกิล โดยสามารถใช้สคริปต์เพื่อเพิ่มเว็บอื่น [4] และเพียงไม่กี่เดือนหลังจากนั้น เฟซบุ๊กและทวิตเตอร์ต่างก็เริ่มให้ใช้เว็บไซต์แบบเข้ารหัส ซึ่งต่อมากลายเป็นการบังคับ[5][6]

ดรอยด์ชีป

[แก้]

ดรอยด์ชีป (DroidSheep) เป็นเครื่องมือบนแอนดรอยด์ที่ใช้ไฮแจ็กเซสชันได้ง่าย โปรแกรมจะดักฟังแพ็กเก็ตเอชทีทีพีที่ส่งผ่านเครือข่ายไร้สาย (802.11) แล้วดึงตัวระบุเซสชันจากแพ็คเก็ตเพื่อนำเอาไปใช้ โปรแกรมสามารถดักจับเซสชันโดยใช้คลังซอฟต์แวร์ libpcap และรองรับเครือข่ายต่าง ๆ คือ เครือข่ายเปิด (ไม่เข้ารหัส), เครือข่ายที่เข้ารหัสด้วย WEP และเครือข่ายที่เข้ารหัสด้วย WPA/WPA2 (เฉพาะ PSK เท่านั้น) ซอฟต์แวร์นี้ใช้ libpcap และ arpspoof[7][8] โปรแกรมเคยมีให้ติดตั้งบน กูเกิล เพลย์ แต่ก็ถูกถอนออกไปแล้ว

คุกกี้แคดเจอร์

[แก้]

คุกกี้แคดเจอร์ (CookieCadger) เป็นแอปจาวาแบบกราฟิก ที่ช่วยให้สามารถโจมตีแบบ sidejacking และเล่นซ้ำคำขอของ HTTP โดยอัตโนมัติ เป็นเครื่องมือช่วยแอดมินเพื่อตรวจสอบการรั่วไหลของข้อมูลจากแอปที่ใช้คำขอ GET โดยไม่ได้เข้ารหัส เป็นโปรแกรมอรรถประโยชน์โอเพนซอร์สแบบข้ามแพลตฟอร์มที่ใช้ Wireshark ซึ่งสามารถตรวจสอบอีเทอร์เน็ตแบบมีสาย, วายฟายที่ไม่ปลอดภัย หรือโหลดไฟล์จับแพ็กเก็ตเพื่อวิเคราะห์แบบออฟไลน์ คุกกี้แคดเจอร์ได้ใช้เพื่อเน้นจุดอ่อนของเว็บไซต์ที่ทีมเยาวชนใช้แชร์ข้อมูล เช่น Shutterfly (ใช้โดยลีกฟุตบอล AYSO) และ TeamSnap[9]

การป้องกัน

[แก้]

วิธีป้องกันการไฮแจ็กเซสชันรวมถึง

  • การเข้ารหัสข้อมูลคู่สื่อสารด้วย SSL/TLS โดยเฉพาะตัวกุญแจเซสชัน (แม้ว่าจะดีสุดถ้าเข้ารหัสข้อมูลที่รับส่งทั้งหมด[10]) ธนาคารออนไลน์และบริการอีคอมเมิร์ซอื่น ๆ ล้วนนิยมเทคนิคนี้ เนื่องจากสามารถป้องกันการดักฟังได้อย่างสิ้นเชิง อย่างไรก็ตาม ก็ยังสามารถไฮแจ็กเซสชันในรูปแบบอื่น ในปี 2013 นักวิทยาศาสตร์ชาวดัตช์จากมหาวิทยาลัยรัดเบาด์ไนเมเคิน ได้เสนอวิธีการป้องกันการไฮแจ็กเซสชันโดยเชื่อมโยงเซสชันของแอปกับข้อมูลรับรอง SSL/TLS[11]
  • การใช้ตัวเลขสุ่มหรือสายอักษรยาวเป็นกุญแจเซสชัน ซึ่งช่วยลดความเสี่ยงที่ผู้โจมตีจะเดากุญแจเซสชันได้อย่างถูกต้องโดยลองผิดลองถูกหรือโดยโจมตีแบบใช้กำลัง
  • การสร้างรหัสเซสชันใหม่หลังจากเข้าสู่ระบบได้สำเร็จ ซึ่งป้องกันการการตั้งค่าเซสชันคงที่ เนื่องจากผู้โจมตีไม่ทราบค่าระบุเซสชันของผู้ใช้หลังจากเข้าสู่ระบบแล้ว
  • บริการบางอย่างจะตรวจสอบตัวตนของผู้ใช้เพิ่มเติม เช่น เว็บเซิร์ฟเวอร์อาจตรวจสอบกับคำขอแต่ละชุดว่าที่อยู่ไอพีของผู้ใช้ตรงกับที่ใช้ล่าสุดในเซสชันนั้นหรือไม่ แต่วิธีนี้ก็ไม่สามารถป้องกันการโจมตีจากผู้ที่ใช้ที่อยู่ไอพีเดียวกัน และอาจสร้างความรำคาญให้แก่ผู้ใช้ที่ที่อยู่ไอพีเปลี่ยนแปลงได้ระหว่างการท่องเว็บ
  • อนึ่ง บริการบางอย่างจะเปลี่ยนค่าคุกกี้ในทุกคำขอ ซึ่งช่วยลดช่วงเวลาที่ผู้โจมตีสามารถดำเนินการได้และทำให้ระบุได้ง่ายว่ามีการโจมตีหรือไม่ แต่ก็ยังอาจก่อปัญหาทางเทคนิคอื่น ๆ (เช่น คำขอที่ถูกต้องสองชุดที่มาติด ๆ กันจากไคลเอนต์เดียวกันอาจก่อข้อผิดพลาดในการตรวจสอบโทเค็นบนเซิร์ฟเวอร์)[12][13]

ดูเพิ่ม

[แก้]

เชิงอรรถและอ้างอิง

[แก้]
  1. Bugliesi, Michele; Calzavara, Stefano; Focardi, Riccardo; Khan, Wilayat (2015-09-16). "CookiExt: Patching the browser against session hijacking attacks". Journal of Computer Security. 23 (4): 509–537. doi:10.3233/jcs-150529. hdl:10278/3663357. ISSN 1875-8924.
  2. "Warning of webmail wi-fi hijack". BBC News. 2007-08-03.
  3. "Malware use Browser Hijacking to steal cookie". 2020-10-19.
  4. "Firefox extension steals Facebook, Twitter, etc. sessions". The H. 2010-10-25. คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2024-03-06.
  5. "Facebook now SSL-encrypted throughout". The H. 2011-01-27.
  6. "Twitter adds 'Always use HTTPS' option". The H. 2011-03-16.
  7. "DroidSheep".
  8. "DroidSheep Blog". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2016-11-20. สืบค้นเมื่อ 2012-08-07.
  9. "How Shutterfly and Other Social Sites Leave Your Kids Vulnerable to Hackers". Mother Jones. 2013-05-03. เก็บจากแหล่งเดิมเมื่อ 2024-05-19.
  10. "Schneier on Security: Firesheep". 2010-10-27. สืบค้นเมื่อ 2011-05-29.
  11. Burgers, Willem; Roel Verdult; Marko van Eekelen (2013). "Prevent Session Hijacking by Binding the Session to the Cryptographic Network Credentials". Secure IT Systems. Lecture Notes in Computer Science. Vol. 8208. pp. 33–50. doi:10.1007/978-3-642-41488-6_3. ISBN 978-3-642-41487-9.
  12. "NetBadge: How To Log Out". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2018-02-16. สืบค้นเมื่อ 2024-08-08.
  13. "Be Card Smart Online - Always log out". คลังข้อมูลเก่าเก็บจากแหล่งเดิมเมื่อ 2010-07-24. สืบค้นเมื่อ 2024-08-08.