Google казва, че Android работи най-добре, когато е покрит с Rust • The Register

Google интегрира код, написан на езика за програмиране Rust, в своята операционна система Android от 2019 г. и усилията му се отплатиха под формата на по-малко дупки в сигурността.

Грешки в защитата на паметта – като например извън границите Прочети И на Тип или Използвайте след безплатно – представляват повече от 65 процента от уязвимостите От сериозни или критични грешки в Chrome и Android и Цифрите са същите в софтуер от други доставчици. Тези недостатъци подкопават сигурността и Повишени разходи за разработка на софтуер Когато не бъде хванат рано.

Но след четири години, в които Android събира части от Rust, този брой намалява.

каза Джефри ВандерСтюб, инженер по сигурността на Android в блог пост.

Vander Stewepp казва, че спадът съвпада с усилията за отдалечаване от езиците за програмиране, които не са защитени от паметта, което е основното за C/C++ – език, който не гарантира сигурност на паметта, но може да я поддържа.

Започвайки с Android 12 миналата година, Rust се превърна в езика на платформата Android. И сега в Android 13, казва Вандер Стоуп, по-голямата част от новия код, добавен към изданието, е написан на безопасен за паметта език — Rust, Java или Kotlin.

Тъй като по-малко несигурният код на паметта навлезе в Android, уязвимостите в сигурността на паметта преминаха от 76 процента от уязвимостите на Android през 2019 г. до 35 процента през 2022 г. – първата година, в която грешките в сигурността на паметта не отчитат по-голямата част от уязвимостите.

Други уязвимости остават постоянни във времето, появявайки се с около 20 на месец през последните четири години. Тъй като пропуските в сигурността на паметта бяха отговорни за повечето от критичните проблеми, появилите се уязвимости се оказаха по-малко критични.

Google не е единствената голяма технологична компания, която е признала предимствата на защитения код на паметта. Мета е преминала Оценка на ръждата. Преди няколко месеца техническият директор на Microsoft Марк Русинович обявявам че C/C++ вече не трябва да се използва за стартиране на нови проекти и че Rust трябва да се внедри там, където е необходим език без събиране на отпадъци.

По това време Bjarne Stroustrup, създателят на C++, се противопостави на директивата на Russinovich, като посочи, че Типът и паметта могат да бъдат безопасни В стандарта ISO C++ той се налага чрез статичен анализ. Както Страуструп го вижда, подпомагането на развитието на C++ има повече смисъл от отхвърлянето на езика и оставянето на опасен код без надзор.

Google продължава да инвестира в инструменти за писане на по-сигурен C/C++ код, казва Вандер Стоуп, посочвайки мощния инструмент за персонализиране на Scudo, HWASAN, GWP-ASAN и KFENCE на устройства с Android. Той казва, че Google е увеличил използването на обфускация. Но докато подобни мерки са допринесли за намаляване на грешките в целостта на паметта, той твърди, че по-голямата част от намаляването на уязвимостта трябва да се дължи на преминаването към езици, безопасни за паметта.

В Android 13 приблизително 21 процента от новия собствен код е написан на Rust. Това включва около 1,5 милиона реда Rust код в Android Open Source Project (AOSP), състоящ се от компоненти като хранилище за ключове 2новият ултрашироколентов (UWB) стек и DNS-over-HTTP3, които в предишни години можеха да бъдат написани на C++.

И досега Rust успя да направи точно това. „Досега не са открити уязвимости в паметта в кода Rust на Android“, каза Вандер Стюб, който мъдро призна, че това вероятно няма да е така завинаги.

Ребека Румпол, главен изпълнителен директор и изпълнителен директор на фондация Rust, каза в имейл до: дневник. „Не е изненадващо да видим как Rust все повече се интегрира в съществуващи проекти и продукти, и Скорошен блог на Google Обсъждането на Rust в Android наистина подчертава неговите предимства за сигурност.”

„Тези ползи за сигурността се признават и от политиците по целия свят, като правителствата в Европа и Северна Америка признават, че Rost е решение на някои от проблемите със сигурността, които са имали в миналото“, добави Ромполе.

Агенцията за национална сигурност на САЩ наскоро отбеляза, че докато езици като C++ могат да осигурят голяма гъвкавост, те разчитат на програмиста да предостави необходимите проверки на референтната памет.

„Инструментите за софтуерен анализ могат да открият много случаи на проблеми с управлението на паметта и опциите за среда за изпълнение също могат да осигурят известна защита, но присъщата защита, осигурена от безопасните за паметта софтуерни езици, може да предотврати или смекчи повечето проблеми с управлението на паметта“, каза агенцията в изявление. напътствие [PDF] Издадена миналия месец. „NSA препоръчва да се използва защитен мнемоничен език, когато е възможно.“ ®