โครงการ Google Chrome ออกรายงานวิเคราะห์ช่องโหว่ความร้ายแรงสูงถึงความร้ายแรงวิกฤติจำนวน 912 รายการ พบว่าในจำนวนนี้เป็นช่องโหว่หน่วยความจำถึง 70% แบ่งเป็นช่องโหว่ใช้หน่วยความจำหลังคืนค่าให้ระบบ (use-after-free) ถึง 36.1% และช่องโหว่หน่วยความจำอื่นๆ อีก 32.9% ทำให้ทีมงานเตรียมวางโครงการใหญ่เพื่อขจัดปัญหาในระยะยาว
ทุกวันนี้ Chrome มีโครงสร้างความปลอดภัยหลักคือ sandbox ที่แยกโปรเซสของแต่ละเว็บออกจากกัน โดยแยกตัวเรนเดอร์หน้าเว็บตามแต่ละเว็บไซต์ แต่ sandbox ก็มีข้อจำกัดโดยบริการบางส่วนก็ต้องแชร์กันอยู่ดีเช่นระบบเน็ตเวิร์ค หากจับชิ้นส่วนเหล่านั้นแยกออกมาอีกก็จะพบปัญหาประสิทธิภาพ
ทีมงานเตรียมหาทางปรับปรุงกระบวนการพัฒนาเพื่อลดช่องโหว่เหล่านี้ โดยเปิดทางเลือกไว้หลากหลาย ตั้งแต่การปรับไปใช้ไลบรารี C++ ที่ปลอดภัยมากขึ้น, อาศัยกระบวนการตรวจสอบของคอมไพล์เลอร์เพื่อห้ามใช้งาน pointer โดยตรง, หรือการใช้ภาษาอื่นที่ปลอดภัยกว่า C++ ในการพัฒนา เช่น Java/Kotlin, JavaScript, Rust, Swift แต่ภาษา Rust ถูกระบุเป็นพิเศษอยู่ในแผนภาพ
แนวทางหลักที่เป็นไปได้ตอนนี้คือการปรับปรุงโค้ดเดิมให้เขียนในแนวทางที่ปลอดภัยขึ้น และการแยกบางส่วนออกมาพัฒนาในภาษาที่ปลอดภัย ความน่ากังวลหลักคือการเชื่อมระหว่างภาษา
ก่อนหน้านี้ไมโครซอฟท์ก็เคยแสดงความสนใจในการใช้ภาษา Rust มาพัฒนาบางส่วนเพื่อลดช่องโหว่หน่วยความจำ โครงการใหม่ๆ ที่ต้องการความปลอดภัยหลายโครงการก็หันมาใช้ภาษา Rust กันแล้ว เช่น 1Password, FIDO2 ของกูเกิล, VPN ของแอปเปิล, และ Deno โครงการที่เตรียมมาแทนที่ Nodejs
ที่มา - chromium-security
Comments
ใช้ JavaScript Runtime เป็น Deno ด้วยสิ
Deno ตัว Runtime เป็น V8 ครับ (C++ นี่ล่ะ)
ถ้าบอกว่าใช้ท่า Deno คือใช้ท่า Rust เพราะ Deno ทำ Rust binding ให้ V8 แล้วเขียน component อื่นเป็น rust ซึ่งก็เป็นทางเลือกหนึ่งที่ทีม Chrome เขียนไว้
lewcpe.com, @wasonliw