
Un repositorio para compartir contenido de detección de Velociraptor disponible públicamente
Un repositorio para compartir contenido público de detección masiva con Velociraptor de forma fácil de consumir.
Simplemente toma el VQL zip de la versión publicada
e impórtalo en Velociraptor.
Esto se puede hacer fácilmente mediante el intercambio de artefactos de Velociraptor: Server.Import.DetectRaptor

Esto debería importar el artefacto "Import DetectRaptor".

Los artefactos actuales incluyen:
Artefactos de servidor:
Algunos repositorios colaboradores:
Ejecuta las pruebas de regresión de Eventlogs, PSReadLine y MFT desde la raíz del repositorio:
python -m unittest discover -s tests -v
Valida el CSV de detección MFT directamente:
python scripts/sync_mft_lolrmm.py
python scripts/normalize_mft_metadata.py
python scripts/assign_mft_metadata.py --check
python scripts/validate_mft.py
python scripts/validate_mft_whitelist.py
python scripts/build_mft_replay_coverage.py
python scripts/replay_mft.py --check
python scripts/benchmark_mft_replay.py --iterations 3
Al añadir una regla MFT, deja vacíos los campos de metadatos generados y ejecuta:
python scripts/assign_mft_metadata.py
Esto asigna un RuleID inmutable DR-MFT-<CATEGORY>-NNN y metadatos de categoría, confianza, fuente y ATT&CK de referencia. Los RuleID existentes se conservan.
sync_mft_lolrmm.py regenera las reglas MFT basadas en LOLRMM a partir de csv/lolrmm.csv, conservando los ID mediante csv/MFT_RMM_IDs.csv y aplicando csv/MFT_RMM_Overrides.csv. Las fuentes que son inherentemente inadecuadas para la detección MFT basada únicamente en el nombre de archivo se documentan en csv/MFT_RMM_Exclusions.csv. A continuación, normalize_mft_metadata.py aplica la política revisada de confianza, severidad, alcance y ATT&CK. Los indicadores DLL generados solo se conservan cuando su nombre base contiene un token de nombre LOLRMM específico del producto; los DLL filtrados y las exclusiones explícitas se registran en csv/MFT_RMM_Coverage.csv. Los nombres base de ejecutables ambiguos conocidos también se filtran de la generación basada solo en el nombre de archivo. Las sobreescrituras divididas curadas conservan nombres de archivo genéricos únicamente bajo rutas estables de productos upstream.
build_mft_replay_coverage.py crea un positivo sintético determinista para cada regla MFT y registra las coincidencias de reglas superpuestas en csv/MFT_Replay_Coverage.csv. replay_mft.py --check evalúa los fixtures positivos y negativos saneados en tests/fixtures/. También puede comparar un archivo de reglas candidato con una línea base mediante --baseline-rules, y escribir resultados detallados de coincidencia, comparación y resumen en rutas seleccionadas explícitamente.
csv/MFT_Whitelist.csv contiene políticas de supresión integradas que tienen en cuenta la ruta. Las políticas requieren un RuleID y un artefacto exactos, además de expresiones regulares coincidentes para el nombre de archivo y la ruta. SuppressWhitelisted está habilitado por defecto en MFT y Amcache; desactívalo para auditar las filas suprimidas y sus metadatos WhitelistID. Las aprobaciones RMM locales o específicas del cliente siguen siendo parámetros de tiempo de ejecución y no se incluyen en el repositorio.
benchmark_mft_replay.py combina los fixtures saneados con un positivo generado por regla. Informa sobre coincidencias brutas, retenidas y suprimidas; archivos y cadenas de ruta únicos; expansión de coincidencias múltiples; evaluaciones de reglas estimadas; y tiempo de ejecución. Se pueden proporcionar entradas CSV adicionales en formato de replay con --input. El JSON de benchmark solo se escribe cuando --output se proporciona explícitamente.
Regenera los artefactos afectados desde scripts/:
cd scripts
python evtx.py
python psreadline.py
python iseautosave.py
python mft.py
python amcache.py
Verifica los artefactos generados con Velociraptor:
./velociraptor artifacts verify \
vql/Evtx.yaml \
vql/PSReadline.yaml \
vql/ISEAutoSave.yaml \
vql/MFT.yaml
docs/eventlogs-detection-review.mddocs/mft-detection-uplift.md