Методика обнаружения рута в андроиде, которую нельзя обойти

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

Основные методы, используемые разработчиками для обнаружения root, — это проверка файла superuser.apk, проверка chainfire, busybox, выполнение команды su и т. д. Но злоумышленник может просто обойти эти проверки несколькими способами, такими как переименование superuser.apk в superuser0.apk.

Итак, я ищу уникальное решение этой проблемы, при котором злоумышленник не может обойти проверки обнаружения рута. Пожалуйста, поделитесь своим мнением, даже если такого решения не существует. Потому что решения от вас, ребята, могут помочь, по крайней мере, укрепить код обнаружения рута.


person Anonymous Platypus    schedule 04.12.2014    source источник


Ответы (3)


Насколько я знаю, не существует «единственного решения», но вам нужно будет проверить наиболее распространенные вещи. Также полезна следующая статья: https://blog.netspi.com/android-root-detection-techniques/

И вот несколько советов... и чего не следует делать: Определить, работает на корневом устройстве

person Carsten    schedule 04.12.2014
comment
Спасибо за ссылку. :) Жду больше ответов для заполнения. Если ничего не выйдет лучше этого, то я приму это как ответ. - person Anonymous Platypus; 04.12.2014

Существует библиотека с открытым исходным кодом под названием rootbeer и пример приложения, которое выполняет следующие проверки для обнаружения root.

  • CheckRootManagementApps
  • CheckPotentiallyDangerousAppss
  • CheckRootCloakingApps
  • CheckTestKeys
  • checkForDangerousProps
  • проверитьForBusyBoxBinary
  • проверитьForSuBinary
  • проверить SuExists
  • проверитьForRWSystem
person Dheeraj Vepakomma    schedule 12.02.2017
comment
Просто будьте осторожны, так как библиотека rootbeer будет выдавать ложные срабатывания просто из-за существования некоторых приложений на нерутированных устройствах. В частности, у меня было два приложения, которые сообщали мне, что мое нерутированное устройство было рутировано просто потому, что лицензия CyanogenMod ROM Manager License, которая не отображается в виде значка в панели запуска, была установлена ​​на телефоне в процессе резервного копирования / восстановления с моего старого телефона. . (Проанализируйте обзоры приложения Transport for London's Oyster, чтобы найти примеры раздраженных пользователей, которые не могут использовать приложение из-за ложных срабатываний «рутинга».) - person Steltek; 12.11.2019

Ознакомьтесь со службой Google SafetyNet: https://developer.android.com/google/play/safetynet/index.html

Он выполнит некоторые проверки, чтобы убедиться, что устройство безопасно, и выдаст результат, который вы можете проверить. Результат возвращается в виде веб-подписи JSON, которую вы можете прочитать в приложении, но для обеспечения дополнительной уверенности вы также можете отправить этот результат на сервер, которым вы управляете, чтобы он проверил результат непосредственно в Google.

https://developer.android.com/google/play/safetynet/start.html

Я не думаю, что это будет работать на версиях Android, отличных от Google (например, Cyanogen), так что имейте в виду.

person garettBeuk    schedule 03.05.2015
comment
@Bastet несколько верно, эта служба подтверждает, что Google доверяет ОС (один из аспектов этого — совместимость), она проверит, была ли она укоренена или подделана. При развертывании через Google Play это должен быть надежный способ определить доверенную ОС. Это подтверждает цепочку доверия в большей степени, чем рутирование, но этого может быть достаточно в зависимости от варианта использования. Если вы нацелены на устройства, отличные от Google-Android, вам понадобится другой механизм. - person garettBeuk; 08.08.2016
comment
Я всегда рекомендую использовать SafetyNet, но в сочетании с другими реализованными проверками, так как SafteyNet сам по себе можно обойти с помощью Magisk root. Однако в сочетании с другими проверками, например, проверка пакета Magisk существует, но его можно переименовать, поэтому запутайте жестко закодированные строки com.topjohnwu.magisk. Глубокая защита. - person jerrythebum; 06.04.2018