Detecção de malware 0-day para binários, código-fonte e scripts (que não é ruim)
Atomdrift Scan é um scanner de malware moderno baseado em ML, projetado para detectar ataques 0-day contra a cadeia de suprimentos de software.
Ele foi projetado para ser determinístico, rápido e flexível, e incorporável em qualquer fluxo de trabalho ou ferramenta de segurança que você tenha em mente, e pode operar contra arquivos, arquivos compactados, URLs, PURLs ou processos.
Em setembro de 2026, o Atomdrift Scan possui uma taxa de detecção de 0-day de 98%, +34% à frente de qualquer outro scanner: comercial ou aberto.
Como o Atomdrift obtém resultados tão bons? Primeiro, ele cobre mais terreno do que qualquer outro scanner:
Mais importante, as regras são constantemente atualizadas usando aprendizado por reforço contra novas amostras, blogs e artigos técnicos, resultando em ~1000 regras atualizadas diariamente.
Se você estiver em um host com sabor UNIX (macOS, Linux, BSD, Solaris, illumos, Android):
curl -fsSL https://install.atomdrift.org/scan.sh | sh
Se você estiver no Windows:
irm https://install.atomdrift.org/scan.ps1 | iex
Ou, se você tem Rust instalado e quer apenas compilá-lo a partir do código-fonte:
make install
Se for necessária uma análise binária mais aprofundada, também deve instalar 7-Zip, rizin, upx e innoextract.
No Windows, utilizando o winget:
winget install --exact --id 7zip.7zip
winget install --exact --id Rizin.Rizin
winget install --exact --id UPX.UPX
winget install --exact --id dscharrer.innoextract
Em sistemas do tipo Unix, instale o 7-Zip upstream (brew install sevenzip, apt install 7zip) em vez do p7zip — o seu 7z não consegue ler APFS, pelo que o conteúdo dos .dmg fica por analisar.
# Scan a file, directory, or archive recusively:
atomscan ./project
atomscan release.tgz
# Fetch a package from its registry and scan it.
atomscan purl npm/[email protected]
# Fetch and scan a URL.
atomscan url https://example.com/download
# EXPERIMENTAL: Scan running process executables, or triage the wider host
atomscan ps
atomscan sys
# JSON output for programmatic access
atomscan -f json ./project
Os códigos de saída tornam a integração com CI trivial:
0: todas as amostras são benignas1: amostra hostil detetada2: amostra suspeita detetada3: erro de análise4: o conjunto de regras estava incompleto — a análise foi executada com menos regras do que as definidas pelo conjunto de características, pelo que qualquer resultado que não seja hostil não prova nada. Execute novamente.
O atomscan nunca enviará dados de telemetria. No entanto, irá aceder à Internet por 2 razões:
--no-update ou SCAN_NO_UPDATE_CHECK=1--follow=none para analisar apenas o artefacto solicitado.Ao contrário de outros scanners de malware, o Atomdrift permite-lhe ajustar a sensibilidade em termos de um nível aceitável de falsos positivos usando a flag -l:
-l0: restrito, define o limite de confiança num ponto onde não foram observados falsos positivos.-l25: o ponto de envio predefinido: 25 falsos positivos por 100 milhões de ficheiros.-l1000: permissivo, aproximadamente 1 falso positivo por 100.000 ficheiros.NOTA: Para formatos de ficheiro onde não temos 100 milhões de amostras, a taxa de falsos positivos observada pode ser até 5-6X o nível solicitado. Os resultados podem variar.
As substituições diretas --threshold-hostile e --threshold-suspicious estão disponíveis
para utilizadores que queiram micromanager os limites de probabilidade diretamente, mas estes números não são garantidamente estáveis, e estas flags não podem ser combinadas com -l.
Para interpretação adicional, os utilizadores podem fornecer acesso a um LLM através da flag --llm. Esta flag serve dois propósitos:
Por predefinição, o atomscan envia a evidência interpretada (não o ficheiro original) para http://localhost:8000/v1 - para ser usado com um serviço local como Ollama ou vLLM; mas também pode ser configurado para usar um serviço remoto como Claude, ChatGPT ou DeepSeek.
Nenhum modelo está codificado: a menos que passe --llm-model, o atomscan pergunta ao endpoint quais modelos serve e usa o maior que lista. Recomendamos servir Qwen/Qwen3.8-27B.
Se o endpoint exigir um bearer token, coloque-o em ~/.tok/llm (modo 0600) e o atomscan envia-o automaticamente; --llm-key e SCAN_LLM_KEY substituem esse ficheiro.
--llm também aceita uma cadeia de failover separada por vírgulas, tentada por ordem — --llm 'https://llm.isotope13.ai/v1,openrouter' avalia no seu próprio endpoint e recorre ao pago apenas quando não consegue responder.
atomscan --llm ./project
atomscan --llm http://model-host:8000/v1 --llm-model my-model ./project
atomscan --llm openrouter --llm-model qwen/qwen3.8-27b ./project
--llm openrouter comunica com https://openrouter.ai/api/v1. A chave vem de --llm-key, SCAN_LLM_KEY ou ~/.tok/openrouter (primeira linha não vazia). --llm-model tem como padrão openrouter/auto (o próprio auto-router do OpenRouter) se omitido — o restante do catálogo não é selecionado automaticamente.
O scanner reconhece mais de 100 tipos de arquivos e contêineres. A cobertura representativa inclui: