JPCERT/CC、マルウェア分類ツール「impfuzzy for Neo4j」を公開マルウェアをクラスタリングし、可視化

JPCERTコーディネーションセンター(JPCERT/CC)が、セキュリティ担当者向けのマルウェア分類ツール「impfuzzy for Neo4j」を公開。マルウェアを素早く分類し、新種のマルウェアを抽出する作業の効率を向上できるという。

» 2017年03月13日 09時35分 公開
[@IT]

 JPCERTコーディネーションセンター(JPCERT/CC)は2017年3月10日、IT管理者、セキュリティ担当者向けのマルウェア分類ツール「impfuzzy for Neo4j」をGitHubで公開した。

photo impfuzzy for Neo4j

 impfuzzy for Neo4jは、マルウェアの類似性を分析し、グラフデータベース「Neo4j」を使って結果を可視化するツール。マルウェア分析では、大量のマルウェア素早く分類し、分析するべき新種のマルウェアを抽出することが求められる。同ツールにより、こうした作業を効率化できる。

 同ツールは以下の流れで動作する。

  1. impfuzzyを用いて各マルウェアの類似度を計算
  2. impfuzzyの類似度計算の結果からグラフ(ネットワーク)を作成
  3. 作成したグラフをネットワーク分析(クラスタリング)
  4. クラスタリングした結果をNeo4jデータベースに登録し、可視化

 同ツールが作成するグラフにより、「どのマルウェアのグループに亜種が多いのか」「どのマルウェアの類似性が高いのか」などを分かりやすく視認できるようになる。

photo 「Emdivi」をimpfuzzy for Neo4jで分析したクラスタリング結果

 マルウェアの類似度判別に利用するハッシュ値は、JPCERT/CCが考案したアルゴリズム「impfuzzy」で計算する。

 マルウェアの調査は既知のマルウェアかどうかを判別することから始める。この作業は、マルウェアの実行ファイルをハッシュ関数に通して得られるハッシュ値によって比較することが多い。ただし、2つのファイルが完全に一致することを確認するためによく利用される「MD5」や「SHA-1」といったハッシュ関数では、入力データが1ビットでも異なればまったく異なるハッシュ値になるために、類似性の比較には適さない。

 そこでimpfuzzyでは、マルウェアがインポートしているAPI(Import API)が列挙されている(Windows実行ファイルのヘッダ部分にある)インポートテーブルから得られる「Fuzzy Hashing」を用いてハッシュ値を計算する。Fuzzy Hashingでは、単純かつ機械的な変換しか施されていないコードのハッシュ値は、元のハッシュ値に近い値になる。昨今よく検出されるマルウェアは、既存のマルウェアのカスタマイズ版/亜種であることが多い。つまり、一部のImport APIが追加あるいは変更されただけならば、impfuzzyによる計算値は近い値になる。

 また、ハッシュ値計算の対象がインポートテーブルだけなので、実行ファイル全体からハッシュ値を求めるよりも短時間で演算できることもポイントに挙げる。

 impfuzzy for Neo4jは、既にGitHubからダウンロード可能。Pythonで記述されていることから、Pythonモジュール「pyimpfuzzy」と「py2neo」、Pythonスクリプト「pylouvain.py」、及びNeo4jをインストールした上で利用する。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。