Detect It Easy(ツール解説)

この記事をシェア

概要

Detect It Easyは、実行ファイルやライブラリーなどのバイナリファイルを対象に、ファイル形式などの情報を自動判別するツールです。マルウェアやその関連ファイルの初動調査において、ファイルの性質を迅速に把握するために広く利用されています。
Detect It Easyは利用時の制約が少ないMITライセンスのもとで公開されています。
本記事では、執筆時点での最新バージョンであるv3.21(Windows 64ビット向け)について、GUI版およびCLI版の利用例をそれぞれ紹介します。 なお、パッカー・クリプター判定用途での利用方法については、別の記事をご参照ください。

利用例(GUI)

GUI版では解析結果や構造情報を視覚的に確認できるため、初動分析に適しています。
die.exeを実行し、スキャン対象のファイルをドラッグ&ドロップすると以下の画面が表示されます。今回の例ではUPXでパックした非悪性の実行ファイルをスキャンしています。

Detect It Easy(GUI版)で対象ファイルをスキャンした画面

画面右の拡張チェックボックスを有効化すると、以下の画面が表示されます。画面中央にはメモリ マップや逆アセンブルなどのボタンが配置されており、これらをクリックすることで詳細情報を確認できます。

スキャン対象ファイルの詳細情報

ファイルの初動解析において参照頻度の高い画面をいくつかご紹介します。
[構造を可視化]画面では、スキャン対象ファイルのバイト列を色分けして可視化します。ヘッダー、実行コード、文字列、リソースなどの割合を視覚的に確認することができます。例えば、部分暗号化型ランサムウェアによって暗号化されたファイルについて、暗号化範囲を推定する際の補助情報として利用できます。

スキャン対象ファイルの構造可視化

[ハッシュ]画面では、スキャン対象ファイル全体のハッシュ値やセクションごとのハッシュ値をそれぞれ確認することができます。

スキャン対象ファイルのハッシュ値

[文字列]画面では実行ファイル内に含まれる文字列の一覧が表示されます。ハードコーディングされているファイル名、レジストリ、通信先などを確認することができます。

スキャン対象ファイルに含まれる文字列の一覧

利用例(CLI)

CLI版は大量のファイルを一括で解析したり、解析結果を各種フォーマットで出力してほかのプログラムと連携したりする用途に適しています。
コマンドプロンプトやPowerShellから以下の構文でdiec.exeを実行します。

diec.exe [オプション] 対象ファイル

v3.21では、以下のオプションを利用することができます。

diec.exeのオプション一覧

オプション 内容
-?, -h, --help コマンドラインオプションのヘルプを表示
--help-all Qt固有のオプションを含むすべてのヘルプを表示
-v, --version バージョン情報を表示
-r, --recursivescan ディレクトリを再帰的にスキャン
-d, --deepscan 詳細な解析のためにディープスキャンを有効化
-u, --heuristicscan ヒューリスティック解析を有効化(※1)
-b, --verbose 詳細な出力を表示
-g, --aggressivescan 詳細なスキャンモードを有効化
-a, --alltypes すべてのファイルタイプをスキャン
-f, --format 出力結果のフォーマットを指定
-l, --profiling スキャン中にシグネチャのプロファイリングを実施
-M, --messages スキャンメッセージおよび警告を表示
-U, --hideunknown 結果から不明なファイルタイプを非表示
-e, --entropy ファイルのエントロピー情報を表示
-i, --info ファイル情報を表示
-S, --struct <struct> 指定した構造(例:Hash、Hash#MD5)を用いて特定の情報を表示
-x, --xml 結果をXML形式で出力
-j, --json 結果をJSON形式で出力
-c, --csv 結果をCSV形式で出力
-t, --tsv 結果をTSV形式で出力
-p, --plaintext 結果をプレーンテキスト形式で出力
-D, --database <path> データベースのパスを指定(※2)
-E, --extradatabase <path> 追加データベースのパスを指定
-C, --customdatabase <path> カスタムデータベースのパスを指定
-s, --showdatabase データベース情報を表示
-w, --showstructs ファイルタイプ判定用の特別な構造一覧を表示
--test <directory> 指定ディレクトリ内のシグネチャをテスト
--addtest <filename> ファイル名・検出文字列・ディレクトリを用いてテストケースを追加

※1 通常のシグネチャベースの検出ルールを補完するため、ファイル構造や特徴的なパターンを追加的に解析する機能を有効化します。難読化されたコードや未知のパッカーの検出に役立つ場合があります。
※2 開発ツール、パッカー、コンパイラなどを識別するための検出データベースについて、デフォルトではなく任意のパスを使用するための設定です。

オプションを指定せずに実行した場合、対象ファイルの種類や検出されたパッカー、コンパイラなどの基本的な判定結果が標準出力に表示されます。

オプション無しで実行した結果の画面

マルウェアの表層解析において利用頻度の高いオプションをいくつかご紹介します。
--infoオプションを指定すると、ファイルサイズ、ファイル形式、アーキテクチャなど、解析対象ファイルの詳細な属性情報が表示されます。

--infoオプションを付けて実行した結果の画面

--S Hashオプションを指定すると、対象ファイルのMD5やSHA-256などのハッシュ値を表示できます。

--S Hashオプションを付けて実行した結果の画面

以上のように、Detect It Easyを使用することでマルウェアや不審ファイルの初動調査を行うことができます。

この記事をシェア
サイバーセキュリティ
情報局の最新情報を
チェック!