BLOGTIMES
2017/04/09

似たようなものは近い値になるハッシュ関数を使ったマルウェア分類

  jpcertcc  malware 
このエントリーをはてなブックマークに追加

JPCERT/CC が GitHub で公開していた impfuzzy_for_Neo4j が気になったのでメモ。

詳細については「impfuzzyとネットワーク分析を用いたマルウエアのクラスタリング ~impfuzzy for Neo4j~(2017-03-10)」に記載がありますが、Neo4j というグラフデータベース*1を使って、マルウエアの分類結果を可視化してくれるというツールです。

このツールで使われているマルウェアの分類方法がちょっと変わっていて、具体的には昨年の発表されたimpfuzzy というアルゴリズムでマルウェアをクラスタリングしています。 Import APIFuzzy Hashing だから impfuzzy という単純なネーミングですが、簡単に言うと同じようなものはハッシュ値も近くなるという性質を持つハッシュアルゴリズムです。

通常、ハッシュは検索の高速化や改ざんの検知に使われるものなので、コリジョン(計算結果が同一の値になること)が発生しないように、少しでも中身が異なると全く違う計算結果になるように設計されていますが、この Fuzzy Hashing はそれとは逆転の発想になっています。このアルゴリズムは知らなかったので、近いうちに論文をあたって見たいと思います。

Import APIとFuzzy Hashingでマルウエアを分類する ~impfuzzy~(2016-05-09)

ハッシュ関数の中でも、MD5やSHA1などの伝統的なハッシュ関数の場合には、入力データが1ビットでも異なれば、まったく異なるハッシュ値になりますので、完全に同じではないが類似した既知の検体があれば、既知のマルウエアと判定したい場合には役に立ちません。
現在では、カスタマイズされた上で攻撃に使われるマルウエアがほとんどであるため、カスタマイズされた検体を類似していると判断できるようなハッシュ関数が望まれています。そのために、単純で機械的な変換しか施されていないコードのハッシュ値は元のハッシュ値に近い値をとるfuzzy hash関数が利用されたり、Windows実行ファイル検体に対してはPE(portable executable)のインポートテーブルから値を算出するimphash[1] (import hash)が利用されたりします。
  • *1: ここで言うグラフは「グラフ理論」とかのグラフです。

トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9263
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン