
Réponse aux incidents - Recherche rapide de fichiers suspects

Un outil léger de réponse aux incidents pour la chasse aux menaces et le tri forensic
FastFinder est un outil de réponse aux incidents puissant et léger, conçu pour les professionnels de la cybersécurité effectuant de la chasse aux menaces, de la forensic live et du tri d'endpoints. Développé pour les plates-formes Windows et Linux, il excelle dans la découverte rapide de fichiers suspects en utilisant plusieurs critères de détection.
Interface utilisateur de base
Sélection de configuration
Résultats de scan et correspondances
📥 Télécharger la dernière version
⚠️ Note : La compilation nécessite les dépendances CGO et YARA. Voir les guides spécifiques à chaque plateforme :
Le moyen le plus simple de compiler FastFinder sans installer de dépendances :
# Build binaries for Linux and Windows
cd docker
make build-binaries
# Binaries will be in ./bin/
# - fastfinder-linux-amd64
# - fastfinder-windows-amd64.exe
Exécutez FastFinder dans un conteneur Docker privilégié pour scanner des volumes ou des systèmes de fichiers montés :
# Build the runtime image (includes FastFinder + YARA + editors)
.\docker-helper.ps1 build-runtime
# Run scan with configuration directory
.\docker-helper.ps1 run-runtime -ConfigPath "C:\path\to\config_folder" -ScanPath "C:\data\to\scan"
# Interactive shell mode (no scan, just shell access)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [OPTIONS]
# Basic scan with configuration file
./fastfinder -c config.yaml
# Continuous monitoring mode
./fastfinder -c config.yaml -t
# Create standalone executable (x64 architecture only)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 Astuce : FastFinder peut s'exécuter avec les privilèges utilisateur standard, mais les droits d'administration permettent d'accéder à tous les fichiers système.
Des exemples de configuration sont disponibles ici. Voici un exemple vierge de configuration complète. Vous n'avez pas besoin d'implémenter chaque attribut si vous n'utilisez pas tout.
input:
path: [] # match file path AND / OR file name based on simple string
content:
grep: [] # match literal string value inside file content
yara: [] # use yara rule and specify rules path(s) for more complex pattern search (wildcards / regex / conditions)
checksum: [] # parse for md5/sha1/sha256 in file content
options:
contentMatchDependsOnPathMatch: true # if true, paths are a pre-filter for grep (string) searches only. YARA and Checksums are always evaluated.
findInHardDrives: true # enumerate hard drive content
findInRemovableDrives: true # enumerate removable drive content
findInNetworkDrives: true # enumerate network drive content
findInCDRomDrives: true # enumerate physical CD-ROM and mounted iso / vhd...
findInMemory: true # check for results in processes memory
output:
copyMatchingFiles: true # create a copy of every matching file
base64Files: true # base64 matched content before copy
filesCopyPath: '' # empty value will copy matched files in the fastfinder.exe folder
advancedparameters:
yaraRC4Key: '' # yara rules can be (un)/ciphered using the specified RC4 key
maxScanFilesize: 2048 # ignore files up to maxScanFileSize Mb (default: 2048)
cleanMemoryIfFileGreaterThanSize: 512 # clean fastfinder internal memory after heavy file scan (default: 512Mb)
eventforwarding:
enabled: true
buffer_size: 5
flush_time_seconds: 10
file: # save app activity in jsonl files
enabled: true
directory_path: "./event_logs"
rotate_minutes: 1 # Rotate every minute for testing
max_file_size_mb: 1 # Rotate at 1MB for testing
retain_files: 5 # Keep 5 old files
http: # forward app activity with HTTP POST json data
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"
Les chemins relatifs dans la configuration YAML sont résolus par rapport à l'emplacement du fichier de configuration :
input:
content:
yara:
- "./example_rule_linux.yar" # Looks in same folder as config.yaml
- "./subfolder/custom_rules.yar" # Looks in subfolder relative to config
- "/absolute/path/to/rule.yar" # Absolute paths work as-is
- "https://example.com/rules.yar" # URLs are also supported
Exemple de structure de répertoire :
project/
├── config.yaml
├── example_rule_linux.yar # ✅ Found by "./example_rule_linux.yar"
└── rules/
└── custom.yar # ✅ Found by "./rules/custom.yar"
Nous accueillons les contributions ! Veuillez consulter nos directives de contribution :
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)# Clone the repository
git clone https://github.com/codeyourweb/fastfinder.git
cd fastfinder
# Install dependencies (see compilation guides)
# Build from source
go build -tags yara_static,gio -a -ldflags '-s -w' .
# Run tests
go test ./...
Ce projet est sous licence AGPL - voir le fichier LICENSE pour plus de détails.
Fait avec ❤️ par la communauté de la cybersécurité
Créé par Jean-Pierre GARNIER (@codeyourweb) • 2021-2026
| Option | Description | Défaut |
|---|
-h, --help | Afficher l'aide | |
-c, --configuration <yaml config file> | Chemin du fichier de configuration | |
-b, --build <output executable> | Créer un binaire autonome avec configuration intégrée (architecture x64 uniquement) | |
-r, --root <Path> | Chemin racine de scan (remplace l'énumération des lecteurs) | |
-s, --silent | Mode silencieux - s'exécute sans fenêtre ni console visible | |
-v, --verbosity <verbosityLevel> | Niveau de verbosité des logs (1-5) | 3 |
-t, --triage | Mode de surveillance continue | false |