- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MobSF框框架架及及源源代代码码分分析析
MobSF
MobSF,全称(Mobile-Security-Framework),是一款优秀的开源移动应用自动测试框架。该平台对安卓、苹果应用程序
进行静态、动态分析,并在web端输出报告。静态分析适用于安卓、苹果应用程序,而动态分析暂时只支持安卓应用程序。
MobSF使用Django框架开发,使用sqlite进行的存储,支持对apk、ipa及zip压缩的源代码进行扫描分析。
同时,MobSF也能够通过其APIFuzzer功能模块,对WebAPI的安全性进行检测,如收集信息,分析安全头部信息,识别移
动API的具体漏洞,如E、SSRF、路径遍历,以及其他的与会话和API调用有关的逻辑问题。
代码结构
MobSF源代码结构主要包含静态分析、动态分析、APIFuzzer三个部分,本文不关注Django框架本身及Web处理相关的内
容。如图:
静态分析实现原理
静态分析的处理流程集功代码在目录StaticAnalyzer\views\android下static_analyzer.py程序文件中。分析代码流程知,在
MobSF框架中静态分析主要包含三个部分,分别是ManifestAnalysis、CertAnalysis、CodeAnalysis。流程如下:
ManifestAnalysis
在解压apk后,MobSF使用AMLPrinter2.jar工具提取app中的AndroidManifest.xml文件内容,并进行分析。
ManifestAnalysis主要功能是对AndroidManifest.xml进行解析,提取其中permission、granturipermissions、application、
activties、services、intents、actions等,分析所有权限并对权限进行分级,包含正常、危险、签名、系统四个类别。对各属
性配置进行检查,看是否存在不安全的配置,如allowBackup、debuggable、exported等属性设置。详细代码功能见
manifest_analysis.py程序文件。
CertAnalysis
MobSF证书分析功能函数在cert_analysis.py文件中,MobSF首先尝试获取HardcodedCertificates/Keystores,然后通过
CertPrint.jar工具解析apk中证书的信息,并完成证书相关问题的分析。
CodeAnalysis
MobSF静态代码分析功能函数在code_analysis.py文件中,反编译的代码在converter.py中。其中使用Dex2Jar将dex转变为jar
文件,使用Dex2Smali将dex转变为smali代码,使用jd-core.jar、cfr_0_115.jar、procyon-decompiler-0.5.30.jar将jar包转为为
读的java代码。
源代码分析部分主要利用正则表达式对java源码进行匹配来实现的。主要通过匹配常见方法中的关键词来提取源码中用到的方
法。通过匹配敏感关键词来提取账号密码等信息:
常见API字符串来判定是否有调用这些API:
要检测的api列表(部分)及对应的安全问题:
通过正则匹配URL的格式来提取源码中的URL:
通过正则匹配Email的格式来提取源码中的Email:
动态分析实现原理
MobSF同时还支持对安卓程序的动态分析,使用virtualbox运行app,并使用virtualbox提供的接口完成代理设置、虚拟机的操
作,利用adb命令安装运行app,并获取app的运行相关信息,进行分析。其动态分析主要目录结构如下图:
主要功能代码在DynamicAnalyzer/views目录下的android.py,根据其前端展示页面知其主要功能有:
EnvironmentCreated
Start/StopScreen
Install/RemoveMobSFRootCA
StartExportedActivityTester
StartActivityTester
TakeaScreenshot
Finish
虚拟机运行环境参数、Web代理设置、模拟设备设置在settings文件中
EnvironmentCreated
该功能主要由GetEnv函数实现Web代理设置,adb命令接口实现app的安装、运行。MobSF与虚拟运行环境连接后,即开始动
原创力文档


文档评论(0)