Skip links

پژوهشگران: اندروید با Rust ایمن‌تر می‌شود

گوگل اعلام کرده است که گسترش استفاده از زبان برنامه‌نویسی Rust در سیستم‌عامل اندروید باعث شده سهم آسیب‌پذیری‌های ناشی از مشکلات ایمنی حافظه برای نخستین‌بار به کمتر از ۲۰ درصد مجموع باگ‌ها برسد.

به گزارش افتانا، جف وندر استوپ، از اعضای تیم امنیت اندروید گوگل، با اشاره به تأثیر مستقیم این تغییر گفت: ما Rust را به‌دلیل امنیت آن انتخاب کردیم و اکنون شاهد کاهش هزاربرابری چگالی آسیب‌پذیری‌های مربوط به ایمنی حافظه در مقایسه با کدهای C و ++C اندروید هستیم. اما شگفتی بزرگ‌تر، اثر Rust بر فرایند توسعه بود. تغییرات مبتنی بر Rust چهار برابر کمتر نیاز به بازگردانی دارند و زمان بررسی کد هم حدود ۲۵ درصد کاهش پیدا کرده است. یعنی امن‌ترین مسیر، سریع‌ترین هم شده است.

گوگل سال گذشته نیز گزارش داده بود گذار به Rust باعث کاهش چشمگیر باگ‌های حافظه‌محور از ۲۲۳ مورد در سال ۲۰۱۹ به کمتر از ۵۰ مورد در سال ۲۰۲۴ شده است. به‌گفته گوگل، کدهای Rust معمولاً به بازبینی‌های کمتری نیاز دارند و حدود ۲۰ درصد کمتر از کدهای C++ اصلاح می‌شوند. همچنین این زبان به کاهش نرخ بازگردانی تغییرات کمک کرده و در مجموع سرعت توسعه را افزایش داده است.

گوگل قصد دارد مزیت‌های امنیتی و بهره‌وری Rust را به بخش‌های بیشتری از اکوسیستم اندروید تعمیم دهد؛ از جمله هسته سیستم‌عامل، میان‌افزار (firmware) و برخی اپلیکیشن‌های حیاتی داخلی مانند Nearby Presence، استاندارد امنیتی Message Layer Security (MLS)  و همچنین مرورگر کرومیوم؛ جایی که اکنون تجزیه‌گرهای PNG، JSON و فونت‌های وب با نسخه‌های ایمن‌تر نوشته‌شده در Rust جایگزین شده‌اند.

گوگل در عین حال تأکید می‌کند که Rust تنها یکی از اجزای استراتژی چندلایه این شرکت برای کاهش باگ‌های حافظه‌محور است. این شرکت برای نمونه به کشف یک آسیب‌پذیری با شناسه  CVE-2025-48530 و  امتیاز ۸.۱ در AVIF   اشاره کرده است؛ باگی که می‌توانست به اجرای کد از راه دور منجر شود. هرچند این نقص که ناشی از سرریز بافر در بخش «unsafe» این کد بود هرگز وارد نسخه عمومی نشد، گوگل آن را در بسته امنیتی ماه اوت ۲۰۲۵ برطرف کرد. بررسی‌های بعدی نشان داد این آسیب‌پذیری به‌واسطه استفاده از Scudo  تخصیص‌دهنده حافظه در سطح کاربر که برای مقابله با خطاهایی مانند سرریز بافر، استفاده پس از آزادسازی و آزادسازی دوباره طراحی شده  عملاً غیرقابل سوءاستفاده بوده است.

گوگل تأکید می‌کند که حتی کدهای Rust که از بلوک‌های unsafe استفاده می‌کنند نیز به‌طور معمول بسیار ایمن‌تر از معادل‌های C و ++C  هستند و استفاده از این بخش‌ها به‌معنای غیرفعال شدن کامل سازوکارهای ایمنی Rust نیست.
این شرکت در پایان می‌گوید: در حالی‌که C و ++C همچنان باقی خواهند ماند و لایه‌های دیگر امنیت نرم‌افزاری و سخت‌افزاری نیز ضروری هستند، گذار به Rust نشان داده که می‌توان مسیری را انتخاب کرد که هم امن‌تر است و هم کارآمدتر.