我知道在根设备上运行拥有敏感信息的应用根本不安全。因此,开发人员通常会在这种情况下进行根检测,如果设备找不到根,那么该应用程序将无法安装。一切都好。
开发人员在根检测中使用的主要技术是检查superuser.apk文件,检查chainfire,busybox,执行su命令等。但攻击者可以通过多种方式绕过这些检查,例如将superuser.apk重命名为superuser0.apk。
所以我正在寻找的是针对此问题的独特解决方案,攻击者无法绕过根检测检查。即使这样的解决方案不存在,请分享您的观点。因为你们的解决方案可能有助于至少强化根检测代码。
答案 0 :(得分:4)
有一个名为rootbeer和a sample app的开源库,它执行以下检查以检测root。
答案 1 :(得分:2)
据我所知,没有“单一解决方案”,但您需要检查最常见的事情。以下文章也很有用: https://blog.netspi.com/android-root-detection-techniques/
以下是一些提示......以及你不应该做的事情: Determine if running on a rooted device
答案 2 :(得分:1)
查看Google的SafetyNet服务: https://developer.android.com/google/play/safetynet/index.html
它将进行一些检查以验证设备是否安全并生成可以验证的结果。结果作为JSON Web签名返回,您可以在应用程序中阅读,但为了提供额外的保证,您还可以将此结果发送到您设法让它直接与Google验证结果的服务器。
https://developer.android.com/google/play/safetynet/start.html
我认为这不会在Android的非谷歌版本(来自Cyanogen)上运行,所以要记住这一点。