Изучаем MITRE ATT&CK. Mobile Matrices: Device Access. Часть 4

habr.png


Ссылки на все части:
Часть 1. Первоначальный доступ к мобильному устройству (Initial Access)
Часть 2. Закрепление (Persistence) и Эскалация привилегий (Privilege Escalation)
Часть 3. Получение учетных данных (Credential Access)

Способы обхода средств защиты применяются злоумышленниками во избежание обнаружения их вредоносной активности либо в совокупности с другими техниками атак для достижения определенных тактических целей в результате подрыва конкретной защиты. Таким образом, уклонение от защиты может рассматриваться как набор техник, применяемых противником на всех этапах атаки.
Автор не несет ответственности за возможные последствия применения изложенной в статье информации, а также просит прощения за возможные неточности, допущенные в некоторых формулировках и терминах. Публикуемая информация является свободным пересказом содержания ATT@CK Mobile Matrices: Device Access.

Выявление приложений (Application Discovery)


Платформа: Android, iOS
Описание: Злоумышленники могут пытаться идентифицировать все приложения, установленные на устройстве, чтобы выявить наличие средств обеспечения безопасности, которые могут увеличить риск обнаружения, или наоборот — определить приложения на которые будет нацелена дальнейшая атака.

Android-приложения могут использовать метод класса PackageManager для перечисления других приложений или другой объект с доступом к командной строке для использования команды pm. iOS-приложения могут использовать вызовы приватных API для получения списка приложений, установленных на устройстве. Однако распространение через AppStore приложения, использующего приватные API-вызовы, скорее всего будет невозможным.

Рекомендации по защите: Методы проверки android-приложений должны включать средства выявления использования приложениями класса PackageManager для перечисления других приложений с целью проведения дополнительного анализа. Однако, такой подход может быть непрактичен, т.к. многие приложения могут вызывать методы класса PackageManager в рамках штатной работы. В iOS методы проверки аналогично могут искать приватные API-вызовы, однако важно отметить, что приложение, использующее приватные вызовы API, вероятно, не будет принято в AppStore.

Маскировка индикаторов root-доступа или jailbreak-взлома (Disguise Root/Jailbreak Indicators)


Платформа: Android, iOS
Описание: Противник может использовать знание алгоритмов работы средств обеспечения безопасности для того чтобы избежать своего обнаружения. Например, некоторые средства безопасности мобильных устройств выполняют обнаружение факта компрометации путём выявления конкретных артефактов, таких как установленный бинарный файл su, но эту проверку можно обойти, назвав двоичный файл иначе. Противник может использовать полиморфный код, чтобы избежать обнаружения с помощью сигнатурного анализа.

Загрузка нового кода в среду Runtime (Download New Code at Runtime)


Платформа: Android, iOS
Описание: Для того чтобы избежать обнаружения злонамеренного кода во время проверок в корпоративной среде или магазине приложений с помощью методов статического анализа кода (возможно, и динамического) вредоносное приложение может загружать и выполнять динамический код (не включенный в пакет приложения) после его установки.
В Android динамический код может включать в себя собственный код, код Dalvik или код JavaScript, который использует функцию JavascriptInterface Android WebView. В iOS также существуют методы для выполнения динамического кода, загруженного после установки приложения.

Рекомендации по защите: Технологии проверки приложений (статический и динамический анализ) могут выявлять признаки загрузки приложением нового кода во время выполнения (например, в Android — это использование DexClassLoader, System.load или WebView JavaScryptInterface, в iOS — использование JSPatch или аналогичных возможностей). К сожалению, это лишь частичный метод смягчения рисков, поскольку, выявленные приложения будут требовать дополнительной проверки из-за того, что эти методы часто используются разработчиками без злого умысла, а также из-за того, что приложения могут использовать иные методы, такие как сокрытие использование методов загрузки кода во время выполнения.

Установка небезопасной или вредоносной конфигурации (Install Insecure or Malicious Configuration)


Платформа: Android, iOS
Описание: Противник может попытаться установить на мобильное устройство небезопасную или вредоносную конфигурацию с помощью фишингового письма или текстового сообщения, содержащего файл конфигурации в виде вложения либо веб-ссылку на параметры конфигурации. В ходе установки параметров конфигурации пользователь может быть обманут с помощью методов социальной инженерии. Например, с помощью установки конфигурации нежелательный сертификат центра сертификации (CA) может быть помещен в хранилище доверенных сертификатов устройства, что повысит восприимчивость устройства к атакам типа «человек по середине».

В iOS вредоносные профили конфигурации могут содержать нежелательные сертификаты Центра сертификации (CA) или другие небезопасные параметры, такие как адрес нежелательного прокси или VPN-сервера для маршрутизации трафика устройства через систему злоумышленника или регистрации целевого устройства во вражеской системе управления мобильными устройствами (MDM).

Рекомендации по защите: В iOS 10.3 и выше добавлен дополнительный шаг, требующий совершение пользователем определенных действий для установки новых доверенных сертификатов CA. Android-приложения, совместимые с Android 7 и выше (уровень API 24), по умолчанию доверяют только сертификатам CA, поставляемым с ОС, а не добавленных пользователем или администратором, что снижает их восприимчивость к атакам «человек по середине».

Обычно небезопасные или вредоносные параметры конфигурации не устанавливаются без согласия пользователя. Пользователям не следует устанавливать непредвиденные параметры конфигурации (сертификаты CA, профили конфигурации iOS, подключения к MDM).

На Android пользователь может просматривать доверенные сертификаты CA через настройки устройства с целью выявления подозрительных сертификатов. Аналогичным образом средства защиты мобильных устройств могут проверять хранилище сертификатов на наличие аномалий. На iOS, пользователь может просматривать установленные профили конфигурации через настройки устройства и выявлять подозрительные профили. Аналогично MDM-системы могут использовать API iOS MDM для проверки списков установленных профилей на наличие аномалий.

Модификация ядра ОС или загрузочного раздела (Modify OS Kernel or Boot Partition)


Платформа: Android, iOS
Описание: Имя возможность повышения привилегий противник может попытаться разместить вредоносный код в ядре ОС или компонентах загрузочного раздела, где код не может быть обнаружен, будет сохраняться после перезагрузки устройства и не сможет быть удален пользователем. В некоторых случаях (например, Samsung Knox) атака может быть обнаружена, но приведет к переводу устройства в режим ограниченной функциональности.

Многие устройства Android предоставляют возможность разблокировать загрузчик ОС в целях разработки, но такой функционал предоставляет возможность злонамеренно обновлять ядро или другой код загрузочного раздела. Если загрузчик всё-таки не разблокирован, то остается потенциальная возможность использования уязвимостей для обновления кода ядра.

Рекомендации по защите: В корпоративной среде организуйте установку обновлений безопасности, внедрение удаленной аттестации мобильных устройств (Android SafetyNet, Samsung KNOX TIMA), а также запретите устройствам, не прошедшим аттестацию, доступ к корпоративным ресурсам. Проверяйте состояние блокировки загрузчика на устройствах, которые предоставляют возможность разблокировать загрузчик (следовательно позволяя любому коду ОС быть записанным на устройство).

Android SafetyNet Attestation API может использоваться для удаленной идентификации и реагирования на скомпрометированные устройства. Samsung KNOX предоставляет возможность удаленной аттестации на поддерживаемых устройствах Samsung Android. Устройства Samsung KNOX включают необратимый битовый предохранитель, который сработает если на устройство будет загружено non-KNOX ядро. При срабатывании, enterprise KNOX container services не будут доступны на устройстве.

Как описано в iOS Security Guide, устройства iOS не смогут загрузиться или разрешить активацию устройства если были обнаружены несанкционированные изменения. Многие enterprise-приложения выполняют свои собственные проверки для обнаружения и реагирования на скомпрометированные устройства. Такие проверки не являются надежным средством, но могут обнаружить первичные признаки компрометации.

Модификация системного раздела (Modify System Partition)


Платформа: Android, iOS
Описание: Если противник повысит привилегии, то он сможет использовать их для размещения вредоносного кода в системном разделе устройства, где код будет сохраняться после перезагрузки ОС и не будет легкодоступен для удаления пользователем. Многие устройства Android позволяют разблокировать загрузчик в целях разработки. Эта возможность также может быть использована противником для модификации системного раздела.

Рекомендации по защите: Устройства Android с поддержкой Verified Boot выполняют криптографическую проверку целостности системного раздела. Android SafetyNet API может использоваться для идентификации скомпрометированных устройств. Samsung KNOX также предоставляет возможность удаленного контроля на поддерживаемых устройств. Устройства с iOS не загрузится или не разрешит активировать устройство в котором обнаружены несанкционированные изменения.

Модификация TEE (Modify Trusted Execution Environment)


Платформа: Android
Описание: Имея соответствующие привилегии злоумышленник может попытаться разместить вредоносный код в доверенной среде выполнения (TEE) или другой аналогичной изолированной среде выполнения, где код не будет обнаруживаемым, будет сохраняться после перезагрузки устройства и не может быть удалён пользователем. Выполнение кода в TEE предоставит противнику возможность контроля или фальсификации работы устройства.

Рекомендации по защите: Устройства должны выполнять проверку целостности кода, запускаемого в TEE во время загрузки. iOS не загрузится, если код, запущенный в Secure Enclave не пройдет проверку цифровой подписи.

Обфускация файлов или информации (Obfuscated Files or Information)


Платформа: Android, iOS
Описание: Разработчик вредоносного приложения может применять методы обфускации или шифрования кода, который деобфусцируется и расшифровываться во время выполнения приложения на целевом устройстве.

Рекомендации по защите: Средства проверки приложений могут предупреждать о наличии обфусцированного или зашифрованного кода в приложениях. К сожалению, такие проверки малоэффективны, поскольку многие приложения применяют обфускацию и шифрование для защиты от техник модификации, таких как переупаковка приложения. Динамический анализ в некоторых случаях может идентифицировать обфусцированный или зашифрованный код, обнаружив его во время выполнения в открытом виде. Некоторые средства проверки приложений применяют анализ репутации разработчика и могут предупреждать о потенциально-опасных приложениях без фактического анализа кода.

© Habrahabr.ru