Hoạt động mạng xã hội của GrapheneOS
- GrapheneOS là một phần của mạng xã hội phân tán dựa trên Mastodon.
- Dự án đang vận hành tài khoản chính thức và một máy chủ GrapheneOS dành cho các thành viên dự án.
- Máy chủ hiện có 5 người dùng đang hoạt động.
Hỗ trợ gắn thẻ bộ nhớ phần cứng trên Pixel 8 và Pixel 8 Pro
- Trên Pixel 8 và Pixel 8 Pro, nhờ hỗ trợ gắn thẻ bộ nhớ phần cứng, GrapheneOS đã phát hiện lỗi hỏng bộ nhớ xảy ra trong Bluetooth LE của Android 14 QPR2.
- Hiện dự án đang điều tra lỗi này để sửa, hoặc tìm một biện pháp tạm thời là vô hiệu hóa tính năng mới được đưa vào.
Vô hiệu hóa gắn thẻ bộ nhớ không phù hợp làm giải pháp tạm thời
- Lỗi chỉ xảy ra với một số thiết bị Bluetooth LE nhất định, không phải với mọi thiết bị Bluetooth.
- Việc vô hiệu hóa gắn thẻ bộ nhớ cho tiến trình này là điều không thể chấp nhận ngay cả như một giải pháp ngắn hạn.
Phát triển bản vá lỗi cho Android 14 QPR2
- Dự án đã phát hiện một lỗi use-after-free liên quan đến Bluetooth LE và phát triển bản vá.
- Ưu tiên là đưa bản sửa lỗi vào bản phát hành GrapheneOS, và sau đó sẽ báo cáo nó như một lỗi bảo mật Android.
- Các vấn đề với âm thanh BLE cũng được kỳ vọng sẽ được khắc phục.
Xác nhận bản sửa lỗi
- Một người dùng sử dụng Samsung Galaxy Buds2 Pro đã tái hiện được sự cố ở chế độ Bluetooth LE và xác nhận rằng bản sửa lỗi có hiệu quả.
- Vấn đề này cũng ảnh hưởng đến Pixel OS mặc định.
- GrapheneOS đã phát hiện nó thông qua hỗ trợ gắn thẻ bộ nhớ của hardened_malloc, đồng thời bổ sung khả năng gửi thông báo và báo cáo sự cố MTE.
Báo cáo là lỗi bảo mật
- Vấn đề use-after-free đã được báo cáo là lỗi bảo mật (b/328916844 dành cho nhân viên Google).
- Một bản vá tối thiểu ban đầu đã được cung cấp.
- Mã nguồn cần được tái cấu trúc lớn và không nên dùng con trỏ thô, nhưng dự án cũng muốn tránh việc đưa lỗi mới vào bằng một bản vá quá vội.
Chuyển mã Bluetooth sang Rust
- Android đã chuyển nhiều mã Bluetooth sang Rust.
- Cần đầu tư thêm nguồn lực để chuyển phần mã còn lại sang Rust.
- Cũng cần thử nghiệm các bản dựng HWASan và MTE trong nhiều môi trường sử dụng thực tế khác nhau.
Tầm quan trọng của MTE
- Pixel cung cấp MTE, một tính năng bảo mật phần cứng quan trọng, nhưng hệ điều hành không bật nó để tiết kiệm 3.125% mức dùng bộ nhớ/cache.
- GrapheneOS bật MTE mặc định cho hệ điều hành cơ sở và các ứng dụng do người dùng cài đặt đã biết là tương thích.
- Người dùng cũng có thể bật MTE cho mọi ứng dụng do mình cài đặt trong phần cài đặt.
Cách GrapheneOS triển khai MTE
- GrapheneOS cung cấp cách triển khai MTE tốt hơn như một phần của hardened_malloc, sử dụng thẻ ngẫu nhiên tiêu chuẩn và một thẻ
free chuyên dụng.
- Dự án đã sửa phần tích hợp của Chromium và có kế hoạch cải thiện PartitionAlloc.
Việc sử dụng MTE trong GrapheneOS
- GrapheneOS là nền tảng đầu tiên sử dụng MTE trong môi trường production.
- Trình duyệt Vanadium là trình duyệt đầu tiên sử dụng MTE trong môi trường production.
- Dự án có kế hoạch bổ sung stack MTE, cải thiện PartitionAlloc và tạo kernel slab MTE mới.
Lời cảm ơn từ người dùng
- Người dùng bày tỏ sự cảm kích với tính năng tự động vô hiệu hóa Bluetooth của GrapheneOS.
Ý kiến của GN⁺
- GrapheneOS là một hệ điều hành tập trung vào bảo mật dựa trên Android, đã cho thấy khả năng phát hiện và phản ứng nhanh với lỗi hỏng bộ nhớ được tìm thấy trên các thiết bị Pixel mới nhất.
- Phản ứng nhanh như vậy thể hiện rõ ưu điểm của cộng đồng mã nguồn mở và góp phần mang lại môi trường di động an toàn hơn cho người dùng.
- Việc chuyển mã sang ngôn ngữ Rust để tăng cường an toàn bộ nhớ là một bước quan trọng cho việc củng cố bảo mật trong dài hạn.
- Kích hoạt MTE, một tính năng bảo mật dựa trên phần cứng, là một cách hiệu quả để tăng cường bảo mật mà chỉ ảnh hưởng tối thiểu đến hiệu năng.
- Khi áp dụng công nghệ này, cần cân nhắc khả năng tương thích với các ứng dụng hiện có, đồng thời cần kiểm thử và bảo trì phù hợp để tăng cường bảo mật.
1 bình luận
Ý kiến Hacker News
Tiện ích mở rộng gắn thẻ bộ nhớ không được bật mặc định, nhưng bất kỳ ai cũng có thể bật qua tùy chọn nhà phát triển. Có thể chỉ bật một lần khi muốn kiểm thử một ứng dụng cụ thể, hoặc giữ bật cho đến khi muốn tắt.
Mong người dùng GrapheneOS trả lời liệu việc cài GrapheneOS có khó không, có cần cáp đặc biệt không, có phải hiểu rõ thiết bị Android không, hay chỉ cần làm theo hướng dẫn là được.
Đề nghị chia sẻ trải nghiệm xem việc dùng GrapheneOS hằng ngày có bất tiện không, điện thoại có hay bị crash đến mức phải debug nhiều ngày không, và các ứng dụng ngân hàng có hoạt động không.
Thắc mắc đội Pixel biện minh thế nào cho quyết định không bật tính năng bảo mật phần cứng quan trọng (MTE) trong OS để tiết kiệm 3,125% mức dùng bộ nhớ/cache. Heap MTE gần như không có overhead hiệu năng ở chế độ bất đồng bộ, và ở chế độ bất đối xứng còn rẻ hơn các cơ chế bảo vệ hiện có đang ngày càng kém hiệu quả như SSP.
Câu hỏi về việc so sánh các công nghệ bảo mật MTE và CHERI.
GrapheneOS đi trước rất xa các lựa chọn khác về mặt bảo mật, nên việc chọn phần cứng ngoài Pixel trở nên đáng nghi. Nhưng vẫn bày tỏ mong muốn rất lớn về một thiết bị có pin thay thế được.
Câu hỏi liệu các máy tính bo mạch đơn như Raspberry Pi đời mới nhất có triển khai Arm MTE hay không.
Đang chờ phần cứng phổ thông có thể giải quyết vấn đề hỏng bộ nhớ như kiến trúc gắn thẻ bộ nhớ trên phần cứng Solaris SPARC năm 2015 hoặc trước đó. Phần lớn các vấn đề này là do những lập trình viên thiếu năng lực gây ra.
Năm 2024 cần các hệ điều hành, ứng dụng và công cụ kế thừa tinh thần của seL4 nhưng được kiểm chứng hình thức nghiêm ngặt hơn. Việc tiếp tục dùng các hệ thống codebase như hiện nay, vừa kiểm thử chưa đầy đủ vừa thiết kế quá mức, gây rủi ro cho người dùng và tạo ra bề mặt tấn công lớn cho lỗi, malware và hack.
Nếu không cung cấp được trải nghiệm người dùng (UX) sạch sẽ, thống nhất và các tính năng khả dụng, thì mọi nỗ lực kỹ thuật đều là vô ích.
Android đã port một phần đáng kể mã Bluetooth sang Rust. Đây là ví dụ cho thấy cần đầu tư thêm nguồn lực để port nhiều mã hơn sang Rust.
Một người đã làm việc nhiều năm với C và C++ nhưng chưa có kinh nghiệm với Rust thắc mắc rằng quá trình port từ C sang Rust cần refactor đến mức nào. Cũng đặt câu hỏi Google đang tiếp cận việc này ra sao: cố gắng "dịch" trực tiếp tối đa có thể, hay xem đây là cơ hội để rewrite/refactor lớn.
Thắc mắc liệu stack Bluetooth của Android có thể dùng được trên các hệ thống desktop chạy bản phân phối Linux tiêu chuẩn hay không.