移动应用程序的静态分析



测试移动应用程序的阶段之一是静态分析。 应用程序的静态分析是对应用程序的分析,不执行任何应用程序功能。 从开源框架对我来说最方便的是MobSF。 谁在乎,欢迎来猫。

MobSF对以下应用程序执行静态分析:Android,Apple iOS和Windows Phone,以及动态分析:仅适用于Android应用程序。 在下一篇有关MobSF的文章中,我将告诉您如何进行动态分析。 可以在此处找到更详细的描述和安装手册。

安装MobSF之后,我们将执行以下批处理文件以启动服务器(我为自己写的,因此是驱动器D)。

d: cd .\MobSF\ python .\manage.py runserver 

接下来,您需要转到地址http [:] // 127.0.0.1:8000,然后将打开主页(图1)。 这里没有太多功能:

  • 文件上传;
  • 查看有关过去扫描的报告;
  • 切换到API文档
  • 过渡到github项目。


1.主页

下载并分析文件后,将显示一个带有分析结果的页面(图2)。 左侧是菜单,可让您快速跳转至整个页面(结果非常简单)。 此屏幕快照中有什么有用的信息:

  • 应用程序哈希值
  • 支持的Android OS版本
  • 组件的数量和类型(是否导出)很重要,因为导出的组件可能会导致严重漏洞;
  • 查看和下载可以使用其他工具或手动分析的Java和smali文件的功能;
  • 查看清单文件以进行分析。


2.分析结果

我们走得更远。 在图。 图3显示了用于签署应用程序的证书信息。


3.证书信息

以下是对权限分析的描述,在AndroidManifest.xml文件(图4)中进行了描述。 MobSF分析应用程序的权限,确定其状态,重要性和权限描述。 在这里,您需要了解Android OS的体系结构,以了解应用程序的真正重要性。


4. Android权限分析

“安全性分析->代码分析”选项卡(图5)显示了静态分析器对Java代码进行分析的结果,该分析器识别出潜在的漏洞,确定其严重性以及在其中发现此类漏洞的文件。 在许多方面,这些结果都是假阳性,但是您需要仔细检查。


5.代码分析

下一个选项卡(图6)是对virustotal.com服务上文件的分析。 在这种情况下,未检测到文件被感染。


6.文件分析

URL选项卡(图7)显示URL,IP地址和文件的列表,其中存储或调用了URL,IP地址和文件。 本节分析应用程序在哪里发送数据或在哪里存储信息。


7.标签网址

“字符串”选项卡(图8)分析res目录中的文本文件。 在分析应用程序时,这些文件可能包含硬编码帐户和其他敏感数据。 虽然在我记忆中不是。


8.文本文件分析

“ Components”选项卡(图9)显示了组件(活动,服务,内容提供者和接收者),导入的库和文件的完整列表,但未定义扩展名。


9.组件清单

此外,可以使用VCG扫描仪静态分析器执行源代码分析。 VCG需要源代码。 可以通过“下载Java代码”按钮下载源代码(图10)。 该文件已下载到ZIP存档中。 接下来,您需要从存档中提取包含文件的文件夹(图11)。


10.下载源代码


11.提取源代码

扫描源代码的步骤如下:

  1. 在“设置”选项卡中,选择“ Java”-图12。
  2. 在“文件”选项卡中,选择“新建目标目录”-图13。
  3. 在“扫描”选项卡中,选择“全扫描”-图14。


12.源代码选择


13.上载文件目录


14.开始扫描

扫描完成后,扫描程序将显示漏洞的名称,严重程度,简短描述以及在源代码中的位置(图15)。 您可以获得漏洞的完整列表,并按其严重性对其进行排序(图16)。


15.漏洞描述


16.漏洞的完整列表

结论

对应用程序和源代码的静态分析提供了有关应用程序体系结构和潜在攻击媒介的基本概念。 根据ByteCode使用的方法正是从他那里开始对进入渗透测试的客户端的任何应用程序进行分析。

Source: https://habr.com/ru/post/zh-CN429252/


All Articles