Tags:
Node Thumbnail

กูเกิลเผยรายละเอียดผ่าน Google Security Blog ถึงการเปลี่ยนโค้ดเฟิร์มแวร์ Android จากของเดิมที่เป็น C/C++ มาเป็น Rust เพื่ออาศัยจุดเด่นเรื่องความปลอดภัยหน่วยความจำ (memory-safe) ที่ระดับภาษา

กูเกิลเริ่มใช้ Rust ใน Android มาตั้งแต่ปี 2021 และได้ผลเป็นอย่างดี กรณีนี้ กูเกิลบอกว่าต้องการโชว์ให้เห็นว่าการเปลี่ยนโค้ด C/C++ มาเป็น Rust โดยตรงชนิดใช้แทนกันได้เลย (drop-in replacement) เป็นเรื่องที่สามารถทำได้จริงที่ระดับเฟิร์มแวร์

กูเกิลบอกว่าเฟิร์มแวร์เป็นจุดรั่วให้โดนโจมตีได้ง่าย เพราะโค้ดระดับของเฟิร์มแวร์ขาดระบบความปลอดภัยที่ใช้กันในซอฟต์แวร์ระดับสูงขึ้น และมักเต็มไปด้วยโค้ดเก่าๆ ที่เขียนด้วย C/C++ สั่งสมกันมายาวนาน การแก้ปัญหาโดยเปลี่ยนโค้ดเป็น Rust ที่สามารถทดแทน C ได้เลยโดยไม่เสียประสิทธิภาพ (no overhead) จึงเป็นทางออกที่เหมาะสม

แนวทางที่กูเกิลใช้งานคือค่อยๆ เริ่มเปลี่ยนจากโค้ดส่วนที่มีความเสี่ยงสูง (highest risk) ก่อน โดยสร้างเลเยอร์ที่ทำหน้าที่แปลง Rust API เป็น C API ของเดิม ปัญหาที่พบในระหว่างทางคือต้องแปลงโค้ด Rust ที่เรียกไลบรารี std (รันบนระบบปฏิบัติการตัวเต็ม) มาเป็นสภาพแวดล้อมแบบ no_std (รันแบบ bare metal บนฮาร์ดแวร์เพียวๆ ในกรณีของเฟิร์มแวร์) ซึ่งกูเกิลได้เล่าเทคนิคการแก้ปัญหานี้ในบล็อกอย่างละเอียด

กูเกิลบอกว่าการเปลี่ยนผ่านครั้งนี้ "ง่าย" (ใช้คำว่า easy) และได้ประโยชน์เรื่องความปลอดภัยหน่วยความจำ โดยยังรักษาประสิทธิภาพระดับเดียวกับ C เอาไว้ได้ กูเกิลจึงแนะนำให้องค์กรอื่นๆ ที่อยากเปลี่ยนผ่านโค้ดเก่าในเฟิร์มแวร์ ให้เดินตามแนวทางที่กูเกิลลองจนประสบความสำเร็จมาแล้วได้

ที่มา - Google Security Blog via The Register

Get latest news from Blognone

Comments

By: sukjai
iPhoneAndroidRed HatUbuntu
on 10 September 2024 - 06:25 #1321566

+1

By: darkleonic
ContributorAndroidWindowsIn Love
on 10 September 2024 - 10:40 #1321605
darkleonic's picture

นั่นหมายความว่าในอนาคตถ้ามีโครงการสร้าง system software , OS , firmware ฯลฯ ก็สามารถเขียนด้วย Rust ล้วนๆ ตั้งแต่แรกได้เลยสินะครับ


I need healing.

By: mr_tawan
ContributoriPhoneAndroidWindows
on 10 September 2024 - 20:23 #1321683 Reply to:1321605
mr_tawan's picture

rust เป็น system programming language แต่แรก จะเขียนได้ก็ไม่แปลกครับ คิดว่ามีคนทำอยู่แล้วด้วย


  • 9tawan.net บล็อกส่วนตัวฮับ
By: mk
FounderAndroid
on 13 September 2024 - 06:50 #1321949 Reply to:1321683
mk's picture