1 คะแนน โดย GN⁺ 2024-03-12 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

กิจกรรมของ GrapheneOS บนเครือข่ายสังคมออนไลน์

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

การรองรับ hardware memory tagging ของ Pixel 8 และ Pixel 8 Pro

  • พบบั๊กความเสียหายของหน่วยความจำที่เกิดขึ้นใน Bluetooth LE ของ Android 14 QPR2 ผ่านการรองรับ hardware memory tagging บน Pixel 8 และ Pixel 8 Pro
  • ขณะนี้กำลังตรวจสอบบั๊กนี้เพื่อแก้ไข หรือหาวิธีบรรเทาชั่วคราวด้วยการปิดฟีเจอร์ที่เพิ่งถูกเพิ่มเข้ามาเป็นการชั่วคราว

การปิด memory tagging ไม่เหมาะเป็นวิธีแก้ชั่วคราว

  • ปัญหานี้เกิดขึ้นเฉพาะกับอุปกรณ์ Bluetooth LE บางรุ่นเท่านั้น ไม่ได้เกิดกับอุปกรณ์ Bluetooth ทุกตัว
  • การปิด memory tagging สำหรับโปรเซสนี้ไม่อาจยอมรับได้ แม้จะเป็นวิธีแก้ระยะสั้นก็ตาม

การพัฒนาแพตช์บั๊กของ Android 14 QPR2

  • พบ use-after-free bug ที่เกี่ยวข้องกับ Bluetooth LE และได้พัฒนาแพตช์แล้ว
  • การใส่การแก้ไขนี้ลงในรีลีสของ GrapheneOS เป็นลำดับความสำคัญ และมีแผนจะรายงานเป็น Android security bug
  • คาดว่าปัญหา BLE audio จะได้รับการแก้ไขด้วยเช่นกัน

การยืนยันการแก้ไขบั๊ก

  • ผู้ใช้ที่ใช้ Samsung Galaxy Buds2 Pro สามารถทำให้ปัญหาเกิดซ้ำในโหมด Bluetooth LE และยืนยันได้ว่าการแก้ไขนี้มีผล
  • ปัญหานี้ส่งผลกระทบต่อ Pixel OS แบบมาตรฐานด้วย
  • GrapheneOS ตรวจพบปัญหานี้ผ่านการรองรับ memory tagging ของ hardened_malloc และได้เพิ่มความสามารถในการส่งการแจ้งเตือนและรายงานการชนของ MTE

การรายงานเป็น security bug

  • ปัญหา use-after-free ถูกรายงานเป็น security bug (b/328916844 สำหรับพนักงาน Google)
  • มีการจัดเตรียมแพตช์เริ่มต้นแบบกระทบโค้ดน้อยที่สุดไว้แล้ว
  • โค้ดนี้ต้องการการรีแฟกเตอร์ครั้งใหญ่และไม่ควรใช้ raw pointer แต่ก็ไม่ต้องการให้แพตช์แบบเร่งด่วนก่อบั๊กใหม่ขึ้นมา

การพอร์ตโค้ด Bluetooth ไปยัง Rust

  • Android ได้พอร์ตโค้ด Bluetooth จำนวนมากไปยัง Rust
  • ควรทุ่มทรัพยากรเพิ่มในการพอร์ตโค้ดที่เหลือไปยัง Rust ด้วย
  • ควรทดสอบ HWASan และ MTE builds ในสภาพแวดล้อมการใช้งานจริงที่หลากหลาย

ความสำคัญของ MTE

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

การติดตั้งใช้งาน MTE ของ GrapheneOS

  • GrapheneOS มีการติดตั้งใช้งาน MTE ที่ดีกว่าในส่วนหนึ่งของ hardened_malloc โดยใช้ standard random tags และ free tag เฉพาะ
  • ได้แก้การผนวกรวมของ Chromium แล้ว และมีแผนจะปรับปรุง PartitionAlloc

การใช้ MTE ของ GrapheneOS

  • GrapheneOS เป็นแพลตฟอร์มแรกที่ใช้ MTE ในสภาพแวดล้อม production
  • เบราว์เซอร์ Vanadium เป็นเบราว์เซอร์แรกที่ใช้ MTE ในสภาพแวดล้อม production
  • มีแผนจะเพิ่ม stack MTE ปรับปรุง PartitionAlloc และสร้าง kernel slab MTE แบบใหม่

คำขอบคุณจากผู้ใช้

  • ผู้ใช้แสดงความขอบคุณต่อฟีเจอร์ปิด Bluetooth อัตโนมัติของ GrapheneOS

ความเห็นของ GN⁺

  • GrapheneOS เป็นระบบปฏิบัติการที่เน้นความปลอดภัยบนฐาน Android และแสดงให้เห็นถึงการค้นพบและตอบสนองต่อบั๊กความเสียหายของหน่วยความจำที่พบบนอุปกรณ์ Pixel รุ่นล่าสุดได้อย่างรวดเร็ว
  • การตอบสนองที่รวดเร็วเช่นนี้สะท้อนข้อดีของชุมชนโอเพนซอร์สได้อย่างชัดเจน และช่วยมอบสภาพแวดล้อมมือถือที่ปลอดภัยยิ่งขึ้นแก่ผู้ใช้
  • การพอร์ตโค้ดไปยังภาษา Rust ซึ่งช่วยเสริม memory safety เป็นก้าวสำคัญสำหรับการเสริมความปลอดภัยในระยะยาว
  • การเปิดใช้ MTE ซึ่งเป็นฟีเจอร์ความปลอดภัยที่อิงฮาร์ดแวร์ เป็นวิธีที่มีประสิทธิภาพในการเสริมความปลอดภัยโดยลดผลกระทบด้านประสิทธิภาพให้น้อยที่สุด
  • เมื่อนำเทคโนโลยีนี้มาใช้ ต้องคำนึงถึงความเข้ากันได้กับแอปพลิเคชันเดิม รวมถึงต้องมีการทดสอบและบำรุงรักษาที่เหมาะสมเพื่อเสริมความปลอดภัย

1 ความคิดเห็น

 
GN⁺ 2024-03-12
ความเห็นจาก Hacker News
  • ฟีเจอร์ Memory Tagging Extension ไม่ได้เปิดใช้งานเป็นค่าเริ่มต้น แต่ใครก็สามารถเปิดได้ผ่านตัวเลือกสำหรับนักพัฒนา สามารถเปิดครั้งเดียวเมื่ออยากทดสอบแอปบางตัว หรือเปิดค้างไว้จนกว่าจะไม่ต้องการก็ได้

  • คาดหวังคำตอบจากผู้ใช้ Graphene OS ว่าการติดตั้ง Graphene OS ยากไหม ต้องใช้สายพิเศษหรือไม่ ต้องรู้เรื่องอุปกรณ์ Android มากแค่ไหน หรือแค่ทำตามคำแนะนำก็พอ

  • ขอให้ช่วยแชร์ประสบการณ์ว่าการใช้ Graphene OS ในชีวิตประจำวันไม่สะดวกหรือไม่ โทรศัพท์ล่มบ่อยจนต้องดีบักหลายวันหรือเปล่า และแอปธนาคารใช้งานได้ไหม

  • สงสัยว่าทีม Pixel ให้เหตุผลกับการตัดสินใจไม่เปิดใช้ฟีเจอร์ความปลอดภัยฮาร์ดแวร์สำคัญอย่าง MTE ในระบบปฏิบัติการอย่างไร เพื่อแลกกับการประหยัดการใช้หน่วยความจำ/แคช 3.125% โดย heap MTE แทบไม่มี overhead ด้านประสิทธิภาพในโหมด asynchronous และในโหมด asymmetric ก็มีต้นทุนต่ำกว่ากลไกป้องกันแบบเดิมที่ประสิทธิผลลดลงเรื่อย ๆ อย่าง SSP

  • ถามถึงการเปรียบเทียบระหว่างเทคโนโลยีความปลอดภัย MTE และ CHERI

  • GrapheneOS นำหน้าอย่างมากในด้านความปลอดภัยเมื่อเทียบกับตัวเลือกอื่น ๆ จนทำให้การเลือกอย่างอื่นนอกจากฮาร์ดแวร์ Pixel ดูน่าสงสัย แต่ก็ยังแสดงความต้องการอย่างแรงกล้าที่จะได้แบตเตอรี่แบบถอดเปลี่ยนได้

  • ถามว่าคอมพิวเตอร์บอร์ดเดี่ยวอย่าง Raspberry Pi รุ่นล่าสุดมีการรองรับ Arm MTE หรือไม่

  • กำลังรอฮาร์ดแวร์กระแสหลักที่สามารถแก้ปัญหาหน่วยความจำเสียหายได้ เหมือนกับสถาปัตยกรรม memory tag ของฮาร์ดแวร์ Solaris SPARC ปี 2015 หรือก่อนหน้านั้น โดยปัญหาเหล่านี้ส่วนใหญ่มักเกิดจากนักพัฒนาที่มีทักษะไม่เพียงพอ

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

  • หากไม่สามารถมอบประสบการณ์ผู้ใช้ (UX) ที่สะอาดและเป็นหนึ่งเดียว พร้อมฟีเจอร์ที่ใช้งานได้จริง งานวิศวกรรมทั้งหมดก็เปล่าประโยชน์

  • Android ได้พอร์ตโค้ด Bluetooth ไปเป็น Rust แล้วค่อนข้างมาก นี่เป็นตัวอย่างที่แสดงว่าควรทุ่มทรัพยากรเพิ่มเพื่อพอร์ตโค้ดให้เป็น Rust มากขึ้น

  • ผู้ที่มีประสบการณ์ทำงานกับ C และ C++ มาหลายปี แต่ไม่มีประสบการณ์กับ Rust สงสัยว่าการพอร์ตจาก C ไป Rust ต้องรีแฟกเตอร์มากแค่ไหน และ Google เข้าหาเรื่องนี้อย่างไร พยายาม "แปล" โดยตรงให้มากที่สุดเท่าที่ทำได้ หรือมองว่าเป็นโอกาสสำหรับการเขียนใหม่/รีแฟกเตอร์ครั้งใหญ่

  • สงสัยว่า Android Bluetooth stack สามารถใช้งานบนระบบเดสก์ท็อปของลินุกซ์ดิสทริบิวชันมาตรฐานได้หรือไม่