
一款用于威胁狩猎和取证分类的轻量级事件响应工具
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"
# 交互式 shell 模式(不扫描,仅提供 shell 访问)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [OPTIONS]
# 使用配置文件进行基本扫描
./fastfinder -c config.yaml
# 持续监控模式
./fastfinder -c config.yaml -t
# 创建独立可执行文件(仅 x64 架构)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 提示:FastFinder 可以使用标准用户权限运行,但管理员权限可访问所有系统文件。
配置示例位于此处。以下是一个完整的空白配置示例。如果未使用所有属性,则无需实现每一项。
input:
path: [] # 基于简单字符串匹配文件路径和/或文件名
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: '' # 可使用指定的 RC4 密钥对 yara 规则进行(解)密
maxScanFilesize: 2048 # 忽略大于 maxScanFileSize 兆字节的文件(默认:2048)
cleanMemoryIfFileGreaterThanSize: 512 # 在扫描大文件后清理 fastfinder 内部内存(默认:512 兆字节)
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" # 查找相对于配置的子文件夹
- "/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 文件。
由网络安全社区 ❤️ 制作
创建者: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 |