ช่องโหว่ใน Apple Silicon อาจเปิดทางให้แฮ็กเกอร์ขโมยคีย์
งานวิจัยทางวิชาการล่าสุด (ตีพิมพ์ใน ArsTechnica) ได้เปิดเผยถึงช่องโหว่ที่แก้ไขไม่ได้ในชิป M-series ของ Apple ซึ่งอาจส่งผลให้ผู้โจมตีสามารถขโมยคีย์เข้ารหัสลับออกจากเครื่อง Mac ภายใต้เงื่อนไขบางอย่างได้
ช่องโหว่นี้มีชื่อเรียกว่า “GoFetch” โดยเป็นรูปแบบการโจมตีทางไซเบอร์ที่เกี่ยวข้องกับกลไก Data Memory-Dependent Prefetchers (DMPs) ซึ่ง DMP จะพยายามคาดการณ์ว่าคอมพิวเตอร์จะต้องการข้อมูลใดต่อไปและดึงข้อมูลนั้นมาเตรียมไว้ล่วงหน้า ถึงแม้จะมีจุดประสงค์เพื่อเร่งกระบวนการทำงาน แต่ DMP กลับอาจเผลยเปิดเผยข้อมูลสำคัญเกี่ยวกับสิ่งที่คอมพิวเตอร์กำลังประมวลผลได้
งานวิจัยดังกล่าวพบว่า DMP โดยเฉพาะอย่างยิ่งในโปรเซสเซอร์ของ Apple อาจเป็นภัยคุกคามอย่างมากต่อความปลอดภัยที่เกิดจากรูปแบบการเขียนโปรแกรมแบบเวลาคงที่ (constant-time programming) ซึ่งโดยปกติถูกใช้ในการเขียนโปรแกรมให้ใช้เวลาประมวลผลเท่ากัน โดยไม่คำนึงถึงประเภทของข้อมูลที่ต้องจัดการ
หลักการเขียนโปรแกรมแบบเวลาคงที่นี้มีจุดมุ่งหมายในการป้องกันการโจมตีแบบ side-channel ซึ่งเป็นรูปแบบการโจมตีที่ผู้ไม่หวังดีสามารถล้วงข้อมูลที่ละเอียดอ่อนจากระบบคอมพิวเตอร์ได้โดยไม่ต้องเข้าถึงโดยตรง (ตัวอย่างเช่น การสังเกตความผิดปกติบางอย่าง) แนวคิดเบื้องหลังคือถ้าทุกการทำงานใช้ระยะเวลาเท่ากัน ผู้โจมตีก็แทบจะไม่มีช่องทางสังเกตความผิดปกติเพื่อหาประโยชน์
อย่างไรก็ตามงานวิจัยกลับพบว่า DMP โดยเฉพาะใน Apple Silicon กลับสามารถรั่วไหลข้อมูลได้ แม้ในขณะที่โปรแกรมนั้นถูกออกแบบมาอย่างดีไม่ให้เปิดเผยรูปแบบใด ๆ เกี่ยวกับวิธีการเข้าถึงหน่วยความจำ งานวิจัยใหม่นี้แสดงให้เห็นว่า DMP บางครั้งอาจเข้าใจเนื้อหาของหน่วยความจำผิดพลาด ทำให้เกิดการเข้าถึงหน่วยความจำในตำแหน่งที่ไม่ตั้งใจไว้ ซึ่งส่งผลให้หลักการเขียนโปรแกรมแบบเวลาคงที่ถูกทำลายลง
ผู้เขียนงานวิจัยนี้ได้นำเสนอ GoFetch ซึ่งเป็นรูปแบบการโจมตีชนิดใหม่ที่สามารถใช้ประโยชน์จากช่องโหว่ใน DMP เพื่อล้วงคีย์เข้ารหัสออกจากซอฟต์แวร์ที่มีการป้องกันอย่างแน่นหนา การโจมตีนี้สามารถใช้ได้กับอัลกอริทึมการเข้ารหัสยอดนิยมที่เชื่อกันว่าสามารถต้านทานการโจมตีแบบ side-channel ได้ ซึ่งครอบคลุมทั้งวิธีการเข้ารหัสแบบดั้งเดิม (เช่น OpenSSL Diffie-Hellman Key Exchange, Go RSA decryption) และวิธีการเข้ารหัสล้ำยุคแบบ post-quantum (เช่น CRYSTALS-Kyber และ CRYSTALS-Dilithium)
ผู้เขียนได้อธิบายผ่านอีเมลถึง ArsTechnica ว่า
โดยปกติแล้ว prefetchers จะดูที่ตำแหน่ง (address) ของข้อมูลที่กำลังเข้าถึง (แต่จะมองข้ามค่าของข้อมูลนั้นไป) และพยายามคาดเดาตำแหน่งในอนาคตที่อาจจะเป็นประโยชน์ แต่ DMP มีการทำงานที่แตกต่างออกไป เพราะนอกจากการสังเกตตำแหน่งข้อมูลแล้ว มันยังใช้ค่าของข้อมูลเพื่อทำการคาดการณ์ด้วย (คาดเดาตำแหน่งที่ควรเข้าถึง และดึงข้อมูลล่วงหน้า) โดยเฉพาะอย่างยิ่ง ถ้าค่าข้อมูล ‘ดูเหมือน’ เป็นตัวชี้ (pointer) ค่าดังกล่าวจะถูกปฏิบัติเสมือน ‘ตำแหน่ง’ (ทั้ง ๆ ที่ในความจริงแล้วไม่ใช่!) และข้อมูลจาก ‘ตำแหน่ง’ นี้จะถูกดึงเข้ามาที่หน่วยเก็บข้อมูลชั่วคราว (cache) การมาถึงของตำแหน่งนี้ใน cache สามารถสังเกตเห็นได้ ทำให้รั่วไหลได้ทาง cache side channels
การโจมตีของเรานั้นใช้ประโยชน์จากข้อเท็จจริงนี้ เราไม่สามารถรั่วไหลคีย์เข้ารหัสออกมาโดยตรง แต่สามารถจัดการข้อมูลกลางคันระหว่างที่อัลกอริธึมการเข้ารหัสทำงานให้ดูเหมือนเป็น pointer ผ่านการโจมตีชนิด chosen-input ได้ ต่อมา DMP เมื่อเห็นว่าค่าข้อมูลนี้ ‘ดูเหมือน’ เป็นตำแหน่ง ก็จะดึงข้อมูลจาก ‘ตำแหน่ง’ นี้เข้ามาที่ cache ทำให้ ‘ตำแหน่ง’ ดังกล่าวรั่วไหลได้ เราไม่ได้สนใจว่าค่าข้อมูลที่ถูกดึงนั้นจะมีค่าอะไร แต่ข้อเท็จจริงที่ว่าข้อมูลดูเหมือนเป็นตำแหน่งนั้นสามารถสังเกตเห็นได้ผ่าน cache channel ซึ่งเพียงพอต่อการเปิดเผยคีย์ลับเมื่อเวลาผ่านไป”
โดยสรุปแล้ว งานวิจัยนี้แสดงให้เห็นว่าคุณสมบัติ DMP ใน CPU ของ Apple Silicon สามารถถูกใช้ในการแหวกทะลุมาตรการรักษาความปลอดภัยในซอฟต์แวร์เข้ารหัส ซึ่งเชื่อกันมาตลอดว่าสามารถป้องกันการรั่วไหลข้อมูลประเภทนี้ได้ และอาจเปิดโอกาสให้ผู้โจมตีเข้าถึงข้อมูลสำคัญต่าง ๆ เช่นคีย์ RSA 2048-bit โดยในบางกรณีใช้เวลาเพียงไม่ถึงชั่วโมง
การป้องกันและลดความเสี่ยง
ผู้เขียนได้ชี้ว่าจุดอ่อนในชิปของ Apple นั้นไม่สามารถถูกอุดได้โดยตรง แต่ช่องทางการโจมตีดังกล่าวจะสามารถลดแรงกระเพื่อมลงได้โดยการสร้างกลไกป้องกันภายในซอฟต์แวร์เข้ารหัสของบุคคลที่สาม ซึ่งการทำเช่นนี้อาจส่งผลให้ประสิทธิภาพการทำงานของขั้นตอนการเข้ารหัสนั้นลดลงอย่างมาก โดยเฉพาะอย่างยิ่งสำหรับชิปรุ่นเก่าอย่าง M1 และ M2 สำหรับ DMP บน M3 ชิปล่าสุดของ Apple จะมาพร้อมกับบิตพิเศษที่ผู้พัฒนาสามารถสั่งให้ปิดการทำงานได้ แต่เหล่านักวิจัยยังไม่ทราบแน่ชัดว่าการปิดการเพิ่มประสิทธิภาพนี้จะมีผลด้านลบต่อประสิทธิภาพการทำงานมากน้อยเพียงใด
ข้อสรุป
ดังที่ทาง ArsTechnica ได้กล่าวไว้ นี่ไม่ใช่ครั้งแรกที่นักวิจัยได้ค้นพบภัยคุกคามใน Apple DMP โดยในปี 2022 ก็มีงานวิจัยที่ระบุถึงจุดอ่อนดังกล่าวในทั้งชิป M1 และชิป A14 Bionic ของ Apple สำหรับ iPhone ซึ่งได้นำไปสู่แนวทางการโจมตีโดยใช้ช่องโหว่ใน “Augury” อย่างไรก็ตามการโจมตีนั้นไม่สามารถล้วงข้อมูลที่ละเอียดอ่อนได้สำเร็จเมื่อใช้การเข้ารหัสแบบเวลาคงที่
“GoFetch แสดงให้เห็นว่า DMP ทำงานได้รุนแรงและก้าวร้าวกว่าที่เคยคิดไว้ จึงเป็นความเสี่ยงทางด้านความปลอดภัยที่หนักหน่วงขึ้นมาก” นักวิจัยกล่าวบนเว็บไซต์ของพวกเขา “โดยเฉพาะอย่างยิ่งเราพบว่าค่าใด ๆ ที่ถูกเรียกขึ้นมาจากหน่วยความจำมีโอกาสเป็นข้อมูลที่ถูกส่งผ่านต่อไป (ตามตัวอักษร!) นั่นทำให้เราสามารถหลีกเลี่ยงข้อจำกัดมากมายใน Augury และสาธิตการโจมตีมุ่งตรงสู่โค้ดแบบเวลาคงที่ระดับ production ได้สำเร็จ”
การโจมตีสไตล์ DMP ยังถือว่าไม่แพร่หลาย เหล่านักวิจัยได้แจ้ง Apple เกี่ยวกับช่องโหว่นี้ไว้แล้วตั้งแต่เดือนธันวาคม 2023 ผู้ใช้ที่รู้สึกกังวลใจเกี่ยวกับช่องโหว่นี้ควรตรวจสอบอัปเดตเพื่ออุดช่องโหว่ดังกล่าว ซึ่งคาดว่าจะมีให้สำหรับโปรโตคอลการเข้ารหัส
สำหรับผู้ใช้เครื่อง Mac ที่ใช้งานโปรโตคอลการเข้ารหัสที่อาจมีความเสี่ยง โปรดรออัปเดต macOS เวอร์ชันใหม่ ๆ ที่จะตามมา ซึ่งคาดว่าจะมีการแก้ไขช่องโหว่นี้อย่างเบ็ดเสร็จ ทางผู้แทนของ Apple ปฏิเสธที่จะให้ความเห็นอย่างเป็นทางการเมื่อ ArsTechnica สอบถามเกี่ยวกับงานวิจัยชิ้นนี้