
Resposta a Incidentes - Localizador rápido de arquivos suspeitos

Uma ferramenta leve de resposta a incidentes para caça a ameaças e triagem forense
O FastFinder é uma ferramenta de resposta a incidentes poderosa e leve, projetada para profissionais de cibersegurança que realizam caça a ameaças, perícia ao vivo e triagem de endpoints. Construída para plataformas Windows e Linux, destaca-se na descoberta rápida de arquivos suspeitos usando múltiplos critérios de deteção.
Interface de Utilizador Básica
Seleção de Configuração
Resultados da Verificação e Correspondências
⚠️ Nota: A compilação requer dependências CGO e YARA. Consulte os guias específicos da plataforma:
A maneira mais fácil de compilar o FastFinder sem instalar dependências:
# Compilar binários para Linux e Windows
cd docker
make build-binaries
# Os binários estarão em ./bin/
# - fastfinder-linux-amd64
# - fastfinder-windows-amd64.exe
Execute o FastFinder dentro de um contentor Docker privilegiado para verificar volumes ou sistemas de ficheiros montados:
# Compilar a imagem de execução (inclui FastFinder + YARA + editores)
.\docker-helper.ps1 build-runtime
# Executar verificação com diretório de configuração
.\docker-helper.ps1 run-runtime -ConfigPath "C:\caminho\para\pasta_config" -ScanPath "C:\dados\para\verificar"
# Modo shell interativo (sem verificação, apenas acesso à shell)
.\docker-helper.ps1 run-runtime -Interactive
fastfinder [OPÇÕES]
# Verificação básica com ficheiro de configuração
./fastfinder -c config.yaml
# Modo de monitorização contínua
./fastfinder -c config.yaml -t
# Criar executável autónomo (apenas arquitetura x64)
./fastfinder -c config.yaml -b standalone_scanner.exe
💡 Dica: O FastFinder pode ser executado com privilégios de utilizador padrão, mas direitos administrativos fornecem acesso a todos os ficheiros do sistema.
Exemplos de configuração estão disponíveis aqui. Aqui está um exemplo de configuração completa em branco. Não é necessário implementar todos os atributos se não estiver a utilizar tudo.
input:
path: [] # corresponder caminho E/OU nome do ficheiro com base em string simples
content:
grep: [] # corresponder valor literal de string dentro do conteúdo do ficheiro
yara: [] # usar regra yara e especificar caminho(s) de regras para pesquisa de padrões mais complexos (curingas / regex / condições)
checksum: [] # analisar para md5/sha1/sha256 no conteúdo do ficheiro
options:
contentMatchDependsOnPathMatch: true # se verdadeiro, os caminhos são um pré-filtro para pesquisas grep (string) apenas. YARA e Checksums são sempre avaliados.
findInHardDrives: true # enumerar conteúdo do disco rígido
findInRemovableDrives: true # enumerar conteúdo de unidade removível
findInNetworkDrives: true # enumerar conteúdo de unidade de rede
findInCDRomDrives: true # enumerar CD-ROM físico e iso / vhd montados...
findInMemory: true # verificar resultados na memória de processos
output:
copyMatchingFiles: true # criar uma cópia de cada ficheiro correspondente
base64Files: true # codificar em base64 o conteúdo correspondido antes de copiar
filesCopyPath: '' # valor vazio irá copiar os ficheiros correspondidos na pasta do fastfinder.exe
advancedparameters:
yaraRC4Key: '' # as regras yara podem ser (des)criptografadas usando a chave RC4 especificada
maxScanFilesize: 2048 # ignorar ficheiros até maxScanFileSize Mb (padrão: 2048)
cleanMemoryIfFileGreaterThanSize: 512 # limpar memória interna do fastfinder após verificação de ficheiros pesados (padrão: 512Mb)
eventforwarding:
enabled: true
buffer_size: 5
flush_time_seconds: 10
file: # guardar atividade da aplicação em ficheiros jsonl
enabled: true
directory_path: "./event_logs"
rotate_minutes: 1 # Rodar a cada minuto para teste
max_file_size_mb: 1 # Rodar a 1MB para teste
retain_files: 5 # Manter 5 ficheiros antigos
http: # encaminhar atividade da aplicação com dados JSON via HTTP POST
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"
Caminhos relativos na configuração YAML são resolvidos em relação à localização do ficheiro de configuração:
input:
content:
yara:
- "./example_rule_linux.yar" # Procura na mesma pasta que config.yaml
- "./subfolder/custom_rules.yar" # Procura na subpasta relativa à configuração
- "/absolute/path/to/rule.yar" # Caminhos absolutos funcionam como estão
- "https://example.com/rules.yar" # URLs também são suportados
Exemplo de estrutura de diretórios:
project/
├── config.yaml
├── example_rule_linux.yar # ✅ Encontrado por "./example_rule_linux.yar"
└── rules/
└── custom.yar # ✅ Encontrado por "./rules/custom.yar"
Aceitamos contribuições! Por favor, veja as nossas diretrizes de contribuição:
git checkout -b feature/carateristica-incrivel)git commit -m 'Adicionar caraterística incrível')git push origin feature/carateristica-incrivel)# Clonar o repositório
git clone https://github.com/codeyourweb/fastfinder.git
cd fastfinder
# Instalar dependências (ver guias de compilação)
# Compilar a partir do código fonte
go build -tags yara_static,gio -a -ldflags '-s -w' .
# Executar testes
go test ./...
Este projeto está licenciado sob a Licença AGPL - consulte o ficheiro LICENSE para mais detalhes.
Feito com ❤️ pela comunidade de cibersegurança
Criado por Jean-Pierre GARNIER (@codeyourweb) • 2021-2026
| Opção | Descrição | Padrão |
|---|
-h, --help | Mostrar informações de ajuda | |
-c, --configuration <ficheiro yaml de configuração> | Caminho do ficheiro de configuração | |
-b, --build <executável de saída> | Criar binário autónomo com configuração incorporada (apenas arquitetura x64) | |
-r, --root <Caminho> | Caminho raiz da verificação (substituir enumeração de unidades) | |
-s, --silent | Modo silencioso - executar sem janela ou consola visível | |
-v, --verbosity <nivelVerbosidade> | Nível de verbosidade dos registos (1-5) | 3 |
-t, --triage | Modo de monitorização contínua | false |