การไฮแจ็กเซสชันคืออะไร

เผยแพร่แล้ว: 2023-04-27

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

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

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

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

เซสชันคืออะไรกันแน่?

เซสชันเป็นเพียงชุดของการโต้ตอบระหว่างจุดสิ้นสุดของการสื่อสารที่เกิดขึ้นตลอดการเชื่อมต่อ HTTP เดียว

Hypertext Transfer Protocol (HTTP) เป็นพื้นฐานของเว็บ เป็นสิ่งที่ช่วยให้คุณใช้ไฮเปอร์เท็กซ์ลิงก์และโหลดหน้าเว็บได้ HTTP ยังเป็นโปรโตคอลชั้นแอปพลิเคชันสำหรับการส่งข้อมูลระหว่างอุปกรณ์บนเครือข่าย

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

การจัดการกับภาวะไร้รัฐไร้สัญชาติ

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

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

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

ตัวระบุเซสชัน

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

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

การไฮแจ็กเซสชันทำงานอย่างไรในทางปฏิบัติ

การโจมตีด้วยการจี้เซสชันที่ประสบความสำเร็จเป็นการลอบเร้นอย่างมาก พวกเขามักจะทำบนเครือข่ายที่ยุ่งมากซึ่งมีเซสชันการสื่อสารที่ใช้งานอยู่มาก

รูปแบบของการไฮแจ็กเซสชันที่พบบ่อยที่สุดบางรูปแบบใช้ประโยชน์จาก:

  • รหัสโทเค็นเซสชันที่คาดการณ์ได้
  • การดมกลิ่นเซสชัน
  • การแย่งชิงเซสชัน
  • มัลแวร์ในเบราว์เซอร์
  • การเขียนสคริปต์ข้ามไซต์
  • การแก้ไขเซสชัน

มาดูเวกเตอร์ภัยคุกคามเหล่านี้ทีละตัวกัน

รหัสโทเค็นเซสชันที่คาดการณ์ได้

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

และยิ่งง่ายสำหรับแฮ็กเกอร์ในการทำนาย

การดมกลิ่นเซสชัน

การดักจับเซสชันเป็นหนึ่งในวิธีที่ง่ายและพื้นฐานที่สุดที่แฮ็กเกอร์ใช้สำหรับการไฮแจ็กเซสชันในชั้นแอปพลิเคชัน

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

เซสชั่น Sidejacki ng

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

Man-In-the-Browser

ในการโจมตีนี้ ผู้โจมตีต้องทำให้คอมพิวเตอร์หรือเบราว์เซอร์ของเหยื่อติดมัลแวร์ในขั้นต้น

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

การเขียนสคริปต์ข้ามไซต์

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

เมื่อไม่ได้ตั้งค่า HTTP-only ในคุกกี้เซสชัน อาจเป็นไปได้ที่จะขโมยคีย์เซสชันผ่านโค้ดที่ป้อนเข้าไป สิ่งนี้จะช่วยให้ผู้โจมตีมีทุกอย่างที่จำเป็นในการไฮแจ็กเซสชันของผู้ใช้

การแก้ไขเซสชัน

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

เมื่อการรับรองความถูกต้องเกิดขึ้น ผู้โจมตีจะสามารถเข้าถึงคอมพิวเตอร์ของเหยื่อได้อย่างเต็มที่

การแก้ไขเซสชันสำรวจข้อจำกัดใหญ่ในวิธีที่เว็บแอปพลิเคชันจัดการ ID เซสชัน

แฮ็กเกอร์ได้อะไรจากการไฮแจ็กเซสชัน

เมื่อแฮ็กเกอร์ทำการไฮแจ็กเซสชัน พวกเขาสามารถทำทุกอย่างที่ผู้ใช้ที่ถูกต้องตามกฎหมายได้รับอนุญาตให้ทำในเซสชันที่ใช้งานอยู่นั้น

การไฮแจ็กเซสชันที่มีประสิทธิภาพและสร้างความเสียหายมากที่สุดอาจส่งผลให้:

  • บัญชีธนาคารที่ถูกบุกรุก
  • รายการซื้อออนไลน์ที่ไม่ได้รับอนุญาตทางออนไลน์
  • ระบุการโจรกรรม
  • การโจรกรรมข้อมูลจากระบบภายในบริษัท

ไม่ดี! การไฮแจ็คเซสชันที่ประสบความสำเร็จสามารถสร้างความเสียหาย ได้มากมาย

ตัวอย่างของการไฮแจ็กเซสชันมีอะไรบ้าง

ในฤดูใบไม้ร่วงปี 2012 นักวิจัยด้านความปลอดภัยสองคนชื่อ Juliano Rizzo และ Thai Duong ได้ประกาศ CRIME ซึ่งเป็นการโจมตีที่ใช้ประโยชน์จากการรั่วไหลของข้อมูลภายในอัตราส่วนการบีบอัดของคำขอ TLS เป็นช่องทางด้านข้าง สิ่งนี้ทำให้พวกเขาสามารถถอดรหัสคำขอที่ไคลเอ็นต์ส่งไปยังเซิร์ฟเวอร์ได้

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

การสาธิตนี้แสดงให้เห็นว่าแฮ็กเกอร์สามารถดำเนินการโจมตีประเภทนี้เพื่อกู้คืนส่วนหัวของคำขอ HTTP ได้อย่างไร

CRIME ทำงานเพื่อถอดรหัสคุกกี้ HTTPS ที่เว็บไซต์ตั้งค่าให้จดจำผู้ใช้ที่ผ่านการรับรองความถูกต้องโดยใช้กำลังเดรัจฉาน รหัสโจมตีบังคับให้เบราว์เซอร์ของเหยื่อส่งคำขอ HTTPS ที่สร้างขึ้นเป็นพิเศษไปยังเว็บไซต์เป้าหมายและวิเคราะห์การเปลี่ยนแปลงของความยาวหลังจากถูกบีบอัดเพื่อกำหนดค่าคุกกี้เซสชันของเหยื่อ สิ่งนี้เป็นไปได้เนื่องจาก SSL/TLS ใช้อัลกอริธึมการบีบอัดที่เรียกว่า DEFLATE ซึ่งจะกำจัดสตริงที่ซ้ำกันดังที่เราเห็นด้านบน

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

ค่าคุกกี้ของเซสชันอาจยาวมาก พวกเขากำลังสร้างจากตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กและตัวเลข

เป็นผลให้รหัสโจมตี CRIME ต้องเริ่มต้นคำขอจำนวนมากเพื่อถอดรหัส ซึ่งอาจใช้เวลาหลายนาที

การป้องกันการไฮแจ็กเซสชัน

สิ่งสำคัญคือต้องจำไว้ว่าผู้โจมตีสามารถขโมยและนำรหัสเซสชันกลับมาใช้ใหม่ (หรือค่าคุกกี้อื่นๆ ที่ละเอียดอ่อน) เมื่อส่งต่อหรือจัดเก็บอย่างไม่ปลอดภัย แม้ว่าการป้องกัน 100% จะไม่ใช่การรับประกัน แต่การใช้การเข้ารหัสเป็นการป้องกันที่สำคัญ

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

นอกเหนือจากนั้น เจ้าของไซต์ WordPress ต้องใช้ปลั๊กอินความปลอดภัย iThemes Security Pro WordPress สำหรับการป้องกันการไฮแจ็กเซสชัน คุณลักษณะอุปกรณ์ที่เชื่อถือได้ที่มีอยู่ใน iThemes Security Pro จะทำงานตลอด 24 ชั่วโมงต่อวัน เจ็ดวันต่อสัปดาห์ เพื่อช่วยให้ไซต์ของคุณปลอดภัยจากการโจมตีที่เป็นอันตรายนี้ เรียนรู้วิธีตั้งค่าสำหรับผู้ใช้ไซต์ของคุณ

การทำความเข้าใจและการป้องกันการไฮแจ็กเซสชัน

ด้วยข้อมูลในคู่มือนี้ คุณรู้ทุกอย่างที่จำเป็นในการปกป้องไซต์ WordPress ของคุณจากการไฮแจ็กเซสชัน:

  1. ตรวจสอบให้แน่ใจว่าไซต์ของคุณได้รับการเข้ารหัสอย่างสมบูรณ์โดยใช้ SSL และจะบังคับให้ผู้ใช้อยู่ใน HTTPS
  2. ดาวน์โหลดและติดตั้งปลั๊กอิน iThemes Security Pro

ด้วยการทำตามขั้นตอนง่าย ๆ เหล่านี้ คุณจะปกป้องไซต์ของคุณจากการไฮแจ็กเซสชัน