中文

DexBERT:高效、任务无关且细粒度的 Android 字节码表示学习

软件工程 2023-08-25 v2 人工智能

摘要

得益于机器学习(ML),大量软件工程任务的自动化正变得可能。将 ML 应用于软件制品(如源代码或可执行代码)的核心在于将其转换为适于学习的形式。传统上,研究者依赖基于专家知识的手工选取特征,这些知识有时不精确且通常不完整。表示学习已使 ML 能自动选择适宜表示与相关特征。然而,对于 Android 相关任务,现有模型如 apk2vec 聚焦于整个应用层级,或针对特定任务如 smali2vec,这限制了其适用性。我们的工作属于一条新研究路线,其探究有效、任务无关且细粒度的字节码通用表示,以缓解上述两方面的局限。此类表示旨在捕获与各类底层下游任务(例如类层级)相关的信息。我们受自然语言处理领域启发,该领域中通用表示问题通过构建通用语言模型(如 BERT)得以解决,其目标是捕获关于句子的抽象语义信息,并以可复用于多种任务的方式实现。我们提出 DexBERT,一种类 BERT 语言模型,专用于表示 DEX 字节码片段——Android 应用使用的主要二进制格式。我们实证评估了 DexBERT 是否能够建模 DEX 语言,并在我们三个不同的类级软件工程任务中评估了模型的适用性:恶意代码定位、缺陷预测与组件类型分类。我们还实验了应对应用规模差异巨大问题的策略,并展示了使用我们的技术探究给定任务相关信息的一个示例。

关键词

引用

@article{arxiv.2212.05976,
  title  = {DexBERT: Effective, Task-Agnostic and Fine-grained Representation Learning of Android Bytecode},
  author = {Tiezhu Sun and Kevin Allix and Kisub Kim and Xin Zhou and Dongsun Kim and David Lo and Tegawendé F. Bissyandé and Jacques Klein},
  journal= {arXiv preprint arXiv:2212.05976},
  year   = {2023}
}

备注

Accepted by IEEE TSE, 2023