Project Zero รายงานปัญหาความปลอดภัยไดร์เวอร์ Broadcom Wi-Fi SoC, เจาะทะลุจาก Wi-Fi เข้าเคอร์เนล

by lew
12 April 2017 - 02:01

Project Zero ของกูเกิลเขียนรายงานการเจาะเฟิร์มแวร์ Broadcom Wi-Fi SoC ที่ใช้งานอยู่ใน Nexus 6P แสดงให้เห็นว่าแฮกเกอร์สามารถแฮกเครื่องจากระยะไกล ด้วยการสร้างแพ็กเก็ต Wi-Fi เพื่อเจาะทะลุตัวเฟิร์มแวร์ เมื่อควบคุมตัวเฟิร์มแวร์ของชิป Wi-Fi ได้แล้วจึงเจาะทะลุเข้าเคอร์เนลอีกชั้นหนึ่ง ทำให้เข้าควบคุมเครื่องของเหยื่อได้อย่างสมบูรณ์

ช่องโหว่นี้ถูกแก้ไขแล้วในอัพเดตเดือนเมษายนที่ผ่านมา (สำหรับ Nexus ที่ยังซัพพอร์ตอยู่เท่านั้น)

บทความแบ่งออกเป็นสองตอน ตอนแรกคือการเจาะทะลุตัวเฟิร์มแวร์ในชิป Wi-Fi เอง ที่มีช่องโหว่ stack buffer overflow ทำให้แฮกเกอร์สามารถสร้างเฟรม Wi-Fi ที่มุ่งร้ายเพื่อเข้าควบคุมเฟิร์มแวร์ ช่องโหว่หนึ่งมีผลเฉพาะใน iOS และส่งผลให้ iOS ต้องออกแพตช์ 10.3.1 หลัง 10.3.0 เพียงสัปดาห์เดียว

ทาง Broadcom ระบุว่าชิปรุ่นต่อๆ ไปจะมีฟีเจอร์ความปลอดภัยที่ดีกว่านี้ และตัวเฟิร์มแวร์เองก็จะออกแบบให้ทนทานต่อการส่งข้อมูลมุ่งร้ายมากขึ้น

บทความตอนที่สองที่เผยแพร่วันนี้เป็นการสำรวจความปลอดภัยของไดร์เวอร์ ที่มักเชื่อใจฮาร์ดแวร์ว่าจะส่งข้อมูลมาอย่างถูกต้อง ทาง Project Zero พบว่าไดร์เวอร์ Broadcom มีการกำหนดเฟรมประเภทพิเศษ (0x886C) เพื่อใช้สื่อสารระหว่างเฟิร์มแวร์กับไดร์เวอร์ โดยเฟรมชนิดนี้สามารถเข้าถึงคำสั่งพิเศษได้จำนวนมาก และหากสร้างเฟรมโดยวางข้อมูลอย่างจงใจก็สามารถเขียนข้อมูลใดๆ ลงในหน่วยความจำของเคอร์เนลได้ จนกลายเป็นการนำโค้ดไปรันในเคอร์เนลเพื่อยึดเครื่องในที่สุด

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

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

ช่องโหว่การเขียนหน่วยความจำของเคอร์เนล ใช้ช่องโหว่ของชิป BCM43596 ที่เชื่อมต่อกับซีพียู Snapdragon 810 (Nexus 6P) และ Exynos 8890 (Galaxy S7 Edge) สามารถเจาะทะลุหน่วยความจำของเคอร์เนลได้สำเร็จ

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

ที่มา - Project Zero (1, 2)

Blognone Jobs Premium