La fonctionnalité de recherche est en construction.
La fonctionnalité de recherche est en construction.

The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. ex. Some numerals are expressed as "XNUMX".
Copyrights notice

The original paper is in English. Non-English content has been machine-translated and may contain typographical errors or mistranslations. Copyrights notice

SIBYL: A Method for Detecting Similar Binary Functions Using Machine Learning SIBYL : une méthode de détection de fonctions binaires similaires à l'aide de l'apprentissage automatique

Yuma MASUBUCHI, Masaki HASHIMOTO, Akira OTSUKA

  • Vues en texte intégral

    0

  • Citer

Résumé:

Les méthodes de comparaison de similarité de code binaire sont principalement utilisées pour rechercher des bogues dans les logiciels, détecter le plagiat de logiciels et réduire la charge de travail lors de l'analyse des logiciels malveillants. Dans cet article, nous proposons une méthode pour comparer la similarité du code binaire de chaque fonction en utilisant une combinaison de graphiques de flux de contrôle (CFG) et de séquences d'instructions désassemblées contenues dans chaque fonction, et pour détecter une fonction présentant une similitude élevée avec une fonction spécifiée. L’un des défis liés aux comparaisons de similarité est que différentes optimisations au moment de la compilation et différentes architectures produisent un code binaire différent. Les principales unités de comparaison de code sont les instructions, les blocs de base et les fonctions. Le défi des fonctions est qu’elles ont une structure graphique dans laquelle des blocs de base sont combinés, ce qui rend relativement difficile l’obtention de similarités. Cependant, les outils d'analyse tels que IDA affichent la séquence d'instructions démontées en unités fonctionnelles. La détection de similarité sur une base fonctionnelle présente l’avantage de faciliter une compréhension simplifiée par les analystes. Pour résoudre les défis susmentionnés, nous utilisons des méthodes d'apprentissage automatique dans le domaine du traitement du langage naturel. Dans ce domaine, il existe un modèle Transformer, à partir de 2017, qui met à jour chaque enregistrement pour diverses tâches de traitement du langage, et à partir de 2021, Transformer est la base de BERT, qui met à jour chaque enregistrement pour les tâches de traitement du langage. Il existe également une méthode appelée node2vec, qui utilise des techniques d'apprentissage automatique pour capturer les caractéristiques de chaque nœud à partir de la structure graphique. Dans cet article, nous proposons SIBYL, une combinaison de Transformer et node2vec. Dans SIBYL, une méthode appelée Triplet-Loss est utilisée pendant l'apprentissage afin que les éléments similaires soient rapprochés et que les éléments différents soient éloignés. Pour évaluer SIBYL, nous avons créé un nouvel ensemble de données à l'aide d'un logiciel open source largement utilisé dans le monde réel, et mené des expériences de formation et d'évaluation à l'aide de l'ensemble de données. Dans les expériences d'évaluation, nous avons évalué la similarité des codes binaires sur différentes architectures à l'aide d'indices d'évaluation tels que Rank1 et MRR. Les résultats expérimentaux ont montré que SIBYL surpasse les recherches existantes. Nous pensons que cela est dû au fait que l’apprentissage automatique a été capable de capturer les caractéristiques de la structure du graphe et l’ordre des instructions fonction par fonction. Les résultats de ces expériences sont présentés en détail, suivis d'une discussion et d'une conclusion.

Publication
IEICE TRANSACTIONS on Information Vol.E105-D No.4 pp.755-765
Date de publication
2022/04/01
Publicisé
2021/12/28
ISSN en ligne
1745-1361
DOI
10.1587/transinf.2021EDP7135
Type de manuscrit
PAPER
Catégories
Informatique fiable

Auteurs

Yuma MASUBUCHI
  IISEC
Masaki HASHIMOTO
  IISEC
Akira OTSUKA
  IISEC

Mots-clés

Table des matières