first commit
This commit is contained in:
commit
80a5fba9c3
1 changed files with 161 additions and 0 deletions
161
README.md
Normal file
161
README.md
Normal file
|
@ -0,0 +1,161 @@
|
|||
## Descripción
|
||||
|
||||
Este proyecto corrige de manera automatizada y programada las correlaciones de atributos dentro de MISP, activando únicamente las necesarias y deshabilitando las que no deben ser correladas.
|
||||
|
||||
|
||||
### Características:
|
||||
|
||||
- Desactiva/Activa la correlación según un lista de atributos definida por usuario.
|
||||
- Desactiva/Activa la opción "IDS" según un lista de atributos definida por usuario.
|
||||
- Configuración de umbral de tiempo. Se puede definir una búsqueda de los últimos eventos a contemplar en la corrección (Por defecto. 7 días)
|
||||
## Componentes
|
||||
|
||||
- Libreria PyMISP (pymisp): https://pypi.org/project/pymisp/
|
||||
- Libreria SQLAlchemy: https://pypi.org/project/SQLAlchemy/
|
||||
|
||||
## Descarga
|
||||
|
||||
1. Descargar ZIP del repositorio (https://git.csirt.gob.cl/public/misp-fixcor/archive/main.zip)
|
||||
|
||||
2. Al descomprimir el archivo, mover carpeta "misp-jobfixer" dentro de carpeta "home" de usuario u otra ubicación definida.
|
||||
|
||||
## Configuración inicial
|
||||
|
||||
1. En el archivo config.py se debe definir los parametros según caso:
|
||||
|
||||
``` python
|
||||
MISP_CONFIG = {
|
||||
"misp_url":"URL_MISP",
|
||||
"misp_authkey":"AUTHKEY_MISP"
|
||||
}
|
||||
|
||||
# Se si quiere agregar a exclusion de MISP cada atributo al deshabilitar correlacion
|
||||
NO_CORRELATIVOS_EXCLUSION = False
|
||||
|
||||
# Maximo de atributosa a procesar por evento
|
||||
MAX_ATTRS = 25000
|
||||
|
||||
#Workers (Max = 4)
|
||||
NUM_WORKERS = 4
|
||||
|
||||
# Rango de Busqueda de Eventos (ultimos días) (Default. 7 dias)
|
||||
RANGO_DIAS = "7d"
|
||||
|
||||
NO_CORRELATIVOS = [
|
||||
"comment", # Comentarios descriptivos
|
||||
"email-subject", # Asuntos de correos electrónicos
|
||||
"email-dst", # Emails de destinatarios
|
||||
"email-src", # Emails de remitentes
|
||||
"hostname", # Nombres de host
|
||||
"port", # Puertos
|
||||
"link", # Enlaces
|
||||
"phone-number", # Números de teléfono
|
||||
"user-agent", # Agentes de usuario
|
||||
"size-in-bytes", # Tamaños en bytes
|
||||
"vulnerability", # Vulnerabilidades (CVE)
|
||||
"whois-registrant-email", # Correos de registrantes WHOIS
|
||||
"whois-registrant-name", # Nombres de registrantes WHOIS
|
||||
"regkey", # Claves de registro de Windows
|
||||
"regkey|value", # Claves de registro con valores
|
||||
"text", # Texto libre
|
||||
"datetime", # Fechas y horas
|
||||
"campaign-name", # Nombres de campaña
|
||||
"attachment", # Archivos adjuntos
|
||||
"email" # Emails de remitentes
|
||||
]
|
||||
|
||||
|
||||
IDS_CORRELATIVOS = [
|
||||
"ip-src", # IP de origen
|
||||
"ip-dst", # IP de destino
|
||||
"domain", # Dominio
|
||||
"domain|ip", # Dominio con IP asociada
|
||||
"url", # URL completas
|
||||
"uri", # URI (fragmentos de rutas)
|
||||
"http-method", # Métodos HTTP (GET, POST, etc.)
|
||||
"email-attachment", # Nombres de archivos adjuntos en correos
|
||||
"filename", # Nombres de archivo
|
||||
"filename|md5", # Nombre de archivo con su hash MD5
|
||||
"filename|sha1", # Nombre de archivo con su hash SHA1
|
||||
"filename|sha256", # Nombre de archivo con su hash SHA256
|
||||
"md5", # Hash MD5
|
||||
"sha1", # Hash SHA1
|
||||
"sha256", # Hash SHA256
|
||||
"authentihash", # Hash Authentihash
|
||||
"impfuzzy", # Hash ImpHash (ejecutable PE)
|
||||
"tlsh", # Hash TLSH
|
||||
"ssdeep", # Hash SSDEEP (fuzzy hash)
|
||||
"mutex", # Nombres de mutex
|
||||
"registry-key", # Claves de registro (si son relevantes)
|
||||
"registry-key|value", # Claves de registro con valores
|
||||
"ip-src|port", # IP de origen con puerto
|
||||
"ip-dst|port", # IP de destino con puerto
|
||||
"asn", # ASN (Autonomous System Number)
|
||||
"cidr", # Rango CIDR (IPs)
|
||||
"mac-address", # Dirección MAC
|
||||
"x509-fingerprint-md5", # Huella de certificados X509 (MD5)
|
||||
"x509-fingerprint-sha1", # Huella de certificados X509 (SHA1)
|
||||
"x509-fingerprint-sha256", # Huella de certificados X509 (SHA256)
|
||||
"ja3-fingerprint-md5", # Huella JA3 (TLS handshake)
|
||||
"btc", # Dirección de Bitcoin
|
||||
"iban", # Número de cuenta bancaria (IBAN)
|
||||
"bank-account-nr", # Número de cuenta bancaria
|
||||
"payment-card-number" # Número de tarjeta de pago
|
||||
]
|
||||
|
||||
```
|
||||
En config.py podemos definir los siguientes valores:
|
||||
|
||||
- MISP_CONFIG: Se definen valores de conexión a MISP
|
||||
- NO_CORRELATIVOS_EXCLUSION: Por defecto (False), no agrega atributo a exclusiones de MISP (correlation exclusions) cuando es corregido.
|
||||
- MAX_ATTRS: Eventos con menor o igual cantidad de atributos a este valor serán procesados.
|
||||
- NUM_WORKERS: Cantidad de Hilos utilizados de CPU al ejecutar script.
|
||||
- RANGO_DIAS: Ultimos días de eventos en MISP al momento de ejecutar el script (Por defecto - 7 días) (Eventos a procesar)
|
||||
- NO_CORRELATIVOS: Lista de tipos de atributos que se debe desactivar la opción de "correlación" junto con la opción "IDS. (Correlate Off) + (IDS Off)
|
||||
- IDS_CORRELATIVOS: Lista de tipos de atributos que se debe activar la opción de "correlación" junto con la opción "IDS. (Correlate On) + (IDS On)
|
||||
|
||||
|
||||
## Instalación en entorno virtual
|
||||
|
||||
Una vez configurado "config.py" procedemos con la instalación
|
||||
|
||||
1. Se crea entorno virtual de Python
|
||||
``` shell
|
||||
cd ./misp-fixcor
|
||||
python3 -m venv venv
|
||||
```
|
||||
2. Se activa entorno virtual:
|
||||
``` shell
|
||||
source venv/bin/activate
|
||||
```
|
||||
3. Instalar librerias de Python:
|
||||
``` shell
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
## Agengar
|
||||
|
||||
Preparamos el archivo "run.sh" ajustando las rutas en "source" y "cd" para la ejecución correcta del archivo:
|
||||
|
||||
```shell
|
||||
#!/bin/bash
|
||||
|
||||
# Activate
|
||||
source /home/user/misp-fixcor/venv/bin/activate
|
||||
|
||||
# Enter folder
|
||||
cd /home/user/misp-fixcor/
|
||||
|
||||
# Llamar al script Python
|
||||
python main.py
|
||||
|
||||
# Deactivate
|
||||
deactivate
|
||||
```
|
||||
|
||||
Debemos crear en crontab una entrada con la ejecución programada (Como usuario root o sudo), por ejemplo para que realice la revisión cada dia a las 00:00 (recomendado) :
|
||||
|
||||
``` shell
|
||||
@daily bash ./misp-fixcor/run.sh
|
||||
```
|
||||
|
Loading…
Add table
Reference in a new issue