对于Android Native安全(漏洞挖掘与利用)相关论文的阅读记录。
一、”NativeSpeaker: Identifying Crypto Misuses in Android Native Code Libraries”,2018
1.研究思路
Android Native层存在较多的安全问题,但是这些安全问题较难被发现;
Android应用程序中的加密滥用是一个主要的Android应用安全问题,但并没有相关的分析native代码的工具,已有的工具是对于JAVA代码以及一些针对性不强的通用分析工具;
为了进一步改善现状并针对Android应用程序的本机代码解决加密误用分析问题,在本文中,我们提出了一种本机代码分析,以帮助识别Android本机代码库中的典型加密滥用模式。
2.摘要
在Android应用程序中使用本机代码(ARM二进制代码)库极大地提高了常用算法的执行性能。尽管如此,它增加了应用程序评估的复杂性,因为二进制代码分析通常很复杂且耗时。因此,本机代码库中仍存在许多缺陷,并可能威胁到用户的安全性。为了评估本机代码库,目前的研究主要集中在API调用正确性上,而不是深入研究代码的细节。因此,当API的分析没有有效地发现它们时,缺陷可能隐藏在内部实现中。
对本机代码的评估需要更详细的代码理解过程来查明缺陷。作为回应,我们设计并实现了NativeSpeaker,这是一个Android本机代码分析系统,用于评估本机代码库。 NativeSpeaker不仅提供识别与安全漏洞相关的某些模式的功能,还提供在非官方Android市场的大规模应用程序集中发现和比较本机代码库的功能。
在NativeSpeaker的帮助下,我们分析了从非官方Android市场的20,000个应用程序中收集的20,353个动态库(.so)。特别是,我们的评估重点是在这些库中搜索加密滥用相关的不安全代码模式。分析结果显示,即使对于那些最常用(前1%)的本机代码库,其中三分之一至少包含一个误用。此外,我们的观察表明,加密的误用通常与不安全的数据通信有关:大约25%最常用的本机代码库受此缺陷的影响。我们进行的分析揭示了对流行的本机代码库进行深入安全评估的必要性,并证明了设计的NativeSpeaker系统的有效性。
3.介绍
本文的主要贡献如下:
- 我们在非官方Android市场上实现了对应用程序的大规模安全评估。我们收集了20,000个流行的Android应用,并提取了所有使用的20,353个本机代码库。然后我们使用语义相似性比较对它们进行重复数据删除,以减少要分析的目标数量。此本机代码库数据集反映了在Android应用程序的本机代码中如何使用函数的常见功能。
- 我们提出了一种实用且轻量级的分析方法,用于在本机代码中查找加密错误。该方法结合了静态污点分析和函数名称的自然语言处理,以定位加密函数。然后,通过搜索从实证研究中总结的典型模式,找到加密误用。
- 我们利用NativeSpeaker搜索复杂的不安全行为 - 原始套接字数据通信而不加密。我们发现本机代码的实际实现中存在一些缺陷,导致通信保护中断。与以往的研究相比,我们的系统不仅提供了在合理时间内对本机代码库进行大规模评估的能力,而且还发现了由密码滥用引起的内部实现漏洞。