要約
マルウェア検出および分類は、困難な課題であり、現在も活発な研究領域である。特に、機械学習アルゴリズムに供給するための悪意ある実行可能ファイルの扱い方や前処理方法の最適化が大きな課題となっている。文献に登場する新しいアプローチでは、実行可能ファイルをバイト列またはアセンブリ言語命令列として扱うが、こうした手法ではプログラムの階層構造が考慮されていない。実行可能ファイルは、さまざまなレベルの空間的相関性を示す。隣接するコード命令は空間的に相関しているが、必ずしもそうとは限らない。関数呼び出しやジャンプ命令によって、プログラムの制御は命令ストリームの異なる場所に移行する。さらに、バイナリをバイト値の列として扱う際も、こうした不連続性は維持される。また、アドレスが適切に再配置された場合、関数の配置はランダムになる可能性がある。こうした問題に対処するために、本研究ではマルウェア分類のための階層型畳み込みネットワーク(Hierarchical Convolutional Network, HCN)を提案する。本ネットワークは、命令語(mnemonic)レベルと関数レベルの2段階の畳み込みブロックを組み合わせており、マルウェア表現の構築時に両レベルからn-gramに類する特徴を抽出できる。本手法は、マイクロソフトマルウェア分類チャレンジで公開されたデータセットを用いて検証された結果、文献に登場するほぼすべての深層学習手法を上回る性能を示した。