首页 > 其他分享 >【安全测试】移动端安全测试MobFS工具

【安全测试】移动端安全测试MobFS工具

时间:2022-09-27 16:35:48浏览次数:74  
标签:分析 App MobFS 安全 MobSF 测试 android 权限

APP安全测试工具介绍:

            MobSF(Mobile Security Framework) 是一款自动化移动 App 安全测试框架,适用于 iOS 和 Android,可熟练执行动态、静态分析和 Web API 测试。

      移动安全框架可用于对 Android 和 iOS 应用进行快速安全分析。MobSF 支持 binaries(IPA 和 APK)以及 源码压缩包。

静态分析:

          静态分析器可以执行自动化的代码审计、检测不安全的权限请求和设置,还可以检测不安全的代码,诸如ssl绕过、弱加密、混淆代码、硬编码的密码、危险API的不当使用、敏感信息/个人验证信息泄露、不安全的文件存储等。

动态分析:

         动态分析器可以在虚拟机或者经过配置的设备上运行程序,在运行过程中检测问题。动态分析器可以从抓取到的网络数据包、解密的HTTPS流量、程序dump、程序日志、程序错误和崩溃报告、调试信息、堆栈轨迹和程序的设置文件、数据库等方面进行进一步的分析。

备注:动态分析需要Genymotion模拟平台的支持,通过它来启动安卓虚拟机VM

特点:

          1、它是一款开源的移动 App 安全测试工具;

          2、它可以托管在本地环境,因此重要数据不会与云交互;

          3、它能对三个平台(Android、iOS、Windows)的移动 App 进行更快的安全性分析。同时,开发人员可以在开发阶段识别出安全漏洞。

          4、它可以对Android、iOS和Windows端移动应用进行快速高效的安全分析,不仅支持APK、IPA和APPX等格式的应用程序,而且还可以对压缩包内的源代码进行安全审计。

          5、它还包含有针对Web API的模糊测试工具,因此它还可以执行Web API安全测试,例如收集目标数据、安全Header、识别类似XXE、SSRF、路径遍历漏洞、IDOR或其他一些与会话和API访问频率相关的移动API漏洞。

c、安装方式:1、服务器安装   2、本地安装

1、服务器安装

a1、安装docker,见文档

a2、上传MobileSF镜像到docker

MobileSF镜像

存放服务器:10.xx.xx.xx

存放路径:/data/docker

 

a3、加载镜像:

docker load -i mobsf.tar

a4、查看镜像:

docker images

a5、启动mobsf镜像实例:

docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

访问:http://10.xx.xx.xx:8080/

进入容器命令:

docker exec -it (容器id)775c7c9ee1e1 /bin/bash

2、本地安装及运行,见官方操作文档

https://mobsf.github.io/docs/#/running?id=windows

3、github路径:

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

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

zip包:

Mobile-Security-Framework-MobSF-master.zip

4、代码分析:

https://blog.csdn.net/wutianxu123/article/details/104022024

d、使用:

安装成功后,见如下页面,直接上传相应文件即可,第一次扫描可能需要一定时间

 

扫描完成后 如下:

 

 

 e、报告分析

3.1静态分析

(1)基本信息
①文件信息:文件信息包括了文件名、文件大小、md5、sha1、sha256。

②App信息:App信息包括了包名、Main Activity等信息。

③基本信息中还会给出Activities、Services、Receivers、Providers这四大组件的数目,以及可导出组件的数目。可导出组件是较为严重的安全漏洞,因此这里单独列出了可导出组件的数目。

(2)代码性质
在代码性质中,可以查看并下载App的Java代码,或者查看并下载Smali代码,再或者查看Manifest文件。另外,在代码性质中部分中也可以开始动态分析。

(3)权限信息
在权限信息中,罗列了被检测App在Manifest文件中申请的所有权限,并标出了每个权限的危险指数,对于有安全隐患的权限标记为危险。在每个权限后面都加上了该权限的作用简介,并对其功能及安全风险进行了描述。

以android.permission.ACCESS_COARSE_LOCATION为例,被检测App请求了这一权限,这项权限用于获取设备的粗略位置信息,MobSF将其标记为dangerous,即认为这项权限是有安全风险的。在描述中介绍了这一权限的功能,可以通过基站定位等方式获取用户位置,恶意程序可以通过该权限来获取你的大致位置。

(4)安卓API
列举了被检测App调用的所有安卓API,并给出了调用API的代码的位置,这一功能在代码研究分析时比较实用,但在安全检测分析中实际作用并不大。

(5)安全分析
安全分析是MobSF的最重要部分,安全分析分为三部分,manifest分析、源码分析和文件分析

接下来则是具体到每一项有安全风险的权限分析。

1)检查android:debuggable是否为true,如果是true,那么认为此处具有级别为“高”的安全风险,因为此时App可以被调试,攻击者可以获取调试信息,这会泄漏许多关键信息,造成严重的安全风险。

2)检查android:allowBackup是否为true,如果为true或者未定义android:allowBackup,都认为此处具有级别为“中等”的安全风险,通常认为可以备份应用数据是有安全风险的,如果未定义android:allowBackup,则在某些情况下系统会默认该项为true,同样会造成安全隐患,如果检测出未定义android:allowBackup,那么将会提示需要将其设置为false。

3)检查android:testOnly是否为true,如果是则具有“高”安全风险,在此情况下程序出于测试状态,会暴露程序本身的功能或数据,这将导致安全漏洞。

4)检查Activity有没有设置TaskAffinity。MobSF认为,设置了TaskAffinity会让其他应用读取到发送给另一个任务的intents,而这具有“高”安全风险。框架建议这一项使用默认设置。

5)Activity启动方式不标准,这也具有“高”安全风险,当intent中包含敏感信息时,Activity启动方式应该设置为“standard”,如果设置为"singleTask/singleInstance"则可能导致信息泄漏。

6)组件导出检测。在之前的报告中已经强调过,组件可导出是很常见的安全风险,任何组件都不应设置为可导出的,否则均认为存在安全隐患。

7)不适当的Content Provider权限,Content Provider如果设置权限为设备上所有App均可访问则有可能导致其中包含的敏感信息泄露,这具有“高”安全风险。具体包括"android:pathPrefix=/","android:path=/"和"android:pathPattern=*"。

8)检查android:scheme中是否存在有android_secret_code,如果是,则存在“高”安全风险,将会导致加密内容泄漏。

9)二进制短信端口处于监听状态。程序应当对接收的短信进行安全性验证,并且应该假定所有接收到的短信都来自不可信任源。如果对二进制短信没有进行适当处理,则程序具有“高”安全风险。

3.2源码分析

安全分析的第二部分是源码分析,源码分析的所有项目都在如下这个元组中,这里是源码分析中所有检测项目的标签,每一项的具体含义以及判别方式将会逐一说明。

key: [] for key in('inf_act','inf_ser','inf_bro','log','fileio','rand','d_hcode','d_app_tamper','dex_cert','dex_tamper','d_rootcheck',\
'd_root','d_ssl_pin','dex_root','dex_debug_key','dex_debug','dex_debug_con','dex_emulator','d_prevent_screenshot','d_webviewdisablessl',\
'd_webviewdebug','d_sensitive','d_ssl','d_sqlite','d_con_world_readable','d_con_world_writable','d_con_private','d_extstorage','d_tmpfile',\
'd_jsenabled','gps','crypto','exec','server_socket','socket','datagramp','datagrams','ipc','msg','webview_addjs','webview','webviewget',\
'webviewpost','httpcon','urlcon','jurl','httpsurl','nurl','httpclient','notify','cellinfo','cellloc','subid','devid','softver','simserial',\
'simop','opname','contentq','refmethod','obf','gs','bencode','bdecode','dex','mdigest','sqlc_password','d_sql_cipher','d_con_world_rw','ecb',\
'rsa_no_pad','weak_iv' )

这里总共罗列了32个安全风险,但在上面的元组中有72项,这是因为元组中72项并非全部是安全风险,源码分析中的检测项被分为四个级别,分别是“高危”、“信息”、“安全”和“警告”。其中“高危”是最高级别的安全风险,“警告”是次一级的,“信息”则主要是敏感信息、隐私信息保护不当,不属于安全风险,“安全”属于表扬性质,在代码中发现有防止截屏、root检查等功能,则列出标记为安全。

 

标签:分析,App,MobFS,安全,MobSF,测试,android,权限
From: https://www.cnblogs.com/happylumei/p/16734991.html

相关文章

  • python接口测试1-简单的接口测试
    使用requests包配置请求的url、headers、如果是post,put方法,还需要有请求的body注意空值,在python中应写为None  ......
  • 【安全测试】【sqlmap】sqlmap快速入门
    一、目的本文主要介绍如何用sqlmap来测试某个接口是否有sql注入的风险,以及查看对应的注入的payload。sqlmap支持-u指定接口的url信息,也支持-r来解析文件中的请求信息。......
  • 软件测试用例常用七大方法
     第一:测试用例格式包括十大特点用例编号测试项测试标题用例属性重要级别:高中低预置条件测试输入操作步骤预期结果实际结果第二:等价类1,等价类定义2,等价类......
  • 软件测试的流程
    1.需求分析2.编写测试用例(测什么怎么测)3.评审测试用例4.搭建测试环境5.等待程序开发包6.部署测试包7.冒烟测试(测试主体功能是否有问题)8.执行测试用例9.bug跟踪处......
  • 【Devops】【测试左移】代码覆盖率统计的几个脚本
    一、在测试服务器部署路径下注入jacocoinsert.sh是用于将jacoco.sh中的内容打桩到catalina.sh的脚本中,需传一个参数,为服务器的ip地址。使用方式为shinsert.sh<server_ip>......
  • 2022-2023-1 20211326《信息安全专业导论》第五周学习总结
    作业信息信息安全专业导论第四周作业:|无穷的技艺作业||我的黑客偶像|正文链接:https://www.cnblogs.com/TonySSS/教材学习内容总结|看漫画学Python第五章|学习了分支......
  • 软件测试常考面试题-软件测试面试宝典(一篇足矣)
    问:软件测试的原则?答:1.所有测试的标准都是建立在用户需求之上2.始终保持“质量第一”的觉悟,当时间和质量冲突时,时间要服从质量3.需求阶段应定义清楚产品的质量标准4.软......
  • 软件测试的八个原则
    1.所有测试的标准都是建立在用户需求之上2.始终保持“质量第一”的觉悟,当时间和质量冲突时,时间要服从质量3.需求阶段应定义清楚产品的质量标准4.软件项目一启动,软件测试......
  • 多线程环境下安全的集合
    多线程环境下安全的集合List/***并发修改异常多个线程同时操作一个不安全的集合*<p>*CopyOnWriteArrayList写时复制技术*add方法会先复制一个新数组对新......
  • 测试质量管理总目录
    质量的衡量指标标准化(指定相关规范,指标衡量软件质量)质量的负责人(整个团队都有责任,开发自测,UT)质量的范围(功能+用户体验)研发质量模型(测试参与所有环境,测试左移)发布质量(......