
escáner simple de IOC basado en YARA
...un escáner modular autónomo y simple de IOC basado en host
Spyre es un escáner simple de IOC basado en host, construido alrededor del motor de coincidencia de patrones YARA y otros módulos de escaneo. El objetivo principal de este proyecto es facilitar la operacionalización de reglas YARA y otros indicadores de compromiso.
Los usuarios deben proporcionar sus propios conjuntos de reglas. El repositorio awesome-yara ofrece una buena visión general de los conjuntos de reglas YARA gratuitos disponibles.
Spyre está pensado para ser utilizado como herramienta de investigación por respondedores de incidentes. No está destinado a convertirse en ningún tipo de servicio de protección de endpoints.
Usar Spyre es fácil:
Agregar firmas YARA. En su configuración predeterminada, Spyre leerá las reglas YARA para el escaneo de archivos y procesos desde filescan.yar y procscan.yar, respectivamente. Las siguientes opciones existen para proporcionar archivos de reglas a Spyre (y se probarán en este orden):
spyre o spyre.exe, use spyre.zip.El contenido del archivo ZIP puede cifrarse usando la contraseña infected (estándar de la industria antivirus) para evitar que el software antivirus escanee el conjunto de reglas, lo clasifique como contenido malicioso y evite el escaneo.
Los archivos de reglas YARA pueden contener sentencias include.
Desplegar, ejecutar el escáner
Recopilar informe y evidencia
La configuración en tiempo de ejecución se realiza a través de un archivo opcional spyre.yaml.
Si se ha anexado un archivo ZIP al binario de Spyre, la configuración y otros archivos, como las reglas YARA, solo se leerán desde este archivo ZIP. De lo contrario, se leerán desde el directorio en el que se ha colocado el binario.
Consulte el subdirectorio example-configuration/ para ver un ejemplo.
hostname / interruptor de línea de comandos --set-hostname: Establecer explícitamente el nombre de host que se utilizará en el archivo de registro y en el informe. Normalmente no es necesario.
max-file-size / interruptor de línea de comandos --max-file-size: Tamaño máximo para archivos que se escanearán utilizando módulos de escaneo costosos como YARA. Predeterminado: 32MB
proc-ignore-names / interruptor de línea de comandos --proc-ignore: Nombres de procesos que no se escanearán utilizando módulos de escaneo de memoria de procesos.
paths / interruptor de línea de comandos --path: Rutas que se escanearán utilizando módulos de escaneo de archivos. Predeterminado: / (Unix) o todas las unidades fijas (Windows).
report / interruptor de línea de comandos --report: Establecer uno o más destinos de informe. Predeterminado: en el directorio de trabajo actual, usando el formato simple. Se puede especificar un formato de salida diferente añadiendo .
Actualmente hay tres áreas para las que se pueden implementar módulos de escaneo: comprobaciones a nivel de sistema, escaneos de archivos y escaneos de procesos.
A continuación se enumeran los módulos actualmente implementados y los parámetros de configuración admitidos.
system
eventobj (Windows)
iocsregistry (Windows)
iocswinkernelobj (Windows)
iocsconficker, booleano: ¿Se deben agregar IOCs dinámicos (basados en host/proceso) de Conficker a la lista de IOC? (Predeterminado: false)findwindow (Windows)
iocsfile
yara
rule-filesConsulte el archivo de configuración de ejemplo example-spyre.yaml para obtener sugerencias sobre cómo describir indicadores de compromiso para cada módulo.
YARA está configurado con los valores predeterminados, más los siguientes interruptores explícitos (cf. 3rdparty.mk):
--disable-magic--disable-cuckoo--enable-dotnet--enable-macho--enable-dexPara escaneos de archivos, se definen las siguientes variables:
filename,filepath,extension,filetype (no poblada actualmente durante el escaneo)Para escaneos de procesos, se definen las variables pid y executable.
La metavariable spyre_collect_limit se puede usar para limitar el número de escrituras recopiladas de archivos coincidentes o para inhibir la recopilación de archivos por completo. Esto puede ser útil para limitar el tamaño de los paquetes de evidencia y evitar la recopilación de información sensible.
Spyre se puede compilar para objetivos Linux y Windows de 32 y 64 bits.
En un sistema Debian/buster (o un chroot) en el que se hayan instalado los siguientes paquetes:
GOROOT.Esto describe el entorno de compilación que se ejercita regularmente a través de CI.
La misma compilación también se ha probado con éxito en Fedora 30 con los siguientes paquetes instalados:
Una vez que todo esté instalado, simplemente escriba make. Esto debería descargar los archivos de musl-libc, openssl, yara, compilarlos y luego compilar spyre.
Los binarios simples de spyre se crean en _build/<triplet>/.
Ejecutar make release crea un archivo ZIP que contiene esos binarios para todas las arquitecturas compatibles.
La compatibilidad con estos sistemas se eliminó con Go 1.11, por lo que se requiere una cadena de herramientas Go 1.10. Dado que Go 1.10 no admite módulos Go, las dependencias Go de terceros deben ser vendidas: use una versión más reciente de Go para hacer esto (simplemente ejecute go vendor) y establezca GOROOT para que apunte a la cadena de herramientas Go 1.10 antes de ejecutar make.
Actualmente, la compilación cruzada no es compatible.
El make proporcionado por el sistema es demasiado antiguo porque Apple decidió ser alérgico a GPLv3. gmake de Homebrew funciona bien.
Consulte HACKING.md
Copyright 2018-2020 DCSO Deutsche Cyber-Sicherheitsorganisation GmbH
Copyright 2020-2021 Spyre Project Authors (ver: AUTHORS.txt)
Este programa es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la GNU Lesser General Public License tal como es publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
Consulte el archivo LICENSE para ver el texto completo de la licencia.
spyre_${hostname}_${time}.log,format=FORMATActualmente se admiten los siguientes formatos:
plain, el predeterminado, un formato de texto simple legible por humanostsjson, un documento JSON que se puede importar a TimesketchLas variables hostname y time solo se expanden en el nombre del archivo de destino.
Nota: Es probable que la configuración de los destinos del informe cambie en una de las próximas versiones.
high-priority / interruptor de línea de comandos --high-priority: En su configuración predeterminada (con esta opción deshabilitada), Spyre instruye al planificador del SO para que reduzca las prioridades del tiempo de CPU y las operaciones de E/S, con el fin de evitar la interrupción de la operación normal del sistema.
interruptor de línea de comandos --loglevel=LEVEL: Establecer el nivel de registro. Válidos: trace, debug, info, notice, warn, error, quiet.
fail-on-warningsproc
yara
rule-filesfail-on-warnings