#content
This commit is contained in:
parent
4ea0ed770f
commit
f80b1ec22c
1 changed files with 74 additions and 70 deletions
144
README.md
144
README.md
|
@ -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.
|
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.
|
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).
|
- 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.
|
- 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
|
## Componentes
|
||||||
|
|
||||||
Este proyecto utiliza un BD local (SQLite en modo WALL) y FastAPI.
|
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
|
## Instalación en entorno virtual
|
||||||
|
|
||||||
1. Se crea entorno virtual de Python
|
1. Se crea entorno virtual de Python
|
||||||
|
@ -22,8 +81,13 @@ Este proyecto utiliza un BD local (SQLite en modo WALL) y FastAPI.
|
||||||
``` shell
|
``` shell
|
||||||
pip install -r requirements.txt
|
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
|
``` shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
@ -52,7 +116,14 @@ cd /home/user/misptopcontrib/
|
||||||
pip3 install -r requirements.txt
|
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
|
``` shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
@ -104,73 +175,6 @@ sudo systemctl stop misptopcontrib
|
||||||
sudo systemctl restart 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
|
## 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)
|
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)
|
||||||
|
|
Loading…
Add table
Reference in a new issue