
strelka v1.0.2
Escaneo de archivos en tiempo real basado en contenedores a escala empresarial.
[Lanzamientos][release] | [Documentación][wiki] | [Solicitudes de cambios][pr] | [Problemas][issues]
[![GitHub release][img-version-badge]][repo] [![Build Status][img-actions-badge]][actions-ci] [![Pull Requests][img-pr-badge]][pr] [![Slack][img-slack-badge]][slack] [![License][img-license-badge]][license]
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.