➔ Trở về Trang chủ
OrangeCloud Insights
Security••⏱️ 4 phút đọc•Biên tập: OrangeCloud Insights (AI-assisted)•Nguồn: security.googleblog.com – Edward Fernandez

Google tích hợp Rust vào firmware modem Pixel

Tóm tắt kỹ thuật (TL;DR)

"Google integrated a memory-safe Rust-based DNS parser into the Pixel 9 and 10 modem firmware to mitigate memory-safety vulnerabilities. This addresses risks associated with parsing untrusted data, as highlighted by past exploits like CVE-2024-27227, and lays the groundwork for wider Rust adoption. The project involved adapting the hickory-proto crate for no_std environments."

🛡️ Tác động Bảo mật7/10

Việc tích hợp Rust giúp giảm thiểu các lỗ hổng bảo mật bộ nhớ trong modem, một khu vực quan trọng và dễ bị tấn công. Việc này đặc biệt quan trọng trong bối cảnh các cuộc tấn công vào firmware modem ngày càng gia tăng.

💼 Tác động Vận hành6/10

Việc tăng cường bảo mật modem giúp bảo vệ dữ liệu người dùng và ngăn chặn các cuộc tấn công có thể gây gián đoạn dịch vụ. Điều này có thể cải thiện uy tín và lòng tin của khách hàng đối với các thiết bị Pixel.

Google đã tích hợp trình phân tích DNS dựa trên Rust vào firmware modem của Pixel 9 và 10 để giảm thiểu các lỗ hổng bảo mật liên quan đến bộ nhớ. Việc này giải quyết rủi ro khi phân tích dữ liệu không đáng tin cậy, như đã thấy trong các khai thác trước đây như CVE-2024-27227, đồng thời tạo tiền đề cho việc áp dụng Rust rộng rãi hơn. Dự án bao gồm việc điều chỉnh crate hickory-proto để hoạt động trong môi trường no_std.

Trong những năm gần đây, các attacker và nhà nghiên cứu bảo mật đã quan tâm đến modem di động ngày càng tăng. Google Project Zero đã đạt được quyền thực thi mã từ xa trên modem Pixel qua Internet. Với hàng chục megabyte mã thực thi, modem Pixel có thể chứa các lỗ hổng bảo mật bộ nhớ tiềm ẩn.

DNS, giao thức thường được biết đến trong việc tìm kiếm website, hiện đóng vai trò quan trọng trong các dịch vụ viễn thông hiện đại, bao gồm cả chuyển tiếp cuộc gọi. Do tính phức tạp và yêu cầu phân tích dữ liệu không đáng tin cậy, việc triển khai DNS bằng ngôn ngữ không an toàn về bộ nhớ có thể dẫn đến lỗ hổng (ví dụ: CVE-2024-27227). Rust giúp giảm thiểu các rủi ro này.

Google đã chọn hickory-proto vì khả năng bảo trì tốt, độ phủ kiểm thử cao và sự phổ biến trong cộng đồng Rust. Mặc dù ban đầu không hỗ trợ no_std, Google đã thêm hỗ trợ này và các phụ thuộc liên quan. Các thay đổi này cũng tạo ra trình phân tích URL no_std, hữu ích cho các dự án khác.

Kích thước mã là một yếu tố được xem xét. Bản thân thư viện hickory-proto chiếm 350KB, cộng thêm 4KB cho shim Rust và 17KB cho các thành phần chung. Dù không tối ưu cho kích thước, Google ưu tiên hỗ trợ cộng đồng và chất lượng mã. Tối ưu hóa kích thước có thể là một bước phát triển trong tương lai.

Trước khi tích hợp, Google đã xác minh tích hợp Rust với firmware modem hiện có thông qua các bài kiểm tra đơn vị. Rust code được biên dịch thành staticlib và tích hợp vào hệ thống build hiện có sử dụng Pigweed.

Câu hỏi thường gặp

Tại sao Google lại chọn Rust cho modem Pixel?

Google chọn Rust vì tính an toàn về bộ nhớ của nó, giúp giảm thiểu các lỗ hổng bảo mật tiềm ẩn trong firmware modem phức tạp. Việc này đặc biệt quan trọng do modem xử lý dữ liệu không đáng tin cậy và là mục tiêu tấn công tiềm năng.

Hickory-proto là gì và tại sao nó được chọn?

Hickory-proto là một crate Rust triển khai DNS. Nó được chọn vì khả năng bảo trì tốt, độ phủ kiểm thử cao và sự phổ biến trong cộng đồng Rust, cho thấy tiềm năng hỗ trợ lâu dài.

Hỗ trợ no_std được thêm vào hickory-proto như thế nào?

Google đã thực hiện các sửa đổi đối với hickory-proto và các phụ thuộc của nó để thêm hỗ trợ no_std, cho phép nó hoạt động trong môi trường nhúng không có thư viện chuẩn.

Góc nhìn cộng đồng

Tổng hợp từ thảo luận công khai. Chỉ những ý có link nguồn. Không thêm ý kiến khi không tìm thấy.

  • Hacker Newspjmlp

    Một người dùng trên Hacker News nhận thấy đây là một cải tiến lớn, đồng thời đánh giá cao bài viết đã chỉ ra những hạn chế của cargo khi triển khai ngoài môi trường desktop/server thuần Rust, gợi ý các ý tưởng cải tiến.

    Xem thảo luận ➔

Góc nhìn của Orange Cloud

Theo chúng tôi, việc Google sử dụng Rust trong modem Pixel là một bước đi đáng chú ý trong việc tăng cường bảo mật. Điều đáng chú ý là việc hỗ trợ no_std cho hickory-proto mở ra khả năng sử dụng Rust trong các môi trường nhúng khác. Các doanh nghiệp Việt Nam có thể cân nhắc thử nghiệm Rust trong các dự án phần mềm nhúng để cải thiện bảo mật, đặc biệt là trong các thiết bị IoT.

Xem nguồn tin gốc để kiểm tra kỹ hơn các thông số kỹ thuật:Xem nguồn tin gốc ➔