
strelka v1.0.2
Escaneo de archivos en tiempo real basado en contenedores a escala empresarial.
Strelka es un sistema de escaneo de archivos en tiempo real basado en contenedores, utilizado para la caza de amenazas, detección de amenazas y respuesta a incidentes. Basado originalmente en el diseño establecido por Laika BOSS de Lockheed Martin y proyectos similares (ver: proyectos relacionados), el propósito de Strelka es realizar extracción de archivos y recopilación de metadatos a escala empresarial.
Strelka se diferencia de sus proyectos hermanos en algunos aspectos significativos:
- El código base principal está en Go y Python3.10+
- Los componentes del servidor se ejecutan en contenedores para facilitar y flexibilizar el despliegue
- Aplicaciones cliente nativas del sistema operativo para Windows, Mac y Linux
- Construido con bibliotecas y formatos que permiten soporte multiplataforma y multilenguaje
Características
Strelka es una plataforma modular de escaneo de datos, que permite a los usuarios o sistemas enviar archivos con el propósito de analizar, extraer y reportar contenido y metadatos de archivos. Combinado con un SIEM, Strelka puede agregar, alertar y proporcionar a los analistas la capacidad de comprender mejor su entorno sin tener que realizar recolección de datos directa o análisis de archivos que consume mucho tiempo.

Inicio rápido
Ejecutar un archivo a través de Strelka es simple. En esta sección, se demuestran las capacidades de extracción y análisis de Strelka para un análisis único.
Consulte la documentación para obtener detalles sobre cómo construir e implementar Strelka adecuadamente en un entorno empresarial.
Paso 1: Instalar requisitos previos
# Ubuntu 23.04
sudo apt install -y wget git docker docker-compose golang jq && \
sudo usermod -aG docker $USER && \
newgrp docker
Paso 2: Descargar Strelka
git clone https://github.com/target/strelka.git && \
cd strelka
Paso 3: Descargar e instalar reglas 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
Paso 4a: Extraer imágenes precompiladas e iniciar Strelka
Nota: Puede omitir el proceso go build y usar la Interfaz de Strelka en http://0.0.0.0:9980 para analizar archivos.
docker compose -f build/docker-compose-no-build.yaml up -d && \
go build github.com/target/strelka/src/go/cmd/strelka-oneshot
Paso 4b: Construir e iniciar Strelka
Nota: Puede omitir el proceso go build y usar la Interfaz de Strelka en http://0.0.0.0:9980 para analizar archivos.
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
Paso 5: Preparar un archivo para analizar
Use cualquier muestra de malware u otro archivo que desee que Strelka analice.
wget https://github.com/ytisf/theZoo/raw/master/malware/Binaries/Win32.Emotet/Win32.Emotet.zip -P samples/
Paso 6: Analizar el archivo con Strelka usando el oneshot dockerizado
./strelka-oneshot -f samples/Win32.Emotet.zip -l - | jq
¿Qué está sucediendo aquí?
- Strelka determinó que el archivo enviado era un ZIP cifrado (Ver: taste.yara backend.yaml)
- ScanEncryptedZip usó un diccionario para descifrar la contraseña del archivo ZIP y extraer el archivo comprimido
- El archivo extraído fue reenviado al pipeline de Strelka por el escáner, y Strelka determinó que el archivo extraído era un EXE
- ScanPe diseccionó el archivo EXE y agregó metadatos útiles a la salida
- ScanYara analizó el archivo EXE, utilizando las reglas proporcionadas, y agregó numerosas coincidencias a la salida, algunas indicando que el archivo podría ser malicioso
La siguiente salida ha sido editada para mayor brevedad.
{
"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"
]
}
}
}
¿Qué sigue?
Si Strelka estuviera desplegado e ingiriendo archivos en su entorno, podría estar recopilando estos eventos en su SIEM. Con este análisis, podría escribir una regla que busque eventos que coincidan con las etiquetas sospechosas de yara, alertándole sobre un archivo potencialmente malicioso.
scan.yara.tags:("Technique_AntiDebugging" && "SubTechnique_SEH")
Interfaz de Fileshot
La Interfaz de Strelka está disponible cuando construye los contenedores proporcionados. Esta interfaz web le permite cargar archivos a Strelka y capturar los eventos, que se almacenan localmente.
Navegue a http://localhost:9980/ y utilice el inicio de sesión strelka/strelka.

Usos Potenciales
Con más de 50 escáneres de archivos para los tipos de archivos más comunes (por ejemplo, exe, docx, js, zip), Strelka proporciona a los usuarios la capacidad de obtener nuevos conocimientos sobre los archivos en su host, red o empresa. Si bien Strelka no es un motor de detección en sí mismo (aunque utiliza YARA), puede proporcionar suficientes metadatos para identificar archivos sospechosos o maliciosos. Algunos usos potenciales de Strelka incluyen:

Documentación Adicional
Se puede encontrar más documentación sobre Strelka en el README, incluyendo:
Contribuir
Las pautas para contribuir se pueden encontrar aquí.
Problemas Conocidos
Problemas al Cargar Reglas YARA
Se recomienda a los usuarios precompilar sus reglas YARA para un rendimiento óptimo y para evitar posibles problemas durante la ejecución. El uso de archivos YARA precompilados ayuda a reducir el tiempo de carga y el uso de recursos, especialmente en entornos con un gran conjunto de reglas. Asegúrese de usar la opción compilada en la configuración de Strelka para apuntar al archivo de reglas precompilado.
Otros Problemas
Consulte los problemas etiquetados como bug en el rastreador para cualquier problema adicional.
Proyectos Relacionados
Licencia
Strelka y su código asociado se publican bajo los términos de la Licencia Apache 2.0.