
strelka v1.0.2
Escaneamento de arquivos em tempo real, baseado em contêineres, em escala empresarial.
Strelka é um sistema de varredura de arquivos em tempo real, baseado em contêineres, usado para caça a ameaças, detecção de ameaças e resposta a incidentes. Originalmente baseado no design estabelecido pelo Laika BOSS da Lockheed Martin e projetos similares (veja: projetos relacionados), o Strelka tem como objetivo realizar extração de arquivos e coleta de metadados em escala empresarial.
O Strelka difere de seus projetos irmãos em alguns aspectos significativos:
- O código-fonte principal é Go e Python3.10+
- Os componentes do servidor rodam em contêineres para facilidade e flexibilidade de implantação
- Aplicativos clientes nativos do SO para Windows, Mac e Linux
- Construído usando bibliotecas e formatos que permitem suporte multiplataforma e multilinguagem
Recursos
Strelka é uma plataforma modular de varredura de dados, permitindo que usuários ou sistemas enviem arquivos com o objetivo de analisar, extrair e relatar conteúdo e metadados de arquivos. Combinado com um SIEM, o Strelka é capaz de agregar, alertar e fornecer aos analistas a capacidade de entender melhor seu ambiente sem ter que realizar coleta direta de dados ou análise demorada de arquivos.

Início rápido
Executar um arquivo através do Strelka é simples. Nesta seção, as capacidades de extração e análise do Strelka são demonstradas para uma análise única.
Por favor, revise a documentação para detalhes sobre como construir e implantar corretamente o Strelka em um ambiente empresarial.
Passo 1: Instalar pré-requisitos
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
Passo 2: Baixar o Strelka
git clone https://github.com/target/strelka.git && \
cd strelka
Passo 3: Baixar e instalar regras yara preferidas (opcional)
rm configs/python/backend/yara/rules.yara && \
git clone https://github.com/Yara-Rules/rules.git configs/python/backend/yara/rules/ && \
echo 'include "./rules/index.yar"' > configs/python/backend/yara/rules.yara
Passo 4a: Baixar imagens pré-compiladas e iniciar o Strelka
Nota: Você pode pular o processo go build e usar a Interface do Strelka em http://0.0.0.0:9980 para analisar arquivos.
docker compose -f build/docker-compose-no-build.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Passo 4b: Construir e iniciar o Strelka
Nota: Você pode pular o processo go build e usar a Interface do Strelka em http://0.0.0.0:9980 para analisar arquivos.
docker compose -f build/docker-compose.yaml build && \
docker compose -f build/docker-compose.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Passo 5: Preparar um arquivo para analisar
Use qualquer amostra de malware, ou outro arquivo que você gostaria que o Strelka analisasse.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
Passo 6: Analisar o arquivo com o Strelka usando o oneshot dockerizado
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
O que está acontecendo aqui?
- O Strelka determinou que o arquivo enviado era um ZIP criptografado (Veja: taste.yara backend.yaml)
- ScanEncryptedZip usou um dicionário para quebrar a senha do arquivo ZIP e extrair o arquivo comprimido
- O arquivo extraído foi enviado de volta ao pipeline do Strelka pelo scanner, e o Strelka determinou que o arquivo extraído era um EXE
- ScanPe dissecou o arquivo EXE e adicionou metadados úteis à saída
- ScanYara analisou o arquivo EXE, usando as regras fornecidas, e adicionou numerosas correspondências à saída, algumas indicando que o arquivo pode ser malicioso
A seguinte saída foi editada para brevidade.
{
"file": {
"depth": 0,
"flavors": {
"mime": ["application/zip"],
"yara": ["encrypted_zip", "zip_file"]
},
"scanners": [
"ScanEncryptedZip",
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanYara",
"ScanZip"
]
},
"scan": {
"encrypted_zip": {
"cracked_password": "infected",
"elapsed": 0.114269,
"total": {"extracted": 1, "files": 1}
}
}
}
{
"file": {
"depth": 1,
"flavors": {
"mime": ["application/x-dosexec"],
"yara": ["mz_file"]
},
"name": "29D6161522C7F7F21B35401907C702BDDB05ED47.bin",
"scanners": [
"ScanEntropy",
"ScanFooter",
"ScanHash",
"ScanHeader",
"ScanPe",
"ScanYara"
]
},
"scan": {
"pe": {
"address_of_entry_point": 5168,
"base_of_code": 4096,
"base_of_data": 32768,
"checksum": 47465,
"compile_time": "2015-03-31T08:53:51",
"elapsed": 0.013076,
"file_alignment": 4096,
"file_info": {
"company_name": "In CSS3",
"file_description": "Note: In CSS3, the text-decoration property is a shorthand property for text-decoration-line, text-decoration-color, and text-decoration-style, but this is currently.",
"file_version": "1.00.0065",
"fixed": {"operating_systems": ["WINDOWS32"]},
"internal_name": "Callstb",
"original_filename": "NOFAstb.exe",
"product_name": "Goodreads",
"product_version": "1.00.0065",
"var": {"character_set": "Unicode", "language": "U.S. English"}
}
},
"yara": {
"elapsed": 0.068918,
"matches": [
"SEH__vba",
"SEH_Init",
"Big_Numbers1",
"IsPE32",
"IsWindowsGUI",
"HasOverlay",
"HasRichSignature",
"Microsoft_Visual_Basic_v50v60",
"Microsoft_Visual_Basic_v50",
"Microsoft_Visual_Basic_v50_v60",
"Microsoft_Visual_Basic_v50_additional",
"Microsoft_Visual_Basic_v50v60_additional"
],
"tags": [
"AntiDebug",
"SEH",
"Tactic_DefensiveEvasion",
"Technique_AntiDebugging",
"SubTechnique_SEH",
"PECheck",
"PEiD"
]
}
}
}
E agora?
Se o Strelka estivesse implantado e ingerindo arquivos em seu ambiente, você poderia estar coletando esses eventos em seu SIEM. Com essa análise, você poderia escrever uma regra que procura por eventos correspondentes às tags yara suspeitas, alertando sobre um arquivo potencialmente malicioso.
scan.yara.tags:("Technique_AntiDebugging" && "SubTechnique_SEH")
Interface Fileshot
A Interface do Strelka está disponível quando você constrói os contêineres fornecidos. Esta interface web permite que você faça upload de arquivos para o Strelka e capture os eventos, que são armazenados localmente.
Navegue até http://localhost:9980/ e use o login strelka/strelka.

Usos Potenciais
Com mais de 50 scanners de arquivos para os tipos de arquivos mais comuns (ex.: exe, docx, js, zip), o Strelka oferece aos usuários a capacidade de obter novos insights sobre arquivos em seu host, rede ou empresa. Embora o Strelka não seja um mecanismo de detecção por si só (embora utilize YARA), ele pode fornecer metadados suficientes para identificar arquivos suspeitos ou maliciosos. Alguns usos potenciais para o Strelka incluem:

Documentação Adicional
Mais documentação sobre o Strelka pode ser encontrada no README, incluindo:
Contribua
Diretrizes para contribuição podem ser encontradas aqui.
Problemas Conhecidos
Problemas ao Carregar Regras YARA
Recomenda-se que os usuários pré-compilem suas regras YARA para desempenho ideal e para evitar possíveis problemas durante a execução. Usar arquivos YARA pré-compilados ajuda a reduzir o tempo de carregamento e o uso de recursos, especialmente em ambientes com um grande conjunto de regras. Certifique-se de usar a opção compilada na configuração do Strelka para apontar para o arquivo de regras pré-compilado.
Outros Problemas
Veja issues marcadas como bug no rastreador para quaisquer problemas adicionais.
Projetos Relacionados
Licenciamento
O Strelka e seu código associado são liberados sob os termos da Licença Apache 2.0.