diff --git a/README.md b/README.md index 002cc18..f9752c7 100644 --- a/README.md +++ b/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. -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": "", + "AUTHKEY": "" +} +# Seleccioón de WarningLists +CONFIG_WL = { + "filtros_buscar": ["osint", "google", "1000","microsoft","amazon","cloudflare"], + "max_reg": 4000 +} + +KTIP_CONFIG = { + "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 + +``` +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 + +``` + +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": "", - "AUTHKEY": "" -} -# Seleccioón de WarningLists -CONFIG_WL = { - "filtros_buscar": ["osint", "google", "1000","microsoft","amazon","cloudflare"], - "max_reg": 4000 -} - -KTIP_CONFIG = { - "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 - -``` - ## 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)