Hashの一種として、Fuzzyhashというものがあることを知ったので、類似の検体を用いて検証を行いました。
#Fuzzy hashとは?
ハッシュに関する基本的な説明は省略します。
ファイルの内容を少しでも変えるとSHA-1やSHA-256などのハッシュは全く異なる値をとる仕様となっていますが、
これらと異なりFuzzy hashはファイルが類似している場合、ファイル同士で近い値をとります。
そのため、マルウェアの挙動の類似性を検証する際などに有効と言えます。
##Fuzzy hashの種類
知名度の高いものとして下記2点がありますが、今回はSSDEEPの値をもとに検証します。
・imphash
・ssdeep
#検証内容
動きがほぼ同様なEMOTET/POWLOAD検体を5つ用意し、Fuzzy hashの値の類似性を検証します。
▼検知名
▼展開後のファイル
#検証結果
これらのファイルのハッシュ値を求めた結果、下記の通りになりました。
MD5,SHA1などは全く異なる値であるにも関わらず、
SSDEEPの値については頭の値が一致しており(1を除き)類似性があることが確認できました。
#参考資料
ssdeepのより詳細な検証を行っている論文があります(計算方法の原理から説明していただいていて非常にわかりやすいです)
https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_action_common_download&item_id=73252&item_no=1&attribute_id=1&file_no=1
SSDEEP,imphashには類似性がうまく検証できない場合があり、改善の余地があるという意見もあるようです。
https://blogs.jpcert.or.jp/ja/2016/05/impfuzzy.html