Skip to main content
QUICK REVIEW

[論文レビュー] Code2Image: Intelligent Code Analysis by Computer Vision Techniques and Application to Vulnerability Prediction

Zeki Bilgin|arXiv (Cornell University)|May 7, 2021
Software Engineering Research参考文献 23被引用数 6
ひとこと要約

本稿では、ソースコードの抽象構文木(AST)を、深層学習モデルへの直接入力に適した視覚的表現に変換する新しい手法Code2Imageを提案する。この手法は、コードの画像化にコンピュータビジョン技術を活用することで、特徴量の自動抽出を可能にし、特に不均衡データセットにおいて、最先端の手法を上回る脆弱性予測性能を達成する。

ABSTRACT

Intelligent code analysis has received increasing attention in parallel with the remarkable advances in the field of machine learning (ML) in recent years. A major challenge in leveraging ML for this purpose is to represent source code in a useful form that ML algorithms can accept as input. In this study, we present a novel method to represent source code as image while preserving semantic and syntactic properties, which paves the way for leveraging computer vision techniques to use for code analysis. Indeed the method makes it possible to directly enter the resulting image representation of source codes into deep learning (DL) algorithms as input without requiring any further data pre-processing or feature extraction step. We demonstrate feasibility and effectiveness of our method by realizing a vulnerability prediction use case over a public dataset containing a large number of real-world source code samples with performance evaluation in comparison to the state-of-art solutions. Our implementation is publicly available.

研究の動機と目的

  • 深層学習モデルに適した形でソースコードを表現する課題に取り組むこと。
  • ASTを活用することで、表現過程で構文的・意味的情報を損なわず保持すること。
  • 画像ベースの表現を介して、コンピュータビジョンに基づく深層学習モデルをソースコード解析に直接適用すること。
  • 実世界の脆弱性予測ユースケースにおける本手法の有効性を評価すること。
  • 公開済みの実世界のコードサンプルからなるデータセットを用いて、Code2Imageの性能を最先端手法と比較すること。

提案手法

  • 本手法は、ソースコードの抽象構文木(AST)を、構造的・意味的関係を保持した視覚的画像表現に変換する。
  • ASTは、交差しないエッジを持つ木構造図としてレンダリングされ、可読性と構造の正確性を維持し、親子ノードの関係を明確に可視化する。
  • 結果得られる画像は、サイズとコンパクト性を最適化しながらも、ASTの位相的性質を保持しており、効率的な深層学習推論を可能にする。
  • 画像表現は、追加の特徴量抽出や前処理を要せず、畳み込みニューラルネットワーク(CNN)に直接入力される。
  • 各脆弱性タイプごとに別個の深層学習モデルを訓練し、検証損失を最小化することで、クラス別に最適化されたアプローチを実現する。
  • 本手法は、画像分類タスクにおけるコンピュータビジョンモデルの成功を活用し、特に脆弱性検出においてコード解析を実現する。

実験結果

リサーチクエスチョン

  • RQ1ASTに基づくコード表現を、深層学習に適した視覚的フォーマットに効果的に変換できるか。この際、意味的・構文的情報を保持できるか。
  • RQ2画像ベースのコード表現を通じて、コンピュータビジョン技術をソースコード解析にどの程度適用できるか。
  • RQ3提案手法Code2Imageの脆弱性予測性能は、最先端手法と比較してどの程度優れているか。
  • RQ4画像形式での完全なASTの使用は、部分的AST表現よりも脆弱性検出タスクで優れた性能を発揮するか。
  • RQ5CWE-469(テストセットでたった32件の正例のみ)のような極めて不均衡な脆弱性カテゴリにおいて、本手法はどの程度の性能を示すか。

主な発見

  • CWE-119では、Code2ImageがF1スコア0.528を達成し、同じ脆弱性カテゴリで最大F1スコア0.424を記録したAst2vecを上回った。
  • 最も不均衡なカテゴリ、CWE-469(正例が0.56%)において、Code2ImageはF1スコア0.140を達成したのに対し、Ast2vecは0.082にとどまり、希少な脆弱性の検出において優れた性能を示した。
  • CWE-476では、Code2ImageがF1スコア0.617を達成し、Ast2vecの0.599をわずかに上回った。これは、中程度にバランスの取れたカテゴリでも強力な性能を発揮することを示している。
  • CWE-othersでは、Code2ImageがF1スコア0.335を達成し、Ast2vecの0.283を大きく上回った。これは、多様な脆弱性タイプにわたる一貫した性能向上を示している。
  • 1件のコードサンプルあたりの平均推論時間は20.8ミリ秒であり、実世界の静的解析パイプラインへの効率的導入が可能であることを示している。
  • 本手法の優位性は、完全なASTの使用と、脆弱性タイプごとのモデル特化による情報損失の低減および最適化の向上に起因する。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。