6 poin oleh darjeeling 8 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp

Google telah menghadirkan parser DNS berbasis Rust, bahasa yang aman terhadap memori, ke firmware baseband seluler (modem) Pixel 10. Ini merupakan langkah proaktif untuk mengurangi kelas kerentanan keamanan memori pada baseband yang memiliki permukaan serangan jarak jauh besar.

Poin utama

  • Pada Pixel 9, Google menerapkan mitigasi untuk kerentanan keamanan memori, dan pada Pixel 10 melangkah lebih jauh dengan memasukkan kode Rust langsung ke firmware baseband.
  • Target penerapan pertama adalah parser DNS. DNS digunakan bukan hanya oleh browser tetapi juga oleh fungsi dasar telekomunikasi seluler seperti pengalihan panggilan, dan karena mem-parsing data tak tepercaya secara langsung, area ini rentan terhadap kerentanan.
  • Google mengadopsi pustaka DNS Rust open-source hickory-proto. Google menilai status pemeliharaan, cakupan pengujian, dan tingkat adopsi komunitasnya tinggi.
  • Namun, dukungan no_std yang dibutuhkan untuk lingkungan bare-metal masih kurang, sehingga Google secara langsung menambahkan dukungan no_std ke crate terkait dan dependensinya lalu berkontribusi ke upstream.
  • Ukuran kode diukur sekitar 371KB. Dari jumlah itu, 350KB berasal dari hickory-proto dan dependensinya, 17KB dari core·alloc·compiler_builtins, dan 4KB adalah kode shim yang menghubungkan ke modem.
  • Google memilih untuk langsung mengintegrasikan tahap kompilasi Rust ke sistem build modem yang ada (Pigweed/GN), alih-alih menempelkan beberapa staticlib terpisah melalui Cargo.
  • Alokator memori dan penanganan panic Rust juga diintegrasikan dengan allocator dan crash backend firmware modem yang sudah ada melalui FFI.
  • Pada tahap linking, compiler_builtins menimpa implementasi memcpy/memset optimal milik modem yang sudah ada sehingga terjadi penurunan performa, dan masalah ini diselesaikan dengan menghapusnya lewat skrip satu baris.
  • Google menjelaskan bahwa penerapan ini bukan langkah sekali jadi, melainkan fondasi untuk memperluas penggunaan bahasa aman memori ke parser berisiko tinggi lain dan kode lain di dalam baseband.

Mengapa ini penting

Baseband seluler adalah perangkat lunak level rendah yang berhadapan langsung dengan pihak luar, sehingga bernilai tinggi sebagai target serangan. Project Zero bahkan pernah mendemonstrasikan eksekusi kode jarak jauh melalui internet pada modem Pixel di masa lalu. Dalam lingkungan seperti ini, masalah keamanan memori pada kode berbasis C/C++ mudah menjadi risiko struktural.

Pengumuman Google kali ini penting bukan sekadar karena “menggunakan Rust”, tetapi karena menunjukkan bahwa bahasa aman memori dapat diterapkan secara nyata bahkan di area firmware yang sensitif dan penuh keterbatasan seperti baseband mobile.

Bagian teknis yang menonjol

  • Dukungan no_std ditambahkan agar hickory-proto dapat berjalan di bare-metal.
  • Antarmuka antara Rust dan kode C/C++ yang ada dihubungkan melalui FFI.
  • Rust menangani parsing respons, sementara pembaruan struktur memori C yang sudah ada tetap menggunakan callback fungsi C lama.
  • Karena ada lebih dari 30 crate eksternal, Google memanfaatkan cargo-gnaw dari Fuchsia untuk menghasilkan aturan build GN alih-alih membuat aturan build manual.

Belum ada komentar.

Belum ada komentar.