
scanner simples de IOC baseado em YARA
...um scanner modular de IOC baseado em host, simples e autocontido
Spyre é um scanner simples de IOC baseado em host, construído sobre o mecanismo de correspondência de padrões YARA e outros módulos de varredura. O principal objetivo deste projeto é a operacionalização fácil de regras YARA e outros indicadores de comprometimento.
Os usuários precisam fornecer seus próprios conjuntos de regras. O repositório awesome-yara fornece uma boa visão geral dos conjuntos de regras YARA gratuitos disponíveis.
Spyre destina-se a ser usado como uma ferramenta de investigação por respondentes de incidentes. Não tem a intenção de evoluir para qualquer tipo de serviço de proteção de endpoint.
Usar Spyre é fácil:
Adicione assinaturas YARA. Na sua configuração padrão, o Spyre lerá
regras YARA para varredura de arquivos e processos de filescan.yar e
procscan.yar, respectivamente. As seguintes opções existem para
fornecer arquivos de regras ao Spyre (e serão tentadas nesta ordem):
spyre ou spyre.exe, use spyre.zip.Os conteúdos do arquivo ZIP podem ser criptografados usando a senha infected
(padrão da indústria de antivírus) para evitar que o software antivírus analise
o conjunto de regras, classificando-o como conteúdo malicioso e impedindo a
varredura.
Os arquivos de regras YARA podem conter instruções include.
Implante, execute o scanner
Colete o relatório e as evidências
A configuração em tempo de execução é feita através de um arquivo opcional spyre.yaml.
Se um arquivo ZIP foi anexado ao binário Spyre, a configuração e outros arquivos, como regras YARA, são lidos apenas deste arquivo ZIP. Caso contrário, eles são lidos do diretório no qual o binário foi colocado.
Consulte o subdiretório example-configuration/ para um exemplo.
hostname / opção de linha de comando --set-hostname: Define explicitamente
o nome do host que será usado no arquivo de log e no relatório.
Isso geralmente não é necessário.
max-file-size / opção de linha de comando --max-file-size: Tamanho máximo
para arquivos a serem escaneados usando módulos de varredura de arquivo caros,
como YARA. Padrão: 32MB
proc-ignore-names / opção de linha de comando --proc-ignore: Nomes de
processos que não serão escaneados usando módulos de varredura de memória de
processo.
paths / opção de linha de comando --path: Caminhos a serem escaneados usando
módulos de varredura de arquivo. Padrão: / (Unix) ou todas as unidades fixas
(Windows).
report / opção de linha de comando --report: Define um ou mais destinos de
relatório. Padrão: spyre_${hostname}_${time}.log no diretório de trabalho
atual, usando o formato simples. Um formato de saída diferente pode ser
especificado anexando .
Atualmente, existem três áreas para as quais os módulos de varredura podem ser implementados: verificações em nível de sistema, varreduras de arquivo e varreduras de processo.
Listados abaixo estão os módulos atualmente implementados e os parâmetros de configuração suportados.
system
eventobj (Windows)
iocsregistry (Windows)
iocswinkernelobj (Windows)
iocsconficker, booleano: Os IOCs dinâmicos (baseados em host/processo) do
Conficker devem ser adicionados à lista de IOCs? (Padrão: false)findwindow (Windows)
iocsfile
yara
rule-filesConsulte o arquivo de configuração de exemplo example-spyre.yaml
para obter dicas sobre como descrever indicadores de comprometimento para cada módulo.
O YARA é configurado com as configurações padrão, mais as seguintes opções
explícitas (cf. 3rdparty.mk):
--disable-magic--disable-cuckoo--enable-dotnet--enable-macho--enable-dexPara varreduras de arquivo, as seguintes variáveis são definidas:
filename,filepath,extension,filetype (atualmente não preenchida durante a varredura)Para varreduras de processo, as variáveis pid e executable são definidas.
A metavariável spyre_collect_limit pode ser usada para limitar o número
de coletas de arquivos correspondentes ou para inibir a coleta de arquivos
completamente. Isso pode ser útil para limitar o tamanho dos pacotes de evidências
e evitar a coleta de informações sensíveis.
O Spyre pode ser compilado para alvos Linux e Windows de 32 e 64 bits.
Em um sistema Debian/buster (ou um chroot) no qual os seguintes pacotes foram instalados:
GOROOT tenha sido
definido.Isso descreve o ambiente de compilação que é testado regularmente via CI.
A mesma compilação também foi testada com sucesso no Fedora 30 com os seguintes pacotes instalados:
Depois que tudo foi instalado, basta digitar make. Isso deve
baixar arquivos para musl-libc, openssl, yara, compilá-los e
então compilar spyre.
Os binários simples do spyre são criados em _build/<triplet>/.
Executar make release cria um arquivo ZIP que contém esses binários
para todas as arquiteturas suportadas.
A compatibilidade com esses sistemas foi removida com o Go 1.11, portanto, uma
cadeia de ferramentas Go 1.10 é necessária. Como o Go 1.10 não suporta módulos Go,
as dependências Go de terceiros devem ser vendidas: Use uma versão mais recente do Go
para fazer isso (apenas execute go vendor) e defina GOROOT para apontar para
a cadeia de ferramentas Go 1.10 antes de executar make.
Atualmente, a compilação cruzada não é suportada.
O make fornecido pelo sistema é muito antigo porque a Apple decidiu ser
alérgica ao GPLv3. gmake do Homebrew funciona bem.
Consulte HACKING.md
Copyright 2018-2020 DCSO Deutsche Cyber-Sicherheitsorganisation GmbH
Copyright 2020-2021 Spyre Project Authors (veja: AUTHORS.txt)
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU Lesser General Public License conforme publicada pela Free Software Foundation, seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior.
Consulte o arquivo LICENSE para o texto completo da licença.
,format=FORMATAtualmente, os seguintes formatos são suportados:
plain, o padrão, um formato de texto simples legível por humanostsjson, um documento JSON que pode ser importado para
TimesketchAs variáveis hostname e time são expandidas apenas no nome do arquivo
de destino.
Nota: A configuração dos destinos de relatório provavelmente mudará em um dos próximos lançamentos.
high-priority / opção de linha de comando --high-priority: Na sua
configuração padrão (com esta definição desabilitada), o Spyre
instrui o escalonador do SO a reduzir as prioridades de tempo de CPU e
operações de E/S, a fim de evitar interrupções na operação normal do sistema.
opção de linha de comando --loglevel=LEVEL: Define o nível de log. Válidos:
trace, debug, info, notice, warn, error, quiet.
fail-on-warningsproc
yara
rule-filesfail-on-warnings