กิจกรรมของ 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 ความคิดเห็น
ความเห็นจาก 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 สามารถใช้งานบนระบบเดสก์ท็อปของลินุกซ์ดิสทริบิวชันมาตรฐานได้หรือไม่