Google начала работать над усилением безопасности Android на уровне прошивки, чтобы расширить безопасность устройств за пределы ОС, работающей на многоядерном процессоре, на другие SoC-процессоры (System-on-a-Chip) для специальных задач, таких как сотовая связь, обработка мультимедиа или модули безопасности.
Это решение было вызвано недавними исследованиями в области безопасности, в которых основное внимание уделялось различным уязвимостям в микропроцессорах и компонентах программного стека, включая прошивку.
Среди наиболее ярких примеров – атаки, нацеленные на уязвимости во вторичных процессорах, таких как Wi-Fi или модули сотовой связи, которые можно использовать удаленно по радиоканалу для внедрения и выполнения произвольного кода.
Google утверждает, что вместе со своими партнерами по экосистеме Android работает над повышением безопасности прошивки, которая взаимодействует с Android, исследуя несколько механизмов защиты:
- Санитайзеры на основе компилятора, которые могут обнаруживать проблемы с безопасностью памяти, что приводит к ошибкам или сбоям на этапе компиляции кода;
- Устранение эксплойтов. Сюда входит целостность потока управления ( CFI ), стековая канарейка (Stack Canary) и т.д.;
- Функции безопасности памяти, направленные на предотвращение ошибок памяти, таких как переполнение буфера, использование после освобождения и разыменование нулевого указателя. Здесь Google упоминает механизм ” zero-initialized “, который обнуляет значения памяти перед тем, как программа обращается к выделенному пространству, поэтому оно не содержит случайных данных из предыдущих использований.
С другой стороны, внедряемые меры по смягчению последствий могут оказать негативное влияние на производительность устройств, что является еще более сложной задачей, когда речь заходит о вторичных процессорах, предназначенных для определенного набора функций, поскольку они не имеют тех же ресурсов, что и основной процессор.
Google заявляет, что оптимизация того, как и где активируются средства защиты, может свести к минимуму влияние на функциональность, производительность и стабильность системы Android.
Усилия Google по усилению безопасности прошивки являются частью более масштабных планов по повышению безопасности платформы Android. В будущем корпорация планирует расширить использование языка Rust для кода прошивки, реализуя все функции с использованием безопасного для памяти языка.