近期收到一个问题单,需要排查 MobSF 扫描结果中出现的字段级别问题:
操作步骤:使用 MobSF 扫描 APK 文件
实际结果:扫描结果中出现非 Info 级别字段
预期结果:扫描结果中均为 Info 级别;若无法修改,需备注库名称及原因
此前对 MobSF 了解有限,为解决这个问题,需先熟悉其使用方法。本文记录在 Windows 平台搭建 MobSF 平台的过程。
MobSF(Mobile Security Framework)是一个开源的移动安全平台,可对 Android 和 iOS 应用进行静态分析。
使用 Docker 可以快速部署 MobSF。首先下载适用于 Windows 平台的 Docker Desktop。
下载完成后进行安装,安装过程中会自动安装 WSL 2,整个过程耗时较长,要耐心等待。安装完成后打开 Docker Desktop:
启动后需进行一项配置:
配置完成后,依次执行以下命令:
1 | docker pull opensecurity/mobile-security-framework-mobsf:latest |
执行成功后,通过浏览器访问 localhost:8000 即可看到 MobSF 的登录界面。默认账号密码为 mobsf/mobsf:
登录后的主界面如下:
上传待扫描文件(APK 或 .so 文件)即可开始扫描:
平台搭建完成后,可以自行编译 .so 文件并进行验证。
然而,经过多次尝试后发现:无论如何通过 NDK 编译本地 .so 文件,扫描结果中的 FORTIFY 字段始终显示为 false warning,无法修改。
经过多次排查,得出初步结论:
可能与 Bionic 和 glibc 编译方式有关。目前尚未找到单纯通过 NDK 编译 .so 库以满足 FORTIFY 要求的方法;其他能够满足 FORTIFY 要求的 .so 文件,可能是链接了使用 glibc 编译的静态库。
还有待后续验证。