可以使用Magisk hide绕过Root检测实现:Android应用程序漏洞

问题描述 投票:0回答:1

我的 Android 应用程序最近被分配了新的安全修复程序: 这次漏洞评估和渗透测试 (VAPT) 团队使用 Magisk 和 Magisk hide 绕过 Android 根检测实现。

VAPT 团队给出的描述:根据 包名称su 二进制文件的可用性检查根检测。

VAPT 团队在 Android 设备上绕过 Root 检测所遵循的步骤:

    将 Magisk 应用程序
  1. 包名称设置为随机。
  2. 下一步应用
  3. Magisk 隐藏设置。它将对应用程序隐藏 su 二进制文件。 因此,应用程序正常工作。 Magisk Hide 意味着您可以使用应用程序,而不会让它知道它是已 root 的设备。

App上Root检测实现:

    目前在 Android 应用程序上,我们集成了“
  1. Root Bear”和“Root Tool”库,用于 Android 设备上的 Root 检测。
  2. 所有应用程序数据都存储在Android应用程序上的
  3. 加密数据库中。
我还检查了可能的修复方法,例如 SafetyNet 的硬件证明,但我发现这还不够。 在这里我找到了链接,说他们也能够绕过安全网检测:

  1. https://nooberinfo.com/magisk-hide-not-working-on-banking-apps-2021-magisk-hide-not-working-2021-android-11/#19-method-6-updating-magisk -到-magisk-canary-version-to-fix-safetynet-issue-in-android-11
  2. https://www.thecustomdroid.com/fix-safetynet-hardware-attestation-guide/
有关此场景的问题:

  1. 如果根检测被绕过,因为数据库是加密的 不应该有任何应用程序数据泄露的机会。 如果绕过根检测,

    加密的数据库足够安全,可以防止应用程序数据泄露?

  2. 目前是否有任何已知的

    缓解措施可用于检测 Android 应用程序上的 Magisk 和 Magisk hide

  3. 如果有新的方法来绕过和隐藏root,那么就需要在Android应用程序上集成新的Root检测库,这反过来又会增加Android APK的大小。

    集成新库进行根检测总是一个好主意吗?

android security root penetration-testing
1个回答
0
投票
您可以使用这段代码来检测magisk hide,将其与另一个root检测库(如root beer)结合使用。在这里,我们只是浏览所有已安装的应用程序并搜索 Magisk 特定的库名称,例如“libstub.so”。

private void searchForMagisk() { PackageManager pm = getPackageManager(); @SuppressLint("QueryPermissionsNeeded") List<PackageInfo> installedPackages = pm.getInstalledPackages(0); for (int i = 0; i < installedPackages.size(); i++) { PackageInfo info = installedPackages.get(i); ApplicationInfo appInfo = info.applicationInfo; String nativeLibraryDir = appInfo.nativeLibraryDir; String packageName = appInfo.packageName; Log.i("Magisk Detection", "Checking App: " + nativeLibraryDir); File f = new File(nativeLibraryDir + "/libstub.so"); if (f.exists()) { ShowMessageBox("Magisk Detection", "Magisk was Detected!"); } } }
    
© www.soinside.com 2019 - 2024. All rights reserved.