
Risposta agli incidenti - Ricerca rapida di file sospetti

Uno strumento leggero per la risposta agli incidenti, progettato per la caccia alle minacce e il triage forense
FastFinder è un potente e leggero strumento per la risposta agli incidenti, progettato per i professionisti della cybersecurity che conducono caccia alle minacce, analisi forensi in tempo reale e triage degli endpoint. Costruito per le piattaforme Windows e Linux, eccelle nella rapida scoperta di file sospetti utilizzando molteplici criteri di rilevamento.
Interfaccia utente di base
Selezione della configurazione
Risultati della scansione e corrispondenze
⚠️ Nota: la compilazione richiede CGO e le dipendenze YARA. Vedi le guide specifiche per piattaforma:
Il modo più semplice per compilare FastFinder senza installare alcuna dipendenza:
# Compila i binari per Linux e Windows
cd docker
make build-binaries
# I binari si troveranno in ./bin/
# - fastfinder-linux-amd64
# - fastfinder-windows-amd64.exe
Esegui FastFinder all'interno di un container Docker con privilegi per scansionare volumi o filesystem montati:
# Costruisci l'immagine runtime (include FastFinder + YARA + editor)
.\docker-helper.ps1 build-runtime
# Esegui la scansione con una directory di configurazione
.\docker-helper.ps1 run-runtime -ConfigPath "C:\percorso\cartella_config" -ScanPath "C:\dati\da\scansionare"
# Modalità shell interattiva (nessuna scansione, solo accesso alla shell)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [OPZIONI]
# Scansione base con file di configurazione
./fastfinder -c config.yaml
# Modalità di monitoraggio continuo
./fastfinder -c config.yaml -t
# Crea eseguibile standalone (solo architettura x64)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 Suggerimento: FastFinder può funzionare con privilegi utente standard, ma i diritti di amministratore forniscono accesso a tutti i file di sistema.
Gli esempi di configurazione sono disponibili qui. Ecco un esempio completo di configurazione vuota. Non è necessario implementare ogni attributo se non si utilizza tutto.
input:
path: [] # corrispondenza percorso file E / O nome file basata su stringa semplice
content:
grep: [] # corrispondenza valore letterale di stringa all'interno del contenuto del file
yara: [] # usa regole yara e specifica i percorsi delle regole per ricerche di pattern più complessi (wildcard / regex / condizioni)
checksum: [] # analizza il contenuto del file per md5/sha1/sha256
options:
contentMatchDependsOnPathMatch: true # se true, i percorsi sono un pre-filtro per le ricerche grep (stringhe) solo. YARA e Checksum vengono sempre valutati.
findInHardDrives: true # enumera il contenuto dei dischi fissi
findInRemovableDrives: true # enumera il contenuto dei drive rimovibili
findInNetworkDrives: true # enumera il contenuto dei drive di rete
findInCDRomDrives: true # enumera i CD-ROM fisici e iso/vhd montati...
findInMemory: true # verifica la presenza di risultati nella memoria dei processi
output:
copyMatchingFiles: true # crea una copia di ogni file corrispondente
base64Files: true # codifica in base64 il contenuto corrispondente prima della copia
filesCopyPath: '' # un valore vuoto copierà i file corrispondenti nella cartella di fastfinder.exe
advancedparameters:
yaraRC4Key: '' # le regole yara possono essere (de)cifrate usando la chiave RC4 specificata
maxScanFilesize: 2048 # ignora i file fino a maxScanFileSize MB (predefinito: 2048)
cleanMemoryIfFileGreaterThanSize: 512 # pulisce la memoria interna di fastfinder dopo la scansione di file pesanti (predefinito: 512 MB)
eventforwarding:
enabled: true
buffer_size: 5
flush_time_seconds: 10
file: # salva l'attività dell'app in file jsonl
enabled: true
directory_path: "./event_logs"
rotate_minutes: 1 # Ruota ogni minuto per test
max_file_size_mb: 1 # Ruota a 1 MB per test
retain_files: 5 # Mantiene 5 file vecchi
http: # inoltra l'attività dell'app con POST HTTP di dati 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"
I percorsi relativi nella configurazione YAML vengono risolti rispetto alla posizione del file di configurazione:
input:
content:
yara:
- "./example_rule_linux.yar" # Cerca nella stessa cartella di config.yaml
- "./subfolder/custom_rules.yar" # Cerca in una sottocartella relativa alla configurazione
- "/absolute/path/to/rule.yar" # I percorsi assoluti funzionano così come sono
- "https://example.com/rules.yar" # Anche gli URL sono supportati
Esempio di struttura di directory:
project/
├── config.yaml
├── example_rule_linux.yar # ✅ Trovato da "./example_rule_linux.yar"
└── rules/
└── custom.yar # ✅ Trovato da "./rules/custom.yar"
Accogliamo con favore i contributi! Consulta le nostre linee guida per contribuire:
git checkout -b feature/funzionalita-eccezionale)git commit -m 'Aggiungi funzionalità eccezionale')git push origin feature/funzionalita-eccezionale)# Clona il repository
git clone https://github.com/codeyourweb/fastfinder.git
cd fastfinder
# Installa le dipendenze (vedi guide di compilazione)
# Compila dal sorgente
go build -tags yara_static,gio -a -ldflags '-s -w' .
# Esegui i test
go test ./...
Questo progetto è concesso in licenza con licenza AGPL - vedi il file LICENSE per i dettagli.
Realizzato con ❤️ dalla comunità della cybersecurity
Creato da Jean-Pierre GARNIER (@codeyourweb) • 2021-2026
| Opzione | Descrizione | Predefinito |
|---|
-h, --help | Stampa le informazioni di aiuto | |
-c, --configuration <file config yaml> | Percorso del file di configurazione | |
-b, --build <eseguibile output> | Crea un binario standalone con configurazione incorporata (solo architettura x64) | |
-r, --root <Percorso> | Percorso radice della scansione (sovrascrive l'enumerazione delle unità) | |
-s, --silent | Modalità silenziosa - esegue senza finestra o console visibile | |
-v, --verbosity <livelloVerbosity> | Livello di dettaglio del log (1-5) | 3 |
-t, --triage | Modalità di monitoraggio continuo | false |