The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

栏目: IT资讯 · 发布时间: 5年前

内容简介:出处:S&P 2018作者:Marten Oltrogge, Erik Derr, Christian Stranksy, Michael Backes等单位:CISPA等

出处:S&P 2018

作者:Marten Oltrogge, Erik Derr, Christian Stranksy, Michael Backes等

单位:CISPA等

原文链接: https://saschafahl.de/papers/appgens2018.pdf

文章概述

越来越多的App都由在线应用生成器(online application generators, OAGs for short)自动生成、分发、维护,这降低了对开发人员的技术要求,因而吸引了不少业余开发者(citizen developers)。然而,使用这类 工具 可能导致的安全问题尚未被研究。如果使用这一类工具生成的App存在安全问题,那么将会对整个移动应用生态系统的安全性造成影响。在本文中,作者对OAGs进行了系统、深入的分析,主要工作包括: + 通过对常用OAGs所支持的工作流、平台、App生命周期等特征进行分析,(首次)对常用OAGs进行分类。 + 分析不同OAGs所生成App的指纹,从而确定OAGs的市场占有情况。 + 综合利用动态、静态、人工分析,研究OAGs的安全性。

OAGs简介

1. App生成器(AppGens)

App生成器是将App开发、分发、维护等阶段部分、甚至完全自动化的工具,它的优势主要有四点: + 替开发者抽象出实现的细节,而只关注App的行为、功能 + 除了核心的App生成,还提供App签名、分发等功能 + 生成的App可以支持多平台 + 将用户管理、用户登陆等功能模块化

App生成器主要有三种不同的工作方式: + 单独的框架(Apache Cordova、PhoneGap、Xamarin)

这一类工具实现了App可能使用到的核心功能,并为开发者提供接口,方便进一步地定制。框架的输入是与平台无关的语言(如JavaScript、HTML、C#等)所写的代码,并将其打包成App。此类工具也提供丰富的插件,基本覆盖常见的功能需求,但对于生成App之后的App分发等环节没有提供帮助。
  • 在线服务(Online Service or OAGs, 如Andromo、Biznessapps) 这一类工具无需写任何定制代码,使用者所需要做的便是在Web端利用所见即所得的方式添加UI元素,不同的UI元素便对应App内不同的组件(如登录表单、内置浏览器、二维码扫描器等)。对于用户管理、用户登录、传输数据到后端等常见操作,提供整套框架。因而没有App开发经验的人也可以使用此类生成器定制自己的App。同时,在线服务也提供分发App、用户数据分析等功能。

  • Developer-as-a-Service(CrowdCompass、QuickMobile) 开发者不需要处理任何技术部分的问题,只需要提出自己的需求。剩下的只需要由生成器团队负责实现(类似外包)。此类服务往往都是针对某一类App,如会议App、活动App等。

2. OAGs分类

分类之前,需要明确有哪些主流的生成器。作者利用Goolge检索了”app maker android”、”android generate app”、”{business, free, diy, mobile}(android) app {generator, creator, maker}“等词条,选择前五个搜索结果并去重。此外,作者还在Appindex、Quora、Werockyourweb、Businessnewsdaily等网站检索生成器相关的内容。最终的生成器列表如下表所示(去除了无法明确其生成App特征的生成器),主要从以下四个维度进行分类: + Freeware:是否免费 + Multi-platform support:是否提供跨平台支持 + Components:是否支持任意添加组件 + Publishing support:是否支持App的签名、分发

The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

3. 市场占有率分析

为了量化OAGs在整个App应用市场的占有率,作者下载了Google Play上2291898个App。手动逆向了使用生成器生成的App和一个baseline app(不包含任何三方库、仅有一个“Hello World” activity),利用差分分析的方式,提取了可以用来识别不同OAGs的App特征: + App包名

Tobit: com.Tobit.* 
Andromo: {com|new}.andromo.dev*
  • 代码命名空间(Code Namespaces) Andromo: com.andromo Tobit: com.Tobit.android.slitte.Slitte
  • App签名、签名主体 AppYet: /C=CA /ST=ON /L=Oakville /O=AppYet /CN=www.appyet.com
  • 文件目录、内容 AppyPie: 在assets/www目录下包含appypie.xml文件 AppsGeyser: 在res/raw/configuration.xml文件中包含URL”appgeyser.com”

利用上述特征,作者可以对2291898个App进行分析,并最终发现其中至少有255216(11.14%)个是由OAGs生成的,这些App总下载量超过11.4亿。此外,5款最流行OAGs占所有OAGs占有率的73%。下表所示为其具体数据。 The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

OAGs(Online Service)安全性分析

1. 安全分析方法

基于OAGs的工作原理,作者假定:使用同一个OAG生成的App拥有相同的样板代码,因而这些App存在的漏洞也相同。所以需要先了解样板代码的生成逻辑。作者选择了13个最流行的OAGs,使用了它们的服务,分别创立了如下三个App: + App1: “Hello World” App,最小App + App2: 在最小App的基础上增加HTTP、HTTPS请求功能 + App3: 实现用户登录或向服务器传输数据功能

随后,作者分析了这些生成的App,发现样板代码主要有两种模式: + 完全样板代码

App中包含所有模块的代码、逻辑等,App之间的差异体现在配置文件上,配置文件包含了App所需的数据,决定了App的功能。
  • 分模块的样板代码 Andromo和Appinventor只在App中添加开发者需要的模块。

2. 针对OAGs的攻击

综合使用静态分析、动态分析的方式,作者发现了两类攻击方式: + 重配置攻击(Application Reconfiguration Attacks)

在十一个使用完全样板代码的OAGs中有5个是仅支持静态或仅支持动态加载配置文件,另外六个同时支持两种方式。对于静态配置文件,作者发现其中七个都是明文存储,可以直接读写。有一个虽然加密了,但密钥硬编码在代码中,可以直接破解。而对于动态加载的配置文件,作者发现只有三个使用了SSL,其余都使用HTTP协议传输配置文件,很容易受到中间人攻击。
  • 基础设施攻击(Application Infrastructure Attacks) 许多OAGs都将它们的Web服务和生成的App绑定起来。因此,作者利用Qualys SSL Labs(在线分析网站)去分析这些OAGs的Web服务是否能够防止SSL/TLS攻击。结果显示,这些OAGs存在使用HTTP协议、使用自签名证书、证书过期等问题。此外,OAGs将自己的API密钥硬编码在代码中,这也属于不安全的做法。 The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

    3. 其他安全问题

    除了上述两个问题,作者还研究了以下三个问题:

  • 权限设置问题 App最好只申请需要的权限,同时也不应当暴露不必要的组件。基于此,作者利用PScout、Axplorer等工具,结合手工分析,发现所有OAGs生成的App都申请了过多的权限,同时除了Andromo、AppInventor、Biznessapps三个OAGs,其余OAGs都存在暴露组件的情况,如Seattle Cloud生成的App暴露了InternalFileContentProvider组件,可能导致攻击者能够读取App使用过的文件,包括shared preferences文件、数据库等。
  • 密码学误用 作者定义了密码学误用的规则,包括过时的算法、对称加密使用ECB模式、硬编码密钥、不安全的哈希算法等,检测结果表明7个OAGs存在密码学误用的情况。
  • WebViews安全问题 针对WebViews的安全,作者制定了以下几个规则:
    • 分别追踪HTTPUrlConnection和HTTPSUrlConnection的参数,使用HTTP则判为不安全,使用HTTPS则判为安全
    • 检查App是否使用了默认的TrustManager、SSLSocketFactory、HostnameVerifier实现,如果App使用的实现放宽了认证的要求,则视为不安全
    • 检查SSLErrorHandler的实现是否存在问题
    • 如果WebViews允许使用JavaScript,同时暴露了很多安全、隐私相关的接口,则认为是不安全的。
    • 检查WebViewClient的shouldOverrideUrlLoading()方法是否有实现
    • 检查DexClassLoader等API的使用情况

    检测结果如下表所示,表明OAGs在WebViews方面仍存在很大的安全问题。 The Rise of the Citizen Developer_Assessing the Security Impact of Online App Generators

总结

本文针对OAGs的安全性进行了研究,并表明其中存在的种种安全问题。因为OAGs的特殊性,其造成的影响也很广泛。但文章提出的部分攻击方式在实际中实现所需的前提较强,如需要root等,这一点在文章内容中没有体现。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

C语言程序设计

C语言程序设计

K. N. King / 吕秀锋、黄倩 / 人民邮电出版社 / 2010-4 / 79.00元

时至今日, C语言仍然是计算机领域的通用语言之一,但今天的 C语言已经和最初的时候大不相同了。本书最主要的一个目的就是通过一种“现代方法”来介绍 C语言,书中强调标准 C,强调软件工程,不再强调“手工优化”。这一版中紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性。本书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个“问与......一起来看看 《C语言程序设计》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具