ช่องโหว่ความปลอดภัยในการเชื่อมต่อด่วนของ AirPods
(blogs.gnome.org)- เนื่องจาก CVE-2024-27867 ในเฟิร์มแวร์ AirPods ผู้ที่รู้ Bluetooth MAC address สามารถเชื่อมต่อกับอุปกรณ์เพื่อดักฟังไมโครโฟนหรือเล่นเพลงได้
- ช่องโหว่นี้เกิดจากเส้นทาง Fast Connect ซึ่งเป็นโปรโตคอลเฉพาะของ Apple ไม่มีการตรวจสอบสถานะการยืนยันตัวตนและการเข้ารหัสอย่างชัดเจน
- Bluetooth MAC address ที่ใช้ในการโจมตีไม่ใช่ข้อมูลปิดลับทั้งหมด และสามารถรับได้ผ่านสัญญาณวิทยุเมื่ออยู่ในโหมดจับคู่หรือเมื่อ AirPods กำลังทำงานอยู่
- หาก AirPods อยู่ในเคสชาร์จที่ปิดอยู่ หรือ AirPods Max อยู่ใน Smart Case ฟังก์ชันไร้สายจะปิด ทำให้ไม่สามารถเชื่อมต่อได้เลย
- Apple ได้ปล่อยอัปเดตเฟิร์มแวร์สำหรับ AirPods และ Beats บางรุ่นแล้ว แต่ผู้ใช้ Android, Windows, Linux ที่ใช้งานโดยไม่มี iOS หรือ macOS อาจอัปเดตได้ยุ่งยากกว่า
ช่องโหว่เฟิร์มแวร์ AirPods และขอบเขตผลกระทบ
- มีช่องโหว่ความปลอดภัย CVE-2024-27867 ในเฟิร์มแวร์ Apple AirPods
- ผู้ที่รู้ Bluetooth MAC address สามารถเชื่อมต่อกับ AirPods และทำสิ่งต่อไปนี้ได้
- ดักฟัง ไมโครโฟน
- เล่นเพลง
- ตรวจสอบและหยุดชั่วคราวเพลงที่กำลังเล่นบนอุปกรณ์อื่นที่เชื่อมต่ออยู่
- ทำงานบางอย่างผ่านโปรโตคอล AAP
- ส่งข้อความที่มีรูปแบบไม่ถูกต้องเพื่อทำให้ AirPods แครช
- แม้ AirPods จะเชื่อมต่อกับโทรศัพท์อยู่แล้ว ผู้โจมตีก็ยังเชื่อมต่อเพิ่มได้
- อย่างไรก็ตาม หากผู้โจมตีเปิดไมโครโฟน การเล่นเพลงจะหยุด
- หาก AirPods อยู่ในเคสชาร์จที่ปิดอยู่ หรือ AirPods Max อยู่ใน Smart Case ฟังก์ชันไร้สายจะปิด ทำให้ไม่สามารถเชื่อมต่อใดๆ ได้
เส้นทางการค้นพบช่องโหว่
- AirPods 3 ทำงานหลายอย่างได้อย่างลื่นไหลเมื่อใช้ร่วมกับ macOS และอุปกรณ์ Apple แต่เมื่อบูตโน้ตบุ๊กเครื่องเดียวกันด้วย Linux กลับไม่สามารถเชื่อมต่อกับโทรศัพท์และโน้ตบุ๊กพร้อมกันได้
- จากความต่างนี้จึงสันนิษฐานว่ามีการใช้ โปรโตคอลเฉพาะของ Apple ที่ไม่มีในหูฟัง Bluetooth ทั่วไป และเริ่มวิเคราะห์เพื่อพัฒนาความสามารถบางอย่างกลับมาบน Linux
- ระหว่างการวิเคราะห์ได้พบช่องโหว่ในฟีเจอร์ Fast Connect ของ Apple ที่ใช้เชื่อมต่ออุปกรณ์ Bluetooth รอบข้าง
วิธีการทำงานของ Fast Connect
- Fast Connect เป็นโปรโตคอลเฉพาะของ Apple และใช้ ฟังก์ชัน ping ในสเปก Bluetooth อย่างสร้างสรรค์
- เป้าหมายคือการลดเวลาในการตั้งค่าการเชื่อมต่อระหว่างอุปกรณ์ Apple สองเครื่องจากราว 1 วินาทีเหลือประมาณ 0.5 วินาที
- ก่อนยืนยันตัวตนกับอุปกรณ์ปลายทาง ทั้งสองอุปกรณ์จะแลกเปลี่ยน ข้อความ L2CAP ping กัน
- Apple ใส่ข้อความโปรโตคอลไว้ใน payload ของ ping
- วิธีนี้ช่วยตรวจสอบได้ว่าอีกฝั่งรองรับ Fast Connect หรือไม่ โดยไม่ขัดกับสเปก Bluetooth
- หลังจากนั้นจะมีการแลกเปลี่ยนข้อความเพิ่มเติมอีก 3 รอบเพื่อเจรจาข้อมูลที่จำเป็นต่อการเชื่อมต่อ
- รวมแล้วมีการรับส่งไปกลับเพียง 4 รอบ จึงเร็วกว่าการเชื่อมต่อ Bluetooth แบบทั่วไปที่ต้องแลกเปลี่ยน SDP descriptor และตั้งค่าช่องสัญญาณ
การขาดการตรวจสอบการยืนยันตัวตน
- ปัญหาอยู่ที่เส้นทางโค้ดแยกต่างหากที่ใช้ทำงาน Fast Connect ซึ่งขาดการตรวจสอบสำคัญบางอย่าง
- AirPods ไม่ได้ตรวจสอบว่าฝั่งที่เชื่อมต่อผ่านการยืนยันตัวตนจริงและเปิดการเข้ารหัสแล้วหรือไม่
- iOS และ macOS ปกติจะทำขั้นตอนยืนยันตัวตนและเปิดการเข้ารหัสหลังข้อความ Fast Connect เริ่มต้น
- แม้ผู้โจมตีจะข้ามขั้นตอนนี้ไป AirPods ก็ยังดำเนินกระบวนการ Fast Connect ต่อ
- หากเชื่อมต่อกับ AirPods ผ่าน Bluetooth แบบทั่วไปโดยไม่ใช้ Fast Connect ขั้นตอนยืนยันตัวตนจะถูกรวมอยู่โดยปริยาย จึงเป็นไปได้ว่าทำให้เส้นทางโค้ด Fast Connect ขาดการตรวจสอบแบบชัดเจน
เงื่อนไขเรื่อง Bluetooth MAC address
- ผู้โจมตีต้องรู้ Bluetooth MAC address แบบคงที่ ของ AirPods
- ที่อยู่นี้ไม่ใช่ข้อมูลลับโดยสมบูรณ์
- อุปกรณ์ Bluetooth จะประกาศค่านี้ผ่านสัญญาณวิทยุเมื่ออยู่ในโหมดจับคู่
- เมื่อ AirPods อยู่ในสถานะใช้งาน ก็สามารถดักรับจากสัญญาณวิทยุได้ง่ายด้วยฮาร์ดแวร์อย่าง Ubertooth One
อัปเดตและปัญหาสำหรับผู้ใช้ที่ไม่ใช่ Apple
- Apple ได้ปล่อยอัปเดตเฟิร์มแวร์หลายตัวในช่วงไม่กี่วันที่ผ่านมาเพื่อแก้ช่องโหว่นี้
- รุ่นที่ได้รับผลมี AirPods 2, AirPods 3, AirPods Pro, AirPods Pro 2, AirPods Max และหูฟัง Beats บางรุ่น
- ผู้ใช้ควรตรวจสอบว่าเฟิร์มแวร์ AirPods เป็นเวอร์ชันล่าสุดหรือไม่
- ข้อมูลอัปเดตความปลอดภัย: หน้า Apple Security
- วิธีอัปเดต: คู่มืออัปเดตเฟิร์มแวร์ AirPods
- เฟิร์มแวร์ AirPods จะอัปเดตอัตโนมัติ แต่จะอัตโนมัติเฉพาะเมื่อใช้งานร่วมกับ iPhone หรือ MacBook เท่านั้น
- ผู้ใช้ที่ใช้งาน AirPods โดยไม่มีอุปกรณ์ iOS หรือ macOS เช่น ผู้ใช้ Android, Windows, Linux อาจอัปเดตเฟิร์มแวร์ได้ยาก
- ผู้ใช้กลุ่มนี้ดูเหมือนจะสามารถรับการอัปเดตเฟิร์มแวร์ได้ที่ Apple Store
การรายงานและเครื่องมือ
- Jiska Classen จาก University of Potsdam ได้ช่วยเหลือเกี่ยวกับคำถามด้าน Bluetooth และขั้นตอนการเปิดเผยข้อมูล
- เครื่องมือจากชุมชน Linux อย่าง BlueZ มีความจำเป็นต่อการค้นพบปัญหานี้
1 ความคิดเห็น
ความเห็นจาก Hacker News
อยากรู้ว่าปัจจัยอะไรเป็นตัวกำหนดสเกลเวลาของกระบวนการนี้
สุดท้ายแล้ว handshake ที่ใช้ตรวจสอบว่าทั้งสองฝั่งรองรับความสามารถอะไร และจะสื่อสารกันด้วย physical layer protocol แบบใด เป็นส่วนที่กินเวลา
มีแอป third-party อยู่บ้างแต่เชื่อถือได้ไม่มาก โชคดีที่บน Mac ทำได้เกือบทั้งหมด แต่การทดสอบการสวมใส่ยังต้องใช้ iPhone เท่านั้น การอัปเกรดเฟิร์มแวร์ก็ไม่อยู่ในการควบคุมของผู้ใช้เลย และไม่มีข้อมูลสถานะหรือความคืบหน้าใดๆ ทำให้สับสนแบบสุดๆ
ครั้งหนึ่งเจ้าหน้าที่ซัพพอร์ตที่ Apple Store บอกว่า “ให้เชื่อมต่อ AirPods กับ Mac แล้วใส่ไว้ในเคสที่เปิดฝาอยู่ จากนั้นเสียบเคสเข้ากับไฟแล้วปล่อยทิ้งไว้ประมาณ 30 นาที” แต่ในความเป็นจริงมันให้ความรู้สึกว่าสุ่มพอสมควรว่าจะอัปเดตเมื่อไร เจ้าหน้าที่ Apple Store เองก็ดูจะรู้รายละเอียดการทำงานร่วมกันระหว่างอุปกรณ์ Apple ที่ไม่ใช่ iPhone แบบคลุมเครืออยู่บ่อยๆ และยังแปลกใจถึงสองครั้งที่ผมใช้ AirPods กับ Mac และ Android โดยไม่มี iPhone
https://support.apple.com/en-us/106340
เวอร์ชันสหรัฐแสดงหมายเลขเฟิร์มแวร์ล่าสุดไม่เหมือนกัน เช่น AirPods Pro รุ่นที่ 2 เป็น 6F8 แต่เวอร์ชันอินเดียเป็น 6B34
รออ่านบทความภาคต่อเกี่ยวกับ การทำ implementation บน Linux
อยากมี สิทธิ์ควบคุมการอัปเดต มากกว่านี้
https://support.apple.com/en-us/106340
สำหรับผู้ใช้ AirPods กว่า 95% อาจไม่จำเป็นต้องรู้เรื่องเฟิร์มแวร์อัปเดตเลยก็จริง แต่สำหรับคนที่ใส่ใจ ก็ควรมีวิธีให้ตรวจสอบได้ว่าเกิดอะไรขึ้น
ปกติแล้วนี่ไม่ใช่ปัญหาใหญ่ แต่ผมเคยได้รับเฟิร์มแวร์ AirPods ช้ากว่าคนอื่นหลายวัน และในอนาคตอาจมีช่วงเวลาที่ การอัปเดตทันที สำคัญก็ได้
ถ้าเป็นการตัดการเชื่อมต่อเดิม ก็ไม่น่าจะดักฟังการโทรหรือสตรีมเสียงโดยที่ผู้ใช้ไม่รู้ตัวได้ง่ายๆ ผมไม่แน่ใจว่าแย่สุดคือการสแกนหา MAC address ในระยะใกล้แล้วเชื่อมต่ออัตโนมัติเพื่อเล่นเสียงรบกวนเข้าหู หรือมันมีอะไรหนักกว่านั้น
การแย่ง AirPods ของคนดังหรือนักการเมืองระหว่างวิดีโอคอลอาจพอเป็นไปได้ แต่ก็คงถูกสังเกตเห็นทันที เลยสงสัยว่ามีอะไรที่แย่กว่านั้นหรือไม่
นอกจากนี้ การยึดการเชื่อมต่อ Bluetooth ได้ก็หมายถึงได้พื้นผิวการโจมตีที่กว้างพอสมควร ดังนั้นหากผู้โจมตีรู้ช่องโหว่อื่นอยู่แล้ว ก็อาจต่อยอดเป็นเชนของการโจมตีเพิ่มเติมได้
ดูเหมือนโปรโตคอล “Fast Connect” จะอนุญาตให้ “เชื่อมต่อ” กับหลายอุปกรณ์พร้อมกันได้ ผู้ใช้จึงอาจไม่สังเกตเห็น อีกแนวทางโจมตีหนึ่งคือเอาอุปกรณ์ทรง ที่รองแก้วกาแฟ ไปวางตามจุดต่างๆ ในออฟฟิศเหมือนเป็นของแม่บ้าน แล้วดักจับเสียงจาก AirPods แถวนั้น
ส่วนที่ยากจริงๆ เหมือนจะถูกแก้ไปแล้ว เหลือแค่สร้างอุปกรณ์ที่มีแบตเตอรี่เล็กๆ ตัวส่ง Bluetooth และหน่วยเก็บข้อมูล เพื่อเก็บ เสียงคุณภาพสูง ใกล้ๆ บริเวณที่คนกำลังคุยกัน
แต่ก็ยังต้องอยู่ในระยะ Bluetooth อยู่ดี ดังนั้นบางทีการแอบฟังแบบธรรมดาอาจง่ายกว่า
ถ้ายังไม่ถูกแพตช์ ใครสักคนก็คงทำแอปก่อกวน AirPods สำหรับ Flipper Zero ขึ้นมาเพื่อทำให้เสียงใน AirPods ของทุกคนในที่สาธารณะหลุดแล้วสร้างความรำคาญ
ดูเหมือน 6A326 จะเป็นเวอร์ชันที่มีการแก้ไขนี้รวมอยู่
https://support.apple.com/en-us/HT214111
น่าจะเป็นเวอร์ชันสำหรับ AirPods Pro รุ่นที่ 2