2021论文阅读计划——12月

前言

这个就是来作为论文阅读的计划表,根据搜集的符合自身发展方向以及感兴趣的。论文阅读这这里基本上就是已经完成过大致浏览,都是经过筛选。

基本上涉及的内容如下

1、Android加固、保护、脱壳相关

2、Android自动化相关、自动化恶意检测相关

3、ML、DL应用于二进制相关的论文

4、其他感兴趣的,暂时没有分类的

阅读要求

  • 精读论文,提炼出论文的核心技术和知识点

  • 通过检索网站去寻求该论文的相关连的论文或者是被引用

  • 尝试实现论文技术的落地应用(这个可以先寻找作者的实现,或者结合多个论文一起实现落地)

论文阅读助手

首选是论文搜索引擎

1、google 学术

这个搜索引擎比较的全面,而且内容也是可以直接使用语法来进行搜索

2、semantic scholar

个人使用感觉会比google的好用,在搜索的论文中还会展示论文被那些论文引用,该论文中的引用,还会直观的显示论文是否可以直接被下载,缺点就是对中文论文的涉及很少。

3、中国知网海外版

在海外版本中是可以直接下载PDF论文的,这个比国内版好用很多。

辅助论文分析

1、Paper digest

这是一款快速提取论文中的关键字的网站,可以提炼论文,在泛读论文的时候是可以用一下的。

2、DeepL Translator

一款能够直接把pdf、word、ppt类的文档直接翻译成任何一种语言的网站,还是挺好用的。

3、connected papers

这款论文查看器,可以将相近的和引用的论文进行可视化,形成一个关系图,并且可以阅读和下载其他论文,缺点就是搜索不太方便,需要配合上面的论文搜索引擎来做。

4、researchabbit

这款功能上和connected paper相似,但是界面做的非常丰富,是我最喜欢的一个论文关系网查看的界面,非常人性化,缺点可能都是很少覆盖中文论文

论文列表

撤销内核错误的解决办法(undo workarounds for kernel bugs

在发现内核漏洞后,通常在完成补丁修复是需要去推动上游,本篇论文就是去自动生成patch来缓解漏洞的危害,为了有效的缓解漏洞,论文中提供了一款Hecaton的静态分析工具,通过对Android设备的内核进行评估,发现这种方法是可以有效的缓解内核错误和漏洞。

通过Log-Guided fuzz去发现 SmartTVs 漏洞(Android SmartTVs Vulnerability Discoverry via Log-Guided Fuzzing

一种新颖的动态模糊测试技术,来对SmartTVs这类物联网设备进行fuzz,利用该技术分析了11个电视盒子,并且发现了37个独特的漏洞,高危网络威胁,可以破坏启动环境设置,内存损坏等等。

Android内核补丁生态系统研究(An Investigation of the Android kernel Patch Ecosystem

对Android内核生态系统中的补丁传播行为进行研究,分析Android安全公告发布以来可用的CVE和补丁,以及开源的内核(例如Linux和AOSP)和数百个主要是二进制的OEM内核。

SelectiveTaint:使用静态二进制重写进行高效的数据流跟踪(SelectiveTaint:Efficient Data Flow Tracking With Static Binary

SelectiveTaint静态扫描二进制代码中感兴趣的污染源,想比传统的libdft来讲,性能是的到挺大的提升。

使用近端梯度进行细粒度数据流跟踪(Fine Grained Dataflow Tracking with Proximal Gradients

使用动态污点分析进行数据流跟踪是系统安全中的一种重要方法,近端梯度分析,是一种新颖的、具有理论基础的方法,可以跟踪更加准确和细粒度的数据流信息。在真实的测试过程中,发现22个漏洞,20个已经被确认,2个侧信道泄露。

Android内核的自动化热补丁生成(Automatic Hot Patch Generation for Android Kernel

研究了2012到2016年373个Android内核CVE自动生成漏洞补丁的可行性,开发了一款自动热补丁生成工具——VULMET,该工具通过学习官方补丁来生成保留语义的热补丁。实验表明,该工具可以为真实的android内核CVE生成正确的热补丁。

计算机安全中机器学习的注意事项(Dos and Don’ts of Machine Learning in Computer Security

在本文中,我们以批判的眼光看待这个问题。首先,我们确定了基于学习的安全系统的设计、实施和评估中的常见缺陷。我们对过去 10 年顶级安全会议的 30 篇论文进行了研究,证实这些陷阱在当前的安全文献中很普遍。在实证分析中,我们进一步证明了个别陷阱如何导致不切实际的性能和解释,阻碍对手头安全问题的理解。作为补救措施,我们提出了可操作的建议,以支持研究人员尽可能避免或减轻陷阱。此外,我们在将机器学习应用于安全时发现了开放性问题,并为进一步研究提供了方向。

2021安全相关论文合集(合集地址

这是上海交通大学安全小组的论文年度总结,其中包含了这一年中安全相关的论文。

MUZZ:线程感知灰盒模糊测试,用于在多线程程序中进行有效的错误搜索(MUZZ: Thread-aware Grey-box Fuzzing for Effective Bug Hunting in Multithreaded Programs

我们在十二个真实世界的多线程程序上评估 Muzz。实验表明,Muzz 在与多线程相关的种子生成和并发漏洞检测方面都优于 AFL。此外,通过针对生成的种子重放目标程序,Muzz 还揭示了比 AFL 更多的并发错误(例如,数据竞争、线程泄漏)。Muzz 总共检测到 8 个新的并发漏洞和 19 个新的并发错误。在撰写本文时,已报告的四个问题已收到 CVE ID。

使用上下文敏感的软件故障注入模糊错误处理代码(Fuzzing Error Handling Code using Context-Sensitive Software Fault Injection

在本文中,我们提出了一种名为 FIFUZZ 的新模糊测试框架,以有效地测试错误处理代码并检测错误。FIFUZZ的核心是一种上下文敏感的软件故障注入(SFI)方法,它可以有效地覆盖不同调用上下文中的错误处理代码,以发现隐藏在复杂上下文的错误处理代码中的深层错误。我们已经实现了 FIFUZZ 并在 9 个广泛使用的 C 程序上对其进行了评估。它报告了 317 个警报,这些警报是由 50 个独特错误引起的根本原因。其中 32 个错误已得到相关开发人员的确认。我们还将 FIFUZZ 与现有的模糊测试工具(包括 AFL、AFLFast、AFLSmart 和 FairFuzz)进行了比较,发现 FIFUZZ 发现了这些工具遗漏的许多错误。

parema 基于虚拟机的Android打包解包框架(parema An Unpacking Framework for Demystifying VM-Based Android Packers)

安卓打包程序已经被开发者广泛采用,以保护应用程序不被剽窃。与此同时,各种解包工具通过直接内存倾倒来解包应用程序。为了抵御这些现成的解包工具,打包者开始采用基于虚拟机(VM)的保护技术,用内存中的定制字节码(PCode)取代原来的Dalvik字节码(DCode)。这击败了使用内存转储机制的解压器。然而,对于这种打包器是否能为安卓应用提供足够的保护,我们知之甚少。

PackerGrind 一种适用于Android应用程序的解包系统(PackerGrind: An Adaptive Unpacking System for Android Apps)

我们开发了一个新的系统,称为PackerGrind,基于这种自适应方法来解开Android打包程序。对实际打包应用程序的评估表明,PackerGrind可以成功地揭示打包程序的保护机制,有效地处理它们的演变,并以较低的开销恢复Dex文件。应用程序开发人员越来越多地使用打包服务(或打包程序)来保护其代码不被反向工程或修改。然而,恶意开发者也利用这种打包技术来防止恶意软件被静态恶意软件分析和检测系统分析和检测。虽然已经有关于打开包装的Android应用程序包装的研究,但它们通常利用手动反向工程包装行为来打开特定打包者打包的应用程序,而不能适用于进化的和新的打包者。本文提出了一种能够适应进化和新遇到的封隔器解包的新的解包方法。同时,我们开发了一个新的系统,称为PackerGrind,基于这种自适应方法来解开Android打包程序。对实际打包应用程序的评估表明,PackerGrind可以成功地揭示打包程序的保护机制,有效地处理它们的演化,并以较低的开销恢复Dex文件。

Obfuscator-LLVM 面向大众的软件保护(Obfuscator-LLVM — Software Protection for the Masses)

实际上,保护一个软件不受篡改、恶意修改或反向工程的影响是一项非常困难的任务。本文提出并讨论了一个基于LLVM编译套件的软件混淆原型工具。我们的工具构建为不同的通道,其中一些通道是开放源代码的,并且是免费提供的,该工具用于LLVM中间表示(IR)代码。这种方法带来了几个优点,包括它与语言无关,并且基本上独立于目标体系结构。我们目前的原型支持基本指令替换、插入与不透明谓词混合的伪控件结构、控件注意、过程合并以及直接在控件注意机制中嵌入代码和数据校验和的代码防篡改算法。

Happer:通过硬件辅助方法解包Android应用程序(Happer: Unpacking Android Apps via a Hardware-Assisted Approach)

在本文中,我们提出了一种新的硬件辅助方法,该方法首先监控打包行为,然后选择合适的方法来解包打包的应用程序。此外,我们还开发了一个名为Happer的原型,该原型使用了一种特定于领域的语言,名为行为描述语言(behavior description language,BDL),以便在解决了一些技术难题后,能够方便地扩展Happer。我们用12个商用安卓打包机和超过24k个安卓应用程序进行了广泛的实验,以评估Happer。结果表明,Happer观察到27种堆积行为,其中17种尚未被先前的研究阐明。根据观察到的打包行为,Happer采用适当的方法收集所有隐藏的Dex数据,并将其组装为有效的Dex文件。

FlowDroid:针对Android应用程序的精确上下文、流、场、对象敏感和生命周期感知污染分析(FlowDroid: Precise Context, Flow, Field, Object-sensitive and Lifecycle-aware Taint Analysis for Android Apps)

在这项工作中,我们介绍了FLOWDROID,一种针对Android应用程序的新颖且高度精确的静态污染分析。Android生命周期的精确模型允许分析正确处理Android框架调用的回调,而上下文、流量、字段和对象敏感性允许分析减少错误警报的数量。新颖的按需算法有助于FLOWDROID同时保持高效率和高精度。我们还提出了DROIDBENCH,这是一个开放的测试套件,用于评估专门用于Android应用程序的污染分析工具的有效性和准确性。正如我们使用SecuriBench Micro、DROIDBENCH和一组著名的Android测试应用程序进行的一组实验所显示的那样,FLOWDROID在保持低误报率的同时发现了非常高比例的数据泄漏。在DROIDBENCH上,FLOWDROID实现了93%的召回率和86%的准确率,大大优于商业工具IBM AppScan Source和Fortify SCA。FLOWDROID成功地在Google Play的500个应用程序和VirusShare项目的1000个恶意软件应用程序中发现漏洞。

利用二进制代码虚拟化保护Android应用程序免受应用程序重新打包(Exploiting Binary-level Code Virtualization to Protect Android Applications Against App Repackaging)

本文介绍了CodeCloak,一种新的反重新打包系统,用于在本机代码级别保护Android应用程序。CodeCloak采用二进制级别的代码虚拟化技术来保护目标应用程序。在本机代码级别,它使用新设计的基于堆栈的虚拟化结构来混淆和保护已编译为本机指令的关键算法实现。它利用多种动态代码保护方案来增加运行时程序行为的多样性,旨在增加执行代码反向工程的难度。我们在典型的应用程序重新打包场景下评估CodeClok。实验结果表明,CodeCloak能够以最小的开销有效地保护应用程序免受重新打包攻击。

通过动态字节码调度增强基于虚拟机的代码混淆安全性(Enhance Virtual-Machine-Based Code Obfuscation SecurityThrough Dynamic Bytecode Scheduling)

提出了一种新的基于虚拟机的软件保护代码混淆方法Dsvmp。Dsvmp将两种技术结合在一起,提供比以前基于VM的方法更强的代码保护。首先,它使用动态指令调度器随机引导程序执行不同的路径,而不违反不同运行的正确性。通过随机选择程序执行路径,应用程序暴露了多种行为,使得攻击者更难重用从以前运行或类似应用程序收集的知识来发起攻击。其次,它使用多个VM进一步混淆从VM操作码到本机机器指令的映射,以便在运行时将相同的操作码映射到不同的本机指令,从而使代码分析更加困难。我们已经在一个原型系统中实现了Dsvmp,并使用一组广泛使用的应用程序对其进行了评估。实验结果表明,与两种基于虚拟机的商用代码混淆工具相比,Dsvmp在运行时开销和代码大小方面都具有可比性,从而提供了更强的保护。

DexX:Android双层解包框架(A Double Layer Unpacking Framework for Android)

在本文中,我们提出了一个通用的解包框架DexX来提取受这些打包服务保护的dex文件。我们将DexX应用于打包的安卓应用程序,实验结果表明,我们的DexX能够有效、准确地提取和恢复大多数知名商业打包商打包的原始可执行文件(dex文件)

DexHunter:从加固的Android应用中提取隐藏代码(Toward Extracting Hidden Code from Packed Android Applications)

在本文中,我们通过回答两个问题对这些服务进行了首次系统调查:(1)这些服务使用的主要技术是什么,以及它们对应用程序的影响?(2) 打包应用程序中的原始dex文件能否恢复?如果是,如何进行?我们不仅展示了他们的技术并评估了他们的效果,还提出并开发了一个名为DexHunter的新系统,用于提取受这些服务保护的dex文件。值得注意的是,DexHunter同时支持Dalvik虚拟机(DVM)和新的Android运行时(ART)。实验结果表明,DexHunter可以有效地从打包的应用程序中提取dex文件。

Android应用程序的编译时代码虚拟化(Compile-time Code Virtualization for Android Applications)

本文提出了一种将代码虚拟化从 DEX 级别转移到native级别的新方法,该方法具有强大的安全性和良好的隐蔽性,并且成本适中。 我们的方法包含两个组件:预编译和编译时虚拟化。 预编译旨在通过识别和反编译消耗大量执行时间的关键函数来提高性能。 编译时虚拟化建立在广泛使用的 LLVM 编译器框架之上。 它会自动将 DEX 字节码转换为常见的 LLVM 中间表示,其中可以为 DEX 代码应用统一的代码虚拟化通行证。 我们已经实现了我们技术的工作原型 Dex2VM,并将其应用于八个具有代表性的 Android 应用程序。 我们的实验结果表明,所提出的方法可以有效地保护目标代码免受专门为代码虚拟化设计的最先进的代码逆向工程工具的影响,并且只需适度的成本即可实现良好的隐身性。

简要介绍和分析最新的安卓安全问题和方法(Brief View and Analysis to Latest Android Security Issues and Approaches)

1.我们介绍了安卓安全的最新情况(第2节),包括安卓恶意软件在过去几年的演变,以及安卓的安全推广。类似的研究并没有解决这一问题,但这对于未来的工作是必要的,因为恶意软件正变得越来越复杂,而对恶意软件的了解对应对措施有很大帮助。此外,安卓系统已经发生了重大变化,各种安全功能可以与现有的检测方法相结合。2.我们对最新研究进行了全面收集和合理分类(第3节)。与以前的研究不同,我们不使用常见的静态/动态/混合分类,因为传统的静态和动态分析具有不可忽略的影响,并且大多数工作结合了多种特征和方法。相反,我们根据他们使用的方法对他们进行分类。我们也对他们的利弊进行了分析。3.通过详细的描述或统计,讨论了现有研究中忽略的一些缺失部分,并介绍了未来工作的一些有希望的方向(第4节)。

Android Native层二进制代码自动去混淆(Automated Deobfuscation of Android Native Binary Code)

在本文中,我们提出了 DiANa,这是一个自动化系统,用于促进 Android 应用程序中本地二进制代码的去混淆。 具体来说,给定由 Obfuscator-LLVM(最流行的本机代码混淆器)混淆的二进制文件,DiANa 能够恢复原始控制流图。 据我们所知,DiANa 是第一个旨在解决 Android 原生二进制反混淆问题的系统。 我们在不同的场景中应用了 DiANa,实验结果证明了基于通用相似性比较指标的 DiANa 的有效性。


2021论文阅读计划——12月
http://example.com/2023/03/10/2021论文阅读计划——12月/
作者
John Doe
发布于
2023年3月10日
许可协议