90 lines
2.2 KiB
Markdown
90 lines
2.2 KiB
Markdown
## Descripción
|
|
|
|
Este proyecto realiza de manera automatizada, la eliminación de trabajos (jobs) dentro de MISP que hayan quedado "colgados" (stuck) durante horas.
|
|
|
|
### Características:
|
|
|
|
- Funciona de forma local en servidor MISP (requerido)
|
|
- Soporta todos los tipos de Jobs (pull, push, publish, etc)
|
|
- Configuración de umbral de tiempo. Se puede definir hasta cuantas horas hacia atras desde la ejecución realize revision de Jobs. Por defecto (24h)
|
|
|
|
## Componentes
|
|
|
|
- Libreria PyMISP (pymisp): https://pypi.org/project/pymisp/
|
|
- Libreria SQLAlchemy
|
|
|
|
## Descarga
|
|
|
|
1. Descargar ZIP del repositorio (https://git.csirt.gob.cl/public/misp-jobfixer/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
|
|
|
|
DB_DATA = {
|
|
"user":"root",
|
|
"pass":"<PASS DB MISP (ROOT)>",
|
|
"host":"localhost",
|
|
"port":3306,
|
|
"dbname":"misp"
|
|
}
|
|
|
|
CHECK_JOBS = {
|
|
"hours_limit": 24
|
|
}
|
|
|
|
```
|
|
En config.py podemos:
|
|
|
|
- DB_DATA: Se definen valores de conexión a BD de MISP. Por defecto solo se necesita agregar pass de DB (En archivo de log de instalación de MISP se encuentra pass de DB)
|
|
- CHECK_JOBS: En "hours_limit" se define el umbral máximo de tiempo que tiene la app para buscar jobs (Por defecto: 24 hrs)
|
|
|
|
|
|
## 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-jobfixer
|
|
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-jobfixer/venv/bin/activate
|
|
|
|
# Enter folder
|
|
cd /home/user/misp-jobfixer/
|
|
|
|
# Llamar al script Python
|
|
python main.py
|
|
|
|
# Deactivate
|
|
deactivate
|
|
```
|
|
|
|
Debemos crear en crontab una entrada con la ejecución programada, por ejemplo para que realice la revisión cada dia a las 00:00 (recomendado) :
|
|
|
|
``` shell
|
|
@daily bash ./misp-jobfixer/run.sh
|
|
```
|
|
|