英语原文共 13 页
《IEEE信息取证与安全学报》第12卷第1期2017年4月4日
粉碎:嗅探和操纵Android用于攻击目的的传感器数据
Manar Mohamed, Babins Shrestha, and Nitesh Saxena
摘要 - 目前的Android传感器安全模型只允许对敏感传感器进行限制性读取访问(例如,应用程序只能读取自己的触摸数据)或需要特殊的安装时间权限(例如,阅读麦克风,相机或GPS)。而且,Android不允许对任何一个进行写访问
传感器。 基于传感的安全和非安全应用程序,因此,至关重要的是依赖Android传感器的理智安全模型。 在本文中,我们表明这样的模型可以有效地规避。 具体来说,我们建立SMASheD,a当前Android生态系统下的合法框架可以用来悄悄地嗅闻以及操纵许多Android限制传感器(甚至触摸输入)。SMASheD利用Android调试桥功能,并启用仅具有INTERNET权限的恶意应用程序,以及随意写入多个不同的传感器数据文件。 SMASheD是据我们所知,第一个框架可以嗅探并在未经检查的Android设备上操纵受保护的传感器,没有用户意识,没有恒定的设备 - PC连接而且无需感染PC。主要贡献这篇论文有两个方面。首先,我们设计和开发SMASheD框架,并评估其在多个方面的有效性Android设备,包括手机,手表和眼镜。第二,作为SMASheD框架的一个令人反感的含义,我们引入了一系列潜在的破坏性攻击。我们的攻击针对触摸传感器的范围,从准确记录触摸屏幕输入(TouchLogger)到注入触摸事件进行访问限制传感器和资源,安装和授予特殊对其他恶意应用程序的权限,访问用户帐户和代表用户进行身份验证 - 基本上几乎都在做无论设备用户可以做什么(秘密地)。我们的攻击各种物理传感器(运动,位置和环境)可以颠覆众多现有的功能基于传感的安全和非安全应用,包括那些用于(连续)认证,授权,安全,和老人护理。
索引条款 - 身份验证,计算机安全性,权限。
- 介绍
SENSING-ENABLED计算正在迅速发展无处不在的。 随着移动设备制造商的嵌入多个低成本的硬件传感器到设备上移动操作系统提供商为使用这些传感器开发应用程序添加了完整的软件支持,这是一种转型移动设备的采用增长。
可用的最常见传感器类别目前的移动设备,智能手机,智能手表和智能眼镜,包括:(1)用户输入传感器(触摸屏和硬件按钮),(2)视听传感器(麦克风
和相机),(3)导航传感器(例如GPS),(4)运动传感器(例如,加速度计和陀螺仪),(5)位置传感器(例如,磁力计和接近度),以及(6)环境传感器(例如,压力和温度)。 移动应用利用这些传感器已经广泛部署在许多领域,从娱乐,导航和运输(例如[16])到老年人护理(例如,[10],[12])和安全性(例如[39]),仅举几例。 另外,移动设备传感器是广泛安全性的基石隐私应用程序,包括用于身份验证的应用程序和授权(例如,[13],[14],[25],[31])
由于移动传感器提供关于主机设备,设备“用户或设备”的潜在敏感信息
环境,保护传感器数据免受恶意攻击应用程序变得至关重要。因此,大多数移动
平台已经建立了传感器安全访问控制模型。具体来说,Android是最受欢迎的手机之一操作系统和本文的主题遵循一个模型对许多敏感传感器的读访问是非常严格的(例如,应用只能读取自己的触摸数据)或要求用户授予的特殊安装时权限(例如,到访问麦克风,相机或GPS)。对大多数人的读取权限其他传感器,包括运动,位置和环境传感器,不限于此型号,因为Android可能不认为这些传感器明确敏感。更重要的是,Android安全模型不允许写访问任何传感器[1]。显然,基于传感的安全性因此,非安全应用程序至关重要依赖于Android传感器安全模型的完整性。
在本文中,我们演示了当前的Android传感器安全模型可以有效地规避到
很大程度上。具体来说,我们建立了一个合法的SMASheD当前Android生态系统下的系统框架可以用来偷偷地嗅(读)以及操纵(写)许多Android的受限传感器。成为精确,SMASheD可用于:(1)直接嗅探触摸传感器,(2)直接操纵触摸,运动,定位和环境传感器,(3)间接地,使用触摸注入功能,嗅探视听和导航传感器。 SMASheD不要求设备植根。SMASheD利用Android调试桥(ADB)功能,并启用只有恶意应用程序INTERNET允许读取和写入多个传感器数据文件随意。 ADB是一种功能设计允许具有扩展权限的Android应用程序开发人员以受其他方式保护的系统资源Android传感器安全模型。这种解决方法是合法的并已被Google Play商店中的许多应用使用比如截图应用[18],同步和备份应用[8],并触摸记录/重播应用程序[34]。所有这些应用都会问用户通过USB将她的设备连接到PC,启动ADB并使用ADB权限运行本机服务。该应用程序然后与此服务通信以获取对该服务的访问权限Android认为受保护的资源。
作为SMASheD的一部分,我们开发提供的服务读写传感器事件功能。这个功能可以隐藏在任何需要ADB的服务中解决方法,例如,屏幕截图服务。安装应用程序时用户通常会知道她的权限授予应用程序。但是,在安装和执行时通过亚行的服务,用户完全忘记了服务可能具有哪些权限。此外,SMASheD可以出版用于调试或任何其他良性目的但是可以包含将利用该功能的恶意代码由服务提供用于恶意目的。 此外,此类服务可被类似的恶意应用程序利用[20]中提出的方式。 我们的SMASheD平台包含本机服务和Android应用。
我们的贡献:在本文中,我们揭示了ADB解决方案的潜在能力,使我们能够阅读来自并写入目前受保护的许多Android传感器通过Android访问控制模型。 配备这个强大的能力,然后我们继续呈现攻势在许多安全和非安全环境中的含义。该我们工作的研究成果概述如下:
- 嗅探和操纵Android的框架传感器(第三部分):我们设计和开发SMASheD框架可以嗅探和操纵很多限制Android传感器,并评估其有效性在多个Android设备上,包括手机,手表和眼镜
- 强大的对抗性应用(第四部分):作为SMASheD的重要攻击意义框架,我们引入了广泛的潜在破坏性攻击。我们的攻击包括以下(选定的攻击演示可在https://androidsmashed.wordpress.com/demos/):
a)记录触摸屏输入,通向第一个功能齐全,高度准确的TouchLogger。
b)注入触摸事件以访问受限制的传感器和资源(例如,麦克风,摄像机或GPS),安装和授予特殊权限到其他恶意应用程序(翻译成许多已知的恶意软件方案,例如[27],[35]和[36],无需用户授予特殊权限),访问用户帐户和代表用户进行身份验证几乎做了设备用户可以做的任何事情(secretively)。
c)操纵各种物理传感器(运动,位置和环境)以颠覆许多基于传感的安全和非安全应用程序提供的功能,包括用于(连续)认证的那些(例如,[13],[14]),授权(例如,[30],[31]),安全性(如[39])和老年人护理(例如,[10],[12])。
本文是我们以前工作的延伸[23]。在此扩展中,我们提供了七种攻击的全面实施,扩展了我们的攻击范围对于非安全应用程序,包括用于安全的应用程序,老人护理和视频真实性,并测试SMASheD各种Android设备。
手稿于2015年12月30日收到; 2016年5月28日修订; 公认2016年9月27日。出版日期2016年10月21日; 当前日期版本2017年1月30日。副主编协调对此的审核手稿和批准出版的是Athanasios V. Vasilakos教授。M. Mohamed和N. Saxena在计算机系和计算机系工作信息科学,阿拉巴马大学伯明翰分校,Birming ham,AL 35294 USA(电子邮件:manar@uab.edu; saxena@uab.edu)。
B. Shrestha曾在计算机与信息系工作科学,阿拉巴马大学伯明翰分校,伯明翰,AL35294美国。 他目前在VISA Inc.,Austin,TX 78759 USA(电子邮件:
babins@uab.edu)。数字对象标识符10.1109 / TIFS.2016.2620278
- 背景:
安卓传感器安全模型Android的核心安全原则是保护用户数据,来自恶意应用程序的系统资源和应用程序[1]。 Android的利用Linux的进程隔离方法来强制执行应用程序和操作系统组件的隔离。通过为每个应用程序分配唯一的实现此隔离应用程序中的用户标识符(UID)和组标识符(GID)安装时间。因此,每个应用程序都强制执行单独的Linux进程,名为Application Sandbox,和Linux进程隔离确保应用程序不会干扰与其他应用程序或访问系统资源,除非权限
被明确授予。为了让应用程序能够进行通信Android提供的相互访问和访问系统资源安全的进程间通信(IPC)协议。
自由访问控制(DAC)是典型的访问Linux中使用的控件。在DAC中,所有者/创建者data将数据的访问权限设置为三种类型用户:所有者,同一组中的用户以及所有用户,其他用户。安装应用程序后,Android会创建一个主页应用程序的目录(即/ data / data / app-name)并允许只有所有者才能读取和写入此目录。该使用相同证书签名的应用程序可以共享数据彼此之间。
文件系统权限也用于限制访问系统功能。例如,/ dev / cam权限是设置为仅允许摄像机组中的所有者和用户读取和写入相机传感器。当应用程序请求时CAMERA权限,如果授予权限,则app被分配了相机Linux GID,这将允许它访问/ dev / cam。 Linux组之间的映射和权限标签在platform.xml和ueventd.rc中设置负责为各种所有者和群体设置系统文件。
某些Android资源不需要任何权限。特别是,全球允许阅读动作,位置和环境传感器。大多数其他资源都需要读写权限,这些权限有四个级别:
1)正常:应用程序需要请求访问权限,但是,系统自动授予权限通知用户(例如,振动)。
2)危险(保护等级1):系统授予仅在用户批准授予时才允许使用该应用此许可(例如,访问相机,麦克风,或GPS)。
3)签名(保护等级2):系统授予仅在请求的应用程序已签名时才允许该应用程序与声明的应用程序相同的证书许可,不通知用户。(例如,允许由同一个开发人员签署的两个应用程序来访问每个其他组件,注入事件)。
4)SignatureOrSystem(保护等级3):系统仅授予对其中的应用程序的权限Android系统映像或使用与声明权限的应用程序相同的证书(例如,系统重启)。
在任何Linux系统中,可执行文件的运行与启动它的进程相同。ADB shell是已经分配到几个组(图形,输入,日志,adb,dcard_rw等)。因此,任何可以执行的可执行文件他给ADB shell授予了相同级别的访问权限属于任何这些组的资源。由于包含传感器文件的direc ory#39;dev / input / *#39;属于“输入”组,ADB shell对所有人具有读写访问权限与“输入”组相关的资源,任何可执行文件帽子是由ADB shell发起的,可以读取和写入他 v/输入/ *资源。 这是关键的想法我们的SMASheD框架基于,允许我们嗅探和操纵许多Android的传感器。
- 简洁的设计,实施和威胁模型
A.设计概述
如第二部分所述,当前的Android安全模型将许多资源视为敏感资源将这些资源的访问权限仅限于那些应用程序由系统签署(系统宣布的每个任务的保护等级3和保护等级4)。这些受保护的资源包括:注入用户事件进入任何窗口(INJECT_EVENTS),拍摄屏幕截图(READ_FRAME_BUFFER),并读取系统日志文件(READ_LOGS)。但是,Android允许访问这些资源通过ADB shell进行开发,
通过将ADB shell分配给可以访问它们的组资源。例如,ADB shell分配给输入允许任何具有ADB shell权限的进程的组读取和写入/ dev / input /中的任何文件目录。该目录包含与用户关联的文件输入,运动,位置和环境传感器。
而且,Android目前的目录结构都有/ data / local / tmp /目录,分配给shell用户和shell组,并给予读,写和执行权限shell用户和shell组中的任何用户。这个文件夹允许用户在其Android设备上运行可执行文件通过ADB shell。
许多开发人员已经利用了这些功能ADB shell为其应用程序授予权限否则允许。此ADB解决方法由以下人员执行开发本机服务,将其推入/ data / local / tmp /目录并通过ADB shell运行服务。这样,本机服务授予所有权限被授予shell。最后,允许其他应用与服务,应用程序和服务进行通信打开套接字并通过它进行通信。许多已发布的应用程序已使用此方法Google Play商店,例如允许用户使用的应用以编程方式截取[18],同步和备份[8],USB网络共享[7],触摸记录/重播[34]。
以上设计允许任何只有INTERNET的应用程序与服务通信的权限。 因此,该应用程序只有INTERNET权限才能获得访问权限服务提供的资源,无需用户知识。 这个漏洞已在[20]中探讨过,主要关注Google Play中发布的屏幕截图应用商店。 作者开发了一款应用程序Screenmilker与许多屏幕截图的本地服务
资料编号:[5097]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。