Ông lớn công nghệ Google đang tích cực thúc đẩy việc triển khai ngôn ngữ Rust trong các mã nguồn firmware cấp thấp hiện có, như một phần trong chiến lược lớn nhằm chống lại các lỗ hổng bảo mật liên quan đến bộ nhớ.
Theo tài liệu mới từ các kỹ sư phần mềm của Google, Ivan Lozano và Dominik Maier, các mã nguồn firmware cũ viết bằng C và C++ có thể được cải thiện nhờ việc “thay thế trực tiếp bằng Rust” để đảm bảo an toàn bộ nhớ ở các lớp nhạy cảm dưới hệ điều hành.
“Chúng tôi muốn chứng minh rằng phương pháp này khả thi với firmware, mang đến con đường an toàn bộ nhớ một cách hiệu quả và tối ưu,” nhóm Android cho biết trong một ghi chú, thể hiện rõ quyết tâm của Google trong việc chuyển đổi sang các ngôn ngữ lập trình an toàn bộ nhớ.
“Firmware là cầu nối giữa phần cứng và phần mềm cấp cao hơn. Do thiếu các cơ chế bảo mật phần mềm tiêu chuẩn như ở các phần mềm cấp cao, các lỗ hổng trong mã firmware có thể bị các tác nhân độc hại khai thác một cách nguy hiểm,” Google cảnh báo, đồng thời nhấn mạnh rằng phần lớn firmware hiện tại vẫn dựa trên các mã nguồn cũ được viết bằng những ngôn ngữ không an toàn bộ nhớ như C hoặc C++.
Dẫn chứng các số liệu cho thấy vấn đề an toàn bộ nhớ là nguyên nhân chính gây ra các lỗ hổng bảo mật trong mã nguồn Android và Chrome, Google đang thúc đẩy Rust như một lựa chọn thay thế an toàn bộ nhớ, đồng thời giữ được hiệu năng và kích thước mã tương đương.
Công ty cho biết họ đang áp dụng phương pháp tiếp cận từng bước, tập trung thay thế những phần mã mới và có rủi ro cao nhất để “đạt lợi ích an toàn tối đa với ít nỗ lực nhất.”
“Chỉ cần viết mã mới bằng Rust cũng đã giảm số lượng lỗ hổng mới và theo thời gian có thể dẫn đến việc giảm tổng số lỗ hổng tồn đọng,” các kỹ sư Android cho biết, đồng thời gợi ý các nhà phát triển nên thay thế chức năng C hiện có bằng cách viết một lớp giao tiếp Rust mỏng để chuyển đổi giữa API Rust mới và API C hiện tại.
“Lớp giao tiếp này đóng vai trò như một lớp bao quanh API thư viện Rust, nối liền API C hiện có với API Rust. Đây là cách phổ biến khi viết lại hoặc thay thế các thư viện cũ bằng giải pháp Rust.”
Google cũng báo cáo sự giảm đáng kể số lỗi an toàn bộ nhớ trong Android nhờ quá trình chuyển đổi dần sang các ngôn ngữ lập trình an toàn bộ nhớ như Rust. Từ năm 2019 đến 2022, số lỗi an toàn bộ nhớ báo cáo hàng năm trong Android đã giảm từ 223 xuống còn 85, nhờ tăng lượng mã an toàn bộ nhớ được đưa vào nền tảng di động này.