An Android App for Digital Transport Cards of Smart City: Request for Suggestions
本文提供了一个路线图,设计全球数字交通卡应用(GDTCA)。GDTCA是一个Android应用程序,人们可以在线获得任何城市的数字交通卡并在本地使用。人们可以通过使用GDT Cards App充值或提取交通卡。值得注意的是,这样的应用程序将根据环境的稀疏性具有不同的本地学习体验,可以使用联邦学习和传输协议进行聚合。
2021-04-19 cs.SE
Performance and Programming Effort Trade-offs of Android Persistence Frameworks
移动应用程序的一个基本构建块是在不同调用之间持久化程序数据的能力。这个功能称为\emph{persistence},通常通过持久性框架来实现。如果不清楚流行的Android持久性框架的能耗、执行时间和编程工作量,移动开发人员就缺乏为应用程序选择框架的指导方针。为了弥合这一知识差距,我们报告的性能和编程工作的权衡的8个Android持久性框架的系统研究的结果,并为移动应用程序开发人员提供实用的建议。
2018-06-27 cs.SE
The Android Update Problem: An Empirical Study
许多手机供应商使用Android作为其底层操作系统,但经常对其进行扩展以添加新功能并使其与特定手机兼容。当新版本的Android发布时,手机供应商需要合并或重新应用他们的自定义和更改到新版本。这是一个困难和耗时的过程,往往导致新版本的延迟采用。在本文中,我们进行了一项实证研究,以了解手机供应商所做的更改的性质,与Android的原始开发中所做的更改。通过调查不同更改的重叠,我们还确定了自动支持合并它们的可能性。我们开发了一个公开可用的工具链,基于现有的工具的组合,研究这些变化及其重叠。作为代理案例研究,我们分析了流行的基于社区的Android变体LineageOS及其相应的Android版本的变化。我们调查并报告实践中发生的常见变化类型。我们的研究结果表明,LineageOS修改的子系统中有83%也会在下一个Android版本中进行修改。通过考虑重叠更改的性质,我们评估了自动化工具支持的可行性,以帮助手机供应商解决Android更新问题。我们的研究结果表明,LineageOS中56%的更改有可能被安全地自动化。
2018-03-20 cs.SE
Who you gonna call? Analyzing Web Requests in Android Applications
依赖于无处不在的互联网连接,移动设备上的应用程序在执行期间频繁地执行Web请求。它们获取数据供用户交互、调用远程功能或发送用户生成的内容或元数据。这些请求共同揭示了移动应用程序开发的常见做法,例如使用了哪些外部服务以及如何使用,并且它们指出了可能的负面影响,例如安全和隐私侵犯,或对电池寿命的影响。在本文中,我们评估了不同的方法来分析Android应用程序发出的Web请求。我们首先展示从运行20个随机选择的Android应用程序中收集的动态数据,并观察它们的网络活动。接下来,我们介绍一个静态分析工具Stringoid,它分析Android应用程序中的字符串连接,以估计构造的URL字符串。我们使用Stringoid从30,000个Android应用程序中提取URL,并将其性能与更简单的常量提取分析进行比较。最后,我们提出了一个动态和静态分析提取URL时的优势和局限性的讨论,因为我们比较了从相同的20个应用程序中提取的数据与动态收集的数据。
2017-05-19 cs.SE
CAT: Change-focused Android GUI Testing
Android应用每隔几周就会更新一次,以跟上不断变化的用户、硬件和业务需求。通过广泛的测试检查应用程序更新的正确性。最近的研究提出了在Android应用中自动生成GUI事件的工具。然而,这些技术在检查应用程序更新时效率不高,因为生成的GUI事件不会优先考虑更新,而是探索其他应用程序行为。我们在本文中使用CAT(Change-focused Android GUI Testing)解决了这一需求。对于应用程序更新,CAT会在源代码或GUI级别执行变更影响分析,以识别受更新影响的GUI元素。CAT然后生成长度为3的GUI事件序列,以与这些GUI元素交互。我们使用21个公开的开源Android应用程序进行的实证评估表明,CAT能够自动识别受应用程序更新影响的GUI元素,生成并执行长度为3的GUI事件序列,重点关注受变化影响的GUI元素。与两个流行的GUI事件生成工具DroidBot和DroidMate的比较显示,CAT在与受更改影响的GUI元素交互方面更有效。最后,CAT能够在两个应用程序中检测到以前未知的与更改相关的错误。
2020-11-23 cs.SE
Runtime Permission Issues in Android Apps: Taxonomy, Practices, and Ways Forward
Android引入了新的权限模型,允许应用在运行时请求权限,而不是在6.0(Marshmallow,API级别23)之后的安装时请求权限。虽然这种运行时权限模型为用户提供了更大的灵活性来控制应用对敏感数据和系统功能的访问,但它也给应用开发带来了新的挑战。首先,由于用户可以在使用应用程序时随时授予或撤销权限,因此开发人员需要确保应用程序在调用任何受权限保护的API之前正确检查并请求所需的权限。其次,Android的权限机制不断发展,并由设备制造商定制。开发人员需要在不同的Android版本和设备型号上全面测试他们的应用程序,以确保在所有情况下都能正确请求权限。不幸的是,这些要求对开发人员来说往往是不切实际的。在实践中,许多Android应用程序都会遇到各种运行时权限问题(ARP问题)。虽然现有的研究已经探讨了ARP问题,但对这些问题的理解仍然是初步的。为了更好地描述ARP问题,我们使用135个讨论ARP问题的Stack Overflow帖子和GitHub上流行的开源Android项目中存档的199个真实ARP问题进行了实证研究。通过分析数据,我们观察到了Android应用中常见的11种ARP问题。此外,我们对从业人员进行了实地调查和深入访谈,以获得行业实践的见解,并了解从业人员对有助于解决ARP问题的工具的需求。我们希望我们的研究结果可以阐明未来的研究,并为从业者提供有用的指导。
2021-06-24 cs.SE
Enabling Mutation Testing for Android Apps
变异测试已被广泛用于评估测试套件的故障检测有效性,以及指导测试用例生成或优先级排序。经验研究表明,虽然突变体通常代表真实故障,但突变测试的有效应用需要为程序设计语言设计的“传统”运算符用特定于应用领域和/或技术的运算符来扩充。本文提出了MDroid+,一个有效的Android应用程序的突变测试框架。首先,我们通过手动分析来自不同来源的2,023个软件工件(例如,错误报告、提交)。然后,我们确定了一组38个变异算子,并实现了一个基础设施,用其中的35个算子在Android应用程序中自动播种变异。的分类和建议的运营商进行了评估方面的死产/平凡的突变体产生和他们的能力,代表真正的故障在Android应用程序中,相比其他众所周知的突变工具。
2017-08-01 cs.SE
MobiCoMonkey - Context Testing of Android Apps
许多移动应用程序的功能取决于各种上下文、外部因素。根据不可预见的情况,移动应用程序甚至可能出现故障或崩溃。在本文中,我们介绍了一种自动化工具,允许开发人员针对自定义或自动生成的上下文场景测试应用程序,并通过模拟器帮助检测可能的错误。此外,它还报告了错误和上下文因素之间的联系,以便以后可以重现错误。它利用Android SDK和logcat提供的工具来注入事件并捕获应用程序执行的痕迹。
2018-04-07 cs.SE
Deep Reinforcement Learning for Black-Box Testing of Android Apps
Android应用程序的状态空间是巨大的,在测试期间对其进行彻底的探索仍然是一个重大挑战。事实上,最佳的探索策略高度依赖于被测应用程序的功能。强化学习(RL)是一种机器学习技术,它通过尝试和错误来学习解决任务的最佳策略,由积极或消极的奖励引导,而不是由明确的监督。深度RL是RL的最新扩展,它利用了神经网络的学习能力。这些功能使Deep RL适合复杂的探索空间,例如Android应用程序。然而,最先进的公开可用工具仅支持基本的表格式RL。我们已经开发了ARES,这是一种用于Android应用程序黑盒测试的深度RL方法。实验结果表明,它实现了更高的覆盖率和故障揭示比基线,其中包括最先进的基于RL的工具,如TimeMachine和Q-Testing。我们还定性地研究了这种性能背后的原因,并确定了Android应用程序的关键功能,这些功能使Deep RL对它们特别有效,即存在链式和阻塞活动。
2021-01-15 cs.SE
An Android Application Risk Evaluation Framework Based on Minimum Permission Set Identification
Android利用要求应用请求访问敏感用户数据的权限的安全机制,例如,联系人和SMS,或某些系统特征,例如,摄像头和互联网接入。然而,Android应用程序往往过于特权,即,他们经常请求比必要的更多的许可。这引起了过度特权的安全问题。为了缓解过度权限问题,本文提出了MPDroid,它结合了静态分析和协同过滤,根据应用描述和API使用情况来确定Android应用的最小权限。给定一个应用,MPDroid首先通过协同过滤来确定应用的初始最小权限,然后通过静态分析来确定应用真正需要的最终最小权限。最后,它通过检查应用程序的额外特权来评估过度特权风险,即,应用程序请求的不必要的权限。实验在从Google Play收集的16,343个流行应用程序上进行。结果表明,MPDroid的性能明显优于最先进的方法。
2020-01-23 cs.SE
Automated Test Input Generation for Android: Are We There Yet?
移动应用程序,通常简称为“应用程序”,越来越普遍,我们每天都使用它们来执行许多活动。像所有软件一样,应用程序必须经过充分的测试,以确保它们的行为正确。因此,近年来,研究人员和从业人员都开始研究自动化应用程序测试的方法。特别地,由于Android的开源性质及其大的市场份额,已经对用于在Android操作系统上运行的应用的输入生成技术进行了大量研究。在这个时间点上,实际上在文献中有许多这样的技术,它们在生成输入的方式,用于探索被测应用程序行为的策略以及它们使用的特定策略方面有所不同。为了更好地了解这些现有方法的优点和缺点,并了解如何使它们更有效,在本文中,我们对Android现有的主要测试输入生成工具进行了全面的比较。在我们的比较中,我们根据四个指标评估这些工具及其相应技术的有效性:代码覆盖率,检测故障的能力,在多个平台上工作的能力和易用性。我们的研究结果为Android应用程序的输入生成提供了一个清晰的图像,并确定了未来的研究方向,如果进行适当的调查,可能会导致更有效和更高效的Android测试工具。
2015-03-31 cs.SE
DroidBugs: An Android Benchmark for Automated Program Repair
自动程序修复是一个新兴的研究领域。针对不同的程序设计语言和平台,已经提出了许多APR技术,并在几个基准上进行了评估。然而,据我们所知,目前还没有一个基于移动项目的定义良好的基准,因此,利用APR方法进行移动开发存在差距。因此,关于全球Android应用程序的数量,我们介绍了DroidBugs,这是一个基于对360个Android开放项目的分析的介绍性基准,每个项目的下载量都超过5,000次。从五个应用程序中,DroidBugs包含13个单一的bug,这些bug根据暴露它们的测试类型进行分类。通过使用一个名为Astor 4Android的APR工具和两个常见的故障定位策略,我们观察到发现和修复移动错误是多么具有挑战性。
2018-10-12 cs.SE
DinoDroid: Testing Android Apps Using Deep Q-Networks
对移动设备的大量需求引起了对移动应用程序(app)质量的重大关注。开发人员需要在向市场发布之前保证移动应用程序的质量。有许多方法使用不同的策略来测试移动应用程序的GUI。然而,由于其有限的有效性,它们仍然需要改进。在本文中,我们提出了DinoDroid,这是一种基于深度Q网络的方法,可以自动测试Android应用程序。DinoDroid从一组现有的应用程序中学习行为模型,学习的模型可用于探索和生成新应用程序的测试。DinoDroid能够捕获GUI事件的细粒度细节(例如,GUI小部件的内容),并将其用作输入深度神经网络的特征,深度神经网络充当引导应用探索的代理。DinoDroid在探索过程中自动适应学习的模型,而不需要任何建模策略或预定义的规则。我们对64个开源Android应用程序进行了实验。测试结果表明,DinoDroid在代码覆盖率和bug检测方面优于现有的Android测试工具。
2022-10-12 cs.SE
AndroZoo++: Collecting Millions of Android Apps and Their Metadata for the Research Community
我们从多个来源收集了越来越多的Android应用程序,包括官方Google Play应用程序市场和越来越多的旨在促进Android相关研究工作的应用程序的各种元数据。到目前为止,我们的数据集已经收集了超过500万个应用程序和20多种元数据,例如VirusTotal报告。我们收集此数据集的目的是为正在进行的研究工作做出贡献,并为Android应用提供新的潜在研究主题。通过向研究社区发布我们的应用程序和元数据集,我们还旨在鼓励我们的研究人员参与可重复的实验。本文将根据AndroZoo项目中收集的不断增长的应用程序和元数据不断更新。如果您有具体的元数据,你想从AndroZoo收集,而目前还没有提供,请让我们知道。因此,我们将在收集过程中优先考虑它,以便在短时间内将其提供给我们的研究人员。
2017-09-15 cs.SE
Anchor: Locating Android Framework-specific Crashing Faults
Android框架特定的应用程序崩溃很难调试。事实上,Android基于回调的事件驱动机制挑战了为传统Java程序开发的崩溃本地化技术。关键的挑战源于这样一个事实,即错误代码的位置甚至可能没有在堆栈跟踪中列出。例如,我们对来自一个开放基准测试的500个特定于框架的崩溃进行了实证研究,发现37%的崩溃类型与堆栈跟踪之外的错误有关。此外,Android程序是代码和额外代码工件(如Manifest文件)的混合体。任何工件都可能导致应用程序执行失败,这一事实导致需要将本地化目标定位在代码领域之外。在本文中,我们提出了锚,一个两阶段的可疑错误定位建议工具。Anchor专门用于在堆栈跟踪之外查找导致崩溃的错误。Anchor是轻量级的,并且与源代码无关,因为它只需要崩溃消息和apk文件来定位故障。通过交叉验证和野外数据集评估收集的实验结果表明,Anchor在定位Android框架特定的崩溃故障方面是有效的。
2020-08-04 cs.SE
Detecting Connectivity Issues in Android Apps
Android是世界上最流行的移动操作系统,在超过70%的移动设备上运行。这意味着Android应用程序有一个巨大且竞争激烈的市场。在这样的市场中取得成功绝非易事,除了解决广大受众的问题或需求外,还需要开发高质量的应用程序。如最近在文献中所示,连接性问题(例如,错误处理零/不可靠的互联网连接)可能导致错误和/或崩溃,对应用程序的用户体验产生负面影响。虽然这些问题已经在文献中进行了研究,但没有技术能够自动检测并向开发人员报告它们。我们提出了CONAN,能够静态检测16种类型的连接问题影响Android应用程序的工具。我们评估了CONAN在一组44个开源应用程序中精确识别这些问题的能力,观察到平均精度为80%。然后,我们研究了这些问题与开发人员的相关性,(i)与六位从事商业Android应用程序工作的从业者进行了访谈,(ii)提交了27个开源应用程序的84份问题报告。我们的研究结果表明,几个确定的连接问题被认为是相关的从业者在特定的情况下,其中连接被认为是一流的功能。
2022-06-17 cs.SE
Characterizing Sensor Leaks in Android Apps
虽然手机传感器对于实现高级功能非常有价值,但攻击者可能会滥用手机传感器在Android应用程序中实施恶意活动,正如许多最先进的研究所证明的那样。因此,迫切需要规范移动传感器的使用,以防止它们被恶意攻击者利用。然而,尽管为实现这一目标作出了各种努力,检测Android应用程序中的隐私泄漏,我们还没有找到自动检测Android应用程序中传感器泄漏的方法。为了填补这一空白,我们设计并实现了一个新颖的原型工具SEEKER,它扩展了著名的FlowDroid工具,以检测Android应用程序中基于传感器的数据泄漏。SEEKER直接对Android应用程序的字节码进行以传感器为中心的静态污点分析,不仅报告传感器触发的隐私泄露,还报告泄露中涉及的传感器类型。使用超过40,000个真实Android应用程序的实验结果表明,SEEKER可以有效地检测Android应用程序中的传感器泄漏,恶意应用程序比良性应用程序对泄漏传感器数据更感兴趣。
2022-01-17 cs.CR cs.SE
Dependability Assessment of the Android OS through Fault Injection
移动设备的可靠性对供应商来说是一个挑战,因为移动软件堆栈的复杂性显著增加。本文研究了如何通过故障注入来评估Android移动操作系统中故障对用户体验质量的影响。我们首先解决的问题,确定一个现实的故障模型的Android操作系统,提供给开发人员一套轻量级的和系统的故障建模的指导方针。然后,我们提出了一个可扩展的故障注入工具(AndroFIT),实际上,商业Android设备上应用这样的故障模型。最后,我们提出了一个大型的故障注入实验上的三个主要供应商的Android产品,并指出了几个可靠性问题和机会,以改善Android操作系统。
2019-12-07 cs.OS cs.SE
Taxonomy of Security Weaknesses in Java and Kotlin Android Apps
Android是当今世界上最流行的操作系统,不仅在移动设备领域,而且在考虑台式机和膝上计算机时也是如此。这种流行使其成为安全攻击的有吸引力的目标,这也是由于移动应用程序经常操纵的敏感信息。后者正在经历一个过渡,Android生态系统正在从使用Java作为开发应用程序的官方语言,转向采用Kotlin作为Google支持的首选。虽然以前的研究已经部分研究了影响Java Android应用程序的安全漏洞,但还没有全面的实证调查研究影响Android应用程序的软件安全漏洞,考虑(并比较)用于开发的两种主要语言,即Java和Kotlin。我们提出了一项实证研究,其中我们:(i)手动分析681个提交,包括Java和Kotlin应用程序中开发人员修复的安全漏洞,目的是定义一个分类法,突出影响Java和Kotlin Android应用程序的软件安全漏洞类型;(ii)调查43个Android开发人员,以验证和补充我们的分类法。根据我们的研究结果,我们提出了一个未来行动的清单,研究人员和从业人员可以执行,以提高Android应用程序的安全性。
2022-01-27 cs.CR cs.SE
Ghera: A Repository of Android App Vulnerability Benchmarks
移动应用程序的安全性影响其用户的安全。这推动了自动检测移动应用程序中的漏洞并帮助开发人员保护其应用程序的技术的发展;特别是在Android平台的背景下,由于平台的开放性和普遍性。尽管在这一领域进行了大量的研究工作,但没有包含大多数已知Android应用程序漏洞的最新和精简基准的综合存储库,因此,可以用于严格评估现有和新的漏洞检测技术,并帮助开发人员了解Android应用程序漏洞。在本文中,我们描述了Ghera,一个开源的基准测试库,它捕获了Android应用程序中的25个已知漏洞(作为被利用/良性和利用/恶意应用程序对)。我们还介绍了我们在创建Ghera时发现的漏洞基准和存储库的理想特征。
2017-08-08 cs.CR cs.SE
Towards Automated Android App Collusion Detection
Android OS支持多种应用之间的通信方式。这为以协作方式实施威胁提供了可能性,参见。2011年的Soundcomber示例。在本文中,我们提供了一个简洁的定义,共谋和报告的自动检测方法,与英特尔安全合作开发。
2016-03-07 cs.CR cs.SE
Static Analysis for Android GDPR Compliance Assurance
许多Android应用程序收集用户的数据。当他们这样做时,他们必须根据当前的法律框架保护这些收集的数据。自欧盟推出《通用数据保护条例》(GDPR)以来,这种数据保护变得更加重要。应用程序开发人员在整个应用程序开发过程中对数据保护的推理工具支持有限。虽然许多Android应用程序都声明了隐私策略,但隐私策略合规性检查目前是手动的,成本高昂,并且容易出错。隐私审计的主要挑战之一是法律隐私声明(英文文本)与Android应用程序用于保护用户隐私的技术措施之间存在巨大差距。在这篇论文中,我们将探讨在多大程度上我们可以使用静态分析来回答有关数据保护的重要问题。我们的主要目标是设计一种基于工具的方法,帮助应用程序开发人员和审计人员确保基于自动静态程序分析的Android应用程序中的数据保护。
2023-03-16 cs.CR cs.SE
Fine-grained Code Coverage Measurement in Automated Black-box Android Testing
今天,有数百万的第三方Android应用程序。这些应用程序中有一些是错误的,甚至是恶意的。为了识别这些应用程序,包括Google在内的Android社区正在开发用于自动化黑盒测试和动态分析的新框架。代码覆盖率是评估这些框架有效性的最常见指标之一。此外,代码覆盖率被用作指导进化和模糊测试技术的适应度函数。然而,在黑盒Android应用程序测试中,没有可靠的工具来测量细粒度的代码覆盖率。我们提出了Android代码覆盖工具,简称ACVTool,它可以检测Android应用程序,并在类,方法和指令粒度的黑盒设置中测量代码覆盖率。在我们的实验中,ACVTool已经成功检测了96.9%的应用程序。它引入了一个可以忽略不计的插装时间开销,并且它的运行时开销对于自动化测试工具来说是可以接受的。我们在一个大规模的实验与Sapienz,一个国家的最先进的测试工具,细粒度的预防级别的代码覆盖率ACVTool提供的帮助,发现了更大的故障比粗粒度的代码覆盖率指标。
2018-12-27 cs.CR cs.SE
Platform-Centric Android Monitoring---Modular and Efficient
我们为Android平台提供了一个附加组件,能够拦截应用程序之间或应用程序与平台之间的几乎所有交互,包括以人类可读格式调用方法的参数。初步的性能评估表明,我们的解决方案的性能损失大致相当于该领域的类似工具。然而,我们的解决方案的优点是,它是真正的模块化,我们实际上并没有修改Android平台本身,甚至可以将其包含在已经运行的系统中。这样的附加组件的可能用途是多种多样的,我们讨论一个从该地区的运行时验证,旨在提高系统的安全性。
2014-06-08 cs.CR cs.SE
BenchPress: Analyzing Android App Vulnerability Benchmark Suites
近年来,开发了各种基准套件来评估Android安全分析工具的有效性。工具评估中使用的基准套件的选择通常基于套件的可用性和流行性,而不是基于它们的特性和相关性。作出这种选择的原因之一是缺乏关于成套基准的特点和相关性的信息。在这种情况下,我们根据经验评估了四个Android特定的基准测试套件:DroidBench,Ghera,IccBench和UBCBench。对于每个基准测试套件,我们确定了在Android应用程序开发的背景下在Stack Overflow上讨论的套件所使用的API,并在227 K真实世界应用程序的样本中测量了这些API的使用情况(覆盖率)。我们还比较了每对基准套件,以确定它们在API使用方面的差异。最后,我们确定了在真实世界的应用程序中使用的安全相关API,但没有在上述任何基准测试套件中使用,以评估扩展基准测试套件的机会(差距)。本文中的发现可以帮助1)Android安全分析工具开发人员选择最适合评估其工具的基准套件(通过覆盖率和成对比较获得信息); 2)Android应用漏洞基准创建者开发和扩展基准套件(通过差距获得信息)。
2019-09-19 cs.CR cs.SE
Visualizing Privacy-Relevant Data Flows in Android Applications
Paderborn University(帕德博恩大学);Fraunhofer IEM(弗劳恩霍夫应用研究促进协会工业工程研究所)
研究安卓应用中隐私相关数据流,利用静态程序切片和软件可视化,开发SliceViz工具,经用户研究证明其能有效帮助开发者识别相关属性,表明程序切片可用于分析此类数据流,改进可用性将助力开发者处理隐私敏感信息。
2026-07-23 cs.CR cs.SE
On The (In)Effectiveness of Static Logic Bomb Detector for Android Apps
超过85%的移动设备使用Android,这使其成为恶意软件的主要目标。恶意代码正变得越来越复杂,并且依赖于逻辑炸弹来隐藏自己以躲避动态分析。在本文中,我们进行了大规模的研究TSOPEN,我们的开源实现的最先进的静态逻辑炸弹扫描仪TRIGGERSCOPE,超过500k的Android应用程序。结果表明,该方法的规模。此外,我们调查了差异,并表明该方法可以达到非常低的假阳性率,0.3%,但需要付出特定的代价,例如,删除90%的敏感方法。因此,依靠这种方法来自动检测大型数据集中的所有逻辑炸弹可能是不现实的。然而,它可以用来加速恶意代码的定位,例如,在逆向工程应用程序时。我们还向研究社区提供了TRIGDB,一个包含68个Android应用程序的数据库,其中包含基于用户的行为作为基础事实。
2021-08-25 cs.CR cs.SE
SeMA: A Design Methodology for Building Secure Android Apps
UX(用户体验)设计师通过故事板直观地捕捉应用程序的UX。这种方法也用于Android应用程序开发,以概念化和设计应用程序。最近,安全性已成为Android应用程序UX不可或缺的一部分,因为移动应用程序用于执行银行、通信和健康等关键活动。因此,保护用户信息在移动应用程序中至关重要。在这种情况下,故事板工具提供了有限的能力来捕获和推理应用程序的安全需求。因此,安全性不能在设计时融入应用程序。因此,由设计缺陷引起的漏洞经常会出现在应用程序中。为了解决这个问题,在本文中,我们提出了一个基于故事板的设计方法,使规范和验证的Android应用程序的安全属性在设计时。
2019-09-20 cs.CR cs.PL cs.SE
An Empirical Study on Android-related Vulnerabilities
移动设备在日常生活中的使用越来越多。它们是我们的相机、钱包和钥匙。基本上,它们将我们的大部分私人信息嵌入我们的口袋里。由于这个原因和其他原因,移动设备,特别是在它们上运行的软件,被认为是软件漏洞领域的一等公民。一些研究调查了移动应用程序以及更广泛的移动设备背景下的软件漏洞现象。这些研究大多集中在可能影响移动应用程序的漏洞上,而只有少数研究影响移动应用程序运行的底层平台的漏洞:操作系统(OS)。此外,这些研究是在非常有限的一组漏洞上进行的。在本文中,我们提出了迄今为止调查Android相关漏洞的最大研究,特别关注影响Android操作系统的漏洞。特别是,我们(i)定义了Android相关漏洞类型的详细分类;(ii)调查受漏洞影响的Android操作系统的层和子系统;(iii)研究漏洞的生存能力(即,漏洞引入和修复之间的天数)。我们的发现可以帮助操作系统和应用程序开发人员专注于他们的验证和验证活动,并帮助研究人员构建为移动世界量身定制的漏洞检测工具。
2017-04-11 cs.CR cs.SE
Reinforcement Learning-Driven Test Generation for Android GUI Applications using Formal Specifications
Bogazici University(博阿齐奇大学)
针对移动图形用户界面(GUI)应用的自动测试生成已经有了很多研究。这些研究成功地演示了如何检测致命异常,并实现高代码和活动覆盖率与全自动测试生成引擎。然而,目前还不清楚这些引擎能够测试多少GUI功能。此外,这些引擎只实现隐式测试预言机。本文提出了一种基于强化学习驱动规范的Android测试生成器(FARLEAD-Android)。FARLEAD-Android接受GUI级别的形式化规范作为线性时间时态逻辑(LTL)公式。通过动态执行被测应用程序(AUT),它学习如何使用强化学习(RL)生成满足LTL公式的测试。LTL公式不仅指导测试生成,而且还充当指定的测试预言机,使开发人员能够通过更改公式为各种GUI功能定义自动化测试预言机。我们的评估表明,FARLEAD-Android在为指定的GUI功能生成测试方面比三种已知的方法(Random,Monkey和QBEa)更有效,并且性能更高。据我们所知,FARLEAD-Android是第一个使用正式规范的全自动移动GUI测试引擎。
2019-11-27 cs.AI cs.LG cs.SE