Почему пользователям Android должна быть интересна динамическая загрузка кода
Когда люди используют приложения для Android, все, что происходит в фоновом режиме, обычно не приходит им в голову. К сожалению, опция программирования, называемая динамической загрузкой кода, может представлять угрозу безопасности. Вот что вам нужно об этом знать.
Что такое динамическая загрузка кода?
При разработке приложений весь исходный код, используемый при создании приложения, составляет базу кода. Динамическая загрузка кода позволяет приложению извлекать контент за пределы своей кодовой базы и выполнять его во время работы или во время выполнения.
Этот вариант может привести к уменьшению размера приложения, поскольку распространенной практикой является удаленное хранение кода вместо встраивания его в пакет Android (APK) .
APK – это формат файлов, который Android использует при распространении и установке приложений. Он содержит все компоненты для работы приложения на совместимом устройстве. Динамическая загрузка кода дает преимущества с точки зрения разработки, в том числе улучшающие удобство использования приложения.
Например, приложение может показывать человеку разный контент в зависимости от того, использует ли он бесплатную или премиальную версию. Динамическая загрузка кода может отображать правильный контент в зависимости от уровня пользователя без увеличения размера APK.
Кроме того, динамическая загрузка кода позволяет разработчикам выпускать новые версии приложений, содержащие незначительные изменения. Пользователи получают последние версии, ничего не скачивая.
Несмотря на эти преимущества, динамическая загрузка кода может повысить риски, связанные с безопасностью приложений Android.
Вредоносные приложения часто поддерживают динамическую загрузку кода
Авторы исследовательской работы 2019 года изучили вредоносные приложения для Android, чтобы найти их общие черты. Они процитировали предыдущие исследования, проведенные другими сторонами, которые показали, что динамическая загрузка кода является главной особенностью опасных приложений.
Почти 20 000 из 86 798 приложений в одном исследовании имели динамическую загрузку кода.
Дальнейшие пояснения показали, что люди помещают основные функции опасного приложения в независимые библиотеки, а затем используют динамическую загрузку кода для его запуска. Такой подход защищает от вредоносного поведения приложения, делая его менее обнаруживаемым.
В документации Google о типах обнаруживаемых вредоносных программ даже уточняется, что неправильное использование динамического кода может быть отмечено как разновидность бэкдора. Компания определяет вредоносное ПО для бэкдора как выполнение потенциально вредоносных дистанционно управляемых действий на устройстве. Затем он привел пример динамической загрузки кода, позволяющий приложению извлекать текстовые сообщения.
Однако Google заявляет, что проверяет, вызывает ли выполнение кода явное вредоносное поведение. В противном случае компания рассматривает выполнение произвольного кода как уязвимость, которую разработчик может исправить.
В случае опасных приложений выполнение произвольного кода позволяет хакеру удаленно выполнять команды на целевом устройстве.
Исследователи выявили проблему с загрузкой динамического кода
Google часто предпринимает решительные действия для повышения безопасности пользователей. Например, сторонние файлы cookie отслеживают пользователей, сохраняют их информацию, а затем используют ее для показа им целевой рекламы. Однако к 2022 году компания заблокирует сторонние файлы cookie в браузере Chrome. Конкретная дата изменения не указана.
Однако сосредоточение внимания на безопасности не избавляет компанию от проблем. Исследователи кибербезопасности обнаружили постоянное выполнение произвольного кода в приложении Google и сообщили об этом компании. Проблема была исправлена в мае 2021 года, но заставила больше людей обратить внимание на потенциальные проблемы, связанные с динамической загрузкой кода.
Исследователи подтвердили, что уязвимость позволит злоумышленнику только один раз запустить приложение, прежде чем украсть данные Google. Хакер может использовать уязвимость приложения Google, чтобы извлечь библиотеку кода из опасного приложения на устройстве человека.
Оттуда киберпреступник мог получить доступ почти ко всем данным Google человека, включая его электронную почту. Они даже могут активировать микрофон, камеру и информацию о местоположении пользователя в реальном времени.
Обратите внимание на предупреждения об опасных уязвимостях приложения
Поскольку динамическая загрузка кода происходит на этапе разработки, средний пользователь приложения не может ничего сделать, чтобы проверить, может ли определенное предложение представлять скрытые опасности, связанные с его работой в фоновом режиме. Тем не менее, разумно следить за любыми новостями о безопасности приложений Android, которые попадают в заголовки технических новостей.
Исследователи кибербезопасности постоянно ищут проблемы, которые могут поставить под угрозу сотни тысяч пользователей приложений, а затем сообщают о них. Осведомленность о потенциальных опасностях приложения поможет пользователям решить, нужно ли и когда обновлять или удалять потенциально проблемное приложение.