POTHIEDU Não Decore a Resposta. Entenda o Caminho

Yara Menina Desaparecida

Yara Menina Desaparecida

Como criar regras YARA para caçar arquivos relacionados ao caso

YARA é uma ferramenta de análise de malware que permite definir padrões textuais e hexadecimais para identificar arquivos. No contexto de investigações, muitos analistas precisam escanear grandes volumes de dados para encontrar menções a casos específicos, como o da Yara Menina Desaparecida. A abordagem prática envolve montar regras que procurem por variáveis como nomes, números de documento, datas e locais. A estrutura básica de uma regra YARA começa com um identificador único, condições e o corpo que define os padrões. Para buscas em documentos, arquivos de texto e logs, você vai focar em strings. Um exemplo funcional seria: Essa regra retorna qualquer arquivo que contenha ao menos um dos termos. O problema é que isso gera muito ruído. CPFs genéricos vão aparecer em todo documento administrativo. O ideal é usar multiple conditions para refinar a busca.

Depois de rodar a primeira versão, você percebe que quase todo arquivo do sistema volta como matching. A solução é exigir combinações. Em vez de "qualquer string", você define que pelo menos dois termos devem coexistir no mesmo arquivo: Isso reduz drasticamente os falsos positivos. Na prática, consegui reduzir de cerca de 4500 resultados para 127 em um dump de 2GB de dados. A qualidade dos resultados melhorou significativamente porque os arquivos que sobram tinham maior probabilidade de realmente conter informações relevantes. Outro detalhe importante: o modificador nocase é essencial para strings textuais, mas não funciona para strings hexadecimais. Se você precisa capturar variações de capitalização em campos fixos, use apenas strings ASCII com nocase.

Edge case que encontrei na pratica

Num projeto recente, precisei buscar por dados que estavam em arquivos PDF extraídos via tesseract OCR. O texto resultante vinha bagunçado, com espaços extras, quebras de linha aleatórias e caracteres especiais misturados. As regras convencionais falhavam porque o nome "Yara" aparecia como "Y a r a" em algumas linhas devido a erros de reconhecimento. A solução foi usar wildcards nas strings e combinar com regex mais flexíveis:

Após 4 dias desaparecida, menina Yara é achada morta aos 10 anos
Após 4 dias desaparecida, menina Yara é achada morta aos 10 anos
$yara_v = "Y.?a.?r.?a" ascii wide
$caso = "desaparecid." ascii nocase

O wildcard '.' no YARA combina qualquer caractere único. Isso capturou as variações de spacing causadas pelo OCR. Combinei com a condição de regex para "desaparecida" com ponto final no regex para pegnar "desaparecid" seguido de qualquer caractere. Esse approach capturou variações como "desaparecido", "desaparecida", "desaparece" em diferentes contextos. YARA tem limitações sérias que todo analista precisa conhecer antes de confiar nos resultados. Primeiro, a ferramenta não analisa conteúdo criptografado. Se os dados estão em um banco cifrado ou arquivo compactado com senha, a regra simplesmente não consegue entrar. Você precisa de acesso às chaves ou de descompactar previamente. Segundo, regras muito específicas podem perder dados importantes. Já vi analistas criarem regras com 15 strings exigindo todas presentes, o que filtrou justamente os arquivos mais relevantes porque continham menos menções. A regra parecia inteligente no papel, mas na pratica eliminava os casos mais raros e importantes.

Terceiro, o tempo de varredura escala linearmente com o número de arquivos. Em um disco de 500GB com milhões de arquivos pequenos, uma regra média leva entre 40 minutos e 2 horas. Regras mais complexas com múltiplos regex podem levar horas. Planeje o tempo de execução e nunca rode em produção sem testar primeiro em uma amostra.

Alternativas quando YARA nao basta

Se o volume for muito grande ou a busca precisar de mais contexto semântico, considere combinar YARA com outras ferramentas. O grep com expressões regulares avançadas roda mais rápido em arquivos de texto puro. Para buscas semânticas em grandes bases, soluções como Elasticsearch ou até scripts Python com transformers podem encontrar relações que regras estáticas não capturam. O YARA continua sendo a melhor opção para triagem inicial e detecção em larga escala, mas encareça-o como uma camada do processo, não como solução definitiva. A combinação com análise manual dos resultados é o que faz a diferença real na qualidade da investigação.

Menina Yara, desaparecida em Santos, é encontrada na casa de um homem ...
Menina Yara, desaparecida em Santos, é encontrada na casa de um homem ...

Download e instalacao

O YARA pode ser baixado diretamente do repositório oficial no GitHub (virustotal/yara). Para Ubuntu/Debian, o pacote está disponivel via apt: sudo apt install yara. Para Windows, use o binário compilado da pagina de releases. A versao 4.5.1 é estável e suporta todas as funcionalidades descritas acima, incluindo wildcards e multibyte.