This commit is contained in:
Felipe Luis Quezada Valenzuela 2024-11-13 20:59:56 -03:00
parent 4ea0ed770f
commit f80b1ec22c

144
README.md
View file

@ -2,7 +2,7 @@
Este proyecto permite obtener la cantidad de IoC de calidad entregados por comunidades conectadas dentro de una instancia de MISP. Esto quiere decir IoC que no son falsos positivos.
Esto se realiza a través de la base de datos que utiliza MISP de forma interna denominada "Warninglist" en contraste con el servicio gratuito de lookup de IP's, dominios y hashes que ofrece Kaspersky Threat Intelligence Portal.
Esto se realiza a través de la base de datos que utiliza MISP de forma interna denominada "Warninglist" en contraste con el servicio gratuito de lookup de IP's, dominios y hashes que ofrece Kaspersky© Threat Intelligence Portal.
Estos datos son accesibles mediante una API REST.
@ -11,10 +11,69 @@ Estos datos son accesibles mediante una API REST.
- Conteo de IoC válidos por cada organización conectada (diariamente).
- Proceso de curación diario, esto quiere decir eliminar IoC dentro de MISP que sean falsos positivos.
### Requisitos
- Se requiere una cuenta en la plataforma Kaspersky© Threat Intelligence Portal. La cuenta es gratuita. ([https://opentip.kaspersky.com])
## Componentes
Este proyecto utiliza un BD local (SQLite en modo WALL) y FastAPI.
## Configuración inicial
1. En el archivo config.py se debe definir los datos de conexión a MISP, como también la API KEY asociada a Kaspersky TIP:
``` python
# Config MISP
MISP_CONFIG = {
"URL": "<URL_MISP>",
"AUTHKEY": "<APIKEY_MISP>"
}
# Seleccioón de WarningLists
CONFIG_WL = {
"filtros_buscar": ["osint", "google", "1000","microsoft","amazon","cloudflare"],
"max_reg": 4000
}
KTIP_CONFIG = {
"api_key": "<API KEY>",
"url_base": "https://opentip.kaspersky.com/api/v1/search/"
}
# Tipos de IoC a Omitir en el conteo
IOC_TIPOS_OMITIR = [
'comment',
'text',
'other',
'datetime',
'attachment',
'port',
'size-in-bytes',
'counter',
'integer',
'cpe',
'float',
'hex',
'phone-number',
'boolean',
'anonymised',
'pgp-public-key',
'pgp-private-key'
]
```
config.py se divide en :
- MISP_CONFIG: Configuración asociada a MISP
- CONFIG_WL: Configuración asociada a Warninglist a utilizar en app.
- KTIP_CONFIG: Configuración de conexión a servicio de Lookup de Kaspersky. Se debe solo configurar "api_key".
- IOC_TIPOS_OMITIR: Tipos de Atributos que se omiten en el conteo, generalmente metadata.
En el archivo run_daily.py se puede configurar por ejemplo, el maximo de ioc a comtemplar por evento en la variable "max_ioc":
``` python
max_ioc = 5000
```
## Instalación en entorno virtual
1. Se crea entorno virtual de Python
@ -22,8 +81,13 @@ Este proyecto utiliza un BD local (SQLite en modo WALL) y FastAPI.
``` shell
pip install -r requirements.txt
```
3. Inicialmente se requiere cargar los usuarios sync asociados a cada comunidad conectada a MISP (Sync Users entregados en cada caso). Para agregar un usuario se puede usuario el siguiente script:
3. Se recomienda crear archivo .sh y anexarlo como servicio para que inicie con el sistema operativo:
``` shell
python add_user.py <usuario@usuario.xx> <alias_organizacion>
```
4. Se recomienda crear archivo .sh y anexarlo como servicio para que inicie con el sistema operativo:
``` shell
#!/bin/bash
@ -52,7 +116,14 @@ cd /home/user/misptopcontrib/
pip3 install -r requirements.txt
```
2. Se recomienda crear archivo .sh (ejemplo start_api.sh) y anexarlo como servicio para que inicie con el sistema operativo:
2. Inicialmente se requiere cargar los usuarios sync asociados a cada comunidad conectada a MISP (Sync Users entregados en cada caso). Para agregar un usuario se puede usuario el siguiente script:
``` shell
python add_user.py <usuario@usuario.xx> <alias_organizacion>
```
3. Se recomienda crear archivo .sh (ejemplo start_api.sh) y anexarlo como servicio para que inicie con el sistema operativo:
``` shell
#!/bin/bash
@ -104,73 +175,6 @@ sudo systemctl stop misptopcontrib
sudo systemctl restart misptopcontrib
```
## Configuración inicial
1. En el archivo config.py se debe definir los datos de conexión a MISP, como también la API KEY asociada a Kaspersky TIP:
``` python
# Config MISP
MISP_CONFIG = {
"URL": "<URL_MISP>",
"AUTHKEY": "<APIKEY_MISP>"
}
# Seleccioón de WarningLists
CONFIG_WL = {
"filtros_buscar": ["osint", "google", "1000","microsoft","amazon","cloudflare"],
"max_reg": 4000
}
KTIP_CONFIG = {
"api_key": "<API KEY>",
"url_base": "https://opentip.kaspersky.com/api/v1/search/"
}
# Tipos de IoC a Omitir en el conteo
IOC_TIPOS_OMITIR = [
'comment',
'text',
'other',
'datetime',
'attachment',
'port',
'size-in-bytes',
'counter',
'integer',
'cpe',
'float',
'hex',
'phone-number',
'boolean',
'anonymised',
'pgp-public-key',
'pgp-private-key'
]
```
config.py se divide en :
- MISP_CONFIG: Configuración asociada a MISP
- CONFIG_WL: Configuración asociada a Warninglist a utilizar en app.
- KTIP_CONFIG: Configuración de conexión a servicio de Lookup de Kaspersky.
- IOC_TIPOS_OMITIR: Tipos de Atributos que se omiten en el conteo, generalmente metadata.
En el archivo run_daily.py se puede configurar por ejemplo, el maximo de ioc a comtemplar por evento en la variable "max_ioc":
``` python
max_ioc = 5000
```
### Usuarios
Inicialmente se requiere cargar los usuarios sync asociados a cada comunidad conectada a MISP (Sync Users entregados en cada caso). Para agregar un usuario se puede usuario el siguiente script:
``` shell
python add_user.py <usuario@usuario.xx> <alias_organizacion>
```
## Ejecución
El ideal es la recolección diaria de Ioc dentro de MISP. El archivo run_daily.py debe agendarlo de forma diaria para recolectar por dia (dia anterior completo)