
インシデントレスポンス - 高速不審ファイルファインダー

軽量インシデントレスポンスツール – 脅威ハンティングとフォレンジックトリアージ向け
FastFinder は、脅威ハンティング、ライブフォレンジック、エンドポイントトリアージを行うサイバーセキュリティ専門家のために設計された、強力で軽量なインシデントレスポンスツールです。Windows と Linux の両プラットフォームに対応しており、複数の検出基準を用いた迅速な不審ファイル発見に優れています。
基本ユーザーインターフェース
設定の選択
スキャン結果とマッチ
⚠️ 注意: コンパイルには CGO および YARA 依存関係が必要です。プラットフォーム別ガイドを参照してください:
依存関係を一切インストールせずに FastFinder をビルドする最も簡単な方法:
# Linux と Windows のバイナリをビルド
cd docker
make build-binaries
# バイナリは ./bin/ に配置されます
# - fastfinder-linux-amd64
# - fastfinder-windows-amd64.exe
特権 Docker コンテナ内で FastFinder を実行し、ボリュームやマウントされたファイルシステムをスキャンします:
# ランタイムイメージのビルド(FastFinder + YARA + エディタを含む)
.\docker-helper.ps1 build-runtime
# 設定ディレクトリを指定してスキャンを実行
.\docker-helper.ps1 run-runtime -ConfigPath "C:\path\to\config_folder" -ScanPath "C:\data\to\scan"
# インタラクティブシェルモード(スキャンなし、シェルアクセスのみ)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [オプション]
# 設定ファイルを使用した基本スキャン
./fastfinder -c config.yaml
# 継続監視モード
./fastfinder -c config.yaml -t
# スタンドアロン実行ファイルの作成(x64 アーキテクチャのみ)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 ヒント: FastFinder は標準ユーザー権限でも実行できますが、管理者権限によりすべてのシステムファイルにアクセスできます。
設定例はこちらにあります。以下は空の設定の完全な例です。すべてを使用しない場合は、すべての属性を実装する必要はありません。
input:
path: [] # 単純な文字列に基づいてファイルパス AND/OR ファイル名をマッチ
content:
grep: [] # ファイル内容内のリテラル文字列値にマッチ
yara: [] # YARA ルールを使用し、より複雑なパターン検索(ワイルドカード/正規表現/条件)のためにルールパスを指定
checksum: [] # ファイル内容内の md5/sha1/sha256 を検索
options:
contentMatchDependsOnPathMatch: true # true の場合、パスは grep(文字列)検索の事前フィルターとなります。YARA とチェックサムは常に評価されます。
findInHardDrives: true # ハードドライブの内容を列挙
findInRemovableDrives: true # リムーバブルドライブの内容を列挙
findInNetworkDrives: true # ネットワークドライブの内容を列挙
findInCDRomDrives: true # 物理 CD-ROM およびマウントされた iso/vhd などを列挙
findInMemory: true # プロセスメモリ内での結果確認
output:
copyMatchingFiles: true # マッチしたファイルのコピーを作成
base64Files: true # コピー前にマッチした内容を base64 エンコード
filesCopyPath: '' # 空の場合、マッチしたファイルは fastfinder.exe フォルダにコピー
advancedparameters:
yaraRC4Key: '' # YARA ルールは指定された RC4 キーを使用して暗号化/復号化可能
maxScanFilesize: 2048 # 最大 maxScanFileSize MB までのファイルを無視(デフォルト: 2048)
cleanMemoryIfFileGreaterThanSize: 512 # 大きなファイルスキャン後に FastFinder の内部メモリをクリーンアップ(デフォルト: 512MB)
eventforwarding:
enabled: true
buffer_size: 5
flush_time_seconds: 10
file: # アプリのアクティビティを jsonl ファイルに保存
enabled: true
directory_path: "./event_logs"
rotate_minutes: 1 # テスト用に毎分ローテーション
max_file_size_mb: 1 # テスト用に 1MB でローテーション
retain_files: 5 # 古いファイルを 5 つ保持
http: # HTTP POST JSON データでアプリのアクティビティを転送
enabled: false
url: "https://your-forwarder-url.com/api/events"
ssl_verify: false
timeout_seconds: 10
headers:
Authorization: "Bearer YOUR_API_KEY"
MY-CUSTOM-HEADER: "My-Header-Value"
retry_count: 3
filters:
event_types:
- "error"
- "warning"
- "alert"
- "info"
YAML 設定内の相対パスは、設定ファイルの場所を基準に解決されます:
input:
content:
yara:
- "./example_rule_linux.yar" # config.yaml と同じフォルダを検索
- "./subfolder/custom_rules.yar" # config を基準にサブフォルダを検索
- "/absolute/path/to/rule.yar" # 絶対パスはそのまま使用
- "https://example.com/rules.yar" # URL もサポート
ディレクトリ構造の例:
project/
├── config.yaml
├── example_rule_linux.yar # ✅ "./example_rule_linux.yar" で検出
└── rules/
└── custom.yar # ✅ "./rules/custom.yar" で検出
コントリビューションを歓迎します!以下のガイドラインに従ってください:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)# リポジトリのクローン
git clone https://github.com/codeyourweb/fastfinder.git
cd fastfinder
# 依存関係のインストール(コンパイルガイドを参照)
# ソースからビルド
go build -tags yara_static,gio -a -ldflags '-s -w' .
# テストの実行
go test ./...
このプロジェクトは AGPL ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
サイバーセキュリティコミュニティによる ❤️ を込めて
Created by Jean-Pierre GARNIER (@codeyourweb) • 2021-2026
| オプション | 説明 | デフォルト |
|---|
-h, --help | ヘルプ情報を表示 | |
-c, --configuration <yaml config file> | 設定ファイルのパス | |
-b, --build <output executable> | 設定を埋め込んだスタンドアロンバイナリを作成(x64 アーキテクチャのみ) | |
-r, --root <Path> | スキャンルートパス(ドライブ列挙を上書き) | |
-s, --silent | サイレントモード - ウィンドウやコンソールを表示せずに実行 | |
-v, --verbosity <verbosityLevel> | ログの詳細レベル(1-5) | 3 |
-t, --triage | 継続監視モード | false |