MobSF移动安全扫描平台本地化部署「本地部署方案」

科技   2024-11-25 17:30   上海  
点击蓝字,立即关注




背景


最近,在我们的Android应用上线Google Play Store过程中,我们遭遇了一个棘手的问题:Google的检测系统发现了一个安全警告


这个突如其来的问题使我们的整个项目组投入了两天时间来紧急排查,期间我们经历了错综复杂的调试和验证过程。


此次经历促使我们决定,在测试阶段就要更加仔细地检测潜在的安全问题,以确保此类事件不再发生。



书接上文


上文描述中,写到docker安装无法进行动态扫描的体验


因此在第二篇文章中也会实时记录我在进行本地部署时遇到的一系列问题。




本地化部署


clone项目


执行命令将代码clone到本地


git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git


遇到的问题:


频繁报错以下内容


MacBook-Pro% git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
Cloning into 'Mobile-Security-Framework-MobSF'...
remote: Enumerating objects: 20994, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (15/15), done.
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 4891 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output


查询报错内容后得出几个解决方案,我采用的是逐步获取更改,也就是方案六解决的,大伙更熟悉的可以采用自己的解决方案:



1、更换网络协议:

如果你使用的是HTTPS来克隆或获取,尝试切换到SSH(或相反)。有些时候,网络设置对不同的协议影响不同。


2、增大Git的HTTP缓存

早前的HTTP缓存扩展建议也适用于此问题。


3、升级Git和Curl:

如果你使用的是较旧版本的Git或Curl,尝试升级到最新版本。某些问题可能是因为旧版本的软件缺陷导致的。


4、减少克隆深度:

尝试使用带--depth参数的浅克隆,这会减少你需要下载的数据量:


git clone --depth 1 https://github.com/MobSF/Mobile-Security-Framework-MobSF.git



5、逐步获取更改:

如果遇到问题的仓库特别大,可以分步来获取更新


git fetch --depth 10


安装依赖


执行命令


sh setup.sh


成功截图如下:



启动服务


  • windowns环境


run.bat 127.0.0.1:8001


  • Linux&MacOS环境


sh run.sh 127.0.0.1:8001


成功运行的截图如下:



访问服务


打开浏览器访问http://localhost:8001/可以看到如下页面:



体验动态扫描


在我尝试用我的真机进入服务准备体验时,发现平台报错:



发现服务报错



排查错误


进入Issues中查看同样错误描述


如同样问题链接的:github.com/MobSF/Mobil…


但是多个方向均指向,要我去使用Slack频道获取支持



好我先抛出问题看看有没有热心肠能回我一句



  • 怀疑可能是因为设备没有Root导致


因为我以前听说过他们做安全测试的,大多数都会用Root设备或者模拟器来高一些动态测试。因此,我先是尝试了我手里可以真正连接的一批真实手机,无果。


因此采用Mumu模拟器「别问,问就是只有他支持Mac」,但是模拟器因为它的API太高,也不会手动设置Mumu的API,因此卸载掉。之后想起来AndroidStudio可以有模拟器,好进行尝试。


  • 模拟器的尝试


在这里最开始采用的是API=28的一些手机,如下图:



但是我在使用模拟器的时候仍然遇到了新的报错:



好吧,看到报错大概能分析出来这个手机的系统的AVD不支持,然后他让我去阅读MobSF的文档,咱也不继续犟嘴了,不行就是不行,这就去看文档。


文档地址:mobsf.github.io/docs/#/mobs…


拆解文档内容


好吧,在文档中描述,确实是可以看到人家开发者在文档里明确说了这句话

在运行MobSF之前,您必须运行任何[受支持的]VM/AndroidStudio模拟器。在继续之前请阅读[本文]。


文档地址:mobsf.github.io/docs/#/mobs…



下载文档推荐的模拟器


在这里我下载的是跟文档描述一致的Nexus_One_API_28



排查错误使用模拟器从命令运行AVD


将 Android SDK 模拟器目录附加到PATH环境变量中。


一些示例位置


  • Mac -

    /Users/<user>/Library/Android/sdk/emulator


  • Linux -

    /home/<user>/Android/Sdk/emulator


  • Windows -

    C:\Users<user>\AppData\Local\Android\Sdk\emulator


列出可用的 Android 虚拟设备 (AVD)


MacBook-Pro emulator % emulator -list-avds
Nexus_One_API_28
Pixel_API_28


运行Android虚拟设备(AVD)


在使用命令行选项启动MobSF之前运行AVD。


emulator -avd Nexus_One_API_28 -writable-system -no-snapshot




大功告成



END


链接:https://juejin.cn/post/7354949425774739508

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除




点点赞
点分享
点在看

51Testing软件测试网
博为峰20周年,青春正当燃,一起向未来! 博为峰51Testing软件测试网提供各种线上招聘、线上课程等网络服务,出版软件测试系列丛书及电子杂志,组织线上技术交流活动;同时还举办多种线下公益活动,如软件测试沙龙、软件测试专场招聘会等。
 最新文章