เตือนภัย! ลิงก์แชร์ ChatGPT ที่ไม่ปลอดภัย อาจเปิดช่องทางให้แฮกเกอร์รันโค้ดและแอบอ่านแชตส่วนตัวได้
นักวิจัยด้านความปลอดภัยจากบริษัท Parameter ได้ค้นพบบัก (Bug) ความปลอดภัยระดับร้ายแรงใน ChatGPT ซึ่งอนุญาตให้ลิงก์แชร์สนทนาที่ถูกปรับแต่งมาเป็นพิเศษ สามารถรันโค้ดอันตรายภายในเซสชันที่ผู้ใช้กำลังล็อกอินอยู่ได้ทันที ส่งผลให้ผู้ไม่หวังสามารถแอบอ่านบทสนทนาส่วนตัวของผู้ใช้ได้ โดยที่เหยื่อแทบไม่ต้องทำอะไรซับซ้อนเลยครับ
ช่องโหว่นี้ทำงานอย่างไร?
จุดเริ่มต้นมาจากฟีเจอร์ "Preview" ของ ChatGPT ที่สามารถแปลงบล็อก HTML ภายในแชตให้กลายเป็นหน้าเว็บย่อยได้ ซึ่งปกติแล้วระบบจะรันอยู่ในแซนด์บ็อกซ์ (Sandbox) ที่ปลอดภัยและแยกส่วนออกจากหน้าหลักของ ChatGPT เพื่อป้องกันไม่ให้เข้าถึงข้อมูลภายนอกได้
แต่นักวิจัยพบจุดอ่อนที่ทำให้แซนด์บ็อกซ์นี้หลุดออกไปได้ผ่าน 2 องค์ประกอบหลักในแชตเดียวกัน ดังนี้ครับ:
- ไลบรารี MathLive: ในแชตดังกล่าวมีกราฟอินเทอร์แอกทีฟที่โหลดไลบรารีชื่อ MathLive เข้ามาทำงานในหน้าหลัก ซึ่งเปิด "Listener" คอยรับข้อความเกี่ยวกับแป้นพิมพ์บนหน้าจอเอาไว้
- ช่องโหว่การรับส่งข้อความระหว่างเฟรม (Cross-Frame Messaging): Listener ตัวนี้ดันยอมรับข้อความจากเฟรมใดก็ได้โดยไม่มีการตรวจสอบผู้ส่ง แถมยังอนุญาตให้ส่งข้อมูลดิบประเภท HTML เข้ามาได้ ทำให้หน้าต่าง Preview สามารถทะลวงข้ามขอบเขตและส่งโค้ด HTML อันตรายเข้ามายังหน้าเว็บหลักของ ChatGPT ได้สำเร็จ
เมื่อโค้ดหลุดเข้ามาได้สำเร็จ มันจะสร้างเฟรมใหม่ที่เบราว์เซอร์มองว่าเป็นส่วนหนึ่งของเว็บไซต์ chatgpt.com และอาศัยสคริปต์ที่โหลดมาจาก YouTube เพื่อดึงโค้ดอันตรายเข้ามาทำงานในเซสชันของผู้ใช้ ด้วยสิทธิ์ระดับเดียวกับบัญชีจริง ทำให้แฮกเกอร์สามารถดึงรายการสนทนาล่าสุด เปิดดูแชตส่วนตัวที่ไม่เคยแชร์ และส่งข้อมูลออกไปยังเซิร์ฟเวอร์ภายนอกได้ทันที
การแก้ไขและสิ่งที่ผู้ใช้ควรทำ
ข่าวดีคือทาง OpenAI ได้รับรายงานเรื่องนี้ผ่านโปรแกรม Bug Bounty เมื่อวันที่ 18 ตุลาคมที่ผ่านมา และได้ดำเนินการแก้ไขอย่างรวดเร็วภายใน 8 วัน โดยยกระดับความรุนแรงให้อยู่ในระดับ P1 (สูงสุด) และปล่อยแพตช์อัปเดตระบบเว็บฟรอนต์แอนด์เรียบร้อยตั้งแต่วันที่ 26 ตุลาคมที่ผ่านมา
- สำหรับผู้ใช้งานทั่วไป: ไม่ต้องทำอะไรเลยครับ! การแก้ไขทั้งหมดเกิดขึ้นบนฝั่งเซิร์ฟเวอร์ของ OpenAI ผู้ใช้ไม่ต้องติดตั้งโปรแกรมอะไรเพิ่ม หรือรีเซ็ตค่าใดๆ ทั้งสิ้นครับ
