Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sandfly-entropyscan — Linux向けパッカーまたは暗号化されたマルウェア関連バイナリを検出するエントロピースキャナー。悪意のあるファイルやLinuxプロセスを検出し、暗号化ハッシュとともに出力します。 | Kitploit
ツール/GitHubGitHub/sandflysecurity/sandfly-entropyscan
フォレンジックマルウェア分析バイナリ解析インシデントレスポンス
GitHubsandflysecurity/sandfly-entropyscan

sandfly-entropyscan

Linux向けパッカーまたは暗号化されたマルウェア関連バイナリを検出するエントロピースキャナー。悪意のあるファイルやLinuxプロセスを検出し、暗号化ハッシュとともに出力します。

リポジトリを見る

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト
170262年前Kitploit レビュー済み

sandfly-entropyscanとは?

sandfly-entropyscanは、ファイルや実行中のプロセスを迅速にスキャンし、そのエントロピー(ランダム性の尺度)とLinux/UnixのELFタイプ実行可能ファイルであるかどうかを報告するユーティリティです。一部のLinuxマルウェアはパックまたは暗号化されており、非常に高いエントロピーを示します。このツールは、高いエントロピーを持つ実行可能ファイルやプロセスを素早く見つけることができ、それらはしばしば悪意があります。

特徴

  • Go言語で書かれており、修正なしで複数のアーキテクチャに移植可能です。
  • スタンドアロンバイナリで依存関係がなく、疑わしいマシンでライブラリをロードせずに即座に使用できます。
  • ファイルを隠蔽するLD_PRELOADタイプのルートキットの影響を受けません。
  • 特定のローダブルカーネルモジュール(LKM)ルートキットによる隠蔽/クロークされたプロセスを発見するための組み込みPIDバスティング機能を搭載しています。
  • エントロピーに加えてMD5、SHA1、SHA256、SHA512ハッシュ値を生成します。
  • 問題を自動的に見つけるためのスキャンスクリプトに使用できます。
  • インシデントレスポンダーがLinuxホスト上の潜在的なマルウェアを迅速にスキャンして絞り込むために使用できます。

なぜエントロピーをスキャンするのか?

エントロピーはランダム性の尺度です。バイナリデータの場合、0.0は非ランダム、8.0は完全にランダムです。優れた暗号はランダムなホワイトノイズのように見え、8.0に近くなります。優れた圧縮は冗長データを削除するため、非圧縮時よりもランダムに見え、通常は7.7以上になります。

多くのマルウェア実行可能ファイルは検出を避け、リバースエンジニアリングを困難にするためにパックされています。ほとんどの標準的なLinuxバイナリはパックされていません。なぜなら、自分が何であるかを隠そうとしていないからです。高いエントロピーのファイルを検索することは、高いエントロピーと実行可能という2つの属性を持つプログラムが悪意がある可能性を見つける良い方法です。

使用方法

sandfly-entropyscan の使用方法:

-csv 結果をCSV形式で出力(ファイル名、パス、エントロピー、elf_file [true|false]、MD5、SHA1、SHA256、SHA512)

-delim CSVファイルのデフォルトの区切り文字「,」をお好みのもの("|"など)に変更します

-dir string 分析するディレクトリ名

-file string 分析する単一のファイルへのフルパス

-proc 実行中のプロセスをチェック(デフォルトはELFのみチェック)

-elf ELF実行可能ファイルのみをチェック

-entropy float この値以上のエントロピーを持つファイル/プロセスを表示(0.0最小~8.0最大、デフォルト0ですべてのファイルを表示)

-version バージョンを表示して終了

例

/tmp下で実行可能なファイルを検索:

sandfly-entropyscan -dir /tmp -elf

/var/www下で高いエントロピー(7.7以上)の実行可能ファイル(多くの場合パックまたは暗号化されている)を検索:

sandfly-entropyscan -dir /var/www -elf -entropy 7.7

すべての実行中プロセスのエントロピーと暗号学的ハッシュをCSV形式で生成:

sandfly-entropyscan -proc -csv

エントロピーが7.7より高いプロセスを検索(パックまたは暗号化されている可能性が高い):

sandfly-entropyscan -proc -entropy 7.7

/bin下の全ファイルのエントロピーと暗号学的ハッシュ値を生成しCSV形式で出力(例:ハッシュを保存・比較するため):

sandfly-entropyscan -dir /bin -csv

エントロピーが7.7より高いすべてのファイル(ELFかどうかに関わらず)をスキャン: (圧縮ファイル、png、jpg、オブジェクトファイルなど、多数のファイルがリストされる可能性あり)

sandfly-entropyscan -dir /path/to/dir -entropy 7.7

ファイルを素早くチェックし、エントロピー、暗号学的ハッシュ、実行可能かどうかを表示:

sandfly-entropyscan -file /dev/shm/suspicious_file

ユースケース

マルウェアの問題があると思われるシステムでスポットチェックを実行します。または、スキャンを自動化して、予期しない場所に高いエントロピーのファイルが出現した場合に出力を得ることができます。あるいは、通常とは異なる場所(/tmpやユーザーのHTMLディレクトリなど)にある実行可能なELFタイプのファイルにフラグを立てるだけです。例えば次のようにします:

高いエントロピーのバイナリが/var/wwwディレクトリに出現しましたか?誰かがあなたのウェブサイトにマルウェアドロッパーを仕掛けた可能性があります:

sandfly-entropyscan -dir /var/www -elf -entropy 7.7

cronタスクを設定して、/tmp、/var/tmp、/dev/shmディレクトリをスキャンし、エントロピーの高低に関わらず実行可能ファイルを検出します。tmpディレクトリ下の実行可能ファイルは、マルウェアドロッパーであることがよくあります。

sandfly-entropyscan -dir /tmp -elf

sandfly-entropyscan -dir /var/tmp -elf

sandfly-entropyscan -dir /dev/shm -elf

別のcronまたは自動化セキュリティスイープを設定して、実行中の高度に圧縮または暗号化されたバイナリをスポットチェックします:

sandfly-entropyscan -proc -entropy 7.7

ビルド

  • 最新バージョンのgolang(www.golang.org)をインストールします。
  • リポジトリをクローンします:

git clone https://github.com/sandflysecurity/sandfly-entropyscan.git

  • リポジトリディレクトリに移動してビルドします:

go build

  • オプションを指定してバイナリを実行します:

./sandfly-entropyscan

ビルドスクリプト

複数のプラットフォーム向けにビルドする基本的なビルドスクリプトがいくつかあります。これらを使用するか、必要に応じて変更してください。インシデントレスポンダーにとっては、事前にコンパイルされたバイナリを調査用ボックスに準備しておくと便利かもしれません。

build.sh - 実行時の現在のOS向けにビルドします。

ELF検出

ファイルが実行可能なELFタイプである可能性があるかどうかを確認するために、シンプルな方法を使用しています。複数のプラットフォーム向けのELF形式ファイルを検出できます。マルウェアがIntel/AMD、MIPS、Armのドロッパーバイナリであっても、それらすべてを検出できます。

誤検知

コンパイル方法や正当な理由でパックされた結果、高いエントロピーを持つ正当なバイナリにフラグが立つ可能性があります。.zip、.gz、.png、.jpgなどのファイルも、圧縮形式であるため非常に高いエントロピーを持ちます。圧縮はファイルの冗長性を削除するため、よりランダムに見え、エントロピーが高くなります。

Linuxでは、ライブラリディレクトリをスキャンするといくつかの種類のライブラリ(.soファイル)にフラグが立つ可能性があります。

しかし、経験上、高いエントロピーを持つ実行可能バイナリはしばしば悪意があります。特に、通常実行可能ファイルが存在すべきではない場所(/tmpやhtmlディレクトリなど)で見つかった場合に顕著です。

パフォーマンス

エントロピーの計算には、ファイルのすべてのバイトを読み込んで集計し、最終的な数値を算出する必要があります。非常に大規模なファイルシステムや非常に大きなファイルでは、CPUとディスクI/Oを多く消費する可能性があります。プログラムには内部制限があり、2GBを超えるファイルではエントロピーを計算せず、通常のファイルタイプでないファイル(例:/dev/zeroなどのデバイス)でもエントロピーを計算しません。

その後、MD5、SHA1、SHA256、SHA512ハッシュを計算します。それぞれファイル全体を処理する必要があります。最近のシステムでは妥当な速度ですが、非常に大規模なファイルシステムをクロールする場合は完了までに時間がかかることがあります。

プログラムにELFファイルのみをチェックするように指示した場合、ELFタイプでない限りエントロピー/ハッシュ計算は行われず、大幅な時間短縮になります(例:実行可能でない巨大なデータベースファイルを無視します)。

このプログラムを自動化する場合、特に必要でなければルートファイルシステム全体をクロールしない方が良いでしょう。対象を絞ったアプローチの方が速く、スポットチェックに有用です。また、ELFフラグを使用することで、実行可能ファイルタイプのみを処理するため検索時間が大幅に短縮されます。

インシデントレスポンス

インシデントレスポンダーにとって、sandfly-entropyscanをトップレベルの「/」ディレクトリ全体に対して実行することは、調査すべきパックされた候補のリストを迅速に取得するために良いアイデアかもしれません。これによりCPUとディスクI/Oが急増します。しかし、管理者が気づくまでにボックスが598時間も暗号通貨マイニングを行っていた場合、おそらくその時点では気にしないでしょう。

繰り返しになりますが、ELFフラグを使用して問題の候補となる実行可能ファイルに絞り込み、ノイズを無視してください。

テスト

scripts/testfiles.shというスクリプトがあり、2つのファイルを作成します。1つはランダムデータで満たされ、もう1つは全くランダムではありません。スクリプトを実行するとファイルが作成され、sandfly-entropyscanが実行可能検出モードで実行されます。2つのファイルが表示されるはずです。1つは非常に高いエントロピー(8.0またはその付近)、もう1つは非ランダムデータでエントロピーが0.00の低エントロピーです。例:

./testfiles.sh

Creating high entropy random executable-like file in current directory.

Creating low entropy executable-like file in current directory.

high.entropy.test, entropy: 8.00, elf: true

low.entropy.test, entropy: 0.00, elf: true

また、upxユーティリティをロードして実行可能ファイルを圧縮し、返される値を確認することもできます。

エージェントレスのLinuxセキュリティ

Sandfly Securityは、Linux向けのエージェントレスのエンドポイント検出およびインシデントレスポンスプラットフォーム(EDR)を提供しています。自動化されたエントロピーチェックは、Linuxエンドポイントにソフトウェアをインストールせずに侵入者を発見するために当社が検索する数千もの項目の1つにすぎません。

無料ライセンスを取得し、詳細を以下でご確認ください:

https://www.sandflysecurity.com @SandflySecurity

ツールをダウンロード