Android 是我们世界上最流行的移动操作系统。它是开源的。但是有许多可用于 Android 的恶意软件、间谍软件等。谷歌仍然有非常简单的政策可以在 Play Store 上列出任何应用程序,所以我们不能盲目相信 Play Store。由于使用恶意活动, Google多次禁止 Play 商店中的各种应用程序。我们不能盲目相信任何品牌,为了完全安全,我们需要在将每个应用程序安装到手机之前自行检查。
这就是DroidDetective所做的。这是一个适用于 Android 应用程序的机器学习恶意软件分析框架。DroidDetective 用 Python 编写,用于分析 Android 应用程序 (APK) 中潜在的恶意软件相关行为和配置。当提供应用程序(APK 文件)的路径时,Droid Detective 将预测(使用它的 ML 模型)应用程序是否是恶意的。
DroidDetective 的一些主要特点如下:
分析在应用程序的AndroidManifest.xml文件中指定了大约 330 个权限中的哪些。
分析应用程序的AndroidManifest.xml文件中使用的标准和专有权限的数量。
使用 RandomForest 机器学习分类器,从约 14 个恶意软件系列和约 100 个 Google Play 商店应用程序中训练上述数据。
现在不用浪费太多时间,我们将在我们的 Kali Linux 系统上安装 DroidDetective。首先,我们需要使用以下命令克隆
https://github.com/user1342/DroidDetective
在以下屏幕截图中,我们可以看到上述命令的输出:
之后,我们需要使用以下命令进入 DroidDetective 目录:
cd DroidDetective
现在我们需要使用以下命令填写运行此工具的所有要求:
pip3 install -r REQUIREMENTS.txt
以下屏幕截图显示了上述命令的输出:
现在我们的安装过程已经完成。是时候为我们的 Android 应用程序寻找潜在的恶意软件了。
首先,我们需要一个 APK 文件来使用 DroidDetective 进行测试。我们的桌面目录中有一个名为browser.apk的 APK 文件,因此我们需要应用以下命令来开始分析它:
python3 DroidDetective.py /home/kali/Desktop/browser.apk
我们可以在以下屏幕截图中看到上述命令的输出:
那是一个恶意软件,DroidDetective 发现这个恶意软件中有一些可疑的东西。我们还可以使用以下命令将输出保存在 json 文件中:
python3 DroidDetective.py /home/kali/Desktop/browser.apk output.json
这就是我们如何发现 APK 文件中是否存在任何恶意软件或其他恶意内容的方法。
在测试过程中,我们注意到由于配置错误或某些权限要求,该工具也会检测到一些不包含恶意内容的 APK。我们需要注意这一点。熟悉 Android 开发的人可以很容易地使用 DroidDetective 找出问题所在,他们不需要阅读整个程序。