DexBERT: Effective, Task-Agnostic and Fine-grained Representation Learning of Android Bytecode

要約

機械学習 (ML) のおかげで、多数のソフトウェア エンジニアリング タスクの自動化が可能になりました。
ML をソフトウェア成果物 (ソースコードや実行可能コードなど) に適用する上で中心となるのは、ソフトウェア成果物を学習に適した形式に変換することです。
従来、研究者は専門知識に基づいて手動で選択した特徴に依存していましたが、その知識は不正確で一般に不完全である場合もありました。
表現学習により、ML は適切な表現と関連する特徴を自動的に選択できるようになりました。
ただし、Android 関連のタスクの場合、apk2vec などの既存のモデルはアプリ全体のレベルに焦点を当てているか、smali2vec のような特定のタスクを対象としているため、適用可能性が制限されています。
私たちの研究は、これら 2 つの制限の両方を軽減するために、効果的でタスクに依存せず、きめ細かいバイトコードの汎用表現を調査する新しい研究ラインの一部です。
このような表現は、さまざまな下流レベルのタスク (クラス レベルなど) に関連する情報を取得することを目的としています。
私たちは、自然言語処理の分野からインスピレーションを得ています。この分野では、BERT などの汎用言語モデルを構築することで汎用表現の問題に対処しました。その目的は、さまざまな用途で再利用できる方法で、文に関する抽象的な意味情報を取得することです。
タスク。
私たちは、Android アプリケーションで使用される主要なバイナリ形式である DEX バイトコードのチャンクを表すことに特化した BERT に似た言語モデルである DexBERT を提案します。
私たちは、DexBERT が DEX 言語をモデル化できるかどうかを経験的に評価し、悪意のあるコードのローカリゼーション、欠陥予測、コンポーネント タイプの分類という 3 つの異なるクラスレベルのソフトウェア エンジニアリング タスクにおけるモデルの適合性を評価します。
また、サイズが大きく異なるアプリに対応するという問題に対処するための戦略も実験し、どの情報が特定のタスクに関連するかを調査するために私たちの技術を使用する一例を示します。

要約(オリジナル)

The automation of a large number of software engineering tasks is becoming possible thanks to Machine Learning (ML). Central to applying ML to software artifacts (like source or executable code) is converting them into forms suitable for learning. Traditionally, researchers have relied on manually selected features, based on expert knowledge which is sometimes imprecise and generally incomplete. Representation learning has allowed ML to automatically choose suitable representations and relevant features. Yet, for Android-related tasks, existing models like apk2vec focus on whole-app levels, or target specific tasks like smali2vec, which limits their applicability. Our work is part of a new line of research that investigates effective, task-agnostic, and fine-grained universal representations of bytecode to mitigate both of these two limitations. Such representations aim to capture information relevant to various low-level downstream tasks (e.g., at the class-level). We are inspired by the field of Natural Language Processing, where the problem of universal representation was addressed by building Universal Language Models, such as BERT, whose goal is to capture abstract semantic information about sentences, in a way that is reusable for a variety of tasks. We propose DexBERT, a BERT-like Language Model dedicated to representing chunks of DEX bytecode, the main binary format used in Android applications. We empirically assess whether DexBERT is able to model the DEX language and evaluate the suitability of our model in three distinct class-level software engineering tasks: Malicious Code Localization, Defect Prediction, and Component Type Classification. We also experiment with strategies to deal with the problem of catering to apps having vastly different sizes, and we demonstrate one example of using our technique to investigate what information is relevant to a given task.

arxiv情報

著者 Tiezhu Sun,Kevin Allix,Kisub Kim,Xin Zhou,Dongsun Kim,David Lo,Tegawendé F. Bissyandé,Jacques Klein
発行日 2023-08-24 09:00:09+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.AI, cs.SE パーマリンク