2014-12-04 1 views
2

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

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

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

ответ

2

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

А вот несколько советов ... и то, что вы не должны делать: Determine if running on a rooted device

+0

Спасибо за ссылку. :) Я жду больше ответов для заполнения. Если никто не станет лучше этого, я приму это в качестве ответа. –

1

Отъезд службы SafetyNet Google: https://developer.android.com/google/play/safetynet/index.html

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

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

Я не думаю, что это будет работать на версиях без Google Андроида (бывший циан), так что-то, чтобы иметь в виду.

+0

вопрос «Обнаружение корня», а не «Проверка совместимости» – Bastet

+0

@Bastet несколько правдоподобно, эта служба проверяет, что ОС доверяет Google (совместимость - это одна из них), она проверит, была ли она укоренена или подделана с. При развертывании через Google Play это должен быть надежный способ обнаружения надежной ОС. Это подтверждает цепочку доверия больше, чем укоренение, но может быть достаточным в зависимости от прецедента. Если вы используете целевые устройства, отличные от Google-Android, вам понадобится другой механизм. – garettBeuk

3

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

  • CheckRootManagementApps
  • CheckPotentiallyDangerousAppss
  • CheckRootCloakingApps
  • CheckTestKeys
  • checkForDangerousProps
  • checkForBusyBoxBinary
  • checkForSuBinary
  • checkSuExists
  • checkForRWSystem
Смежные вопросы